前言

现在一维码二维码在我们的日常生活中使用如此的广泛,所以拥有扫码功能的APP变得非常普遍,一个安卓APP需要扫码功能就要用到zxing了,zxing是谷歌开源的让开发者更方便使用摄像头的库,而我们常用的扫码功能就是其中之一。但是因为zxing的功能太强大了,包含了很多我们用不上的功能,所以一般都会抽取其中的扫码功能单独使用,这个抽取的过程还是有点麻烦的,但是已经有很多开发者为我们省去了这个过程,然后出现一个很棒的第三方zxing库:zxing-android-embedded。目前阿里旗下的weex技术内部就是采用这个zxing-android-embedded解码库的。通过项目中代码

compile 'com.journeyapps:zxing-android-embedded:3.4.0'    
也能看出来weex内嵌了这个扫码库。
    通过实际的开发与测试发现,使用这个扫码库,想要扫出我们公司的条码是根本扫不出的(sis app我是进行优化一部分的,最原生的扫码连灯光开启也没有,如果sis不开启灯光肯定扫不出来),那就要进行优化了,谈到优化,必定需要导入
zxing-android-embedded源码
  这个是所导入的源码。
        接下来的工作就是进行扫码优化,根据前人的经验总结,那么我扫码优化的方向分为以下几点:

1.  通过调整扫描区域来优化

Zxing 是google提供的二维码扫描工程  本身默认的扫图区域最大只有 360*480 ,这样的话我们的手机必须和条形码在一个准确的位置来进行扫描,如果不在一个准确的位置,那么很容易扫不到。

在CameraManager.java这个类中进行调整 
        默认的大小是 以下这4个参数 
            //  private static final int MIN_FRAME_WIDTH = 240;  
            //  private static final int MIN_FRAME_HEIGHT = 240;  
            //  private static final int MAX_FRAME_WIDTH = 480;  
            //  private static final int MAX_FRAME_HEIGHT = 360;

这样可以根据屏幕大小调整,可以增大这些数值 : 最小的宽 高 ; 最大宽高 。通过源码的分析,这些参数的作用位置在CameraManager类下所起到的作用。这里做成一个动态取图,根据摄像机与条码的距离不同,来动态设配扫描区域。

那么这里的四个参数自然用不上了,在代码中注释即可。

2. 精简解码码制

目前 github 上Zxing 支持的码制有以下的种类,通过源码得到

// Product Codes
public static final String UPC_A = "UPC_A";
public static final String UPC_E = "UPC_E";
public static final String EAN_8 = "EAN_8";
public static final String EAN_13 = "EAN_13";
public static final String RSS_14 = "RSS_14";// Other 1D
public static final String CODE_39 = "CODE_39";
public static final String CODE_93 = "CODE_93";
public static final String CODE_128 = "CODE_128";
public static final String ITF = "ITF";public static final String RSS_EXPANDED = "RSS_EXPANDED";// 2D
public static final String QR_CODE = "QR_CODE";
public static final String DATA_MATRIX = "DATA_MATRIX";
public static final String PDF_417 = "PDF_417";

那么通过咨询曹大哥工位牌项目用的是code_128的编码方式,那么可以精简解码的方式,只用code_128即可。这样可以增加android内部的系统运行速度。提高解码效率

3.  缩短自动聚焦的间隔时间

Zxing 默认的聚焦间隔时间是2000毫秒。扫码是在每一次调用相机聚焦完成后触发回调取图解析的。在这里缩短聚焦时间会提高解析频率,扫码性能自然就提升了。当然也有不好的地方,提高了聚焦的频率,对手机电量的消耗自然增加了。我这里是把聚焦间隔修改成了800毫秒。

