1. 程式人生 > >Android Zxing 二維碼掃碼效能優化

Android Zxing 二維碼掃碼效能優化

最近再一次做到了掃碼專案,掃碼出現的掃碼效能問題再次擺上了案頭,經過自己研究並與同行溝通後得出了目前自己能做到的對掃碼效能優化的處理。

1、精簡解碼碼制

目前 github 上 Zxing 支援的碼制


國內常用的有二維碼 QR Code 以及各種條碼

在這裡具體做法就是在支援解碼類與解碼庫把可解碼裁剪為只剩下自己專案需要的碼制。(重中之重,個人經驗,這個對效能提高最有效)

2、擴大掃碼截圖大小

在使用中發現,Zxing 提供的原始碼與網上很多 Demo 都有這麼個問題,掃碼的時候把二維碼完全填充的掃描框裡邊的時候是解析不出來了,反而把掃碼距離放遠立馬就能掃描到資訊了。分析是掃描截圖,解析圖片時二維碼過大導致。嘗試增大截圖大小之後效能顯著提升。在這裡結合之後溝通得出的經驗,這個截圖增大在寬高100px。具體的結合自己的實際情況調整。

3、縮短自動聚焦的間隔時間

Zxing 預設的聚焦間隔時間是2000毫秒。掃碼是在每一次呼叫相機聚焦完成後觸發回撥取圖解析的。在這裡縮短聚焦時間會提高解析頻率,掃碼效能自然就提升了。當然也有不好的地方,提高了聚焦的頻率,對手機電量的消耗自然增加了。我這裡是把聚焦間隔修改成了1000毫秒,這個依據手機硬體的效能修改,不同廠家的手機對相機聚焦的處理是不同的,如果你設定的這個聚焦間隔時間小於了手機廠家預設設計的相機聚焦間隔就會導致程式的崩潰。這個設定請慎重使用。

其他的方案據說還有對解碼演算法的優化,限於技術水平與時間,暫時就沒去研究演算法的優化,如果有人有對演算法優化比較好的案例。歡迎分享學習。