無 IDE 的 Android 應用程式開發與測試環境
有些時候會需要在 Android 系統上測試一些程式碼,而一般來說,Android 的開發環境是基於 Eclipse。然而 DR 已經有好段時間沒有使用任何 IDE 了,目前所習慣的開發模式通常就是在文字編輯器上寫程式、用檔案瀏覽器管理檔案以及使用命令行介面(虛擬終端機)進行所需的操作,使用 IDE 反而會覺得渾身不對勁,尤其以前少數使用 Eclipse 的經驗也不是很好。
此外 DR 也不太滿意 AVD(Android Virtual Device)緩慢的效能,因此會想要建立一個無 IDE、也不需要 AVD 卻能夠測試 Android 應用程式的工作環境,所構思的具體作法如下:
- 直接使用命令行操作 Androd SDK。
- 利用 Genymotion 建立效能較好的 Android 虛擬機器。
基礎環境準備
雖然說沒打算使用 Eclipse,但在 Fedora 19 上還是先把 Eclipse 裝起來,此舉能夠將 Java 程式開發所需的套件一次裝齊:
- sudo yum groupinstall "Fedora Eclipse"
設定 Android SDK
下載最新版本的 Android SDK(例如 android-sdk_r23.0.2-linux.tgz)並解開來,由於並不想要常態性的讓 SDK 的路徑存在於環境變數中,所以 DR 的設想是寫一支設定環境變數的 shell script,需要執行 SDK 裡的工具時再執行該 script 即可。
script 範例如下:
#!/bin/sh export ANDROID_HOME=/home/username/android-sdk-linux export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools $SHELL
給予 script 可執行權限並執行,然後再執行 Android SDK Manager 進行 SDK 的個別套件下載:
- chmod +x android_start.sh
- ./android_start.sh
- android
專案與 APK 建立
Android SDK 的命令行操作指令可以參考 Managing Projects from the Command Line 的說明,如果要建立一個新的專案,其範例指令如下:
- android create project --target 1 --name appTest --path appTestProject --activity appTestActivity --package com.example.app
程式碼撰寫好後,至該專案目錄分別建立 Debug 或 Release 版本的 APK 套件:
- cd appTestProject
- ant debug
- ant release
建立完成的 APK 會存放在 bin 子目錄中。如果是建立 Release 版本的 APK,則必須先產生金鑰進行簽署,否則無法在 Android 裝置上執行。產生金鑰可以參考 Signing Your Applications 的說明,其範例指令如下:
- keytool -genkey -v -keystore test-key.keystore -alias test -keyalg RSA -keysize 2048 -validity 10000
執行時會要求建立密碼及一些資料,輸入完成後便會產生一支名為 test-key.keystore 的金鑰檔。然後編輯專案目錄中的 ant.properties,寫入金鑰檔的路徑與別名:
key.store=/home/username/test-key.keystore
key.alias=test
之後再執行「ant release」就會分別要求輸入金鑰以及別名的密碼,並建立簽署過的 APK。
Genymotion
Genymotion 是藉由 VirtualBox 來運作,所以 VirtualBox 得先安裝,不過 DR 本來就有常態性的使用 VirtualBox,所以原本就已經裝好了。確認 VirtualBox 已安裝並且可運作後,至 Genymotion 官方網站註冊並下載。儘管 Genymotion 官方所支援的 Linux 發行版並沒有包含 Fedora,但實際上只要補安裝一些套件還是能夠執行。
下載用於 Debian 發行版的安裝程式後進行安裝:
- chmod +x genymotion-2.3.0_x64_debian.bin
- ./genymotion-2.3.0_x64_debian.bin
安裝程式會在當前目錄下建立一個 genymotion 目錄,進入該目錄執行:
- cd genymotion
- ./genymotion
若有缺少的函式庫造成無法執行,則根據輸出的訊息使用 yum 安裝所缺少的套件即可。如果順利執行,在 Genymotion 裡新增虛擬裝置並啟動。
Android 虛擬機啟動後,只要將 APK 拖曳進虛擬機視窗就能夠執行應用程式了。