擁有自己的手機軟件工具箱是件非常有意義的事情。就目前國內Android的生態環境來說,混亂的不能再亂了。由于我們登錄不了官網App商店,下軟件就只好在國內五花八門的軟件市場下載。由于這些市場的監管不力,什么樣的軟件都有,就拿二維碼掃描軟件來說,好多都帶那種狗皮膏藥一樣的廣告插件,真是特別討厭。?
在開源世界中有很多優秀的軟件,其中zxing就是非常好的Android掃碼工具軟件。我們可以拿來即用還可以學習內部機制,然后做些定制化個性化。既可以自己享用,又可以跟大家分享。真是不錯。
zxing在github:[https://github.com/zxing/zxing](https://github.com/zxing/zxing)
~~~
zxing-master$ ls
android android-integration AUTHORS CONTRIBUTING.md core javase pom.xml src zxingorg
android-core androidtest CHANGES COPYING glass NOTICE README.md zxing.appspot.com
~~~
源碼很多,里面的pom.xml告訴我們需要用maven編譯。可惜這個構建工具我用的并熟練,一切都要摸索著來。
Maven官網:[https://maven.apache.org](https://maven.apache.org/)?
在ubuntu下的安裝是很簡單的,下載[apache-maven-3.3.1-bin.zip](http://mirror.bit.edu.cn/apache/maven/maven-3/3.3.1/binaries/apache-maven-3.3.1-bin.zip)解壓(unzip)到你喜歡的目錄下如/opt/apache-maven-3.3.1/ 。并將環境變量設置好,~/.bashrc下填入下面內容:
~~~
#Maven
export PATH="$PATH:/opt/apache-maven-3.3.1/bin"
export MAVEN_OPTS="-Xms256m -Xmx512m"
~~~
前提是你的java7環境已經配好。請參考[Android實戰技巧之八:Ubuntu下切換JDK版本](http://blog.csdn.net/lincyang/article/details/42024565)
下面是我的mvn環境:
~~~
$ mvn -v
Apache Maven 3.3.1 (cab6659f9874fa96462afef40fcf6bc033d58c1c; 2015-03-14T04:10:27+08:00)
Maven home: /opt/apache-maven-3.3.1
Java version: 1.7.0_71, vendor: Oracle Corporation
Java home: /opt/jdk/jdk1.7.0_71/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-49-generic", arch: "amd64", family: "unix"
~~~
對于zxing的編譯,我沒有找到相關的文檔,所以都是我這個maven新人不斷的摸索,雖然不是特別正規,但是達到我的目的是真的。
先在zxing根目錄下執行mvn compile,好家伙,一個勁的下載依賴包,都說這第一次編譯需要下載大量的包,如果我沒有做代理或庫的更改,那么需要漫長的等待。
我晚上跑步將近一個小時,以為回來就編譯好了。可是令我大失所望,雖然包下完了,但是編譯有問題。再次執行,這次編譯沒有報錯,但是我搜遍目錄沒有找到jar包。這是有問題的,我還是按照自己的節奏來工作吧。
android目錄是一個eclipse項目,我直接轉換為AS工程然后編譯發現少了好多zxing的類。
android-core下的pom是這樣的:
~~~
<artifactId>android-core</artifactId>
<version>3.2.1-SNAPSHOT</version>
<packaging>jar</packaging>
~~~
沒有其他依賴,直接編譯成jar。我執行mvn package,漫長的等待后jar包編譯出來了。
~~~
$ ls android-core/target/
android-core-3.2.1-SNAPSHOT.jar
~~~
我引入這個jar,發現里面只有一個類com.google.zxing.client.android.camera.CameraConfigurationUtils?
這顯然還不夠。?
core目錄才是重點,同樣mvn package再等待,如果中途遇到依賴其他目錄的jar就去編譯之。
~~~
$ ls core/target/
core-3.2.1-SNAPSHOT.jar
~~~
再將其引入android工程,編譯成功!
- 前言
- 一:文本與布局
- 二:組合控件
- 三:性能測試類
- 四:語音識別
- 五:讀取Excel
- 六:PreferenceActivity使用詳解
- 七:按鈕控制ViewPager的左右翻頁
- 八:Ubuntu下切換JDK版本
- 九:最新Android開發環境(Eclipse+ADT+Android 5.0)
- 十:獲得屏幕物理尺寸、密度及分辨率
- 十一:Android Studio和Gradle
- 十二:Android Studio導入第三方類庫、jar包和so庫
- 十三:APK簽名
- 十四:混淆與反編譯
- 十五:多分辨率適配常用目錄
- 十六:getprop與dumpsys命令
- 十七:Linux下的模擬器硬件加速
- 十八:adb取出安裝在手機中的apk
- 十九:android studio導出jar包(Module)并獲得手機信息
- 二十:兩個開源的圖表/報表控件
- 二十一:Android原型設計工具探索
- 二十二:Android 5.1 SDK下載與配置
- 二十三:Android Studio的NDK開發
- 二十四:橫豎屏切換
- 二十五:模擬器如何重啟?試試Genymotion!
- 二十六:persistableMode與Activity的持久化
- 二十七:Maven編譯開源二維碼掃描項目zxing