2017-05-24

[Flash] Adobe AIR SDK 22 Android package

[Flash] Adobe AIR SDK 22でAndroid packageを作成する

動作確認環境:

  • Windows 7 64bit
  • Android 4.4 (CPU:Snapdragon400 1.2GHz, Memory:2GB, Screen:1280×720pixel)
  • Adobe AIR SDK 22 with Compiler for Windows

[話者] Adobe AIR SDKというかFlashでスマートフォンアプリを作成しようかなと考えているのだが、Webに情報が少ない。とくにiOS/Android向けビルド情報が数年前のばかりでね‥‥。

[合いの手] 使っている人があまりいないんだね。

[話者] Adobe AIR SDKで2017年の今でもiOS/Android作れるのか確認しておこう。 まずはAndroidから。

prepare Adobe AIR SDK

Windows での AIR SDK のインストール  AIR SDK 内の bin フォルダーにPATHを通します。

引用元:http://help.adobe.com/ja_JP/air/build/WS2d8d13466044a7337d7adee012406959c52-8000.html

C:\home\bin\FlashDevelop5\Apps\air22\bin にPATHを通した。(「 Bloggerの記事をMarkdownで記述してPandocでHTML変換する」の記事のbash.batにPATH追加した)

bash.bat

@echo off
set HOME=C:\home\bin\PortableGit2\home
set PATH=%PATH%;C:\home\bin\Pandoc;C:\home\bin\FlashDevelop5\Apps\air22\bin
start C:\home\bin\PortableGit2\git-bash.exe

AIR 2.6 に関しては、Android SDK をダウンロードする必要はありません。この AIR SDK には、APK パッケージのインストールと起動に必要となる基本コンポーネントが含まれています。ただし、Android SDK はソフトウェアエミュレーターの作成と実行、デバイススクリーンショットの撮影など、様々な開発タスクで役立ちます。

引用元:http://help.adobe.com/ja_JP/air/build/WS2d8d13466044a7337d7adee012406959c52-8000.html

Android Web サィトから Android SDK をダウンロードしてインストールする必要もあります。

引用元:http://help.adobe.com/ja_JP/air/build/WS901d38e593cd1bac25d3d8c712b2d86751e-8000.html

Android SDKは要るのか要らないのかどっちなんだ。→なくてもapk作成できた。

以後は 「Flex SDK を使用した初めての Android 用 AIR アプリケーションの作成」 http://help.adobe.com/ja_JP/air/build/WS901d38e593cd1bac25d3d8c712b2d86751e-8000.html の指示通り進める。

prepare XML file

テキストファイルを作成。

HelloStarling-app.xml

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/air/application/22.0">
    <id>samples.android.HelloStarling</id>
    <versionNumber>0.0.1</versionNumber>
    <filename>HelloStarling</filename>
    <name>
        <text xml:lang="en">Hello Starling</text> 
        <text xml:lang="ja">こんにちはStarling</text> 
    </name>
    <description> 
        <text xml:lang="en">This is an example.</text> 
        <text xml:lang="ja">これはテストです。</text> 
    </description> 
    <copyright>Copyright (c) 2017 Example Co.</copyright> 
    <initialWindow>
        <content>HelloStarling.swf</content>
        <renderMode>direct</renderMode>
        <fullScreen>true</fullScreen>
        <autoOrients>true</autoOrients>
    </initialWindow>
    <supportedProfiles>mobileDevice</supportedProfiles>
    <icon> 
        <image16x16>img/icon16x16.png</image16x16> 
        <image32x32>img/icon32x32.png</image32x32> 
        <image48x48>img/icon48x48.png</image48x48> 
        <image128x128>img/icon128x128.png</image128x128>  
        <image512x512>img/icon512x512.png</image512x512>  
    </icon>
    <customUpdateUI>false</customUpdateUI>
    <allowBrowserInvocation>false</allowBrowserInvocation>
    <android>
        <manifestAdditions>
        <![CDATA[
            <manifest>
                  <uses-permission android:name="android.permission.INTERNET"/>
                  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
                  <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
                  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
                  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
                  <uses-permission android:name="android.permission.CAMERA"/>
                  <uses-permission android:name="android.permission.RECORD_AUDIO"/>
                  <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
                  <uses-permission android:name="android.permission.WAKE_LOCK"/>
                  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
                  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
          </manifest>
        ]]>
        </manifestAdditions>
    </android>    
</application>

このXML作成は以下を参考にした。

prepare SWF file

次にコンテンツであるswfファイル。

HelloStarling.swf は「Flash Starlingの学習 書籍「Introducing Starling」を読む (1)」の記事で作成したやつを手直しして再ビルド。

修正点:

  1. BuildModeを Debug ではなく Release にする。
  2. [Project - Property - Output - Platform] を AIR Mobile にする。

prepare icon

アイコンファイルも用意した。 16x16 32x32 48x48 128x128 512x512 の5種類のpng画像ファイル。

各画像には「16」とか「512」とピクセル寸法の文字を入れている。どの寸法が使われているか知るため。

prepare signing file

自己署名入り証明書とキーのペアの生成。

star@b10 MINGW32 /r/201705airandroid2$ adt.bat -certificate -cn SelfSigned -validityPeriod 25 2048-RSA sampleCert.pfx passwd

これで sampleCert.pfx を生成した。これが自己署名入り証明書になる。

build apk

Androidパッケージを作成。

star@b10 MINGW32 /r/201705airandroid2$ adt.bat -package -target apk-captive-runtime -storetype pkcs12 -keystore sampleCert.pfx HelloStarling.apk HelloStarling-app.xml HelloStarling.swf img

adtコマンドの使い方は「Adobe AIRアプリケーションの構築 ADT package コマンド」http://help.adobe.com/ja_JP/air/build/WS901d38e593cd1bac1e63e3d128cdca935b-8000.html を参考にした。

これでHelloStarling.apk を作成できた。

[合いの手] 184KBのswfと17KBのアイコン画像が、Androidパッケージだと13.7MBになるのか。

[話者] CaptiveRuntimeだからな‥‥。CaptiveRuntimeというのはAIRランタイムも含む、つまりFlashPlayerを同梱しているんだ。だからswfよりファイル容量が大きい。

install apk

Windowsで作成したapkファイルを、Android側にcopyする。

Android側でFTPサーバーを立てて、WindowsのFTPクライアントでそのFTPサーバーにアクセスしてファイルを渡した。これだとwirelessなので、USBコードつながなくていいし、動作も安定している。

Android側のファイラーで、apkファイルをタップして実行。インストール。

GPUで動作していることを確認した。

[合いの手] 無料のAdobe AIR SDKだけでAndroidパッケージ作れることが確認できたね。

0 件のコメント:

コメントを投稿

人気記事