Android の SDK と、Flex4 の SDK が必要です。エミュレータは先に動くものを作っておきます。 結論から言うと、Flex を使うので Java は必要ですが、Eclipse は必要ありません。コマンドプロンプトから全て完結させます。今回は、Android 2.3.3 でテストしています。 エミュレータ起動 ※ コマンドラインでデバイスを指定していないので、エミュレータの起動は一つだけにしてください。AIR のランタイムをインストール Flex4 の SDK に入ってるものでも、AIR の SDK に入っているものでもどちらでも構いません。
adt -installRuntime -platform android -package C:\flex_sdk_4.6\runtimes\air\android\emulator\Runtime.apk adt -installRuntime -platform android -package C:\AdobeAIRSDK\runtimes\air\android\emulator\Runtime.apk
Mainw.mxmlソースコード AIR のインストールができたら、アプリケーションのビルドですが、用意したソースは以下のようになっています。( UTF8N です )
<?xml version="1.0" encoding="utf-8"?> <s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" firstView="startview" applicationComplete="initApplication()" > <fx:Script> <![CDATA[ // ********************************************************* // アプリケーションの初期化( 画面構築後 ) // ********************************************************* public function initApplication():void { } ]]> </fx:Script> <s:navigationContent> <s:Button label="終了" click="NativeApplication.nativeApplication.exit()"/> </s:navigationContent> </s:ViewNavigatorApplication>
<?xml version="1.0" encoding="utf-8"?> <s:View xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" title="最初のビュー" creationComplete="initView();" > <fx:Script> <![CDATA[ import mx.logging.targets.*; import mx.logging.*; private var logger:ILogger = Log.getLogger("MyLogger"); public function initView():void { var traceTarget:TraceTarget = new TraceTarget(); traceTarget.level = LogEventLevel.ALL; traceTarget.filters = ["*"]; traceTarget.includeDate = false; traceTarget.includeTime = false; traceTarget.includeLevel = false; traceTarget.includeCategory = false; Log.addTarget(traceTarget); } // ********************************************************* // アプリケーションの初期化( 画面構築後 ) // ********************************************************* public function checkText():void { intext.text = "ボタンが押されました"; logger.info( "ボタンが押されました" ); } ]]> </fx:Script> <s:Label x="43" y="27" text="名前を入力して下さい" /> <s:TextInput x="41" y="64" id="intext" width="300" /> <s:Button x="42" y="150" width="131" height="60" label="Submit" click="checkText()" /> </s:View>
<?xml version="1.0" encoding="utf-8" ?> <application xmlns="http://ns.adobe.com/air/application/3.1"> <id>lightbox.androidtest</id> <versionNumber>1.0</versionNumber> <filename>Android Test</filename> <name>Android テスト</name> <initialWindow> <content>Mainw.swf</content> <systemChrome>none</systemChrome> <visible>true</visible> <autoOrients>true</autoOrients> </initialWindow> <icon> <image48x48>winofsql.png</image48x48> </icon> <android> <manifestAdditions> <![CDATA[ <manifest> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <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.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> </manifest> ]]> </manifestAdditions> </android> </application>
※ Android の permission は、沢山書いていますが検証していません。 一番目は、Mainw.mxml で二番目は startview.mxml です。Flex ではこのファイルがそのままクラスになるので、Mainw.mxml で、firstView に、startview と書かれています。ビューだけをフォルダにまとめればそのフォルダで参照する事になります( views なら、views.startview ) xml の二行目の 3.1 は、バージョンを示しているので環境または将来的にはこの値によってエラーになるかもしれません。その場合は、自分の使っているバージョンをチェックするか、世の中を調べましょう。3.1 は、Flex4 SDK の中のもので、AIR SDK は、3.3 が入っていました。Android には、3.3 を入れましたが動作しています。 コマンドプロンプトを開く 1) path=C:\flex_sdk_4.6\bin;%path% 2) prompt flex3$G 3) build.bat build.bat の中身は以下のようになっています
call adt -certificate -cn lightbox 1024-RSA lightbox.p12 password mxmlc +configname=airmobile Mainw.mxml call adt -package -target apk-debug -storetype pkcs12 -keystore lightbox.p12 -storepass password lightbox_1.apk Mainw.xml Mainw.swf winofsql.png call adt -uninstallApp -platform android -appid lightbox.androidtest call adt -installApp -platform android -package lightbox_1.apk
lightbox.p12 は、名前はなんでもいいですし、毎回作る必要はありません。(パスワードはコマンドラインに書かなければ入力になります) lightbox.androidtest は、アプリの ID になりますが、LogCat で表示されるのは、air.lightbox.androidtest となります +configname=airmobile ※ adt で call を使っているのは、adt.bat だからです。 ddms 起動 Android SDK の、tools の中の ddms.bat を実行します。実行したら、左上のエミュレータを選択状態にして、LogCat が表示されるようにしておきます。この、LogCat に logger.info(); でログ表示が可能です。実行
エミュレータからアイコンをクリックするだけです。このアイコンは、winofsql.png として apk パッケージの中に含めたものです。
![]()
![]()
|
【Flexの最新記事】
- Android Flex : FLARToolkit を Flex4(AIR) を使って Android にのっけてみました。
- Android Flex : AIR Native Extentions for Android のフルコマンドラインビルド
- Android Flex : Android の為の AIR Flex 基本 List で Web からデータ取得
- Android Flex : コマンドラインで、Android エミュレータで、dae の 3Dモデルを表示するパッケージ
- ★ 超シンプル FLV プレーヤー ★ / Adobe AIR Flex の簡単サンプル(コンソールビルドパッケージ)
- Flex4 : ローカルPCデータをテキストエリアにロード、テキストエリアの内容をローカルPC に保存
- Flex4 : ローカルPC画像を Image オブジェクトにロード、Image オブジェクトに表示されている画像をローカルPC に保存
- Flex4 : ファイルのアップロード( バージョン1 )
- Flex4 : HTML から DateField に日付をセットする
- Flex4 : HTTPService で入力データを PHP に送る
- Flex4 : バッチビルドキット (110417)
- Flex4 : 条件付きコンパイルの使用
- Flex3 : 3D対応 Google MAP for Flash : 汎用ブログパーツ
- Flex3 : WEBに貼った MXML ベースの Papervision3D で、のローカルのPCにあるZIPファイル内DAEをその場でロードするサンプルです
- Flex3 : Metasequoia 拡張クラス : ローカルの zip ファイルからメタセコイアデータをロードする
- Flex3 : AIR : SQLite のテーブル一覧
- Flex3 : WEBカメラ : FLARToolKitを使ってメタセコイアの3DモデルをPCからロードして、その上に落書きしてpngに保存します
- Flex3 : Papervision3D コンテンツのサンプルとソースコード
- Flex3 : PHPセッションによるログイン処理
- Flex3 : DataGrid をユーザコントロール化したサンプルパッケージ