Odpowiedzi:
.dex
Plik 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.
.odex
Plik jest zoptymalizowany .dex
plik (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 .odex
plik, 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 .odex
wyobrażam sobie , że mogą bardzo łatwo wstępnie skompilować pliki. Jako dodatkowy bonus utrudnia pobieranie .apk
plikó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 .odex
pliki, które są zewnętrzne względem .apk
plików. „Deodeksowana” pamięć ROM to taka, w której dane, które zostałyby zoptymalizowane w .odex
plikach, zostały mniej więcej scalone z powrotem w .apk
pliki (co oznacza, że nie jest zoptymalizowane, ale w zasadzie .apk
niezależne od platformy), dlatego pliki są niezależne i nie ma .odex
plików . Zwykle odbywa się to za pomocą narzędzia deodeksującego, takiego jak smali / baksmali .
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:
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ć :)
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ść
Niekorzyść