android命令列建立並打包項目,android命令列打包

來源:互聯網
上載者:User

android命令列建立並打包項目,android命令列打包
命令列建立Android項目查看sdk資訊

將目錄更改到 Android SDK 的tools/的路徑。

執行:

android list targets

這將列印您已經為您的 SDK 下載可用的 Android平台的列表。尋找您要對其編譯使您應用程式的平台的目標 id 的便箋。我們建議您選擇可能的最高版本。您仍可以產生您的應用程式支援較舊的版本,但將產生目標設定為最新版本允許您最佳化您的應用程式的最新裝置。

建立項目命令

android create project --target <target_ID> --name <your_project_name>--path path/to/your/project --activity <your_activity_name> --package

命令樣本

android create project --target 42 --name MyFirstApp --path F:\Workspace_Test\test\MyFirstApp --activity MainActivity --package com.example.myfirstapp

命令說明

42為sdk id

MyFirstApp為項目名稱

F:\Workspace_Test\test\MyFirstApp為項目根目錄

MainActivity為項目主Activity名稱(即啟動Activity)

com.example.myfirstapp為項目包名

命令列打包1.產生R.java檔案建立gen目錄

如果F:\Workspace_Test\test\MyFirstApp目錄下沒有gen目錄,運行

 mkdir F:\Workspace_Test\test\MyFirstApp\gen

運行aapt命令產生R.java檔案切換到aapt.exe根目錄

cd F:\AndroidSDK\android-sdk-windows\build-tools\19.0.0

產生R.java檔案

aapt.exe package -f -m -J gen -S res -I F:\AndroidSDK\android-sdk-windows\platforms\android-Honeycomb\android.jar -M AndroidManifest.xml

命令說明

F:\AndroidSDK\android-sdk-windows\platforms\android-Honeycomb\android.jar這個要與之前的42對應

 

2.將java檔案編譯成class檔案

如果沒有bin目錄,先用mkdir F:\Workspace_Test\test\MyFirstApp\bin進行建立

javac -encoding UTF-8 -target 1.7 -bootclasspath F:\AndroidSDK\android-sdk-windows\platforms\android-Honeycomb\android.jar -dbin src\com\example\myfirstapp\*.java gen\com\example\myfirstapp\R.java

命令說明

1.7為jdk版本

F:\AndroidSDK\android-sdk-windows\platforms\android-Honeycomb \android.jar與產生R.java檔案對應

src\com\example\myfirstapp為java檔案所在位置

gen\com\example\myfirstapp為R.java檔案所在位置

3.產生dex檔案(注意要使用絕對路徑)切換到 dx.bat根目錄

cd F:\AndroidSDK\android-sdk-windows\build-tools\19.0.0

產生dex檔案

dx.bat --dex --output=F:\Workspace_Test\test\MyFirstApp\bin\classes.dex F:\Workspace_Test\test\MyFirstApp\bin

命令說明

F:\Workspace_Test\test\MyFirstApp\bin\classes.dex為dex檔案儲存位置及名稱

F:\Workspace_Test\test\MyFirstApp\bin為bin檔案夾所在位置

4.產生資源套件檔案切換到aapt.exe根目錄

cd F:\AndroidSDK\android-sdk-windows\build-tools\19.0.0

產生資源套件檔案

如果沒有assets檔案夾,先用mkdir F:\Workspace_Test\test\MyFirstApp\assets進行建立

aapt.exe package -f -M AndroidManifest.xml -S res -A assets -I F:\AndroidSDK\android-sdk-windows\platforms\android-Honeycomb\android.jar -F bin\resources

命令說明

F:\AndroidSDK\android-sdk-windows\platforms\android-Honeycomb\android.jar與產生R.java檔案對應

5.產生未簽名的apk包(apkbuilder.bat已廢棄)

set classpath=F:\AndroidSDK\android-sdk-windows\tools\lib\sdklib.jar;.;%CLASSPATH%(設定sdklib.jar引用,在sdk根目錄tools\lib\sdklib.jar)

java com.android.sdklib.build.ApkBuilderMain F:\Workspace_Test\test\MyFirstApp\bin\app.apk -v -u -z F:\Workspace_Test\test\MyFirstApp\bin\resources -f F:\Workspace_Test\test\MyFirstApp\bin\classes.dex -rf F:\Workspace_Test\test\MyFirstApp\src

命令說明

F:\Workspace_Test\test\MyFirstApp\bin\app.apk為產生的未簽名APK所在位置和名稱

只需修改所有的F:\Workspace_Test\test\MyFirstApp為項目根目錄路徑

6.簽名產生簽名

keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore(20000為有限期(天))

簽名apk切換到sdk tools目錄

