Pytanie Instancja emulatora piernika jest znacznie wolniejsza niż Froyo i poniżej. Czemu?


Nie jestem pewien, czy ktoś inny to zauważył, ale emulator Piernika działa jak pies, zarówno z przewijaniem, nawigacją, interakcją - wszystko trwa znacznie dłużej i jest o wiele bardziej przerażające. Dostałem nawet ANR w przeglądarce, gdy próbowałem go użyć: http://www.androidpolice.com/2010/12/06/walkthrough-and-hands-on-with-gingerbread-ui-the-new-pingerbread-keyboard-in-all-its-sexiness/ (patrz na dole).

Właśnie czytałem o nowym StrictMode na http://android-developers.blogspot.com/2010/12/new-gingerbread-api-strictmode.html i o wszystkich ulepszeniach wydajności w Gbread, ale moje dotychczasowe doświadczenia sugerują wręcz przeciwnie.

Czy możemy dojść do sedna tego? W tym momencie obawiam się, że podniosłem przykład Piernika.


12
2017-12-13 19:08


pochodzenie




Odpowiedzi:


Wszystkie powyższe odpowiedzi mają swoje zalety i powinny być brane pod uwagę, ale pamiętaj, że implementacja Google maszyny wirtualnej do symulacji urządzeń nie jest tak dobra, jak w przypadku Microsoftu i Apple, ale może nie być wiele, ale możesz zoptymalizować konfigurację i zdobycie lepszej maszyny.

Wraz z wprowadzeniem Honeycomb, system Android wykorzystuje więcej mocy graficznej do renderowania interfejsu użytkownika. To podczas pracy na symulatorze nie może natywnie wykorzystać mocy graficznej sprzętu komputerowego, ale większość emuluje sprzęt w telefonie, co zawsze powoduje utratę wydajności. Udostępniono bardziej typowe emulatory X86, takie jak VMWare, ale może to zająć trochę czasu, zanim będzie dostępne w pakiecie SDK systemu Android. Dopóki port X86 z Androidem Honeycomb nie będzie mógł korzystać z twojego natywnego GPU, emulator będzie powolny.

Jedynym realnym rozwiązaniem jest zakup urządzenia Honeycomb do prac rozwojowych.


2
2018-05-03 16:20



Prawdopodobnie musisz go wykorzenić, aby ułatwić robienie rzeczy, które robią programiści, a tym samym unieważnienie gwarancji. - Alan B
Nie polecałbym kupować żadnych urządzeń Samsung do programowania, chyba że ma to Android Vanilla, nie będą one kontynuować obsługi urządzenia - Doug Molineux


Podczas tworzenia nowego pliku AVD GingerBread (poziom API 9), daj mu realistyczną ilość pamięci RAM.

Na przykład Nexus S ma 512 MB

Robisz to w oknie dialogowym "Stwórz nowe urządzenie wirtualne Android (AVD)".

Naciśnij "Nowy ...", aby dodać nowy parametr sprzętu i wybierz "Rozmiar pamięci urządzenia", kliknij OK.

Edytuj domyślną wartość z 96 do 512.


2
2018-01-03 01:21



Jak już wspomniano w dyskusji Brada Fitzpatricka, to ustawienie nie robiło różnicy. - Artem Russakovskii
Jeśli czytasz uważnie, Brad omawia "Maksymalny rozmiar sterty aplikacji VM". Mówię o "wielkości urządzenia pamięci", która jest zupełnie inną właściwością. To zadziałało dla mnie. W przeciwnym razie domyślna wartość 96 Mb nie wystarczy do uruchomienia zadań w tle. - byeo
Nie robiło mi to żadnej różnicy, może mój komputer potrzebuje więcej pamięci RAM, chociaż 4 GB byłoby wystarczające. - Doug Molineux
Całkowita wartość pamięci RAM miałaby znaczenie tylko wtedy, gdy faktycznie skończyłaby się ona, a Android zaczął zabijać zadania w tle, a następnie ponownie je uruchamiać. Wydajność emulatora jest wolna po wyjęciu z pudełka - pamięć nie ma z tym nic wspólnego. - Artem Russakovskii


