既存のアプリと将来のAndroid x86デバイス

間もなく、x86アーキテクチャに基づく新しいスマートフォンとタブレットが市場に登場します。LenovoとMotorolaは、そのようなデバイスを生産する計画をすでに発表しています。 新しいプラットフォームはソフトウェア開発者に何をもたらしますか? この記事でこれについてお話したいと思います。



しかし、最初に、「鉄」の製造業者の計画と意図の真剣さについて少し。



今年、CES 2012で、Intelは最初のx86ベースのAndroidスマートフォンを披露しました。 このスマートフォンは「アトミック」です Metfieldモバイルプラットフォームで実行され、Atom Z2460チップを使用します。



このスマートフォンは本質的にプロトタイプであるという事実にもかかわらず、性能とエネルギー効率のテストで良好な性能を実証し、現在市場に出回っているスマートフォンのトップモデルよりも実際に劣っていません。











上のグラフでは、3Gを使用し、オーディオとビデオを再生するときのエネルギー効率のテスト結果。 青は、メットフィールドに基づくスマートフォンの作業結果を示します。 一番下は、パフォーマンステストの結果です。 グラフからわかるように、Medfieldはすべてのテストで最高のパフォーマンスを発揮します。



プロトタイプのプロトタイプですが、実際のデバイスはどうですか? そこでCESで、Lenovoはx86アーキテクチャに基づく最初のAndroidスマートフォンであるLenovo K800を発表しました。 このユニットはMedfieldプラットフォームで動作し、プロセッサのクロック周波数は1.6 GHzで、4.5インチのディスプレイと8メガピクセルのカメラを備えています。 デモンストレーションされたモデルはAndroidバージョン2.3に基づいて動作しますが、製造元はリリースの時点でデバイスがAndroid 4.0で動作することを約束しています。











レノボ初のK800 Androidスマートフォンが2012年第2四半期に市場に登場します。



モトローラはまた、x86アーキテクチャに基づくAndroidデバイスをリリースする計画を発表し、Intelと複数年のパートナーシップ契約を締結しました。 モトローラは、2012年第2四半期にも最初のAtomベースのデバイスを導入する予定です。



パフォーマンスに加えて、Medfieldプラットフォームに基づくモバイルデバイスは、NFCおよびWiDiテクノロジーの可用性によって区別されます。 最初のテクノロジーがすでにスマートフォン市場に参入している場合、2番目のテクノロジーはAndroidデバイスに固有のものです。



WiDiは、現代のラップトップやウルトラブックで既に使用されており、新しいスマートフォンで画像を表示したり、ビデオを表示したり、大画面でゲームをプレイしたりできます。 たとえば、WiDiテクノロジーを使用するテレビ、またはWiDiアダプターに接続されているテレビ。



発表された計画から判断すると、デバイスの最初の波は2012年の第2四半期に登場します。 消費者の観点から見ると、これらはパフォーマンス、エネルギー効率、WiDiなどの多くの特徴的な機能を備えた新しいデバイスになります。 開発者の観点からは、新しいハードウェアプラットフォームが追加され、場合によっては、既存のアプリケーションを新しいプラットフォームに適合させる必要があります。



適応が必要になるのはいつですか? この質問に答える前に、Androidアプリケーションを作成する方法を簡単に見てみましょう。



すべてのAndroidアプリケーションは、 DalvikアプリケーションとNDKを使用するアプリケーションの2つのタイプに分類できます。



Dalvikは、Androidプラットフォームの一部である仮想マシンです。 Dalvikを使用すると、Javaで記述されたアプリケーションを実行および実行できます。



NDKは、アプリケーションでC \ C ++で記述されたライブラリを作成および使用できるツールのセットです。 たとえば、(完成した作業を失わないように)別のプラットフォーム用に作成された既製のC ++コードを使用する必要がある場合、アプリケーションのパフォーマンスを改善する必要がある場合(Dalvikがどれほど優れていても、「ネイティブ」コードを失う場合)、NDKに頼らなければなりませんパフォーマンスの問題)。



アプリケーション開発者であれば、アプリケーションがNDKライブラリを使用しているかどうかを判断することは難しくありません。 アプリケーションをサイドから取得した場合、アプリケーションがNDKライブラリを使用しているかどうかを判断するには、任意のアーカイバー(7-Zipなど)を使用してアプリケーションのAPKファイル(基本的にZIPアーカイブ)を開き、 libサブディレクトリの存在を確認する必要があります













ある場合、内部サブディレクトリの名前は、さまざまなハードウェアプラットフォーム用のNDKライブラリの存在を示します。













Androidマーケットで利用可能なAPK情報ユーティリティを使用することもできます。 このユーティリティを使用すると、インストールされているアプリケーションのリストを表示して、NDKライブラリの存在に関する情報などの情報を取得できます。











新しいプラットフォームの登場で何が起こるでしょうか? Dalvikアプリケーションの場合、何も変更されません。 それらは仮想マシン上で動作し、新しいハードウェアアーキテクチャ上でこのマシンの互換性と可用性を確保することは、Dalvik開発者のタスクです。



実際、多くのNDKアプリケーションでは、何も変わりません。 アーキテクチャが新しくなるという事実にもかかわらず、ほとんどのNDKアプリケーションは違いに気付かないでしょう。 その理由は、CES 2010でIntelによって発表および実証されたバイナリトランスレータです。トランスレータの意味は単純です。x86コードのARMコードを解釈し、新しいアーキテクチャとのアプリケーション互換性を保証します。



トランスレータはx86アプリケーションの互換性の問題を解決し、NDK開発者は新しいハードウェアプラットフォームのサポートを追加することを考慮する必要はありません。 一方、開発者が新しいプラットフォームのすべてを「絞り込み」、パフォーマンスとエネルギー消費の点で効率的なアプリケーションを作成することに興味がある場合は、アプリケーションに新しいアーキテクチャのサポートを追加する必要があります。



幸いなことに、これは非常に簡単です。 x86プラットフォームのサポートは、 Android NDK 6のリリースでNDKに昨年登場しました。



最初に行うことは、Android NDKバージョン6以降がインストールされていることを確認することです。 公式ページでAndroid NDKの最新バージョンをダウンロードできます



次に、ライブラリを構築するためのmakeファイルにアセンブリの新しいターゲットを追加する必要があります。 通常、このファイルには次のようなものが書き込まれます。



APP_ABI := armeabi armeabi-v7a
      
      





X86をこの行に追加する必要があります。



 APP_ABI := armeabi armeabi-v7a x86
      
      





最新のAndroid NDK 7のバージョンで 、新しいパラメーターが追加されました-all

指定することで、サポートされているすべてのハードウェアプラットフォーム用のアプリケーションをビルドできます。



 APP_ABI := all
      
      





ライブラリをアセンブルした後、それらをAPKファイルに含め、Androidマーケットでアプリケーションパッケージを「リロード」する必要があります。



開発者は、x86番目のプラットフォーム用にアプリケーションの別個のバージョンを作成する必要はありません。 既存のインストールパッケージにx86のライブラリを含めることができるため、1つのパッケージとすべてのハードウェアプラットフォームの互換性を確保できます。



Androidマーケットアプリケーションのコントロールパネルで変更を加える必要もありません。 Android Marketは、アプリケーションとターゲットプラットフォームの互換性をチェックします。



All Articles