Google Play* によるマルチ APK の CPU アーキテクチャー・フィルタリング・サポート
この記事は、インテル® デベロッパー・ゾーンに掲載されている「Google Play Supports CPU Architecture Filtering For Multiple APK」の日本語参考訳です。
2012 年 9 月上旬、Google* 社は Google Play* ストアで単一のアプリケーションと関連データを維持しつつ、各デバイスへのダウンロード・データ・サイズを減らす変更を行いました。これにより、Google Play* デベロッパー・コンソールでマルチ APK のフィルター条件として CPU アーキテクチャー (ABI) がサポートされるようになりました。 この新機能は、現在アーキテクチャーごとに個別のアプリケーションを作成している開発者や APK のダウンロード・サイズが大きくならないようにネイティブ x86 サポートを見合わせている開発者にとって朗報と言えます。
さまざまなデバイスが複数の ABI (例えば、ARMv7 と ARMv5TE) をサポートしています。多くの x86 ABI デバイスは、ARMv7 バイナリーと ARMv5TE バイナリーを実行できます。各デバイスで最高のパフォーマンスが得られるように、開発者はバージョンコードの順序を設定すべきです。例えば、x86 APK、ARMv7、ARMv5TE の順でバージョンコードの順序を設定します。これにより、x86 デバイスでは x86 バイナリーが優先され、ARMv7 デバイスでは ARMv7 バイナリーが優先されます。
インテルでは、8 桁以上のバージョンコードの使用を推奨しています。上位ビットはサポートする構成を示し、下位ビットはバージョン名 (android:versionName) を示します。例えば、アプリケーションのバージョン名が 3.1.0 の場合、ARMv7 ABI 用の API レベル 11 の APK の推奨バージョンコードは 21100310 で、 x86 用の API レベル 11 の APK のバージョンコードは 61100310 です。最初の桁はサポートする ABI、2 ~ 3 桁目は API レベル、4 ~ 5 桁目は画面サイズまたは GL テクスチャー・フォーマット (この例では使用されていない)、最後の 3 桁はアプリケーションのバージョン番号 (この例では 3.1.0) を示します。図 1 に、プラットフォーム・バージョン (API レベル)、画面サイズ、アプリケーション・バージョンは同じで ABI だけが異なる 2 つの例を示します。
ABI キー: 6 – x86、2 – ARMv7、1 – ARMv5
図 1. 推奨するバージョンコードの構成。1 桁目は ABI、2 ~ 3 桁目は API レベル、4 ~ 5 桁目は最小および最大画面サイズ (1 ~ 4 は 4 つのサイズのうちそれぞれのサイズを示す) またはテクスチャー・フォーマット、最後の 3 桁はアプリケーション・バージョンを示します。
大きなネイティブ・ライブラリーを使用するアプリケーションでは、このようなバージョンコードを用いることで、各デバイスへのダウンロード・データ・サイズを減らし、x86 と ARM の両プラットフォームで最適な実行を保証できます。
この新機能を活用するには、Google Play* デベロッパー・コンソールのアドバンスモード (http://developer.android.com/guide/google/play/publishing/multiple-apks.html#SimpleAndAdvanced) で、単一アプリケーションに対してマルチ APK を有効にします。マルチ APK サポートに関する詳細と最新情報は、Google* 社の Web サイトにあるデベロッパー向けドキュメントを確認してください。
http://developer.android.com/guide/google/play/publishing/multiple-apks.html (英語)
https://sites.google.com/site/androiddevelopersclub/docs/multiple-apk-support (日本語訳)
著作権と商標について
本資料に掲載されている情報は、インテル製品の概要説明を目的としたものです。本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスを許諾するものではありません。製品に付属の売買契約書『Intel’s Terms and Conditions of Sale』に規定されている場合を除き、インテルはいかなる責任を負うものではなく、またインテル製品の販売や使用に関する明示または黙示の保証 (特定目的への適合性、商品適格性、あらゆる特許権、著作権、その他知的財産権の非侵害性への保証を含む) に関してもいかなる責任も負いません。
インテルによる書面での合意がない限り、インテル製品は、その欠陥や故障によって人身事故が発生するようなアプリケーションでの使用を想定した設計は行われていません。
インテル製品は、予告なく仕様や説明が変更される場合があります。機能または命令の一覧で「留保」または「未定義」と記されているものがありますが、その「機能が存在しない」あるいは「性質が留保付である」という状態を設計の前提にしないでください。これらの項目は、インテルが将来のために留保しているものです。インテルが将来これらの項目を定義したことにより、衝突が生じたり互換性が失われたりしても、インテルは一切責任を負いません。この情報は予告なく変更されることがあります。この情報だけに基づいて設計を最終的なものとしないでください。
本資料で説明されている製品には、エラッタと呼ばれる設計上の不具合が含まれている可能性があり、公表されている仕様とは異なる動作をする場合があります。現在確認済みのエラッタについては、インテルまでお問い合わせください。
最新の仕様をご希望の場合や製品をご注文の場合は、お近くのインテルの営業所または販売代理店にお問い合わせください。
本資料で紹介されている資料番号付きのドキュメントや、インテルのその他の資料を入手するには、1-800-548-4725 (アメリカ合衆国) までご連絡いただくか、インテルの Web サイトを参照してください。
性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、他の製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。
本資料に含まれるソフトウェア・ソース・コードはソフトウェア・ライセンス契約に基づいて提供されるものであり、その使用および複製はライセンス契約で定められた条件下でのみ許可されます。
Intel、インテル、Intel ロゴ、Ultrabook は、アメリカ合衆国およびその他の国における Intel Corporation の商標です。
© 2012 Intel Corporation. 無断での引用、転載を禁じます。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。