歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android開發實踐:用腳本編譯Android工程

一般情況下,我們都是使用Eclipse+ADT插件或者Android studio軟件來編譯Android工程的,其實,Eclipse或者Android studio僅僅是將一些編譯命令封裝到可視化界面裡而已,通過shell腳本、ADT附帶的一些命令以及Ant工具,我們完全可以將Android工程的編譯過程自動化,直接通過運行腳本就得到最終的APK文件。

Linux下用腳本編譯c/c++程序至少需要兩個東西,一個是編譯器,如gcc/g++,另一個則是編譯配置文件,即Makefile;同理,編譯Android程序也同樣需要編譯器和編譯配置文件,由於Android程序是Java開發的,所以編譯器一般使用Ant(Apache的核心項目,Java編譯器),配置文件則是build.xml,該編譯配置文件可以自己手寫,也可以通過ADT的工具生成;如果Andrid工程涉及JNI層,則編譯命令使用NDK-Build,對應的編譯配置文件則是Android.mk。

前面這段話,簡單介紹了使用腳本編譯Andriod工程的一些基本工具和關鍵詞,詳細的用法就留給讀者自己去Google吧,這裡給出一個我自己編寫的通用腳本,放到你的Android工程的根目錄,修改腳本的相關路徑的配置,添加執行權限(chmod +x),即可編譯你的Android工程了,具體的用法用注釋的形式添加在腳本中了,文章最後的附件則是該腳本的測試Android工程。

#!/bin/bash                                                                                                                                                                                                                                         
#NOTE: 用法,在本工程根目錄下執行 ./build.sh xxx           

#其中,xxx為參數,可以是clean debug release,也可以不帶參數,不帶參數默認為debug

#如果參數是 clean,  則會刪除所有編譯生成的文件             
#如果參數是 debug , 則會生成 debug 版本的apk,位於 bin 目錄下
#如果參數是 release,則生成 release版本的apk,位於 bin 目錄下

#NOTE: 如果更改了工程配置,請先刪除目錄下的build.xml

#獲取本目錄的名稱,作為build.xml的項目名稱
PROJECT_NAME=${PWD##*/} 

#路徑配置,請根據編譯環境修改
ANDROID_SDK_PATH=/opt/android/sdk
ANDROID_NDK_PATH=/opt/android/ndk
ANT_PATH=/opt/apache-ant-1.9.0/bin

#決定是否生成release版
BUILD_RELEASE=0
                                                                                                                                                                                                                                                             
if [ $1 = "clean" ]
then
    rm -rf gen
    rm -rf obj
    rm -rf libs/armeabi
    echo "clean success"
    exit
fi
                                                                                                                                                                                                                                                 
if [ $1 = "debug" ]
then
    BUILD_RELEASE=0
fi
                                                                                                                                                                                                                                                     
if [ $1 = "release" ]
then
    BUILD_RELEASE=1
fi
                                                                                                                                                                                                                                                                         
echo "begin to build..."
                                                                                                                                                                                                                                                             
#判斷 build.xml 是否存在,若不存在,則創建一個
#請根據你的目標平台,修改update project命令的最後一個參數,該值為 android list 命令輸出結果列表的id值
                                                                                                                                                                                                                                                       
if [ ! -e build.xml ]
then
    echo "No build.xml exist, generate build.xml"
    $SDK_PATH/tools/android update project -n $PROJECT_NAME -p . -s -t 1
fi
                                                                                                                                                                                                                                                                 
#判斷jni目錄是否存在,如果存在,則首先編譯jni目錄
if [ -d jni ]
then
    echo "build jni, generate libs"
    $ANDROID_NDK_PATH/ndk-build
fi

 #使用ant來編譯
if [ $BUILD_RELEASE ]
then
    $ANT_PATH/ant release 
else
    $ANT_PATH/ant debug
fi
echo "build success"

在Android工程的根目錄運行該腳本文件後,會在bin目錄下生成apk文件,如果工程目錄下沒有ant.properties文件和xxx.key文件的話,則只會生成debug版和unsigned-release版,如果希望直接生成簽名後的apk文件,則需要給出一個Android key文件,並編寫一個ant.properties文件,該文件的編寫示例如下:

key.store=ticktick.key
key.alias=ticktick
key.store.password=123456
key.alias.password=123456

在Android工程的根目錄下,如果存在該ant.properties文件,則在編譯release版的時候,會自動使用ticktick.key文件來簽名生成的apk文件。

關於使用腳本編譯Android工程就介紹到這兒了,希望我的示例腳本能夠給初學者提供一些參考和幫助,���任何疑問歡迎留言或者來信[email protected]交流。

Android開發實踐:用腳本編譯Android工程相關文件下載

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2014年資料/3月/3日/Android開發實踐:用腳本編譯Android工程

下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm

Copyright © Linux教程網 All Rights Reserved