Deviceの最近のブログ記事

先週末に Android 4.0 をサポートする Flash Player 11.1 と AIR 3.1 が公開されました。

それぞれのバージョンは、

  • Flash Player: 11.1.112.60
  • Adobe AIR: 3.1.0.556
  • AIR SDK (Android): 3.1.0.488

です。

更新は Android Market から入手できます。

既報の通り、デバイス向けの Flash Player に関しては、これが最後のメジャーバージョンになります。つまり、Flash Player 11.2 for Android は登場しません。

脆弱性や主要なバグへの対応は引き続き行われるので、Stage3D が使えないことを除けば、しばらく違いを感じることは (Android 5.0 が出るまで?) 無いかもしれません。個人的には、Android の次の更新までに最新のデバイスを買っておきたい気がしてます。

AIR は、デバイス向けにも引き続き新しいバージョンが提供されます。

 

Apple の新しい iOS 5.0.1 ガイドラインでは、データ保管に関するガイドラインが変更されました。新しいガイドラインについてはこちらに説明があります。 (閲覧には開発者登録が必要です)

それに伴い、AIR の一部の機能の利用が制限されます。アドビのフォーラムに投稿されたポストによれば、この制限によりアプリが却下されると、以下のようなメッセージが届くそうです。

Rejection: 2.23 Apps must follow the iOS Data Storage Guidelines or they will be rejected

具体的には、以下の条件を満たす必要があるとのことです。 (正確な情報は、上のアップルサイトへのリンク先を参照してください)

  1. ユーザが生成した情報、またはアプリだけでは生成できない情報のみ /Documents ディレクトリ以下に保存し、自動的に iCloud にバックアップされる
  2. 再ダウンロード、あるいは再生可能なデータは /Library/Caches ディレクトリ以下に保管する
  3. 一時的な利用のためのデータは /tmp ディレクトリ以下に保存する。これらのファイルは iCloud にはバックアップされないが、余分な記憶領域を使用しないよう、不要になったら削除する

AIR のネイティブ拡張を利用することにした場合、ActionScript のデバッグは AIR の SDK を使って行えますが、ネイティブコードのデバッグはネイティブのツールを利用することになるでしょう。