Widziałem dyskusję na ten temat gdzie indziej, który sugerował, że parametry emulatora nie były dobrze skonfigurowane. Jeśli nadasz emulatorowi więcej pamięci, najwyraźniej staje się on znacznie bardziej użyteczny.


1
2017-12-13 19:23



Co masz na myśli mówiąc "daj więcej pamięci"? - Randy Sugianto
@uuku podczas tworzenia AVD można przypisać mu ilość pamięci RAM - bigstones
Czy masz na myśli opcję "Maksymalny rozmiar sterty aplikacji VM" podczas tworzenia AVD? Jeśli tak, to jaki powinien być? - Artem Russakovskii
Domyślne ustawienie to 24, więc ustawiłem je na 128. Nie widzę żadnej różnicy - wydajność jest nadal wolna od psa. Czy poprawiam złą wartość? - Artem Russakovskii
@Artem to "Rozmiar pamięci urządzenia". - Josh Lee


Teraz, kiedy możesz łatwo edytować AVD, próbowałem grać z niektórymi ustawieniami dla mojego Gingerbread AVD, i wreszcie jest całkiem użyteczny.

  • Karta SD: 500 MB
  • Skórka: WVGA800
  • Pogorszona gęstość LCD: 240
  • Rozmiar partycji pamięci podręcznej: 128 MB
  • Maksymalna wielkość sterty aplikacji VM: 48
  • Rozmiar urządzenia: 512

Domyślam się, że pamięć RAM i maksymalna sterty VM są najważniejsze, ale pomyślałem, że lepiej będzie uwzględnić wszystkie ustawienia, więc możesz wypróbować je jako punkt wyjścia, a następnie dostosować.


1
2018-01-28 01:38



Wypróbowałem te dokładne ustawienia - żadna widoczna różnica dla mnie. - Artem Russakovskii
Zmiana wielkości sterty aplikacji MAX VM na 500 nie jest zbyt odpowiednia. Oznacza to, że każda aplikacja może wykorzystywać do 500 MB danych. Do niedawna maszyna wirtualna Delvic mogła obsługiwać tylko mniej niż 48 MB. O ile mi wiadomo urządzenie o największym budżecie VM to Xoom i uważam, że ma 48 MB. Również pojedyncza aplikacja nie powinna mieć możliwości korzystania ze wszystkich zasobów urządzenia z systemem Android. Pamiętaj też, że są inne aplikacje. Wiem, że aplikacja Android Services wymaga około 50 MB, a inny natywny sprzęt / procesy potrzebują fragmentu tego RAM-a. - ddcruver
@ddcruver dzięki za połowu; to był literówka, która powinna wynosić 50, ale 48 ma sens, jeśli właśnie tego używa Xoom. Zaktualizuję moją odpowiedź. - Ian G. Clifton


Moje sugestie:

Dołączaj tylko kartę SD, jeśli jej potrzebujesz i najprawdopodobniej nie przydzielaj więcej, niż potrzebujesz. To musi być naśladowane w pewien sposób.

Żadne inne właściwości nie powinny być nadmuchiwane poza urządzenie docelowe. Zwiększenie wielkości sterty aplikacji VM i przekroczenie wartości rzeczywistych urządzeń spowoduje awarie, których nawet nie zauważyliście podczas programowania.

Wprawdzie wartości domyślne nie są wystarczające dla niektórych aplikacji, a pamięć urządzenia powinna wynosić co najmniej 258 do granic docelowego urządzenia z systemem Android. Należy również pamiętać, że jeśli w maszynie programującej jest mało pamięci, pamięć przydzielona do emulatora będzie musiała zostać zamieniona, a mniejsza ilość pozwoli uniknąć niepotrzebnych odwiedzin strony.


0
2018-03-01 21:37





Po zmianie rozdzielczości ekranu, ramce urządzenia, pozwalającej urządzeniu "rozgrzać się" i uruchomieniu nowego świeżego sprzętu, nagrałem prędkość emulatora Honeycomb.

Wynik na: http://www.youtube.com/watch?v=-7OR8vPsIak

Uważam, że nie różni się to od Gingerbread na starszym sprzęcie. Mam nadzieję, że przyspieszony przez hosta GL wkrótce trafi do SDK. Na razie możliwy jest prosty rozwój, ale tworzenie lub demo UX jest niemożliwe.


0
2018-04-24 08:35