Linux 下使用命令行開發 Android 應用程序~~玩玩還行

本文將講述如何在Linux平臺下使用命令行開發Android應用程序,以及如何創建PhoneGap的android項目,如果你對這此感興趣,請就繼續閱讀本文。

首先,讓我們安裝Android SDK(我假設你已經安裝了JDK和Ant)。你可以從在這裏安裝SDK到你的開發平臺上。由於我使用的是Ubuntu,所以我下載Linux平臺下的SDK到我的主目錄。解壓縮下載文件,並設置加載可執行文件的路徑:

1 $ tar xvf android-sdk_r16-linux.tgz
2 $ export PATH=$PATH:~/android-sdk-linux/tools:~/reqs/android-sdk-linux/platform-tools
3 $ android sdk

如果你不希望每次都設置PATH,你可以設置你的〜/.bashrc〜/.bash_profile文件。

然後,使用Android SDK的命令打開Android SDK管理器。下載必要的SDK版本包。我打算開發薑餅和冰淇淋三明治系統手機的應用程序,因此下載Android 4.0.3(API 15)和Android 2.3.3(API 10)的組件。

讓我們來檢查是否安裝了SDK版本包

1 $ android list targets

當開發應用程序的時候,我們需要創建一個Android虛擬機(AVD)來測試應用程序:

1 <span style="font-size: 14px;">$ android avd</span>

通過上一步,你可以下載並創建許多AVD。

查看AVD列表,可以使用以下命令:

1 $ android list avd

假設現在我們要在AVD上運行名字爲"Gingerbread"的模擬器,使用下面命令:

1 $ emulator @Gingerbread

現在我們已經基礎設置好了開發Android應用程序的環境。

創建一個Android項目

讓我們創建一個Android項目(要創建PhoneGap的Android項目,請閱讀下一節):

1 $ android create project -n TestAndroidProj -t 'android-15' -p ~/android_proj -k com.example -a TestProjActivity

-n:項目名(TestAndroidProj);
-t:android SDK版本號(android-15);
-p:Android項目的路徑;
-k:Java的包名;
-a:初始的Activity

運行上面的命令後,一個Android項目就創建完成了。
檢查一下目錄及文件:

1 $ cd android_proj/
2 $ ls src/com/example/TestProjActivity.java
3 src/com/example/TestProjActivity.java

安裝和創建PhoneGap的應用程序

如果你不打算創建HTML5的應用程序或不打算使用PhoneGap,你可以跳過這一節。

安裝好Android SDK後,從這裏獲取Cordova(原名PhoneGap)(或從GitHub獲取一個穩定的版本),並且添加bin目錄到你的PATH

2 $ export PATH=$PATH:~/incubator-cordova-android/bin

讓我們創建一個Cordova項目,這是將android項目進行套殼,需要設置PhoneGap的依賴(jar和js文件):

1 $ cd ~/incubator-cordova-android
2 $ ./bin/create ~/phonegap_android_proj com.example TestProjActivity 3

第一個參數是該項目的路徑;
第二個是包名(JAVA);
第三是初始Activity的名字,它用於載入index.html;
第四個參數是Android SDK的ID(如'android 1.5'的id是'3')。

讓我們來看看,如果該項目已成功創建:

1 $ cd ~/phonegap_android_proj/
2 $ ls assets/www/
3 cordova-1.5.0.js  index.html  main.js  master.css
4 $ ls libs/
5 cordova-1.5.0.jar
6 $ ls res/xml/
7 cordova.xml  plugins.xml

Ant命令

假設現在,我們已經完成該項目的代碼編寫,我們需要在模擬器上測試。因此,先讓我們啓動模擬器,然後啓動Android調試橋(ADB)。建議你用超級用戶啓動,因爲如果以後用你的手機連接,它需要有必要的權限來訪問:

1 $ sudo ~/android-sdk-linux/platform-tools/adb start-server
檢查adb服務進程運行情況:
1 $ ps aux|grep adb
2 root     12589  0.0  0.0  20184   948 pts/3    Sl   16:43   0:00 adb fork-server server

將應用程序部署到模擬器

在項目的根目錄運行ant命令,部署應用程序到模擬器(用debug key進行簽名):

1 $ cd ~/android_proj
2 $ ant clean debug install

當應用程序顯示在模擬器上,你就可以測試了。如果你打算使用手機測試,同樣可以使用上述相同的命令。

你可以使用的虛擬調試監視服務器(DDMS)調試和查看日誌信息:

1 $ ddms

此時,只要你對開發的應用程序滿意,你就可以進行簽名,並把它發佈到谷歌市場。

簽名應用程序發佈到市場

首先,讓我們生成一個私鑰用於簽名:

1 $ keytool -genkey -v -keystore app_signing.keystore -alias release \
2 -keyalg RSA -keysize 2048 -validity 10000

JDK的 keytool 用於創建私鑰。
-keystore:輸出私鑰文件的名稱;
-alias:私鑰別名,可存儲多個鍵在密鑰庫用來後面使用;
設置RSA加密算法,密鑰長度2048位和10000天的有效期。
確保生成的keystore文件非常安全,因爲這谷歌市場對你的唯一標識。

成功生成私鑰後,我們把應用程序編譯成發佈模式:

1 $ ant clean release

你會發現在你項目的bin目錄下,有一個apk文件:<project_name>-release-unsigned.apk(在我們的例子中是'TestAndroidProj-release-unsigned.apk')。說明我們還沒有對先前創建的私鑰進行應用程序簽名:

1 $ jarsigner -keystore app_signing.keystore -digestalg SHA1 -sigalg MD5withRSA bin/TestAndroidProj-release-unsigned.apk release

使用jarsigner工具簽名,keystore是先前創建的,同時指定簽名算法,發佈Android應用程序用了keystore的別名。

讓我們來驗證一下:

1 $ jarsigner -verify bin/TestAndroidProj-release-unsigned.apk

你應該得到一個'jar verified' 的消息。

最後,讓我們提交生成的apk文件到Google市場。

1 $ zipalign -v 4 bin/TestAndroidProj-release-unsigned.apk bin/TestAndroidProj.apk

'4'指定apk文件使用4字節;接下來的參數是簽名後的應用文件;最後一個參數是輸出上傳到谷歌市場的文件。

這裏唯一我們經常使用的命令是ant clean debug install,可以避免在Eclipse運行時內存不足。

注意:如果你是一個Emacs用戶,你可以使用android-mode,它已經包含了上述命令,而且還帶有其他好的東西。

原文鏈接, OSChina.NET原創翻譯


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章