android扫码优化相关推荐

  1. 史上最全的支付宝二维码扫码优化技术方案

    二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据 ...

  2. android扫码 超简单零代码

    android扫码 超简单零代码 小序 背景介绍 前期准备 zxing和华为扫码服务对比 开始搬运 结语 小序 这是一篇纯新手教学,本人之前没有任何安卓开发经验(尴尬),本文也不涉及任何代码就可以使用 ...

  3. android扫码二维码识别二维码

    1. 快速集成扫码二维码,识别二维码功能.经过加工处理优化的,直接返回扫码结果字符串和图片的bitmap数据. 直接上代码: package com.xinxinchelian.myscanzxing ...

  4. Android 扫码盒子全局接收付款码

    另一种全局接收方式已更新:https://blog.csdn.net/qq_39731011/article/details/107684794 (Activity事件全局分发) 扫码盒子通用接收原理 ...

  5. Android扫码功能--华为统一扫码服务

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.华为统一扫码服务是什么? 二.使用步骤 1.准备工作 2.开启扫码功能 3.自定义扫码页面 4.同时识别多个二维码 ...

  6. Android 扫码登录案例

    首先不妨先看下Android:扫描二维码登陆原理: 大概总结下这个过程就是: 服务器生成全局唯一会话ID,并返回二维码.过期时间: 用户扫描二维码,提交改会话ID,用户基本信息到服务器: PC端在过期 ...

  7. Android:扫码功能

    1.引入 implementation 'com.journeyapps:zxing-android-embedded:3.5.0' 2.使用: public void initScan() {Int ...

  8. 如何使用.NET MAUI开发Android扫码应用

    .NET MAUI是Xamarin的进化版,如果你已经用了Xamarin,那么可以尝试把工程移植到.NET MAUI.这篇文章分享下我的移植心得. 从Xamarin.Forms迁移到.NET MAUI ...

  9. Android 扫码器串口通讯

    最进接串口扫码器,参考 github上开源的串口通讯库https://github.com/cepr/android-serialport-api实现扫码器通讯. 1.集成 Android Studi ...

最新文章

  1. python怎么导入数据包_python – Scapy:如何在现有数据包中插入新层(802.1q)?
  2. python基础===使用switch方法,减少使用if语句
  3. HTTP 2.0与HTTP 1.0的区别 ?
  4. 《极乐迪斯科》:一趟充满新奇的旅程 ,一款里程碑式的 CRPG
  5. Apache Camel Test Framework(MOCK)
  6. (2) java项目中用redis
  7. mysql 磁盘i o 优化_经典案例:磁盘I/O巨高排查全过程
  8. git gui怎么拉取项目代码_Git可视化极简易教程 — Git GUI使用方法
  9. pytorch的nn.CrossEntropyLoss()函数使用方法
  10. restfull加签_SpringBoot RestFull API签名
  11. ASP.NET锚标记使用2种小方法
  12. 检测和校准实验室能力认可准则_CNAS-CL01:2018检测和校准实验室能力认可准则之管理体系...
  13. 【深度优先搜索】整数的划分
  14. opencv外接矩形矫正
  15. Android反编译工具总结
  16. 初步实现免费下载百度文库word文档(只限纯文本文档)----------------(浏览器控制台执行js代码)
  17. java安卓软件开发_9大安卓app开发软件盘点,0基础自己也能开发开发安卓app
  18. RPA机器人能做什么?自动化办公、简化工作流程……还有很多事情等着你挖掘
  19. ODBC 连接 ORACLE数据库 代码
  20. 三分钟带你了解Nacos:架构及部署

热门文章

  1. 以logistic Regression为例实现多类别分类及Python实现
  2. 生信基础(三)——统计分析工具R语言
  3. 最长的名字 /比较最长的字符串并输出
  4. 《东周列国志》第六十二回 诸侯同心围齐国 晋臣合计逐栾盈
  5. 06-CSS盒模型详细阐述
  6. 2012年5月《苹果的安全之缺》
  7. 密码算法测试向量——HMAC-SHA系列
  8. 项目菜鸟成长为老鸟之路
  9. 计算机程序默认打开方式怎么选,电脑不能选择打开方式怎么办|打开方式无法选择的解决方法...
  10. BZOJ2121 字符串游戏 【dp】