iOS 用の ANE を XCode を使ってデバッグする方法が公開されていましたので、その内容をご紹介します。元のブログ記事はこちらです。 (Debugging Native Extensions for AIR iOS

---- ここから ----

ANE を含む IPA を ADT で生成する際、IPA と同じディレクトリに dSYM ファイルが生成されます。dSYM ファイルの名前は、アプリケーションバンドル名に .dSYM を付けたものになります。(アプリ名が MyApp.app ならば、MyApp.app.dSYM)

AIR 2.6 から、Windows, Mac, Linux, Android そして iOS がサポートされました。

これまで iOS 向けには Packager for iPhone という AIR SDK とは別の SDK が必要でしたが、これからは、AIR の書き出しオプションの 1 つとして iOS アプリを選択できるようになります。

これで、iOS 向けアプリのベースが AIR 2.0 から AIR 2.6 になりました。Packager for iPhone の時と比べると機能/パフォーマンス共に大きく改善され、また、マルチタスクや Retina ディスプレイにも対応しました。API は Android とほぼ同じに揃えられています。

AIR 2.6 では、iOS 4 以降をサポートします。iOS 3 はサポートしていません。

  • OS:iOS 4.0 以上
  • デバイス:ARM v7
    • iPhone 3GS, iPhone 4
    • iPad
    • iPod Touch 第 3 世代以降

そのため、例えば Packager for iPhone でパッケージした既存のアプリが iPhone 3G をサポートするものとして登録されていると、AIR 2.6 を使ってパッケージしたバージョンで更新することができません。これは、App Store には、アプリを更新する時に、サポートするデバイスを減らせないという制限があるためです。

新バージョンは別アプリとして公開することになるため、有償アプリだった場合は、再度購入して貰うことになります

iPhone OS 3 あるいは ARM v6 のデバイスを対象とするには、引き続き Packager for iPhone を利用します。Packager for iPhone は、Flash Professional CS5 に付属するものを使用できます。(Flash Professional CS5 に最新のアップデートが必要)

先日、Adobe Developer Connection に Android アプリケーションの画面の向きを、縦にしたり横にしたりする方法について書きました。

画面を回転させる方法は、大きく 2 種類に分けられます。

AIR の自動回転機能を使うものと、全てをスクリプトから制御するものです。2 つの記事の内、パート 1 は自動回転を利用する場合、パート 2 は利用しない場合のシナリオを解説しています。

(可能であれば、パート 1 に紹介している自動回転機能を有効にして、RESIZE イベントで表示を制御する方法が楽だと思います)

さて、AIR 2.6 では、iOS と Android 間の API の整合性を高めるため、いくつかの変更が行われました。その影響で、画面の回転に関連する項目でも AIR 2.0 から AIR 2.5 へのアップデートで一旦使えなくなった機能がいくつか復活しています。

これまでの経緯

具体的な項目に触れる前に、背景を整理しておくと、

  1. AIR 2.0 は iOS を第一に設計された
  2. iOS 向け AIR アプリの配布が禁止された
  3. AIR 2.5 は Android を前提に設計された
    → そのため Android 上で利用できない AIR 2.0 の API は AIR 2.5 になって廃止された (iOS 向けの開発は中断)
  4. iOS 向け AIR アプリの配布が許可された
  5. AIR 2.6 は iOS, Android 両方のサポートを目指した

このように、これまでは iOS 対応と Android 対応は別のルートを辿ってきました。Packager for iPhone のユーザーは AIR 2.0 を使ってきましたし、AIR for Android のユーザーは AIR 2.0 とは非互換の AIR 2.5 を使ってきました。

なので、両者にとって AIR 2.6 は異なるアップデートに見えるかもしれません。

AIR 2.6 における画面の向き関連の変更点

本題に戻って、AIR 2.6 で、画面の向きに関連する項目の内、変更があったのは以下の通りです。

先日お伝えした通り、3/18 日に Flash Player 10.2 の Android 版が Android Market に公開されました。

サポートされるのは、Android 2.2 (Froyo) と 2.3 (Gingerbread) で、 Android 3 (Honeycomb) については、3.0.1 アップデートを前提とするベータ版という位置づけです。Honeycomb の正式なサポートは、数週間以内を予定しているようです。

Android 上でのビデオ再生に関して、480P 以下での再生が推奨されています。Android 3 用の Flash Player 10.2 では 720P のビデオ再生もサポートされる予定だそうです。

なお、フルスクリーンモードへの切り替え手段として、コンテンツをタップ後に長押しすると、フルスクリーンに移行するボタンが左上に表示されるようになっています。

参考までに、アドビが検証済みのデバイスのリストがこちらの URL にあります。 (http://www.adobe.com/go/cd1

今回のリリースは、セキュリティー上の問題点に対する修正も含みます。(http://www.adobe.com/support/security/advisories/apsa11-01.html

 

Adobe Developer Connection (ADC) に、Android の 4 つの仮想キーの扱い方 (AIR アプリ開発時) の記事を書きました。

記事のポイントは、以下の 2 点です。

  1. バックキーを押したときの動作が、AIR アプリケーションはネイティブアプリとは異なることと、その対処法
  2. ホームキーを押した後のアプリの実行モデルと、実行状態が変わる前にしておくべきこと

どちらも、タイトルから想像される内容とちょっとずれてるのですが、Android 向けの AIR アプリを作る際に重要な情報ですので、ご参考まで。

 

Flash Player 10.2 の Android 版が 3 月 18 日に Android Market に公開予定であることが発表されました。OTA アップデートがその日あたりにあるかもしれません。

サポートされるのは、Android 2.2 と 2.3 です。Android 3.0 向けには、Android 3.0.1 アップデートが公開されるとベータ版として利用可能、その後数回のアップデートを経て正式にサポート、ということになるようです。

日本でも XOOM がもうすぐ発売されますが、もし Android 3.0 が載っていたら、買った状態では Flash Player は利用できないことになります。

しばらく待たせる代わりに、Android 3.0 だけで利用可能な新機能が 2 つあります。

  • ハードウェアによる H.264 ビデオ再生:
    • Stage Video を使った H.264 ビデオの効率的な再生が可能になります
  • ブラウザの描画エンジンとの統合:
    • SWF コンテンツを HTML や画像と同様に描画できるため、ページの表示/スクロールがスムーズになります。今までは HTML コンテンツの上に描画していたため、スクロールすると少しずれるのが見えていたりしました

その他にも、Android 用に拡張された機能がいくつかあります。こちらは、Android 2.x と Android 3.0 どちらでも利用できます。

  • 最新デバイス用のパフォーマンス改善
    • マルチコアの CPU や高速化された GPU 環境でのパフォーマンスが向上するよう改良されました
  • ソフトキーボードのサポート
    • ソフトキーボードをコントロールするための API が追加されました

 

昨年秋の MAX2010 のときに、AIR for TV 用に公開されていたパフォーマンス測定アプリをご存知でしょうか? Android も機種増えてきたし、性能が見えるとうれしいよね、ということで AIR for Android 用にポーティングしてみました。

近日中に Adobe Developer Connection 経由で紹介予定ですが、その前にテストしていただける有志の方に、ベータ版を公開します。

実行環境には、先日公開された AIR 2.6 が必要です。インストールちょっと面倒で申し訳ありません。

全部で 58 種類のテストがあります。ほぼ全てが描画性能を測定するテストです。今回は CPU 描画の性能を測定してます。

起動すると画面が出るまでにしばらく待たされますが、そういうアプリですので、我慢して使ってください。使い勝手は折りをみて改善していく予定です。バグ、要望など、よろしければコメントください。

ちなみに、AIR 2.5 と比べると、AIR 2.6 はちゃんと早くなっているようでした。

 

AIR 2.6 の Android 版が Android Marketplace に公開されました。

AIR 2.6 for Android は Android 3.0 をサポートします。これにより、Motorola Xoom など、最新の Android タブレットでも AIR アプリが実行できるようになります。既存の AIR 2.5 SDK を使って開発されたアプリケーションは、そのまま AIR 2.6 上で実行できます。

Android Marketplace から AIR 2.6 for Android をダウンロードできるのは、以下のバージョンの OS がインストールされているデバイスです。

  • Android 2.2 (FroYo)
  • Android 2.3 (Gingerbread)
  • Android 3.0 (Honeycomb)

ちなみに、Adobe が Flash Player の動作を検証済みのデバイスリストが、US のサイト (Adobe Flash Platform/Certified Devices) に掲載されています。未検証のデバイスだから動かないというわけでもないですが、ご参考まで。

AIR 2.6 for Android の変更点

AIR 2.6 では、パフォーマンスや機能の改善が行われています。

パフォーマンスについては、

  • スクロール時のパフォーマンスを最大 20% 高速化
  • 30 fps で H.264 ビデオのデコード (Stage Video ではありません)
  • 最大 50 fps での GPU 描画によるアニメーションやゲームの実現

機能面の改善としては、

  • 最新の Android システムジェスチャーのサポート
  • StageWebView (AIR アプリ内に HTML コンテンツを表示する) をビットマップとしてキャプチャー
  • ビットマップのデコードを非同期に実行 (イメージを多用するアプリケーション実行が効率化される)

などがあります。

AIR 2.6 の SDK の公開は、今年の上半期中が予定されています。

電子書籍を Android デバイス上で表示する Content Viewer for Android のベースとして使われているのも、この AIR 2.6 です。Contents Viewer は、Adobe Digital Publishing Suite の一部として提供されています。

 

Android Market に、Flash Player 10.1.105 とAIR 2.5.1 が公開されました。Android の新しいバージョンである Gingerbread の互換性問題に対応するバージョンです。(デスクトップ版と同様のセキュリティ対応やバグ修正も行われています)

Gingerbread 上に既存のバージョン (Flash Player 10.1.95.2、 AIR 2.5.0) がインストールされた状態では、実行時にランタイムが読み込まれせん。その結果、Flash コンテンツが表示される代わりに、"アプリケーションが予期せぬエラーで終了した" という旨のダイアログが表示されます。

Gingerbread が搭載されたデバイスが市場に出回るのは、まだしばらく先になるとは思われますが、AIR アプリを Android 用に公開済み、またはこれから公開する場合は、ランタイムの条件を 2.5.1 に変更しましょう。Gingerbread が出たら動かなくなった、という状況を避けられます。

設定方法は以下の通りです。アプリケーション記述ファイル内の application タグに "minimumPatchLevel" 属性の値として 17730 を指定します。

先日の記事でもお伝えしたように Adobe Labs に、Flash Professional CS5 Extension for Adobe AIR 2.5 のベータ版が公開されています。(Flash Professional CS5 Extension for Adobe AIR 2.5@Labs

この機能拡張により、AIR 2.5 と AIR Android が Player ターゲットとして選択できるようになります。AIR Android の方は、従来の AIR の設定パネルからいくつか変更されていますので、差分だけ簡単に説明します。

AIR Android の設定をするには、まず「パブリッシュ設定」のダイアログから、Player ターゲットに AIR Android を選択します。ダイアログを閉じたら、プロパティパネルの "AIR Android 設定" の横にある 「編集」ボタンをクリックすると、「アプリケーションとインストーラーの設定(ベータ版)」というパネルが開きます。

パネル内の 4 つの タブのうち、「一般」と「アイコン」は特に変わりありません。ので、残り 2 つを取り上げます。

「デプロイ」タブ

まず、「デプロイ」のタブでは、「Android デプロイタイプ」の欄から、以下の 3 つが選べるようになっています。

  • デバイスリリース:リリースビルドをデバイス用にパッケージ
  • エミュレーターリリース:リリースビルドをエミュレーター用にパッケージ (エミュレーターは Android の SDK に含まれるものを指す)
  • デバッグ:デバッグビルドをデバイス用 & エミュレーター用にパッケージ

リリースビルドは、デバイス用とエミュレーター用が区別されることに注意して下さい。インストール先に応じて、このタブで設定を切り替える必要があります。

「パブリッシュ後」の欄には、以下の 2 つのチェックボックスがあります。

Packager for iPhone が Adobe Labs に公開されました。(Packager for iPhone@Labs

新しい SDK が Labs からダウンロードできます。(Packager for iPhone@Labs Downloads) Mac の Safari ユーザーは、リンクを右クリックして、「別名で保存」を選んでダウンロードするようにとのことです。

Flash CS5 Professional を使用する場合は、Flash サポートセンターから Flash CS5 Professional Update for iOS をダウンロードできます。(Adobe Flash サポート

Flash CS5 へのインストール手順は、

  1. zip ファイルを解凍
  2. ヘルプメニューからアップデートを選択し、Flash Professional CS5 11.0.2 にアップデート (まだアップデートしていない場合)
  3. Flash がインストールされているフォルダーを開く。(以下のような名前のフォルダ)
    Windows: C:\Program Files\Adobe\Adobe Flash CS5\
    Mac: Applications/Adobe Flash CS5/
  4. PFI フォルダーを PFI_old という名前に変更
  5. 解凍した zip ファイルから PFI フォルダーを Adobe Flash CS5 フォルダーに移動

です。

整理のため、今年 6 月の Flash Professional CS5 11.0.1 アップデートのときの変更点は、以下のようなものでした。

Android 用の AIR が公開されました。

サポートされる Android のバージョンは 2.2 からです。日本では、Android 2.2 へのアップデートが開始されたソフトバンクの HTC Desire が、最初の AIR 2.5 対応の (Flash Player 10.1 も) プラットフォームということになります。もうすぐドコモから発売される GALAXY S もスペックを見る限り AIR 2.5 のサポート対象となりそうです。

AIR (と Flash Player 10.1) に必要なスペックは以下の通りです。

  • Android 2.2
  • ARMv7-A
  • OpenGL ES2.0
  • H.264 & AAC ハードウェアデコーダー
  • 256 MB RAM

Android 2.2 端末を持っていたら、Android Market から AIR アプリをインストールすると、AIR ランタイムも (未インストールであれば) 自動的にインストールされます。

こちらは AIR アプリのリスト (自己申告制の) です。http://www.appbrain.com/user/webkitchen/air-applications

開発者向け情報

アプリ開発用の SDK は、とりあえずプレリリースプログラムから提供されるものを使います。近い将来、アドビのサイトにも SDK が公開される予定です。

アプリを Android Market に登録するには 25 年間有効な証明書 (自分でサインした証明書でも OK) が必要です。証明書の作成もプレリリースプログラムから提供される ADT ツールを使用します。

それから、デバッグビルドの apk ファイルを公開しないように注意しましょう。

 

昨日 Apple が iOS の開発者規約を変更したことにより、Flash CS5 Professional に同梱されている Packager for iPhone による開発が可能になったようです。Flash CS5 で開発したアプリの審査も、再び許可されるようにななりました。 (少なくとも今のところ)

4 月には、一旦サードパーティー製開発ツールの使用が禁止とされました。それにより、Packager for iPhone の開発も、Flash Pro 11.0.1 アップデートでの iPad 対応を最後に中断されていました。しかし、昨日の発表を受けて、アドビから Packager for iPhone の開発を再開するとのコメントが出されています (Great News for Developers)。もしかすると、10 月の MAX あたりで何かアナウンスがあるかも?ですね。

一方、ブラウザ内の Flash コンテンツ再生に関しては、従来通り禁止されたままです。

(9/11 追記) 分かりにくい書き方をしてしまったので補足です。現在発売中の Flash CS5 Professional を使って、iPad や iOS4 で動作するアプリを開発し、iTune Store の審査に出すことが可能です。CS5 の無い環境でも、Adobe Labs に公開されている Package for iPhone を使って ipa にパッケージすれば、ちょっと面倒ではありますが、iOS 向けアプリが開発できます。(ただし、AIR 2.0.2 SDK を使う構成にする必要があります)

 

今週の Android 2.2 のオープンソース公開に合わせ、Andoroid 用の Flash Player 10.1 が正式に公開されました。これにより、いよいよスマートフォンのブラウザ内でも、デスクトップと同様の Web 体験が実現されるようになります。

Flash Player 10.1 では、デバイスをターゲットにしたパフォーマンスの最適化や、ジェスチャーによる入力、加速度計や GPS のサポートなど、Flash Player 10 からたくさんの変更が行われました。その他にも、バッテリーの消費を少なくするための機能やメモリ管理機能の改善なども行われています。

Android 2.2 の搭載されたデバイスをお持ちの方は Android Market から入手可能です。http://www.adobe.com/go/getflash_jp/ にアクセスしてみてください。

Android アプリを開発したい人には、Android 用の AIR が控えています。こちらはまだ一般公開されていませんが、プレリリースプログラムに参加すると、プログラム内での情報共有やベータ版を使ったテストができます。英語サポートのみで構わなければ、プレリリースプログラムには誰でも参加できます。サインアップはこちらから。

 

既に Flash で制作された iPhone アプリケーションを目にした事のある人も多いかと思いますが、昨年秋に MAX2009 で発表された Packager for iPhone の仕組みについての説明を少しばかり。

Packager for iPhone は Flash の出力を iPhone 用に変換する機能を持っています。少し紛らわしいですが、Flash CS5 に iPhone アプリの書き出し機能がある訳ではなくて、Flash CS5 には "iPhone アプリの書き出しができる Packager for iPhone" との連携機能がある、が正しい理解です。

これは賢い選択だったのではないかと思います。というのは、iPhone OS のアップデートがあっても、Packager for iPhone だけが対応すればよいからです。

AIR 書き出しの仕組み

まずは、AIR アプリケーション開発の流れの確認から話を始めます。下が AIR アプリ開発の大まかなステップです。

  1. Flash Professional でアプリケーション開発
  2. SWF, application.xml, その他必要なリソースを生成
  3. 上記を一つにパッケージ
  4. パッケージに署名
  5. .air ファイルとして配布

AIR アプリを iPhone にインストールできないかと考えたときに、一番楽そうな方法は iPhone 用の AIR ランタイムを開発して配布、なのですが、これはできません。一番の問題は、iPhone ライセンスが、JIT (Just in Time) コンパイラーやインタープリターの使用を禁じていることです。そのため、SWF 内のバイトコードを VM が実行時に解釈するという AIR の実行モデル自体が許可されないのです。

だったら SWF を ARM 向けに事前コンパイルするしかないですね、というのは簡単な結論ではありますが、それにより、どのプラットフォーム上でも実行できるという AIR アプリケーションの持つ利点を放棄する事になってしまいます (EXE ファイルに変換すると、iPhone 専用モジュールになってしまうからです)。にもかかわらず英断が行われて、SWF 用の AOT (Ahead of Time) コンパイラーとして開発されたのが Packager for iPhone ということになります。

これも良い選択だったのではないかと思います。実行モジュールとして配布することにすれば、今のアプリケーション流通モデルにそのまま乗っける事ができますし、どのプラットフォーム用にも作れるという Flash オーサリング環境の優位性はまだ残ってているわけですし。

2011年12月

Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
レンタルサーバー
Powered by Movable Type 4.261