1. 程式人生 > >打造一個全命令行的Android構建系統

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

命令 匹配 pda 符號鏈接 創建 ack https vim ott

IDE都是給小白程序猿的,大牛級別的程序猿一定是命令行控,終端控,你看大牛都是使用vim,emacs 就一切搞定”

這話說的盡管有些絕對。可是也不無道理。做開發這行要想效率高,自己主動化還真是缺少不了命令行工具,由於僅僅有命令行才是最佳的人機交互工具。

事實上IDE也是底層也是調用命令行工具而已,僅僅只是給普通開發人員呈現一個更友好的開發界面。

這裏可不是宣揚讓大家放棄IDE都改命令行,僅僅是每種事物都有他存在的理由,不管是編程語言還是工具都是一個原則 “沒有最好的,僅僅有最合適的”。

前一段時間做一個人產品,公布產品的時候為了統計各渠道流量免不了要構建不通的渠道包。你懂得國內渠道上百個。靠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的方法。

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

step 2 安裝 Android SDK

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

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

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

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

編輯 .profile 或者 .bash_profile 把以下的文件夾添加到 path的搜索路徑中,確保android SDK的的一些命令工具能夠直接在終端使用。比方 adb 命令。

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

使環境變量生效

source ~/.profile

環境變量生效後,你能夠使用android命令 列出sdk相關的列表,以便我們選擇和自己項目匹配的SDK版本號。

(剛才僅僅是安裝了最基礎的SDK。要全然滿足你的開發環境須要還得從以下的列表中選擇你須要的SDK和工具更新下載)

android list sdk --all

輸出例如以下所看到的:

1- Android SDK Tools, revision 24.0.1
   2- Android SDK Platform-tools, revision 21
   3- Android SDK Build-tools, revision 21.1.2
   4- Android SDK Build-tools, revision 21.1.1
   5- Android SDK Build-tools, revision 21.1
   6- Android SDK Build-tools, revision 21.0.2
   7- Android SDK Build-tools, revision 21.0.1
   8- Android SDK Build-tools, revision 21
   9- Android SDK Build-tools, revision 20
  10- Android SDK Build-tools, revision 19.1
  11- Android SDK Build-tools, revision 19.0.3
  12- Android SDK Build-tools, revision 19.0.2
  13- Android SDK Build-tools, revision 19.0.1
  14- Android SDK Build-tools, revision 19
  15- Android SDK Build-tools, revision 18.1.1
  16- Android SDK Build-tools, revision 18.1
  17- Android SDK Build-tools, revision 18.0.1
  18- Android SDK Build-tools, revision 17
  19- Documentation for Android SDK, API 21, revision 1
  20- SDK Platform Android 5.0.1, API 21, revision 2
  21- SDK Platform Android 4.4W.2, API 20, revision 2
  22- SDK Platform Android 4.4.2, API 19, revision 4
  23- SDK Platform Android 4.3.1, API 18, revision 3
  24- SDK Platform Android 4.2.2, API 17, revision 3
  ....

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

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

step 3 安裝gradle構建環境

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

下載 grdle 二進制包

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

釋放到本地Home文件夾,創建名字為”gradle”的符號鏈接,符號連接的優點是方便版本號更新。有了新的版本號直接改動符號鏈接就可以。

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

配置gradle環境變量並使其生效,編輯 ~/.profje 文件添加以下內容

GRADLE_HOME=$HOME/gradle
export PATH=$PATH:$GRADLE_HOME/bin

保存後使環境變量使其生效

source ~/.profile

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

gradle

假設安裝配置的沒有問題將會提示類似以下的信息

:help

Welcome to Gradle 2.2.1

To run a build, run gradle <task> ...

To see a list of available tasks, run gradle tasks

To see a list of command-line options, run gradle --help

BUILD SUCCESSFUL

驗證能否夠編譯android 應用

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

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

一切順利的話,編譯完畢後。你會在 “hello-apk-with-gradle/build/outputs/apk” 文件夾下找到編譯好的apk包。

至於怎樣整合到你自己的項目中去,僅僅須要仿照樣例給你的項目提供一個”gradle.build” 腳本就可以。

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