Jaka jest różnica między ROM odexed a deodexed ROM?


Odpowiedzi:


39

.dexPlik jest po prostu skompilowany kod bajtowy wersja z aplikacją, który został zbudowany dla Dalvik VM, które aplikacje Android prowadzony dalej. Wydaje mi się, że jest to skrót od Dalvik Executable, ale nie jestem pewien, czy dobrze to pamiętam.

.odexPlik jest zoptymalizowany .dexplik (stąd „o”), co oznacza, że w zasadzie już skompilowane dla konkretnej platformy. Zaletą tego jest to, że czas uruchamiania jest znacznie szybszy, ponieważ maszyna wirtualna nie musi przeprowadzać żadnej optymalizacji podczas uruchamiania / uruchamiania. Wady to: 1) Zajmuje trochę miejsca i 2) Aplikacja odexed nie będzie działać poprawnie, jeśli zostanie umieszczona na innym urządzeniu i musi mieć powiązany .odexplik, aby mogła w ogóle działać.

ROM-y są zazwyczaj wydawane w formie deodeksowanej, ponieważ można je dość łatwo modyfikować tematycznie i modyfikować, podczas gdy modyfikowanie / modyfikowanie odeksowanej pamięci ROM jest w zasadzie niemożliwe (w najlepszym wypadku mogłoby to doprowadzić do szaleństwa). Niektóre osoby decydują się również na wydanie swoich ROMów w wersjach odexed dla osób, które wolą wzrost wydajności.

Zakładam, że większość standardowych ROM-ów jest odexed, ponieważ przewoźnicy / producenci chcą zwiększenia wydajności. Nie mają też żadnych oficjalnych metod tematycznych, więc prawdopodobnie nie obchodzi ich, czy nie można zmienić kolorów ikon stanu, tekstu systemowego ani nic takiego. Ponadto mają tę zaletę, że wiedzą, na jakim urządzeniu mają działać ich system, więc .odexwyobrażam sobie , że mogą bardzo łatwo wstępnie skompilować pliki. Jako dodatkowy bonus utrudnia pobieranie .apkplików z urządzenia i udostępnianie ich innym osobom.

Edycja: Ponieważ właśnie zdałem sobie sprawę, że nie powiedziałem zbytnio o różnicy - ROM „odexed” to taki, w którym aplikacje zostały wstępnie skompilowane, a zatem zawierają powiązane .odexpliki, które są zewnętrzne względem .apkplików. „Deodeksowana” pamięć ROM to taka, w której dane, które zostałyby zoptymalizowane w .odexplikach, zostały mniej więcej scalone z powrotem w .apkpliki (co oznacza, że ​​nie jest zoptymalizowane, ale w zasadzie .apkniezależne od platformy), dlatego pliki są niezależne i nie ma .odexplików . Zwykle odbywa się to za pomocą narzędzia deodeksującego, takiego jak smali / baksmali .


Ostatnia edycja, która uściśliła sprawę, była bardzo przydatna. +1
rbrito,

7

Osobiście chciałem poznać odpowiedź na to chwilę temu. Oto, co wymyśliłem:

Odexed i Deodexed

Standardowa pamięć ROM ma zostać wydana w celu wydania, co zapewnia płynniejsze i szybsze ładowanie aplikacji do pamięci. Każdy plik .apk ma odpowiedni kod .odex. Gdy aplikacja jest używana przez system lub użytkownika, plik .odex służy do rozpoczęcia ładowania aplikacji. Dezodeksowana pamięć ROM ma tylko plik apk. Gdy aplikacja jest wywoływana do pamięci tylko z pobierania danych z pliku .apk, trwa to dłużej, ponieważ nie jest zoptymalizowana w celu łatwiejszego pobrania z systemu.

Często zadawane pytania, o które często zadaję, to:

  1. Dlaczego niestandardowa pamięć ROM jest deodeksowana?
  2. Czy powinienem używać ROM odexed czy deodexed?

