Android 2.2なのに、目玉の
Flash Playerが動作しないという報告を目にするようになりました。
動作しない理由は、どうやら搭載するCPUに原因があるようです。
▲Android 2.2ならMarketから導入できるハズだが‥ AndroidのアプリはJava仮想マシン上で動作するため、搭載CPUに依存しないのが原則です。しかし、仮想マシン上ではアプリの実行速度が遅くなります。そこで、性能が必要な部分は実行が速いネイティブコードで開発できるように、
Android NDK(Native Development Kit)が用意されました。
▲性能が要求されるアプリはNDKを使うAndroid SDK(Software Development Kit)で開発されたアプリと違って、NDKで開発されたアプリは、CPUに依存する部分をもちます。最近のアプリでいえば、FirefoxやRockPlayerなどが該当します。携帯に搭載されるARMというCPUは、新しい製品ほどCPU命令が拡張されています。たとえば、動画再生ソフトのRockPlayerは、対応するCPU命令ごとに、ARMv6、ARMv6+VFP、ARMv7の3バージョンがありました。対応しているなら、新しいCPU命令に対応したバージョンを使った方が、なめらかに再生できます(現在は、Universal版に統合され、自動判別するようになりました)。
▲ARMの種類についてはWikipediaが参考になるさて、問題のAdobe
Flash Playerですが、これもNDKで開発されており、CPUに依存する部分があります。ところが、
ARMv7という命令セットにしか対応しないとのことです(※)。QualcommのSnapdragonやTIのOMAP3など、ARMコアがCortex-Aシリーズであれば、ARMv7に対応しています。しかし、Qualcommのミドルレンジチップのように
ARM11コアを内蔵したものは、ARMv6という命令セットにしか対応していません。具体的に言えば、HT-03Aが搭載するMSM7201A、Xperia X10 miniのMSM7227などは、ARMv6のため、Android 2.2を搭載しても、(少なくとも現状では)
Flash Playerは利用できません。なお、Adobe AIRにも同様な制限があります。
※公式の動作条件は、
VGAはCortex A8(ARMv7) 550MHz以上、WVGAならCortex A8(ARMv7) 800MHz以上などです。
▲ARMv7に加え、VFP(ベクトル浮動小数点演算器)なども必要この冬、多数のAndroid端末がリリースされますが、選ぶときはCPUの種類にも注意しましょう。
- 関連記事
-
- http://andoroseikatsu.blog115.fc2.com/tb.php/97-2b25d30f
トラックバック
[C54] No title