モバイルアプリ開発では、デバイスの固有の機能を利用するためにアプリケーション記述子に設定を行います。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.