Android應(yīng)用程序------命令行創(chuàng)建程序(1) 使用Apache Ant對(duì)HelloCommondline工程進(jìn)行編譯和apk打包 下載Apache Ant地址: http://ant./bindownload.cgi 網(wǎng)站提供zip、tar.gz 和tar.bz2三種格式下載,Windows系統(tǒng)用戶推薦下載zip格式的二進(jìn)制包 這里下載的Apache Ant壓縮包為apache-ant-1.7.1-bin.zip,版本號(hào)為1.7.1,并將其解壓縮在E:\Android目錄下 在windows系統(tǒng)中添加新的環(huán)境變量,Apache才能正常運(yùn)行。修改位置:“我的電腦” →“屬性” →“高級(jí)” →“環(huán)境變量” →“系統(tǒng)變量” 新增的系統(tǒng)環(huán)境變量 JAVA_HOME是JDK的安裝目錄,根據(jù)JDK實(shí)際安裝位置進(jìn)行修改 ANT_HOME是Apache Ant的安裝目錄,根據(jù)Apache Ant實(shí)際安裝位置進(jìn)行修改 ANDROID_HOME是Android SDK的安裝目錄,根據(jù)實(shí)際安裝位置進(jìn)行修改 CLASSPATH是需要使用的庫(kù)文件的位置 Path是可執(zhí)行文件的搜索路徑,將<Apache Ant>/bin、<JDK>/bin和<Android SDK>/tools三個(gè)目錄追加到原有的Path變量值中,目錄之間使用分號(hào)分隔 判斷環(huán)境變量的正確性。在CMD中運(yùn)行輸入ant命令,通過(guò)命令的輸出信息判斷環(huán)境變量是否設(shè)置正確 如果輸出的提示包含“Unable to locate tools.jar. Expected to find it in……”,則表明設(shè)置環(huán)境變量不正確 如果環(huán)境變量設(shè)置正確,ant命令的輸出結(jié)果如下圖 數(shù)字簽名機(jī)制。在Android平臺(tái)上開(kāi)發(fā)的所有應(yīng)用程序都必須進(jìn)行數(shù)字簽名后,才能安裝到模擬器或手機(jī)上,否則,將返回錯(cuò)誤提示: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATERS] 在Eclipse開(kāi)發(fā)環(huán)境中,ADT在將Android程序安裝到模擬器前,已經(jīng)利于內(nèi)置的debug key為apk文件自動(dòng)做了數(shù)字簽名,這使用戶無(wú)需自己生產(chǎn)數(shù)字簽名的私鑰,而能夠利于debug key快速完成程序調(diào)試 但有一點(diǎn)需要注意,如果用戶希望正式發(fā)布自己的應(yīng)用程序,則不能使用debug key,必須使用私有密鑰對(duì)Android程序進(jìn)行數(shù)字簽名 Apache Ant構(gòu)建Android應(yīng)用程序支持Debug模式和Release模式兩種構(gòu)建模式 Debug模式是供調(diào)試使用的構(gòu)建模式,用于快速測(cè)試開(kāi)發(fā)的應(yīng)用程序,Debug模式自動(dòng)使用debug key完成數(shù)字簽名 Release模式是正式發(fā)布應(yīng)用程序時(shí)使用的構(gòu)建模式,生成沒(méi)有數(shù)字簽名的apk文件 Debug模式對(duì)HelloCommandline工程進(jìn)行編譯,生成具有debug key的apk打包文件。使用CMD,在工程的根目錄下,輸入ant debug,結(jié)果顯示如圖 命令運(yùn)行后,Apache Ant在bin目錄中生成打包文件HelloCommandline-debugapk 如果需要使用Release模式,則需在CMD中輸入ant release,運(yùn)行后會(huì)在bin目錄中生成打包文件HelloCommandline-unsignedapk apk文件是Android系統(tǒng)的安裝程序,上傳到Android模擬器或Android手機(jī)后可以進(jìn)行安裝 apk文件本身是一個(gè)zip壓縮文件,能夠使用WinRAR、UnZip等軟件直接打開(kāi) 下圖是WinRAR打開(kāi)的HelloCommandline-debugapk文件 res\目錄用來(lái)存放資源文件 AndroidManifest.xml是Android聲明文件 classes.dex是Dalvik虛擬機(jī)的可執(zhí)行程序 resources.arsc 是編譯后的二進(jìn)制資源文件 使用adb.exe將HelloCommondline工程上傳到 Android模擬器中 指定AVD。在啟動(dòng)模擬器時(shí),需指定所使用的AVD。可以使用android list avds命令進(jìn)行查詢AVD。在這里,建立兩個(gè)AVD,Android1.1和Android1.5,1.1版只是用于區(qū)別1.5版。這里使用Android1.5啟動(dòng)模擬器 在CMD中輸入命令emulator –avd Android1.5 上傳文件。Android模擬器正常啟動(dòng)后,利于adb.exe工具能夠把HelloCommandline-debugapk文件上傳的模擬器中 adb.exe工具除了能夠在Android模擬器中上傳和下載文件,還能夠管理模擬器狀態(tài),是調(diào)試程序時(shí)不可缺少的工具 在CMD中,進(jìn)入<HelloCommandline>/bin目錄,輸入命令:adb install HelloCommandline-debugapk。完成apk程序上傳到模擬器的過(guò)程 如果上傳成功,結(jié)果如圖顯示 啟動(dòng)應(yīng)用程序。apk文件上傳后,需手工啟動(dòng)HelloCommandline程序 單擊模擬器界面左下角上剛安裝的HelloCommandline程序圖標(biāo),即可手工啟動(dòng) 如果在模擬器中找不到新安裝的程序,嘗試重新啟動(dòng)Android模擬器 Android的包管理器經(jīng)常僅在模擬器啟動(dòng)時(shí)候檢查應(yīng)用程序的AndroidManifest.xml文件,這就導(dǎo)致部分上傳的Android應(yīng)用程序不能立即啟動(dòng) 編譯和打包應(yīng)用程序。修改HelloCommandline工程代碼后,需要使用Apache Ant重新編譯和打包應(yīng)用程序,并將新生成的apk文件上傳到Android模擬器中 如果新程序的包名稱沒(méi)有改變,則在使用adb.exe上傳apk文件到模擬器時(shí),會(huì)出現(xiàn)如下圖的錯(cuò)誤提示,此時(shí),需要在模擬器中先刪除原有apk文件,再使用adb.exe工具上傳新的apk文件 刪除apk文件的方法 使用adb uninstall <包名稱>的方法,例如刪除HelloCommandline工程的apk文件,則可在CMD中輸入命令adb uninstall edu.hrbeu.HelloCommandline,提示“Success”則表示成功刪除 使用 adb shell rm /data/app/<包名稱>apk的方法,同樣以刪除HelloCommandline工程的apk文件為例,在CMD中輸入下面的命令,沒(méi)有任何提示則表示刪除成功 如果僅有一個(gè)Android模擬器在運(yùn)行,用戶可以一條命令完成Android工程編譯、apk打包和上傳過(guò)程 啟動(dòng)CMD,進(jìn)入HelloCommandline工程的根目錄下 輸入adb install,adb.exe將自動(dòng)構(gòu)建工程 并使用debug key對(duì)工程進(jìn)行簽名 之后將apk文件上傳到Android模擬器中 如果同時(shí)有兩個(gè)或兩個(gè)以上的Android模擬器存在,這種方法將會(huì)失敗,因?yàn)?/span>adb.exe不能夠確定應(yīng)該將apk文件上傳到哪一個(gè)Android模擬器中。多次使用這種方法時(shí),同樣需要先刪除模擬器中已有的apk文件 |
|