美文网首页Android AndroidAS相关
Google ZXing系列讲解(一)——导入AS

Google ZXing系列讲解(一)——导入AS

作者: 檀木丁 | 来源:发表于2017-02-21 15:53 被阅读8722次

    基于Google ZXing 3.3.0稳定版分析,基本的流程讲解。会涉及如何编写基于ZXing库的APK; 如何修改源码定制自己的扫面界面。

    Google ZXing介绍

    Google ZXing介绍
    简单理解, ZXing支持各种条形码,二维码扫描,由多个模块组成, 而且支持PC端,移动端。

    02-zxing模块.png
    本系列,关注的是如何在Android手机中使用ZXing库, 重点关注,coreandroidandroid-core

    Google ZXing 先睹为快

    github上ZXing没有提供apk下载,需要google play,将android目录导入Android Studio编程完成如下apk。
    百度网盘 google-zxing apk

    Google ZXing 源码导入

    ZXing项目使用Maven管理,编译, 没有使用Android Studio工具, 要想快速导入AS(Android Studio下同), 稍微麻烦点。如果你顺手Maven,直接查看 Getting Started Developing 步骤。
    接下来,介绍导入AS过程。

    ZXing目录结构

    在ZXing介绍那一节,已经展示ZXing想的目录结构。

    直接使用AS打开zxing目录

    ZXing 常用库

    Android使用的有: core, android, android-core, android-integration

    ZXing源码导入

    以导入android目录为例讲解,如何在AS中使用ZXing核心库。其中android是官方提供的demo, 通过该Demo熟悉如何集成ZXing核心库。

    使用jar包形式

    git clone源码或者直接下载 zxing-3.3.0 解压后,目录内容如下:

    Paste_Image.png

    在AS导入界面,选择导入选项,进入android目录,连续next后,官方Demo就导入到AS中。

    AS导入zxing demo

    这里需要注意下载zxing目录和导入到AS workspace不能是同一个文件夹,否则会出现错误。

    已经说明,ZXing核心是coreandroid-core, 而android是提供的Demo,上述导入目的是想快速运行该Demo而已。现在,还编译不过,因为缺少zxing 核心库,以及android核心库。

    缺少core库
    解决方法
    jar包快速依赖

    这种方式会在app目录中对应的build.gradle 增加一行 。

    compile files('libs/core-3.3.0.jar')
    

    如上运行还是有错误, 提示:

    提示找不到CameraConfigurationUtils
    没有导入android-core, 从zxing源码中zxing\android-core\src\main\java\com\google\zxing\client\android\camera 拷贝 CameraConfigurationUtils.java 拷贝Camera...
    • 5 再次编译,成功生成apk,小米5手机测试OK。
      以上方法甚是觉得累赘,因为我们需要的是zxing核心库 coreandroid-core, 库的开发者肯定已经放在了AS对应的仓库中了,接下来只要很简单的 添加2个依赖就可以把该Demo所需的依赖库下载,为我所用。
      请看,下面的步骤。

    ZXing依赖库导入

    大家对build.gradle肯定不陌生,就是AS项目的配置文件,既然Demo需要依赖zxing核心库,步骤如下:

    • AS工程目录app下的build.gradle 添加 依赖
    dependencies {
            compile 'com.google.zxing:core:3.3.0';
            compile 'com.google.zxing:android-core:3.3.0';
    }
    

    为什么知道是这些,简单。ZXing使用Maven来管理的,所以每个目录会有个pom.xml文件。找到zxing源码根目录下的pom.xml文件, 搜索关键字 android-core, core

    <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>${zxing.version}</version>
          </dependency>
          <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>android-core</artifactId>
            <version>${zxing.version}</version>
          </dependency>
    

    再结合上述AS的依赖,一看就知道 compile '组织名称:制品名称:版本号';

    小结

    以上所有步骤小结为

    • git clone 或者 下载zxing-3.3.0源码,将其中android目录导入AS
    • 添加依赖
    • 编译apk

    不建议下载zxing 核心库源码,自己编译成jar包,理由很简单,没必要!

    • 因为常用场景不会去改动core核心库,里面基本是算法相关。
    • 徒劳新增了Demo的文件量

    相关文章

      网友评论

      • akindone:为什么自己编译出来的比你提供的apk扫描识别率低很多
        檀木丁: @akindone 默认就是横着的。横屏扫,我也没有做什么修改的。
        akindone: @檀木丁 横着扫的,下载的源码后导入,再在gradle加了那2行依赖,运行。
        檀木丁: @akindone 横的还是竖着扫描的。
        有按照文章内容修改代码没?
      • 孔雀叔:问题是,怎么导入自己的项目呢?
      • 周乐灬:CalendarResultHandler 类中addCalendarEvent报错,参数列表类型错误
        檀木丁: @roi_yu zxing自己编译是需要maven之类的,你还是自己使用,完全不用编译成jar包。手动导入jar包是eclipse时代的方法,android studio使用gradle配置构建,如文章所说,那样并没有自己编jar包,而是添加依赖。
        0e045a341393:@檀木丁 嗯 对的 从官方那边clone的最新代码,多了一些函数,但是原先的.jar包没有,只能自己编译
        檀木丁:是从官方下载的,还是我github上clone的?
        官方的建议下载 3.3.0稳定版本。文章中有说明,本人的github的话,最近修改较多, 有可能出现问题。

      本文标题:Google ZXing系列讲解(一)——导入AS

      本文链接:https://www.haomeiwen.com/subject/vfjewttx.html