android扫码优化
前言
现在一维码二维码在我们的日常生活中使用如此的广泛,所以拥有扫码功能的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扫码优化相关推荐
- 史上最全的支付宝二维码扫码优化技术方案
二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据 ...
- android扫码 超简单零代码
android扫码 超简单零代码 小序 背景介绍 前期准备 zxing和华为扫码服务对比 开始搬运 结语 小序 这是一篇纯新手教学,本人之前没有任何安卓开发经验(尴尬),本文也不涉及任何代码就可以使用 ...
- android扫码二维码识别二维码
1. 快速集成扫码二维码,识别二维码功能.经过加工处理优化的,直接返回扫码结果字符串和图片的bitmap数据. 直接上代码: package com.xinxinchelian.myscanzxing ...
- Android 扫码盒子全局接收付款码
另一种全局接收方式已更新:https://blog.csdn.net/qq_39731011/article/details/107684794 (Activity事件全局分发) 扫码盒子通用接收原理 ...
- Android扫码功能--华为统一扫码服务
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.华为统一扫码服务是什么? 二.使用步骤 1.准备工作 2.开启扫码功能 3.自定义扫码页面 4.同时识别多个二维码 ...
- Android 扫码登录案例
首先不妨先看下Android:扫描二维码登陆原理: 大概总结下这个过程就是: 服务器生成全局唯一会话ID,并返回二维码.过期时间: 用户扫描二维码,提交改会话ID,用户基本信息到服务器: PC端在过期 ...
- Android:扫码功能
1.引入 implementation 'com.journeyapps:zxing-android-embedded:3.5.0' 2.使用: public void initScan() {Int ...
- 如何使用.NET MAUI开发Android扫码应用
.NET MAUI是Xamarin的进化版,如果你已经用了Xamarin,那么可以尝试把工程移植到.NET MAUI.这篇文章分享下我的移植心得. 从Xamarin.Forms迁移到.NET MAUI ...
- Android 扫码器串口通讯
最进接串口扫码器,参考 github上开源的串口通讯库https://github.com/cepr/android-serialport-api实现扫码器通讯. 1.集成 Android Studi ...
最新文章
- python怎么导入数据包_python – Scapy:如何在现有数据包中插入新层(802.1q)?
- python基础===使用switch方法,减少使用if语句
- HTTP 2.0与HTTP 1.0的区别 ?
- 《极乐迪斯科》:一趟充满新奇的旅程 ,一款里程碑式的 CRPG
- Apache Camel Test Framework(MOCK)
- (2) java项目中用redis
- mysql 磁盘i o 优化_经典案例:磁盘I/O巨高排查全过程
- git gui怎么拉取项目代码_Git可视化极简易教程 — Git GUI使用方法
- pytorch的nn.CrossEntropyLoss()函数使用方法
- restfull加签_SpringBoot RestFull API签名
- ASP.NET锚标记使用2种小方法
- 检测和校准实验室能力认可准则_CNAS-CL01:2018检测和校准实验室能力认可准则之管理体系...
- 【深度优先搜索】整数的划分
- opencv外接矩形矫正
- Android反编译工具总结
- 初步实现免费下载百度文库word文档(只限纯文本文档)----------------(浏览器控制台执行js代码)
- java安卓软件开发_9大安卓app开发软件盘点,0基础自己也能开发开发安卓app
- RPA机器人能做什么?自动化办公、简化工作流程……还有很多事情等着你挖掘
- ODBC 连接 ORACLE数据库 代码
- 三分钟带你了解Nacos:架构及部署