モバイルアプリ開発では、デバイスの固有の機能を利用するためにアプリケーション記述子に設定を行います。Androidの場合は、アプリケーション記述子に<android>要素を使用してAndroid固有の設定を行います。
ちなみに後述するADTコマンドでは、APKパッケージを作成すると、AndroidManifest.xmlファイルを自動的に生成します。
例えば、以下のようなAndroidアプリをユーザーがインストールするときに要求するセキュリティ上の権限を設定できます。
以下のようにAndroidManifest.xmlファイルに設定を追加します。
<android> <manifestAdditions> <![CDATA[ <manifest> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> </manifest> ]]> </manifestAdditions> </android>
AIR 2.5の新機能「カスタムURI」を使うと、ネイティブのAndroidアプリまたはWebページから、AIRアプリを起動できます。
カスタムURIを使うためには、アプリケーション記述子に<intent-filter>要素を使用して設定します。これによって、Androidオペレーティングシステムに対して、カスタムURIとAIRアプリの関連付けを設定できます。
また、カスタムURIを使ってAIRアプリを呼び出すと、NativeApplicationオブジェクトはinvokeイベントを起こします。URLの引数は、InvokeEventオブジェクトのarguments配列から取得できます。
例えば、以下のように「<data android:scheme="testuri"/>」と設定した場合、
<android> <manifestAdditions> <![CDATA[ <manifest> <application> <activity> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.BROWSABLE"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="testuri"/> </intent-filter> </activity> </application> </manifest> ]]> </manifestAdditions> </android>
Webページで次のようなリンクを記述すれば、リンクを押下することでAIRアプリを起動できます。
<a href="testuri://">AIRアプリ起動</a>
<a href="testuri://arg1=1&arg2=2">AIRアプリ起動</a>
<manifest>要素のinstallLocation属性を「auto」または「preferExternal」に設定することで、アプリを外部のメモリカードにインストールしたり移動することを許可できます。例えば、以下のように指定します。
<android> <manifestAdditions> <![CDATA[ <manifest android:installLocation="preferExternal"/> ]]> </manifestAdditions> </android>
モバイルアプリをデバッグやパッケージする前に、amxmlcコマンドでコンパイラを使ってAS(ActionScript)ファイルやMXMLファイルをSWFファイルにコンパイルします。
例として、以下の「MobileApplication.as」をコンパイルして「MobileApplication.swf」を作成してみましょう。
package { import flash.display.Sprite; import flash.text.TextField; public class MobileApplicaiton extends Sprite { public function MobileApplicaiton() { var textField:TextField = new TextField(); textField.text = "Hello, World!"; stage.addChild( textField ); } } }
以下のコマンドでコンパイルします。
amxmlc MobileApplication.as
またこの作業は、Flash Builder 4のFlexプロジェクトの機能を使って簡素化できます。amxmlcコンパイラの詳細は、「AIR 用 MXML および ActionScript ソースファイルのコンパイル」も参照してください。
コマンドラインでアプリを実行・デバッグするには、adlコマンドを使用します。使い方は、adlコマンドの引数にAIRのアプリケーション記述ファイルを指定して起動します。
例として、MobileApplication-app.xmlを指定してADLを起動してみます。
<?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://ns.adobe.com/air/application/2.5"> <id>MobileApplicaiton</id> <versionNumber>0.0.1</versionNumber> <filename>MobileApplicaiton</filename> <initialWindow> <content>MobileApplicaiton.swf</content> </initialWindow> <supportedProfiles>mobileDevice</supportedProfiles> </application>
以下のコマンドでADLを起動します。
adl MobileApplication-app.xml
またこの作業も、Flash Builder 4のFlexプロジェクトの機能を使って簡素化できます。adlコマンドの詳細は、「ADL を使用したデバイスシミュレーション」も参照してください。「-screensize」オプションを使うと、画面の大きさを指定できるので、モバイル開発向けです。
アプリが正常にコンパイルされ実行されたら、デバイス用のパッケージファイルを作成します。パッケージファイル作成するためには、ADTコマンドを使用します。今回は、Androidアプリなので、APKパッケージファイルを作成します。
最初にAPKパッケージファイルを作成するためには、署名ファイルが必要です。そのために自己署名入り証明書とキーペアを、以下のようなADTコマンドで作成します。
adt -certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword
またこの作業も、Flash Builder 4のFlexプロジェクトを使って簡素化できます。ADTを使った証明書作成については、「ADT certificate コマンド」も参照してください。
次に、以下のようなADTコマンドを使ってAPKパッケージファイルを作成します。その際に、先ほど作成した署名ファイルを使用します。
adt -package -target apk -storetype pkcs12 -keystore sampleCert.pfx MobileApplication.apk MobileApplication -app.xml MobileApplication.swf
ADTコマンドのAPKパッケージングについては、「Android 向けのモバイル AIR アプリケーションのパッケージ化」も参照してください。
作成したAPKパッケージファイルをUSBで接続したAndroid端末上にインストールするためには、以下のようなADTコマンドを使用します。
adt -installApp -platform android -platformsdk 【path-to-android-sdk】 -package MobileApplication.apk
【path-to-android-sdk】には、Android SDKのルートディレクトリを指定します。ADTコマンドを使ったアプリのインストールについては、「開発を目的とした AIR ランタイムとアプリケーションのインストール」も参照してください。
今回は、AIR 2.5の概要と、AIR 2.5 SDKを使ったコマンドラインベースのモバイルアプリ開発について解説しましたが、いかがでしたでしょうか。次回は、Flash Builder 4.5を使うことで、モバイルアプリ開発が、どのように簡単になるのかを解説します。
Copyright © ITmedia, Inc. All Rights Reserved.