webdevqa.jp.net

Android Linuxでのエミュレーターのパフォーマンス

Android SDKとEclipseプラグインをラップトップにインストールしましたが、エミュレーターがCPUコアの1つを100%消費していることに驚きました。まったく同じセットアップを使用しています。この問題が発生していないデスクトップマシン。両方のコンピューターがArchLinuxを実行しており、両方とも昨日更新されました。

確かに、デスクトップはラップトップよりも優れたハードウェアを備えていますが、ラップトップの100%よりも50%のCPU使用率に近づくと予想していました。

両方のAndroid仮想デバイスの仕様は同じです:

CPU: ARM
Target: Android 2.3.3 - API Level 10
Skin: WVGA800
SD Card: 512M
hw.lcd.density: 240
vm.heapSize: 24
hw.ramSize: 256

ラップトップホストには、2GbRAMを搭載したIntelCore 2 T7200 @ 2GHzcpuが搭載されています。
デスクトップホストには、8GbRAMを搭載したAMDPhenom II X4 940 @ 3GHzcpuが搭載されています。

Androidエミュレーターは1つのコアのみを使用し、CPU使用率の結果は次のとおりです。
ラップトップ:

Cpu0  : 22.8%us, 76.5%sy,  0.0%ni,  0.3%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Cpu1  : 11.2%us,  2.4%sy,  0.0%ni, 86.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2055484k total,  1860304k used,   195180k free,     5276k buffers
Swap:  2000088k total,   106872k used,  1893216k free,   350780k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                       
 2026 xyz       20   0  396m 207m 7192 R  100 10.3   4:11.58 emulator-arm    

デスクトップ:

Cpu0  :  0.7%us,  0.0%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  1.3%us,  0.0%sy,  0.0%ni, 98.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  5.0%us,  1.3%sy,  0.0%ni, 91.9%id,  1.7%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  0.3%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   7666324k total,  6506808k used,  1159516k free,  1650960k buffers
Swap:  8988348k total,        0k used,  8988348k free,  2867300k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                            
 2811 xyz       20   0  392m 220m 6276 S    8  2.9   0:33.58 emulator-arm     

ラップトップでエミュレータのパフォーマンスを向上させる方法はありますか?

[更新] Win7で同じラップトップで同じ設定でエミュレーターを実行しましたが、起動後、Linuxとは異なりCPUコアを100%使用しませんでした。また、Linuxのターミナルからエミュレーターを実行しようとしましたが、デスクトップのLinuxホストでエミュレーターを取得できないと次のメッセージが表示されます。

'/ dev/hpet'に1024Hzタイマーを設定できませんでした。これは致命的なエラーではありませんが、エミュレーションの精度を高めるために、次のように入力します。'echo1024>/proc/sys/dev/hpet/max-user-freq 'asroot。

私はrtcやhpetにあまり詳しくありませんが、max-user-freq設定は何もしないようですが、それでも同じ警告が表示されます。

2
Rado

Androidエミュレーターのパフォーマンスを向上させる方法はたくさんあります。最初の最も簡単な方法は、RAMを増やし、スナップショットを有効にすることです

Android AVD snapshot

高解像度とは関係のないことをしていないときは、解像度を下げてみることもできます。

ただし、最も効果的な方法は、Intelx86イメージをダウンロードすることです。 CPUが仮想化(VT)をサポートしている場合は、 Intel HAXM もインストールすると、パフォーマンスがさらに向上します。

Android Intel x86 image

また、仮想マシンで Android x86 (tutorial here )を試して、wifiを介した実際のデバイスでのデバッグのようにadb connect IPコマンドを使用することもできます。

adb connect

adb connect term

1
phuclv

お使いのAMDプロセッサは、おそらくあなたが思っている以上にIntelを上回っています。ラップトップで実行しているときに小さいディスプレイサイズをエミュレートしてみるか、 [〜#〜] nx [〜#〜] などを使用してデスクトップでエミュレータをリモートで実行することを検討してください。

Androidのx86ポートもあります(エミュレートされるのではなく仮想マシンで実行される場合)が、私はそれらを使用した経験がありません。

1
jjlin