cd F:\AndroidSDK\android-sdk-windows\tools

 

jarsigner -verbose -keystore F:\Workspace_Test\test\keystore\android.keystore -storepassandroid -signedjar F:\Workspace_Test\test\MyFirstApp\bin\app_signed.apk F:\Workspace_Test\test\MyFirstApp\bin\app.apk android.keysotre -digestalg SHA1-sigalg MD5withRSA

命令說明

Jdk1.6不加-digestalgSHA1 -sigalg MD5withRSA

Jdk1.7必須在後面加上-digestalgSHA1 -sigalg MD5withRSA

F:\Workspace_Test\test\keystore\android.keystore為keystore檔案路徑

android為keystore密碼

F:\Workspace_Test\test\MyFirstApp\bin\app_signed.apk為簽名後APK檔案路徑

F:\Workspace_Test\test\MyFirstApp\bin\app.apk為未簽名APK檔案路徑

android.keysotre為keystore別名

7.對齊(最佳化應用)

zipalign -v 4 F:\Workspace_Test\test\MyFirstApp\bin\app_signed.apk F:\Workspace_Test\test\MyFirstApp\bin\app_signed_aligned.apk

命令說明

F:\Workspace_Test\test\MyFirstApp\bin\app_signed.apk為簽名APK檔案路徑

F:\Workspace_Test\test\MyFirstApp\bin\app_signed_aligned.apk為對齊後的簽名APK檔案路徑


文檔地址:android命令列建立並打包項目

PS:這XXXX部落格編輯器真不咋地,從word複製過來,居然會多空格和少空格,這倒不要緊,問題是不該多的多了,不該少的少了


怎用命令列打包引用了庫項目(library project)的android項目?

右鍵,點擊“Export”,然後選擇java下面的JAR file,不可以嗎?!
 
用java或C#調用命令列對android工程進行編譯、打包與簽名,急

Android本身是支援ant打包項目的,並且SDK中內建一個build.xml檔案。
通過該檔案,可以對檔案進行編譯、打包、安裝等。並且支援多種方式打包,如debug或者release。
一般的,可以按照如下方法進行操作:

首先建立一個Android工程。
工程建立好後,需要為工程添加ant支援,即建立相應的build.xml檔案。
這個檔案不需要使用者自己建立,只需要執行如下命令即可:
<sdk>/tools/android update project -p <project> -t <target>

其中:
sdk為sdk的安裝目錄,其下的tools/android是我們要使用的命令。
project為項目目錄。
target為項目所使用的android的target id,也就是項目對應的android的版本。

可以將sdk的tools目錄添加到環境變數 ~/.bashrc 檔案中,重啟後生效,以後可以直接使用命令了。
可以通過執行以下命令查看當前sdk中所包含的target以及相應id:
android list targets

執行完android update project命令後,會在項目的根目錄下產生相應的ant檔案。
主要有build.xml、ant.properties、local.properties三個檔案。
如果沒有ant.properties檔案,可以自己手動添加。

其中,build.xml檔案是進行ant build的主要檔案,它引用了其它的檔案。
在local.properties檔案中定義了sdk.dir屬性,也就是當前使用的sdk的目錄。
在ant.properties檔案中,可以定義自己的一些屬性,或者重定義一些屬性。
當然,這兩個屬性檔案可有可無,直接定義到build.xml中也沒有關係。

在build.xml中的最後,引用了sdk目錄下的tools/ant/build.xml檔案。
這個是sdk預設的build檔案,可以將其內容直接拷貝過來,也可以保持當前的引用方式。
項目下的build.xml預設執行的target是help,運行後可以看到相關的協助資訊。
通過協助資訊,可以看到其它可用的target。
一般的,我們需要修改為debug或者release。
修改好之後,再運行build.xml檔案,就會執行我們需要的編譯過程了。
build.xml檔案的執行方法為:右鍵->Run As->Ant Build。

如果是debug版的話,預設會使用debug方式簽名。
如果是release版的話,需要指定相應的keystore以及私密金鑰。
否則,最後只能產生一個沒有簽名的apk檔案。

設定私密金鑰庫的方法是,在ant.properties檔案中,添加如下內容:
key.store=<keystore>
key.alias=<key>
key.store.password=<keystore pwd>
key.alias.password=<key pwd>

其中:
keystore為私密金鑰庫檔案。
key為簽名需要使用的私密金鑰。
key.store.password為私密金鑰庫的密碼。
key.alias.password為私密金鑰的密碼。

兩個密碼相關的屬性也可以不添加,而只添加私密金鑰庫及私密金鑰。
這樣的話,執行時會依次彈出相應的輸入框,提示使用者輸入相應的密碼。
......餘下全文>>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.