8

アプリがARM用にコンパイルされたときに、VMWareのAndroid x86でアプリがどのように機能するかを理解しようとしています。GUI は Qemu で実行されていますか? Android x86 が本当に x86 である場合、それらはどのように正確に実行されますか?

4

4 に答える 4

8

intel は、arm 命令を x86 に変換するライブラリ (「libhoudini」) をリリースしました。次に、x86 CPU で実行されます。

于 2014-02-18T08:52:17.913 に答える
5

まず最初に、Android アプリ (純粋な Java) は実際には「ARM 用にコンパイルされていません。Java アプリが中間Java バイトコードにコンパイルされて JVM をサポートする任意のプラットフォームで実行されるように、Java で記述された Android アプリはDalvikバイトコードにコンパイルされます」 Dalvik VM をサポートする任意のプラットフォームで実行する. この点で、Android アプリが x86 または ARM または MIPS を実行する方法は、x86、SPARC、POWER などで Java アプリを実行する方法と似ています.

もちろん、アプリにネイティブ コードが含まれている場合、x86 エミュレーターまたは実際の x86 スマートフォン/タブレットで実行するには、アプリに x86 のサポートを含める必要があります。

質問の 2 番目の部分については、Android の OS 部分が x86 プラットフォームにコンパイルされていることを思い出してください。したがって、x86 コンピューターで x86 Android を実行することは、VM で Windows を実行することとまったく同じであると想定します。 OSXを使用。

于 2013-08-09T13:01:18.250 に答える
4

アプリケーションに ARM ネイティブ コードが含まれている場合、 Android x86 フォーク "AndroVM" (公式サイトはもう存在しません。誰かがファイルをミラーリングしています) は ARM エミュレーションを行いました。

私の知る限り、Android x86 の公式バージョンは ARM エミュレーションを行いません。ネイティブ ARM コードを使用するアプリはすぐにクラッシュします。

Genymotion (AndroVM の続編) は、デフォルトでは ARM をエミュレートしません。ただし、ARM エミュレーションを追加する非公式のハックがあります。

于 2013-11-22T11:25:48.510 に答える