Aby odpowiedzieć na te pytania, sprowadza się do jednego słowa: tematyczności. Jeśli porozmawiasz z kimkolwiek z tematycznych ROM-ów, powiedzą ci, że niezwykle łatwo jest stworzyć motyw zododeksowanej pamięci ROM. Odkąd zaczęliśmy korzystać z deodeksowanych pamięci ROM, osoby te mogą teraz tworzyć motywy do zastosowania na ROM, zamiast żmudnej opcji motywowania samej pamięci ROM (zwolnij niestandardową pamięć ROM dla motywu). Jeśli użyjesz odexowanej pamięci ROM i spróbujesz zastosować motywy, nie będzie to działało lub będzie to tylko motyw wizualny, który da ci straszny interfejs użytkownika.

Deodex Cons

Założę się, że teraz zastanawiasz się, dlaczego ... dlaczego istnieje nawet opcja pobrania niestandardowej pamięci ROM, która jest odexed? Odpowiedzią na to jest prędkość. Pamiętasz, jak powiedziałem, że pliki odexed są zoptymalizowane pod kątem łatwiejszego pobierania? Po prostu… jest zoptymalizowany (jak indeksowanie tabeli danych), aby system mógł szybciej otworzyć .apk.

Deodex i zipalign

Wszyscy chcieli tego, co najlepsze z obu światów, tak szybko po tym, jak trend deodeksacji zaczął się szczytować, a ci doświadczeni programiści ROM wymyślili rozwiązanie pozwalające na skompresowanie kodu podczas uruchamiania. To optymalizuje każdy plik .apk przy każdym ponownym uruchomieniu, co pozwala systemowi uzyskiwać dostęp do aplikacji bardziej wydajnie, a co najważniejsze, szybciej. Oczywiście wadą jest nieco wolniejszy czas uruchamiania.

Podsumowanie

Jeśli masz wybór, aby pobrać niestandardową pamięć ROM odexed lub deodexed, po prostu pójdę z deodex ROM. Nigdy nie wiadomo, kiedy chcesz wypróbować motyw lub samodzielnie wprowadzić modyfikacje i fajnie jest mieć proste opcje zamiast flashować całą nową pamięć ROM. W nowszych urządzeniach możesz nawet nie zauważyć zauważalnej różnicy w zipalign podczas uruchamiania. Jeśli twoje urządzenie jest dość powolne i przestarzałe, to proponuję zastanowić się nad tym trochę trudniej. Założę się, że niektórzy z was woleliby uzyskać ładną, minimalnie zoptymalizowaną (odexowaną) pamięć ROM, aby uzyskać lepszą wydajność i szybkość niż dostosowywanie interfejsu użytkownika.

Jeśli jesteś nowym tematem, możesz znaleźć niektóre popularne warunki znajdujące się w moim oryginalnym piśmie tutaj: http://codeversed.com/deodexed-vs-odexed-rom

W przeciwnym razie powyższe pokazuje wszystko, co musisz wiedzieć. Jeśli coś przeoczyłem, daj mi znać :)


1

Plik .dex (plik wykonywalny dalvik) jest zasadniczo podobny do plików .exe systemu Windows (z wyjątkiem języka Dalvik VM, zamiast skompilowanego kodu). Zasadniczo .odex (zoptymalizowany plik wykonywalny dalvik) i deodex (zoptymalizowany plik wykonywalny dalvik) dotyczy sposobu obsługi plików zasobów w aplikacjach. .Odex to plik .dex zoptymalizowany przez program dexopt: http://www.netmite.com/android/mydroid/dalvik/docs/dexopt.html

Korzyść

  • odex jest szybszy
  • ułatwia tworzenie motywów

Niekorzyść

  • deodex działa wolniej przy pierwszym uruchomieniu
  • pliki .odex utrudniają ich motywowanie

„Deodex” nie oznacza dezoptymalizowanego pliku .dex, oznacza usunięcie plików .odex (w zasadzie dezinstalacja plików .odex). Eldarerathis ma rację.
Mateusz

Dziękujemy za przekazanie krytycznej informacji o odexingu na temat zasobów! To powiedziawszy: porównanie exe nie jest świetne.
Paul
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.