Download - 「AIRネイティブ拡張」を使って、 AndroidでNFCを読み込んでみた
「AIRネイティブ拡張」を使って、
ANDROIDでNFCを読み込んでみた
@mos1210
12年12月20日木曜日
自己紹介
TW: mos1210 (本名:山本 尚紀)
WebとかAndroidアプリの開発してます。
Re:Kayo-System
12年12月20日木曜日
• Flashで作ったAndroidアプリで、NFCを使えませんか?
いきさつ
12年12月20日木曜日
どんなアプリか
• NFCを読み込んだ時、画面にキャラクターが追加される
12年12月20日木曜日
そもそも「Flashで作ったAndroidアプリ」とは?
FlashのAIR for Androidで出力したアプリ※Web版のFlashソースコードを移植したとのこと
12年12月20日木曜日
FLASHでNFCを扱うコードは書けないか?
ググってみたが、不可と分かる
12年12月20日木曜日
FLASHで「NFC」は使えるのか?
案その1
• Androidのブラウザ(WebView)で、Flash再生
• NFC読み込み時に、JavaScript経由でFlashを呼び出す
↓実現出来たが、速度が遅いと言われた
12年12月20日木曜日
ADOBE AIRのネイティブ拡張というのがあるらしい
•プラットフォーム固有機能にアクセスする仕組み
電話帳、各種センサー、アプリ内課金、Bluetooth
• Androidデバイス Android2.2以降
FLASHで「NFC」は使えるのか?
12年12月20日木曜日
• Adobe AIRのネイティブ拡張(AIR Native Extension)
FLASHで「NFC」は使えるのか?
案その2
↓出来るかも?
↓出来たけど、今回の案件では速くなかった...
12年12月20日木曜日
FLASH CS6でネイティブ拡張を「使う」
12年12月20日木曜日
こんなアプリを作成
• ID: NFCを読み込むとIDが値として表示される
• Clearボタン: IDをクリアする
12年12月20日木曜日
FLASH CS6でネイティブ拡張を「使う」
• Flash CS6をインストール
• Air Native Extensionをライブラリパスに追加する
•ソースコード記述
• sample-app.xmlの編集(手動で記述)
12年12月20日木曜日
FLASH CS6をインストール
• Flash CS6をインストールすると、同じフォルダ内にAir
SDK3.2もインストールされます。※後でAir SDKも使います
12年12月20日木曜日
FLASH CS6でネイティブ拡張を使う
• Flash CS6をインストール
• Air Native Extensionをライブラリパスに追加する
•ソースコード記述
• sample-app.xmlの編集(手動で記述)
12年12月20日木曜日
Air Native Extensionをライブラリパスに追加する
• AIR for Androidを選択
12年12月20日木曜日
Air Native Extensionをライブラリパスに追加する
•「OK」を選択
12年12月20日木曜日
Air Native Extensionをライブラリパスに追加する
•「ファイル」>「保存」を選択し、C:/sampleフォルダに保存する。
• ※今回のファイル名:sample.fla
12年12月20日木曜日
Air Native Extensionをライブラリパスに追加する
• sampleフォルダにlibs
フォルダを作成
• ANEファイルを配置
12年12月20日木曜日
Air Native Extensionをライブラリパスに追加する
•スクリプトの「設定」ボタン押下
12年12月20日木曜日
Air Native Extensionをライブラリパスに追加する
•「ドキュメントクラス」に「sample」を入力
•タブ「ライブラリパス」のネイティブ拡張(ANE)ファイルを参照ボタンを選択し、C:/sample/libs/
NfcAneExtension.aneを選択する。
12年12月20日木曜日
FLASH CS6でネイティブ拡張を使う
• Flash CS6をインストール
• Air Native Extensionをライブラリパスに追加する
•ソースコード記述
• sample-app.xmlの編集(手動で記述)
12年12月20日木曜日
ソースコード記述
•「クラス定義を編集」ボタン押下
12年12月20日木曜日
ソースコード記述
•ソースのひな形が記述されるので、ActionScript3.0を追記していく
12年12月20日木曜日
ソースコード記述
•左のような画面を生成するコードを書く
12年12月20日木曜日
ソースコード記述
• Flash CS6を使ってソースコードの解説
12年12月20日木曜日
FLASH CS6でネイティブ拡張を使う
• Flash CS6をインストール
• Air Native Extensionをライブラリパスに追加する
•ソースコード記述
• sample-app.xmlの編集(手動で記述)
12年12月20日木曜日
Sample-app.xmlの編集(手動で記述)
• AIR for Android設定画面の権限タブで、チェック「アプリケーション記述ファイルへの権限およびマニフェストの追加を手動で管理します」を入れる。※Sample-app.xmlが自動生成される
12年12月20日木曜日
↑の記述は省略 <android> <manifestAdditions><![CDATA[<manifest> <application> <activity> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:name="sample.ane.TagReaderActivity" android:theme="@android:style/Theme.NoDisplay" android:launchMode="singleTop" android:excludeFromRecents="true"></activity> </application><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.NFC"/></manifest>]]></manifestAdditions> </android> <extensions> <extensionID>sample</extensionID> </extensions></application>↑ファイルの最後
12年12月20日木曜日
デプロイ
• デプロイタブ
• 証明書:選択、もしくは作成
• パスワード:入力
• デプロイタイプ:デバイスリリース
• AIRランタイム:任意
• パブリッシュ後:任意
12年12月20日木曜日
デプロイ
パブリッシュ後にアプリケーションを起動するを選択している場合は、Android端末を接続しておく
12年12月20日木曜日
デモンストレーション
12年12月20日木曜日
ネイティブ拡張を「作る」
12年12月20日木曜日
ネイティブ拡張を「作る」
• 手順
• ネイティブ拡張ライブラリの作成
• ネイティブ拡張ActionScriptライブラリの作成
• ネイティブ拡張記述ファイルの作成
• ANEファイルへパッケージング
12年12月20日木曜日
ネイティブ拡張を「作る」
•ネイティブ拡張ライブラリの作成
•ネイティブ拡張ActionScriptライブラリの作成
•ネイティブ拡張記述ファイルの作成
• ANEファイルへパッケージング
12年12月20日木曜日
ネイティブ拡張ライブラリの作成
12年12月20日木曜日
プラットフォーム ネイティブAPI ネイティブ拡張開発言語 ネイティブ拡張ライブラリ
Android C API/Java API C言語/JavaShared library(.so) Java Archive library(.jar)
iOS C API C言語/Objective-C Static library(.a)
Windows C API C言語/C++/C# Dynamic Link Library(.dll)
Mac OS X C API C言語/Objective-C Framework(.framework)
ネイティブ拡張ライブラリの作成
12年12月20日木曜日
ネイティブ拡張ライブラリの作成
•必要な物
• Eclipse(Android開発環境)
• Android SDK
12年12月20日木曜日
ネイティブ拡張ライブラリの作成
• Androidプロジェクトを作成
12年12月20日木曜日
ネイティブ拡張ライブラリの作成
• FlashRuntimeExtensions.jarをパスに追加
12年12月20日木曜日
ネイティブ拡張ライブラリの作成
12年12月20日木曜日
ネイティブ拡張ライブラリの作成
Eclipseでソースコード解説
12年12月20日木曜日
ネイティブ拡張ライブラリの作成
•プロジェクトをjarでExport
12年12月20日木曜日
ネイティブ拡張ライブラリの作成
12年12月20日木曜日
ネイティブ拡張ライブラリの作成
12年12月20日木曜日
http://www.adobe.com/jp/devnet/air/articles/native_extensions_part2.html
ネイティブ拡張(Native Extensions)入門 第2回 ネイティブ拡張の開発方法 前編
ネイティブ拡張ライブラリの作成
以下のサイトに詳しく載っています
12年12月20日木曜日
ネイティブ拡張を「作る」
•ネイティブ拡張ライブラリの作成
•ネイティブ拡張ActionScriptライブラリの作成
•ネイティブ拡張記述ファイルの作成
• ANEファイルへパッケージング
12年12月20日木曜日
ネイティブ拡張ActionScriptライブラリの作成
12年12月20日木曜日
•必要な物
• Adobe Flash builder 4.6
ネイティブ拡張ActionScriptライブラリの作成
12年12月20日木曜日
ネイティブ拡張ActionScriptライブラリの作成
12年12月20日木曜日
ネイティブ拡張ActionScriptライブラリの作成
• a
12年12月20日木曜日
ネイティブ拡張ActionScriptライブラリの作成
12年12月20日木曜日
ネイティブ拡張ActionScriptライブラリの作成
• Adobe Flash BuilderでSampleExtension.as解説
12年12月20日木曜日
ネイティブ拡張ActionScriptライブラリの作成
12年12月20日木曜日
ネイティブ拡張記述ファイル
12年12月20日木曜日
• platform: Androidの場合は、Android-ARMを指定
• id: ActionScriptからネイティブ拡張を指定する際に使用
• nativeLibrary: ネイティブ拡張ライブラリを指定
• initializer : FREExtensionを実装したクラス名
• finalizer : FREExtensionを実装したクラス名
ネイティブ拡張記述ファイル
12年12月20日木曜日
ネイティブ拡張ActionScriptライブラリの作成
12年12月20日木曜日
• ADTとは? = AIR Developer Tools
•場所 /Applications/Adobe Flash CS6/AIR3.2/bin ※パスを通しておく
ADTによるパッケージング
12年12月20日木曜日
ADTによるパッケージング
• library.swf: NfcAne_asext.swcの拡張子をzipに変更し、解凍。中に入っているlibrary.swfを取り出しplatform/
androidフォルダに配置
•NfcAneAnd.jar 作成済みのネイティブ拡張ライブラリを配置
12年12月20日木曜日
•使うツール: ターミナル
• Flash Builderで作ったディレクトリに移動して、 コマンド実行
ADTによるパッケージング
12年12月20日木曜日
ADTによるパッケージング
12年12月20日木曜日
ADTによるパッケージング
12年12月20日木曜日
ADTによるパッケージング
コマンド実行adt-package-storetype pkcs12 -keystore 証明書ファイル-target ane ANEファイル名 ネイティブ拡張記述ファイル-swc ネイティブ拡張ActionScriptライブラリ-platform プラットフォーム名-C プラットフォームディレクトリ .
ディレクトリ移動$ cd /Users/naoki/Desktop/NfcAne_asext
12年12月20日木曜日
ADTによるパッケージング
コマンド実行 ※実際は1行adt-package-storetype pkcs12 -keystore 証明書ファイル-target ane ANEファイル名 ネイティブ拡張記述ファイル-swc ネイティブ拡張ActionScriptライブラリ-platform プラットフォーム名-C プラットフォームディレクトリ .
12年12月20日木曜日
ADTによるパッケージングadt -package -storetype pkcs12 -keystore test.p12 -target ane NfcAneExtension.ane extension.xml -swc bin/NfcAne_asext.swc -platform Android-ARM -C platform/android .
※実際は1行
12年12月20日木曜日
参考にしたURL
ネイティブ拡張(Native Extensions)入門 第1回 ネイティブ拡張を理解するhttp://www.adobe.com/jp/devnet/air/articles/native_extensions_part1.html
ネイティブ拡張(Native Extensions)入門 第2回 ネイティブ拡張の開発方法 前編http://www.adobe.com/jp/devnet/air/articles/native_extensions_part2.html
ネイティブ拡張(Native Extensions)入門 第3回 ネイティブ拡張の開発方法 後編http://www.adobe.com/jp/devnet/air/articles/native_extensions_part3.html
12年12月20日木曜日