Google ZXing系列講解(一)——導入AS

本文首發於簡書 http://www.jianshu.com/u/d614825bc8a1
基於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的文件量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章