基於AIR Android應用開發
——環境搭建
1. AIR SDK之於Android
AIR SDK是一組打包和部署AIR應用程序的工具。它與工具捆綁,所以無需額外的安裝。工具負責訪問這些文件,不需要有你進行任何管理。AIR SDK有下面這些組件構成。
圖0:AIR SDK組件圖
n AIR Develop Tool(ADT)
AIR使用Java編寫的多用途工具。它需要Java 1.5或更高的版本才能運行,用於為Android設備打包AIR應用程序。它根據指定的目標來創建不同的包:
l apk用於發布
l apk-emulator用於模擬器
l apk-debug用於在本地或者在設備上調試
ADT創建自由簽名的數字代碼證書,用於簽署應用程序,通過一個選項來延長有效期,以遵循Android規范。它能在Android設備上安裝、卸載和啟動應用程序。ADT工具的名稱是adt或adt.bat,位於bin文件夾。adt.jar是由adt或adt.bat調用的可執行文件位於lib文件夾。
n AIR Debug Launcher(ADL)
ADL用於在開發期間測試AIR應用程序,而無需對他進行打包。它使用SDK包含的運行時,並能打印跟蹤語句和運行時錯誤。還可用於啟動Flash Debugger(FDB)會話。ADL工具名為adl或adl.exe,位於bin文件夾中。
n AIR runtime(AIR運行時)
在將應用程序安裝到設備之前,AIR運行時用於在開發和調試過程中啟動和測試應用程序。AIR運行時的名稱是runtime.apk,位於runtimes文件夾。
n Frameworks
Frameworks目錄包含所有AIR核心庫。
2. 依賴環境
2.1. JDK安裝
需要Java 1.5或更高的版本才能運行。如果你還沒有JDK的話,可以去這里下載,接下來的工作就是安裝提示一步一步走。設置環境變量步驟如下:
n 我的電腦->屬性->高級->環境變量->系統變量中添加以下環境變量;
n JAVA_HOME值為: D:\Program Files\Java\ jdk1.7.0_10(你安裝JDK的目錄)
n CLASSPATH值為:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin;
n Path: 在開始追加 %JAVA_HOME%\bin;
安裝完成之后,可以在檢查JDK是否安裝成功。打開cmd窗口,輸入java –version 查看JDK的版本信息。出現類似下面的畫面表示安裝成功了:
圖1:驗證JDK安裝是否成功
2.2. AIR SDK
一般Flex SDK中已經包含了AIR SDK,可以去Adobe或者Apache Flex網站下載。解壓到你喜歡的路徑即可,然后在相應的開發工具Flash Builder或Flash Develop中設置SDK即可。也可以單獨下載AIR SDK,然后解壓到Flex SDK目錄里面。
如果你使用Flash Builder開發,SDK都已經隨着Flash Builder按照好了,直接使用即可;如果你使用Flash Develop開發,可以參考走在網頁游戲開發的路上(一)介紹的方法設置。
3. 開發工具及步驟
下面介紹使用Flash Builder和Flash Develop這2個開發工具Android應用,個人主要使用Flash Develop開發(寫代碼利器),高級調試時使用Flash Builder。
3.1. Flash Builder
“文件”—>“新建”—>“ActionScript手機項目”或“Flex手機項目”。如果想使用Flex框架,就選擇Flex手機項目;如果想使用純ActionScript,就選擇ActionScript手機項目。我們選擇ActionScript手機項目。
創建應用程序描述
在“手機設置“中:
n 目標平台(Target Platforms),選擇Google Android;
n 權限(Permissions),選擇Internet;
n 單擊“下一步”,然后設置應用程序主文件(即文檔類)、應用程序ID、輸出文件夾等等;
n 單擊“完成”。
圖2:應用程序描述-手機設置
圖3:構建路徑設置
根據上面設置的應用程序描述,會自動生成一個XML文件,它在打包時與.swf文件捆綁,這個文件可以手動修改。應用程序描述包含屏幕方向,權限設置等等,我們例子中生成的描述文件為——HelloWorld-app.xml,你可以打開查看下里面有哪些設置。
在桌面上測試程序
將應用程序安裝到設備之前,應該先在桌面上運行一下,以防其中包含語法錯誤等。
將應用程序打包成apk文件並安裝到設備
為了在Flash Builder中將應用程序打包成APK文件並安裝到Android設置上,請按以下步驟操作。
n 右鍵項目文件夾,然后從彈出的快捷鍵菜單中選擇“屬性”。
n 選擇“ActionScript構建打包”-->“Google Android”—>“數字簽名”-->“證書”。如果已經有AIR代碼簽名證書,瀏覽選擇即可;否則創建一個臨時證書,填寫相應選項即可。
圖4:選擇數字簽名-證書
圖5:創建數字證書
n 返回“運行配置”。在啟動方法下選擇“在設備上”,單擊“運行”。這個時候會創建一個APK文件,可以在項目中看到它。APK文件會安裝到設備上,隨后設備啟動應用程序。
測試和調試
Adobe遠程調試會話支持USB(推薦)或Wi-Fi,這正是之前設置Internet權限的原因。使用Wi-Fi,要打開一定設置的Wi-Fi,並且在Windows中,要設置防火牆來打開7935端口。
圖6:調試選項
為了在Flash Builder進行測試盒調試,可以點擊屏幕頂部的Debug按鈕。點擊按鈕式,在控制台窗口會出現trace語句。除了輸出窗口中顯示的跟蹤,還可以在調試過程中使用斷點控制、單步調試和變量監視等功能。(其實跟普通的as項目調試一樣簡單)
3.2. Flash Develop
“項目”—>“新建項目”-->“AIR手機AS3項目(AIR Mobile AS3 App)”或者“AIR 手機Flex項目(AIR Mobile Flex App)”。我使用的是FD4.2.4,創建項目之后,FD會自動為我們生成很多設置文件。
圖7:Flash Develop Android項目結構
應用程序描述文件
application.xml是自動生成的應用程序描述文件,可以手動修改xml文件;也可以通過“項目”-->”AIR項目屬性”進行設置。
圖7:修改Initial Window描述部分
圖8:修改Manifiest部分
測試、調試、打包、安裝
n 配置
l - edit 'bat\SetupSDK.bat' for paths to Flex SDK and Android SDK (default should be ok)
l install your device's USB drivers
l enable "USB debugging" on your Android device: Parameters > Applications > Development > USB Debugging
n 運行'bat\CreateCertificate.bat'創建簽名認證;
n F8構建項目;
n Run/debug the application on the desktop as usual (F5 or Ctrl+Enter)
n 如果手機上沒有安裝AIR環境,可以運行'bat\InstallAirRuntime.bat'安裝;
n 在手機上調試運行
l edit 'Run.bat' and change the run target 'goto desktop' by 'goto android-debug'
l build & run as usual (Ctrl+Enter or F5) to package, install & run the application on your device
n 正式發布項目
l Release-build from FlashDevelop (F8)
l run 'PackageApp.bat' and select Android/normal target
4. Hello World
按照【開發工具及步驟】中創建項目,在主文件如下,啟動app顯示一行文本“Hello World!”。
Main.as |
public class Main extends Sprite {
public function Main():void { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener(Event.DEACTIVATE, deactivate);
// touch or gesture? Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
// entry point //設置字體樣式 var font:TextFormat = new TextFormat(); font.size = 28; font.color = 0xFF8000; // var hello:TextField = new TextField(); hello.defaultTextFormat = font; hello.text = "Hello World!"; hello.autoSize = TextFieldAutoSize.CENTER; addChild(hello); }
private function deactivate(e:Event):void { // auto-close NativeApplication.nativeApplication.exit(); }
} |
打包安裝到手機上面效果如下圖:
圖9:Hello World效果圖(比較丑-_-。sorry!)
注意:如果使用的調試版本,可能會有下面這個提示,輸入電腦的ip會連接上調試,不輸入直接取消不影響功能。
圖10:調試連接提醒
5. 總結
開發工具中介紹了如何使用Flash Builder創建和調試Android應用程序,其實這些工具為了做了以下幾件事(我們手動也可以做到)。
1) 創建應用程序描述文件,並且和應用程序捆綁一起打包。下面一個應用程序描述文件例子,字段名字都很好理解:
application.xml |
<?xml version="1.0" encoding="utf-8" ?> <application xmlns="http://ns.adobe.com/air/application/3.5">
<id>air.HelloWorld</id> <versionNumber>0.1</versionNumber> <supportedProfiles>mobileDevice</supportedProfiles> <filename>HelloWorld</filename>
<name>Hello World</name> <description></description> <copyright></copyright>
<android> <manifestAdditions><![CDATA[
<manifest android:installLocation="auto"> <uses-sdk android:minSdkVersion="8"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/> </manifest>
]]></manifestAdditions> </android>
<initialWindow> <title>Hello World</title> <content>HelloWorld.swf</content> <visible>true</visible> <fullScreen>true</fullScreen> <!--<autoOrients>false</autoOrients>--> <!--<aspectRatio>landscape</aspectRatio>--> <renderMode>direct</renderMode> </initialWindow>
<icon> <image48x48>icons/icon_48.png</image48x48> <image57x57>icons/icon_57.png</image57x57> <image72x72>icons/icon_72.png</image72x72> <image114x114>icons/icon_114.png</image114x114> <image512x512>icons/icon_512.png</image512x512> </icon> </application> |
2) 創建代碼簽名證書。我們可以手動使用以下命令創建
創建代碼簽名證書 |
adt -certificate -validityPeriod 25 -cn [應用名稱] 1024-RSA [代碼簽名文件] [簽名密碼] |
3) 將AIR應用程序打包成APK文件。
打包成APK文件 |
adt -package –target apk -storetype pkcs12 -keystore [代碼簽名文件] -storepass [簽名密碼] [打包文件名xxx.apk] [應用程序描述文件application.xml] [swf] |
4) 將APK文件安裝到Android設備
安裝APK文件 |
Android-SDK-path/tools/adb install xxx.apk
說明: 如果應用程序以安裝到設備,就是用-r命令重新安裝 Android-SDK-path/tools/adb install –r xxx.apk |
待續:基於AIR Android應用開發2:ANDROID運行AIR程序原理