首頁 > 軟體

打造一個全命令列的Android構建系統

2020-06-16 17:55:55

"IDE都是給小白程式設計師的,大牛級別的程式設計師一定是命令列控,終端控,你看大牛都是使用vim,emacs 就一切搞定"

這話說的雖然有些絕對,但是也不無道理,做開發這行要想效率高,自動化還真是缺少不了命令列工具,因為只有命令列才是最佳的人機互動工具。其實IDE也是底層也是呼叫命令列工具而已,只不過給普通開發者呈現一個更友好的開發介面。這裡可不是宣揚讓大家放棄IDE都改命令列,只是每種事物都有他存在的理由,無論是程式語言還是工具都是一個原則 “沒有最好的,只有最合適的”。

前一段時間做一個人產品 xbrowser.me ,發布產品的時候為了統計各渠道流量免不了要構建不通的渠道包,你懂得國內渠道上百個,靠IDE編譯打包非吐血不可。這些重複勞動最適合交個程式來做,很多程式設計師想不明白這個問題,寧願把大量的精力時間花在業務上,卻不知道用工具提高工作效率。在這裡寫一篇簡單的教學,告訴大家怎麼脫離IDE環境完成一個Android專案的編譯構建,有了這基礎開發什麼自動化構建工具都不是什麼難事了, 前一陣子做的一個打包html5應用的線上工具AppBuilder就是基於命令列構建完成的。

說到命令列自然是不需要圖形介面,所以Android SDK的安裝下載自然都是在終端上進行。下面是本文中使用的一些SDK和基本環境。

  • Ubuntu Server 14.04 (64位元)
  • JDK 1.7
  • android-sdk_r24.0
  • gradle-2.2.1

進入正題,接下來一步一步介紹如何安裝設定一個命令列下的編譯構建系統.

 

step 1 安裝 JDK 環境

配合android的JDK最好選用JDK官方版本而不是Open JDK,下面是在unbuntu下安裝JDK 1.7的方法。

  1. sudo add-apt-repository ppa:webupd8team/java
  2. sudo apt-get update
  3. sudo apt-get install Oracle-java7-installer

 

step 2 安裝 Android SDK

android sdk 工具包的一些命令列工具是基於32位元系統的,在64為平台執行32程式必須安裝 i386 的一些依賴庫,方法如下:

  1. sudo dpkg --add-architecture i386
  2. sudo apt-get update
  3. sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1

安裝完成32位元的依賴庫後,我們使用wget 去官方下載最新的linux下android SDK包。

  1. cd ~
  2. wget http://dl.google.com/android/android-sdk_r24.0.1-linux.tgz
  3. tar xvzf android-sdk_r24.0.1-linux.tgz

編輯 .profile 或者 .bash_profile 把下面的目錄增加到 path的搜尋路徑中,確保android SDK的的一些命令工具可以直接在終端使用,比如 adb 命令。

  1. ANDROID_HOME=$HOME/android-sdk-linux
  2. export PATH="$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools"
  3. exprot ANDROID_HOME

使環境變數生效

  1. source ~/.profile

環境變數生效後,你可以使用android命令 列出sdk相關的列表,以便我們選擇和自己專案匹配的SDK版本。(剛才只是安裝了最基礎的SDK,要完全滿足你的開發環境需要還得從下面的列表中選擇你需要的SDK和工具更新下載)

  1. android list sdk --all

輸出如下所示:

  1. 1-Android SDK Tools, revision 24.0.1
  2. 2-Android SDK Platform-tools, revision 21
  3. 3-Android SDK Build-tools, revision 21.1.2
  4. 4-Android SDK Build-tools, revision 21.1.1
  5. 5-Android SDK Build-tools, revision 21.1
  6. 6-Android SDK Build-tools, revision 21.0.2
  7. 7-Android SDK Build-tools, revision 21.0.1
  8. 8-Android SDK Build-tools, revision 21
  9. 9-Android SDK Build-tools, revision 20
  10. 10-Android SDK Build-tools, revision 19.1
  11. 11-Android SDK Build-tools, revision 19.0.3
  12. 12-Android SDK Build-tools, revision 19.0.2
  13. 13-Android SDK Build-tools, revision 19.0.1
  14. 14-Android SDK Build-tools, revision 19
  15. 15-Android SDK Build-tools, revision 18.1.1
  16. 16-Android SDK Build-tools, revision 18.1
  17. 17-Android SDK Build-tools, revision 18.0.1
  18. 18-Android SDK Build-tools, revision 17
  19. 19-DocumentationforAndroid SDK, API 21, revision 1
  20. 20- SDK PlatformAndroid5.0.1, API 21, revision 2
  21. 21- SDK PlatformAndroid4.4W.2, API 20, revision 2
  22. 22- SDK PlatformAndroid4.4.2, API 19, revision 4
  23. 23- SDK PlatformAndroid4.3.1, API 18, revision 3
  24. 24- SDK PlatformAndroid4.2.2, API 17, revision 3
  25. ....

這裡包括不同的Android API 版本和不同的構建工具,選擇你想要安裝專案的序號,這裡我想安裝 build tools 19.1 ,build tools 21 及 android 4.2.2以上的SDK所以選擇序號 “1,2,3,20,21,22,23”

  1. android update sdk -u -a -t 1,2,3,10,20,21,22,23

 

step 3 安裝gradle構建環境

使用Ant構建專案已經是過去式了,這裡我們選用更加強悍和方便的構建工具gradle 。

下載 grdle 二進位制包

  1. cd ~
  2. wget https://services.gradle.org/distributions/gradle-2.2.1-bin.zip

釋放到本地Home目錄,建立名字為"gradle"的符號連結,符號連線的好處是方便版本更新,有了新的版本直接修改符號連結即可。

  1. unzip gradle-2.2.1-bin.zip
  2. ln -s gradle-2.2.1 gradle

設定gradle環境變數並使其生效,編輯 ~/.profje 檔案增加下面內容

  1. GRADLE_HOME=$HOME/gradle
  2. export PATH=$PATH:$GRADLE_HOME/bin

儲存後使環境變數使其生效

  1. source ~/.profile

環境變數生效後你可以在終端敲入'gradle'命令並執行用以檢測gradle是否安裝成功。

  1. gradle

如果安裝設定的沒有問題將會提示類似下面的資訊

  1. :help
  2. Welcome to Gradle2.2.1
  3. To run a build, run gradle <task>...
  4. To see a list of available tasks, run gradle tasks
  5. To see a list of command-line options, run gradle --help
  6. BUILD SUCCESSFUL

 

驗證是否可以編譯android 應用

完成以上的環境設定,我們的一個Android下的基礎構建環境就全部設定好了,接下來做的事情就是嘗試使用gradle 編譯一個android 應用出來驗證我的編譯環境是否OK,下載我寫的一個gadle demo 例子進行測試。

  1. git clone https://github.com/examplecode/gradle_demo
  2. cd gradle_demo/hello-apk-with-gradle
  3. gradle build

一切順利的話,編譯完成後,你會在 “hello-apk-with-gradle/build/outputs/apk” 目錄下找到編譯好的apk包。至於如何整合到你自己的專案中去,只需要仿照例子給你的專案提供一個"gradle.build" 指令碼即可。

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-08/121264.htm


IT145.com E-mail:sddin#qq.com