- Далвик је радио користећи JIT компилацију, преводећи код док је апликација радила.
- ART оптимизује систем коришћењем AOT компилације, извршавајући процес током инсталације.
- Оба окружења користе DEX формат датотеке, што обезбеђује компатибилност између верзија.
- Прелазак на ART је смањио потрошњу батерије и побољшао флуидност система.
Ако сте се икада запитали шта се заправо дешава „испод хаубе“ вашег телефона када отворите апликацију, одговор лежи у окружењу за извршавање. У Андроид екосистему, прешли смо са архитектуре засноване на виртуелној машини Далвик на много робуснији систем назван Андроид Рунтиме, познатији као АРТ. У суштини, АРТ је одговоран за превођење кода који програмери пишу у инструкције које хардвер вашег уређаја може да разуме без пада система.
Да бисте ово разумели, важно је знати да Андроид не покреће Јаву изворно; уместо тога, користи прилагођену адаптацију . Све почиње са изворним кодом, који се трансформише у бајткод и завршава у одређеном формату који се зове DEX. У зависности од тога да ли је ваша верзија Андроида старија или новија, пут којим се овај код извршава драстично се мења, утичући на свакодневне ствари попут трајања батерије и брзине учитавања апликација.
Наслеђе Далвика: Ера „тачно на време“
Далвик је био фундаментални стуб од самог почетка Андроида. Његов циљ је био јасан: да омогући апликацијама написаним у Јави да раде на уређајима са веома ограниченим ресурсима . За разлику од стандардне Јава виртуелне машине, Далвик је био оптимизован да користи мање меморије и покреће више инстанци истовремено, делегирајући управљање нитима Линукс кернелу.
Далвик-ова кључна карактеристика била је компилација „Just-In-Time“ (JIT) . То је значило да је код превођен у машински језик тачно када је корисник интераговао са апликацијом. Да би избегао понављање овог заморног задатка сваки пут, Далвик је креирао датотеке под називом ODEX (Оптимизовани DEX) , које су већ преведене делове чувале у кешу. Проблем је био у томе што је овај стални процес компилације трошио циклусе процесора и, самим тим, користио више енергије.
Андроид Рунтиме (АРТ): Скок ка испред времена
Почевши од Андроида 5.0 Лолипопа, ART је потпуно преузео контролу. Велика разлика је у томе што ART имплементира AOT (Ahead-Of-Time) компилацију . Уместо да чека да отворите апликацију, ART обавља тешки посао током инсталације. Користи алат под називом dex2oat за конвертовање DEX датотека у ELF (Executable and Linkable Format) извршне датотеке, које су изворне за Linux.
Захваљујући овом приступу, када додирнете икону апликације, систем не мора ништа да компајлира; једноставно чита ELF датотеку и извршава је. То значи да процесор ради мање, батерија дуже траје и да апликације раде много глађе. Међутим, постоји мали компромис: инсталација апликација траје мало дуже и заузимају више простора за складиштење него код Далвика.
Техничко поређење и кључна побољшања
Иако су оба окружења компатибилна и покрећу исти DEX бајткод, ART је увео побољшања која систем чине невероватно брзим. Једно од најзначајнијих је сакупљање смећа (GC) . У Dalvik-у, сакупљач смећа је раније изазивао оне досадне паузе или „замуцкивање“ у интерфејсу (озлоглашено кашњење). ART је ово редизајнирао са првенствено конкурентним системом , чинећи паузе независним од количине коришћене меморије.
- Напредно отклањање грешака: ART омогућава програмерима да виде које закључане нити држе и да прате инстанце класа са много већом тачношћу.
- Тачне дијагнозе: Сада, када се апликација сруши, извештаји о грешкама су много детаљнији, посебно у случајевима НуллПоинтерЕкцептион.
- Управљање меморијом: За разлику од Далвика, који је користио кеш меморију која се не може претраживати, ART користи RAM меморију која пагинација је могућа, оптимизујући коришћење хардвера.
Процес паковања: Од кода до APK-а
Да би било које од ових окружења функционисало, код мора проћи кроз производну траку. Прво, Јава компајлер креира .class датотеке, које dex алат затим конвертује у једну classes.dex датотеку. Ова датотека је језгро APK-а и оно што ће ART или Dalvik обрадити.
Алати попут aapt се користе за паковање ресурса, а zipalign оптимизује поравнање података, осигуравајући да процесор приступа меморији што је могуће ефикасније. Када APK стигне до уређаја, дешава се магија: ако постоји ART, генерише се ELF датотека ; ако постоји Dalvik, ODEX датотека почиње да се генерише у ходу.
Занимљиве чињенице о РОМ-овима и процесу декодирања
У свету прилагођених РОМ-ова, термини odex и deodex се често користе . Пошто је ODEX датотека зависна од хардвера и зависи од тачног система на којем је креирана, не може се лако пренети са једног телефона на други. Да би изменили апликацију без пада система, програмери спроводе процес деодексирања , који подразумева интеграцију оптимизоване датотеке унутар APK-а како би се олакшала њена манипулација.
Андроид екосистем је еволуирао од флексибилне, али енергетски интензивне виртуелне машине до оптимизованог окружења за извршавање које даје приоритет корисничком искуству. Док се Далвик фокусирао на свестраност превођења кода у реалном времену, АРТ је максимизирао искоришћење хардвера кроз преткомпилацију , осигуравајући да је софтвер стабилнији, бржи и енергетски ефикаснији.



