Gingerbreadエミュレータインスタンスは、Froyo以下よりもはるかに遅くなっています。なんで?
-
09-10-2019 - |
質問
他の誰かがそれに気づいたかどうかはわかりませんが、ジンジャーブレッドエミュレーターは犬のように走り、両方のスクロール、ナビゲーション、相互作用があります - すべてがずっと長く、よりチュピアです。ブラウザでANRを使用してもらいました。 http://www.androidpolice.com/2010/12/06/walkthrough-dands-でgingerbread-ui-the-new-gingerbread-keyboard-in-its-sexiness/ (下に向かって参照)。
新しいStrictModeについて読んだばかりです http://android-developers.blogspot.com/2010/12/new-gingerbread-api-strictmode.html そして、Gbreadのすべてのパフォーマンスの改善についてですが、これまでの私の経験は逆のことを示唆しています。
これの底に到達できますか?この時点でジンジャーブレッドのインスタンスを育てることを恐れています。
解決
上記のすべての回答にはメリットがあり、考慮される必要がありますが、デバイスをシミュレートするための仮想マシンのGoogle実装は、MicrosoftやAppleのものほど良くないかもしれませんが、構成を最適化することができるが、できることはあまりないかもしれませんより良いマシンを手に入れます。
Honeycombの導入により、Androidシステムはより多くのグラフィックパワーを使用してUIのレンダリングを行います。これは、シミュレーターで実行すると、PCハードウェアのグラフィカルパワーをネイティブに使用できませんが、電話でハードウェアをエミュレートして、常にパフォーマンスが失われます。 VMwareなど、より一般的なX86エミュレーターが利用可能になりましたが、Android SDKが利用できるようになるには時間がかかる場合があります。ネイティブGPUを利用できるX86ポートオブアンドロイドハニカムが利用可能になるまで、エミュレータは遅くなります。
唯一の本当の解決策は、開発作業のためにハニカムデバイスを購入することです。
他のヒント
新しいジンジャーブレッド(APIレベル9)AVDを作成するとき、現実的な量のRAMを与えます。
たとえば、Nexus Sには512MBがあります
これを「新しいAndroid仮想デバイス(AVD)」ダイアログで行います。
「new ...」を押して、新しいハードウェアパラメーターを追加し、「デバイスRAMサイズ」を選択し、[OK]をクリックします。
デフォルトの金額を96から512に編集します。
エミュレータパラメーターがうまくセットアップされていないことを示唆する他の場所でこれについて議論しました。エミュレータにさらにメモリを与えると、明らかにはるかに使いやすくなります。
AVDを簡単に編集できるようになったので、ジンジャーブレッドAVDの設定のいくつかをいっぱいにしてみましたが、ついにかなり使いやすくなりました。
- SDカード:500mib
- スキン:WVGA800
- 抽象化されたLCD密度:240
- キャッシュパーティションサイズ:128MB
- 最大VMアプリケーションヒープサイズ:48
- デバイスRAMサイズ:512
私の推測では、RAMとMax VMヒープが最も重要なものですが、すべての設定を含める方が良いと思いました。
私の提案:
必要な場合にのみSDカードを添付してください。これは何らかの形でエミュレートする必要があります。
他のプロパティは、ターゲットデバイスを超えて膨らませるべきではありません。 VMアプリケーションヒープサイズを増やし、実際のデバイスの値を超えると、開発中に気付かなかったクラッシュが発生します。
確かに、デフォルトでは特定のアプリケーションには十分ではなく、デバイスRAMはターゲットAndroidデバイスの制限に対して少なくとも258である必要があります。また、開発ホストマシンのメモリが低い場合、エミュレータに割り当てられたメモリを交換し、少量を提供すると不必要なページヒットを回避する必要があります。
画面の解像度を変更した後、デバイスはデバイスを「ウォームアップ」し、新鮮な新しいハードウェアで実行して、ハニカムエミュレータの速度を記録しました。
結果: http://www.youtube.com/watch?v=-7or8vpsiak
古いハードウェアのジンジャーブレッドとはあまり違いはありません。ホスト加速GLがすぐにSDKへの道を見つけることを願っています。今のところ、平易な開発が可能かもしれませんが、UXの作成またはデモは不可能です。