МСню

Андроид срСда dalvik ΠΈ art: сравнСниС Dalvik ΠΈ ART / Π₯Π°Π±Ρ€

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

сравнСниС Dalvik ΠΈ ART / Π₯Π°Π±Ρ€

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! Около ΠΏΠΎΠ»ΡƒΠ³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ я ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Β«Π³Π°ΠΉΠ΄Β» ΠΏΠΎ JVM. ΠŸΠΎΡΡ‚, Π² Ρ†Π΅Π»ΠΎΠΌ, зашСл, Π° Π² коммСнтариях спросили, Π½Π΅ планируСтся Π»ΠΈ β€œΡ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΠΏΠΎ андроиду”. НаконСц, Ρƒ мСня дошли Ρ€ΡƒΠΊΠΈ.

Π’ этом постС ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ срСдС выполнСния Π² Android. Π’ частности, я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎ, Π½ΠΎ Π΅ΠΌΠΊΠΎ ΠΈΠ·Π»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Π΅ΠΌ отличаСтся ART ΠΈ Dalvik, ΠΈ ΠΊΠ°ΠΊ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ»ΠΈΡΡŒ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Android. Π’Π΅ΠΌΠ° явно Π½Π΅ новая, Π½ΠΎ, надСюсь, придСтся кстати Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Π½ΠΈΠΊΠ°Ρ‚ΡŒ. ΠšΠΎΠΌΡƒ интСрСсно β€” Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина


Π‘Π½Π°Ρ‡Π°Π»Π°, Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся Ρ‡Π΅ΠΌ отличаСтся JVM ΠΎΡ‚ DVM.

Java Virtual Machine β€” Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина, способная Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Java нСзависимо ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Она опираСтся Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ β€œWrite once, run anywhere”. Π‘Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Java ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° любой машинС, способной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ JVM.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Java ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ .java Ρ„Π°ΠΉΠ»Ρ‹ Π² class-Ρ„Π°ΠΉΠ»Ρ‹ (Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄). Π‘Π°ΠΉΡ‚-ΠΊΠΎΠ΄ пСрСдаСтся JVM, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для исполнСния нСпосрСдствСнно Π½Π° CPU.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ JVM:

  • Π˜ΠΌΠ΅Π΅Ρ‚ ΡΡ‚Π΅ΠΊΠΎΠ²ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ: Π² качСствС структуры Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΡƒΠ΄Π° ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΈ хранятся ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стСк. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ схСмС LIFO ΠΈΠ»ΠΈ β€œLast in β€” First Out” ΠΈΠ»ΠΈ β€œΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ вошСл, ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅Π»β€.
  • ΠœΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ class-Ρ„Π°ΠΉΠ»Ρ‹.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JIT-компилятор.

Dalvik Virtual Machine (DVM) β€” Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Java машина, разработанная ΠΈ написанная Дэном Π‘ΠΎΡ€Π½ΡˆΡ‚Π΅ΠΉΠ½ΠΎΠΌ (Π°Π½Π³Π». Dan Bornstein) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ, ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ мобильной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Android.

МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Dalvik β€” это срСда для выполнСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Android ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ процСсс выполняСтся Π² своём, ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ адрСсном пространствС. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ запускаСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π»ΠΈΠ±ΠΎ опСрационная систСма запускаСт ΠΎΠ΄ΠΈΠ½ ΠΈΠ· своих ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²), ядро Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Dalvik (Zygote Dalvik VM) создаСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ процСсс Π² ΠΎΠ±Ρ‰Π΅ΠΉ памяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ нСпосрСдствСнно разворачиваСтся VM, ΠΊΠ°ΠΊ срСда для запуска прилоТСния. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ Android выглядит ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Dalvik, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… исполняСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ DVM:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π½Π° основС рСгистров: структура Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΡƒΠ΄Π° ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, основана Π½Π° рСгистрах процСссора. Π—Π° счСт отсутствия ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ POP ΠΈ PUSH, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² рСгистровой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ быстрСС Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ стСковой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.
  • Π˜ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ собствСнного Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°: Android dexer (ΠΎ Π½Π΅ΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½ΠΈΠΆΠ΅) ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ class-Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ .dex, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ для выполнСния Π½Π° Dalvik VM. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ class-Ρ„Π°ΠΉΠ»Π°, dex-Ρ„Π°ΠΉΠ» содСрТит сразу нСсколько классов.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ± Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ DVM ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚.

Android Dexer


Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Android Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ процСсс прСобразования Java Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° Π² .dex Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ для Android Runtime являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ шагом Π² создании APK. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ dex Π² основном Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ β€œΠΏΠΎΠ΄ капотом” Π² повсСднСвной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΎΠ½ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° врСмя сборки прилоТСния, Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° .dex ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎ врСмя выполнСния.

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, сам dex-Ρ„Π°ΠΉΠ» содСрТит сразу нСсколько классов. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ строки ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ константы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… классов, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для экономии мСста. Π‘Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Java Ρ‚Π°ΠΊΠΆΠ΅ прСобразуСтся Π² Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ DVM. НСсТатый dex-Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π° нСсколько ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² мСньшС ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ, Ρ‡Π΅ΠΌ сТатый Π°Ρ€Ρ…ΠΈΠ² Java (JAR), ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ· Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² .class.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ, class-Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Π»ΠΈΡΡŒ Π² dex-Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнного DX-компилятора. Но начиная с Android Studio 3.1 ΠΈ Π΄Π°Π»Π΅Π΅, компилятором ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ стал D8. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с DX-компилятором, D8 ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ быстрСС ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ dex-Ρ„Π°ΠΉΠ»Ρ‹ мСньшиС ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€ΠΈ этом обСспСчивая Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прилоТСния Π²ΠΎ врСмя исполнСния. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ dex подвСргаСтся ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ open-source ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ProGuard. Π’ ΠΈΡ‚ΠΎΠ³Π΅, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚ΠΎΡ‚ ΠΆΠ΅ dex-Ρ„Π°ΠΉΠ», Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ мСньшС. Π”Π°Π»Π΅Π΅ этот dex-Ρ„Π°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сборки apk ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, для развСртывания Π½Π° устройствС Android.

Но слСдом Π·Π° D8 Π² 2018 Π³ΠΎΠ΄Ρƒ ΠΏΡ€ΠΈΡˆΠ΅Π» R8, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΏΠΎ сути, являСтся Ρ‚Π΅ΠΌ ΠΆΠ΅ D8, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с дополнСниями.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Android Studio 3.4 ΠΈ Android Gradle 3.4.0 plugin ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, Proguard большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Π²ΠΎ врСмя компиляции. ВмСсто этого ΠΏΠ»Π°Π³ΠΈΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с R8, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам выполняСт Code shrinking, Optimisation ΠΈ Obfuscation. Π₯отя R8 ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ подмноТСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, прСдоставляСмых Proguard, ΠΎΠ½ позволяСт ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ процСсс прСобразования Java Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Π² dex-Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Π΅Π΄ΠΈΠ½ΠΎΡ€Π°Π·ΠΎΠ²ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ большС сокращаСт врСмя сборки.

R8 ΠΈ сокращСниС ΠΊΠΎΠ΄Π°

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, прилоТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Jetpack, Gson, Google Play Services. Когда ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠ΄Π½Ρƒ ΠΈΠ· этих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, часто Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ малая Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π‘Π΅Π· Code shrinking, вСсь ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ сохраняСтся Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π‘Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ читаСмости ΠΈ удобства ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ прилоТСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. НапримСр, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ шаблон проСктирования для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π±Ρ‹Π»ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄Π΅. Но ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, приводят ΠΊ Π±ΠžΠ»ΡŒΡˆΠ΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Π°, Ρ‡Π΅ΠΌ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

Π’ этом случаС R8 ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ. Он позволяСт сущСствСнно ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ прилоТСния, оптимизируя Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°ΠΆΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π½ΠΈΠΆΠ΅ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈΠ· Π΄ΠΎΠΊΠ»Π°Π΄Π° Shrinking Your App with R8, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» прСдставлСн Π½Π° Android Dev Summit ’19:

А Π²ΠΎΡ‚ Ρ‚Π°ΠΊ выглядСло сравнСниС эффСктивности R8 Π½Π° этапС выпуска Π±Π΅Ρ‚Π°-вСрсии (взято ΠΈΠ· источника Android Developers Blog):


Π”Π΅Ρ‚Π°Π»ΡŒΠ½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² ΠΎΡ„ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄Π΅.

ART vs DVM Π² Android


DVM Π±Ρ‹Π»Π° спроСктирована ΠΈΠΌΠ΅Π½Π½ΠΎ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств ΠΈ использовалась ΠΊΠ°ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ
машина для запуска Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Android 4.4 Kitkat.

Начиная с этой вСрсии, ART Π±Ρ‹Π» прСдставлСн ΠΊΠ°ΠΊ срСда выполнСния, Π° Π² Android 5.0 (Lollipop) ART ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½ΠΈΠ» Dalvik.

ОсновноС явноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ART ΠΎΡ‚ DVM состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ART ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ AOT ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, Π° DVM β€” JIT ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ. НС Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ ART Π½Π°Ρ‡Π°Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΈΠ±Ρ€ΠΈΠ΄ AOT ΠΈ JIT. Π”Π°Π»Π΅Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ это Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

DVM

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JIT ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ: всякий Ρ€Π°Π· ΠΏΡ€ΠΈ запускС прилоТСния,
  • компилируСтся Ρ‚Π° Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, которая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для выполнСния прилоТСния. ΠžΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° компилируСтся динамичСски. Π­Ρ‚ΠΎ замСдляСт запуск ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ врСмя установки.
  • УскоряСт Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ устройства, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ кСш прилоТСния создаСтся Π²ΠΎ врСмя выполнСния.
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° DVM, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ мСньшС памяти, Ρ‡Π΅ΠΌ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° ART.
  • Π£ΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Ρ€Π΅Π·Π΅Ρ€Π² Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ, увСличивая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° CPU.
  • Dalvik являСтся β€œΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌβ€ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ вСрсиях Π²Ρ‹ΡˆΠ΅ 4.4.

ART

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ AOT ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ вСсь ΠΊΠΎΠ΄ Π²ΠΎ врСмя установки прилоТСния. Π­Ρ‚ΠΎ ускоряСт запуск ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ установки.
  • ЗамСдляСт Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ устройства, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ кСш создаСтся Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
  • Π’Π²ΠΈΠ΄Ρƒ использования ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° AOT компиляции, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС памяти Π² сравнСнии с прилоТСниями Π½Π° DVM.
  • Π£Π²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅Π·Π΅Ρ€Π² Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ, сокращая Ρ€Π°Π±ΠΎΡ‚Ρƒ процСссора ΠΈΠ·-Π·Π° отсутствия компиляции ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ Garbage Collection ΠΈΠ»ΠΈ сборка мусора. Π’ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π° использования Dalvik, сборщики мусора Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ 2 ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° ΠΏΠΎ ΠΊΡƒΡ‡Π΅ (heap), Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΠΏΠ»ΠΎΡ…ΠΎΠΌΡƒ UX. Π’ случаС с ART, Ρ‚Π°ΠΊΠΎΠΉ ситуации Π½Π΅Ρ‚: ΠΎΠ½ чистит ΠΊΡƒΡ‡Ρƒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· для консолидации памяти.

И нСбольшая схСма Dalvik vs ART:

JIT + AOT Π² ART


Π‘Ρ€Π΅Π΄Π° выполнСния Android (ART), начиная с Android 7, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ компилятор JIT с ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π°. JIT-компилятор дополняСт AOT компилятор ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎ врСмя выполнСния, экономит мСсто Π½Π° дискС ΠΈ ускоряСт обновлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ систСмы.

ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ это ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ схСмС:


ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ AOT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния Π½Π° этапС установки, ΠΎΠ½ запускаСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ JIT-компилятор (ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² Android < 5.0), Π½ΠΎ слСдит Π·Π° Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ участки ΠΊΠΎΠ΄Π° прилоТСния Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго. Π—Π°Ρ‚Π΅ΠΌ эта информация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для AOT-компиляции Π΄Π°Π½Π½Ρ‹Ρ… участков ΠΊΠΎΠ΄Π°. ПослСдняя опСрация выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя бСздСйствия смартфона, находящСгося Π½Π° зарядкС.

Говоря простыми словами, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π²Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ сообща, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ свои ΠΏΠ»ΡŽΡΡ‹:

  • Π±ΠΎΠ»Π΅Π΅ эффСктивная компиляция β€” ΠΏΡ€ΠΈ запускС прилоТСния Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компилятор ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС, Ρ‡Π΅ΠΌ выполняя статичСский Π°Π½Π°Π»ΠΈΠ·, ΠΈ, ΠΊΠ°ΠΊ слСдствиС, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ подходящиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ситуации;
  • сохранСниС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΈ постоянной памяти β€” Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅Π΅ машинного ΠΊΠΎΠ΄Π°, Π° Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ AOT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… участков прилоТСния ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡŽΠ·Π΅Ρ€ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ сущСствСнно ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ пространство NAND-памяти;
  • Ρ€Π΅Π·ΠΊΠΎΠ΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости установки ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ послС обновлСния систСмы β€” Π½Π΅Ρ‚ AOT-компиляции, Π½Π΅Ρ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ.

О Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ JIT компилятора Π² ART ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‚ΡƒΡ‚.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅


Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я постарался Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ основныС отличия Dalvik ΠΎΡ‚ ART, ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Android ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π» инструмСнты для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ART всС Π΅Ρ‰Π΅ находится Π² стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ ΠΊΠ°ΠΊ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Если Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ β€” Π΄Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ….

ART ΠΈΠ΄Π΅Ρ‚ Π½Π° смСну Dalvik / Π₯Π°Π±Ρ€

Π₯ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ интСрСсной Π½ΠΎΠ²ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΡƒΡŽΡΡ Π² Android 4.4, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π° ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠΈΡ…ΡΡ послС ΠΎΠ±Π·ΠΎΡ€Π°Ρ… Π½Π΅ Π±Ρ‹Π»ΠΎ сказано β€” ΠΎ Π½ΠΎΠ²ΠΎΠΉ срСдС выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° мобильной ОБ β€” ART, которая ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° смСну ΠΏΠΎΡ‡Ρ‚Π΅Π½Π½ΠΎΠΌΡƒ Dalvik. ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ сильно ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π±Π΅Π· нСобходимости Π² ΠΈΡ… пСрСкомпиляции. Из минусов β€” большСС врСмя установки, больший Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ЦСль поста β€” донСсти Π΄ΠΎ ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ сообщСства доступныС свСдСния ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ большС.


Пока ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π° сайтС Youhtc.ru
«
ПослСдниС нСсколько Π»Π΅Ρ‚ Π²Π°ΠΆΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ создатСлСй Android стала Π±ΠΎΡ€ΡŒΠ±Π° с Π³Π»Π°Π²Π½ΠΎΠΉ Π²Ρ€ΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΉ «болСзнью» систСмы β€” Π»Π°Π³Π°ΠΌΠΈ Π² Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ интСрфСйса. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ шагом Π² эту сторону стал Project Butter, анонсированный вмСстС с Android 4.1 Jelly Bean ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Β«ΡƒΡΠΊΠΎΡ€ΠΈΠ²ΡˆΠΈΠΉΒ» систСму, Π½ΠΎ Π½Π΅ Ρ€Π΅ΡˆΠΈΠ²ΡˆΠΈΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² ΠΊΠΎΡ€Π½Π΅. Π’ Google это ΠΎΡΠΎΠ·Π½Π°ΡŽΡ‚, поэтому готовят ART β€” Π·Π°ΠΌΠ΅Π½Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Dalvik.

Π”Π°ΠΆΠ΅ сСйчас, Π² Π²Π΅ΠΊ многоядСрных ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссоров, ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ стСчСнии ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π² ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ анимация Π² Android отрисовываСтся Π½Π΅ идСально, Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ дСйствиями Π΅ΡΡ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ Π·Π°ΠΌΠΈΠ½ΠΊΠΈ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° комплСксная, ΠΏΠΎΡ‚ΠΎΠΌΡƒ для Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ шагов β€” Π² качСствС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Dalvik Π½Π° прСкомпилятор ART.

БСйчас Android-ΠΊΠΎΠ΄ выполняСтся Π² Java-машинС, созданной Google ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств, ΠΏΡ€ΠΈ этом ΠΎΠ½ Β«Π½Π° Ρ…ΠΎΠ΄ΡƒΒ» прСобразуСтся Π² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΉ (Just-In-Time Compilation). Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ прилоТСния практичСски Π½Π΅ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈΠ»ΠΈ Β«ΠΆΠ΅Π»Π΅Π·ΡƒΒ», Π½ΠΎ наносит ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ½ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, нагруТая процСссор Π²ΠΎ врСмя компиляции. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ самого Β«Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π½ΠΎΠ³ΠΎΒ» запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Β«Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎΒ» ΠΊΠΎΠ΄Π° сохраняСтся Π² кСшС, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π»Π°Π³ΠΎΠ² это Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚.

ART ΠΆΠ΅ прСдставляСт ΠΈΠ· сСбя AOT-компилятор (Ahead-Of-Time), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Java-ΠΊΠΎΠ΄ Π² Β«Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉΒ» Π² процСссС установки прилоТСния. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ запускаСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΡƒΠΆΠ΅ скомпилированной, Ρ‡Ρ‚ΠΎ сущСствСнно ускоряСт Π΅Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’Π΄Π²ΠΎΠΉΠ½Π΅ интСрСсно, Ρ‡Ρ‚ΠΎ ART ΡƒΠΆΠ΅ встроСн Π² Android 4.4 KitKat ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π² мСню Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. ПослС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° libart.so (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° компилятора) устройство пСрСзагруТаСтся ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ всС ΡƒΠΆΠ΅ установлСнныС прилоТСния. РСбята ΠΈΠ· Android Police, Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠ΅ ART, ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π½Π° кастомных ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°Ρ… ΠΈΠ· AOSP этого Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠΊΠ° Π½Π΅ стоит β€” ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΡ‚ Google.

Π”Π°ΠΆΠ΅ учитывая Π½Π΅ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ состояниС ART, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π½Π΅Π³ΠΎ сущСствСнно влияСт Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ выполнСния рСсурсоСмких Π·Π°Π΄Π°Ρ‡ ΠΈ ΠΏΠ»Π°Π²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ интСрфСйса, Π° Ρ‚Π°ΠΊΠΆΠ΅ позволяСт многоядСрным процСссорам Ρ‡Π°Ρ‰Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ядра, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ устройства. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρƒ Π½ΠΎΠ²ΠΎΠΉ систСмы компиляции минусы, хотя ΠΈΡ… слоТно Π½Π°Π·Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ: Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя установки ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° 10-20%. ΠŸΡ€Π°Π²Π΄Π°, растСт Ρ€Π°Π·ΠΌΠ΅Ρ€ лишь ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ части, которая часто Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ прилоТСния β€” ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° (ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Π·Π²ΡƒΠΊ, Π²ΠΈΠ΄Π΅ΠΎ) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ своСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚.

ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, Google ΡƒΠΆΠ΅ Π½Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π³ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π°Π΄ ART ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² KitKat β€” Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΎΠ±Π΄ΡƒΠΌΠ°Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ создатСлям систСмы провСсти ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ΅ тСстированиС, Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΊ грядущСму Β«ΡƒΡ…ΠΎΠ΄ΡƒΒ» Dalvik. Пока Π½Π΅ ясно, насколько Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ компилятор повлияли Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ· FlexyCore, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Google ΠΊΡƒΠΏΠΈΠ»ΠΈ Π² октябрС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π³ΠΎΠ΄Π°, Π½ΠΎ начинался ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ самого поискового Π³ΠΈΠ³Π°Π½Ρ‚Π°.

Π’ Google ΠΏΠΎΠΊΠ° Π½Π΅ говорят, ΠΊΠ°ΠΊ скоро ART Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Dalvik, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΡƒΠΆΠ΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ вСрсии систСмы. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΈ Project Butter, компилятор Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ·Π°Ρ‚Ρ€Π°Ρ‚ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” ΠΎΠ½ΠΈ всС Ρ‚Π°ΠΊ ΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΠΎΠΌ языкС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ.
«

Π£ мСня Π½Π΅Ρ‚ устройства Π½Π° Android 4.4 Ρ‡Ρ‚ΠΎΠ±Ρ‹ самому ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ, Π½ΠΎ ΡƒΠΆΠ΅ доступСн ΠΎΠ±Ρ€Π°Π· систСмы ΠΎΡ‚ Google, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Β«ΠΏΠΎΡ‰ΡƒΠΏΠ°Ρ‚ΡŒΒ» Π² эмуляторС.

Π£ мСня ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ вопросы, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ эта функция доступна Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… устройствах с Android 4.4 Π½Π΅ ΠΎΡ‚ Google: Samsung, HTC ΠΈ Ρ‚.Π΄. ВсС Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прилоТСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ послС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ?

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΌΠ°Π»ΠΎ, ΠΏΠΈΡˆΠΈΡ‚Π΅, поТалуйста, Π² коммСнтариях, Π³Π΄Π΅ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡Π΅Ρ€ΠΏΠ½ΡƒΡ‚ΡŒ Π² бОльшСм Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅.

Android apk компилируСтся Π² срСду выполнСния АРВ ΠΈ врСмя выполнСния dalvik Oh! Android

Π­Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ послСдствий для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ остаСтся Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°Ρ†Π΅Π»ΠΈΠ²Π°Π΅Ρ‚Π΅ API 19, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ доступно для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ KitKat. Они Ρ€Π΅ΡˆΠ°Ρ‚ Π² своСм Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅, Ссли ΠΎΠ½ΠΈ хотят ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ АРВ ΠΈΠ»ΠΈ Π”Π°Π»ΡŒΠ²ΠΈΠΊ.

Π­Ρ‚ΠΎ старый вопрос, Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ. Π― ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ» сСгодня, Ρ‡Ρ‚ΠΎ всС ΠΌΠΎΠΈ прилоТСния Π»ΠΎΠΌΠ°ΡŽΡ‚ΡΡ с ART + Android-5 Π½Π° ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π°Ρ… Nexus-x. ART Π΄Π΅Π»Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ строгиС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ JNI, поэтому, Ссли вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ java плюс собствСнный ΠΊΠΎΠ΄, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ Dalvik ΠΊ ART ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния. Для мСня это Π±Ρ‹Π»Π° полная ΡˆΠΎΡƒ-стоп. Π£ мСня 6 ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Google Store, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всС Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° устройствах Nexus ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Android 5.x, Π½ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π° всСх устройствах сСрии 4.xx (Kitkat). Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ нСприятно. Π― ΠΏΡ€ΠΎΡ…ΠΎΠΆΡƒ Ρ‡Π΅Ρ€Π΅Π· всС вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ART / Dalvik Π½Π° этом сайтС. ART ΠΈ Android-5.x – ΠΎΡ‡Π΅Π½ΡŒ сущСствСнноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, поэтому здСсь Π·Π°Π΄Π°Π½ вопрос: «Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Π°Ρ€Π³Π΅Ρ‚ΠΈΠ½Π³ Π½Π° apk ΠΊΠ°ΠΊ для Dalvik, Ρ‚Π°ΠΊ ΠΈ для ART?Β» ЯвляСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ критичСским вопросом. ВрСмя Π΄ΠΎΠΊΠ°Π·Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ «НСт Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈΒ», явно Π½Π΅Π²Π΅Ρ€Π½Ρ‹. Π­Ρ‚ΠΎ, бСзусловно, Π² нашСм случаС.

Π”Π²Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, ΠΈ я Ρ†ΠΈΡ‚ΠΈΡ€ΡƒΡŽ Β«ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° повСдСния прилоТСния Π½Π° Android Runtime (ART)Β»:

1) Β«ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° JNI для ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ сбора мусора Π£ АРВ Π΅ΡΡ‚ΡŒ сборщик сборщиков мусора, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π² Android Open Source Project (AOSP). Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сборщик мусора, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² памяти. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ C / C ++, Π½Π΅ выполняйтС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСсовмСстимы с ΡƒΠΏΠ»ΠΎΡ‚Π½Π΅Π½ΠΈΠ΅ΠΌ GC. Π£ нас Π΅ΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ CheckJNI для опрСдСлСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ (ΠΊΠ°ΠΊ описано Π² JNI Local Reference Changes Π² ICS) Β». Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, новая модСль управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ART ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ (ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ) собствСнный ΠΊΠΎΠ΄.

2) «Ошибка ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ JNI ΠΎΡ‚ ART бросаСт ошибки Π² рядС случаСв, ΠΊΠΎΠ³Π΄Π° Dalvik этого Π½Π΅ Π΄Π΅Π»Π°Π»Β».

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ объяснСниС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ошибки, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ Android 5.x ART, прСдставлСно Π²: http://developer.android.com/guide/practices/verifying-apps-art.html#JNI_Issues

РСшСниС для прямой совмСстимости, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² настоящСС врСмя принято срСди ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ устройств Android, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ART ΠΈ 5.x, ΠΈ сталкиваСтся с нСработоспособными прилоТСниями, являСтся ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎ Android 4.4.4, ΠΏΡƒΡ‚Π΅ΠΌ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, очистки памяти устройства ΠΈ установки ΠΎΠ±Ρ€Π°Π·Π° систСмы Β«HammerheadΒ», Π² случаС Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Ρ‚Π°Π±Π»Π΅Ρ‚ΠΊΠ°ΠΌΠΈ сСрии Nexus. Для ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ΠΎΠ² Samsung ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ доступСн ΠΏΠΎ адрСсу: http://forums.androidcentral.com/samsung-galaxy-s5/489071-tutorial-downgrade-samsung-galaxy-s5-5-0-4-4-kitkat.html.

Π”Π°Π»Π²ΠΈΠΊ ΠΈΠ»ΠΈ АРВ – это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Android. Как Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прилоТСния, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ± этих различиях. ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, это ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ API вашСго прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСт Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ вСрсии ОБ Android.

И Π² Android 4.4 АРВ – это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, которая НЕ являСтся исполняСмой срСдой ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΊ выпуску, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ это АРВ , заставит ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мСньшС памяти ΠΈ быстро Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ вСрсии Android. Π’ open source я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ ART установил Π²Ρ‹Π±ΠΎΡ€ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ART Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

Π­Ρ‚ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ Π½Π° 100% совмСстимо, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ Dalvik ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ART

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ этой ссылкС .

Android: Dalvik-кэш (Dalvik cache) — Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ Π΅Π³ΠΎ очистка

ОбъСм встроСнной памяти Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ… с ОБ Андроид ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ отличаСтся ΠΎΡ‚ заявлСнного ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ, вСдь Π² Π½Π΅ΠΌ находится опСрационная систСма ΠΈ установочныС элСмСнты. Частым вопросом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ являСтся: Β«Dalvik Cache Ρ‡Ρ‚ΠΎ это, ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½?Β».

Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅

Dalvik Cache – это ΠΎΠ΄Π½ΠΎ ΠΈΠ· мСст, Π³Π΄Π΅ хранится ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π²ΠΈΠ΄ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅. ΠŸΡ€ΠΎΡ‰Π΅ говоря – это Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ скомпилированныС элСмСнты.

ΠžΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ появился Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ Π”Π°Π»Π²ΠΈΠΊ кСш ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ послС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ОБ Android с ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ. Π‘Π°ΠΌΠΈ элСмСнты Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊ остаточными элСмСнтами, Ρ‚Π°ΠΊ ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ.

БущСствуСт находится 3 Ρ‚ΠΈΠΏΠ° кэш-памяти:

  • Dalvik Cache – элСмСнты ΠΈΠ· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ОБ Андроид. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ;
  • КСш систСмного Ρ‚ΠΈΠΏΠ° – встроСн Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ОБ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎ Π½Π΅ΠΉ.
  • КСш ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ – остаточныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Находятся Π²ΠΎ встроСнной памяти Π³Π°Π΄ΠΆΠ΅Ρ‚Π°.

Π’Π΅ΡΡŒ кСш Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Андроид

Π€Π°ΠΉΠ»Ρ‹ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ памяти, впослСдствии Ρ‡Π΅Π³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ свободного мСста.

Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ со свободным мСстом пСрСносом ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° внСшниС носитСли. Π€ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ смартфоны с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Андроид 6.0 ΠΈ Π²Ρ‹ΡˆΠ΅.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅: ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ для ускорСния ΠΈ чистки Android

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ очистки

Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° очистки встроСнной памяти ΠΎΡ‚ кэш-Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅:

  • ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ срСдства.
  • ИспользованиС сторонних ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
  • Полная очистка остаточных элСмСнтов Π½Π° смартфонС.
  • ΠžΠ±Π½ΡƒΠ»Π΅Π½ΠΈΠ΅ Π΄ΠΎ заводских ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ заводским настройкам Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ с Андроид

ИспользованиС послСднСго ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ очисткС, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ сотрСт всС настройки вмСстС с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎ обнулСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ слСдуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ.

ИспользованиС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… инструмСнтов

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† устройства ОБ Андроид ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‡Π΅Ρ€Π΅Π· встроСнныС инструмСнты.

Для этого потрСбуСтся:

  1. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ мСню «Настройки», ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ Β«Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Β» (ΠΏΡƒΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ вСрсии ОБ).
Настройки Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Android Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° Андроид
  1. Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡƒΠ½ΠΊΡ‚ Β«Π”Π°Π½Π½Ρ‹Π΅ кСша».

Π’Π΅ΡΡŒ кСш Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Андроид

  1. ПослС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° экранС появится сводка ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± находящихся элСмСнтах. ПослС этого появится окошко с вопросом Β«ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ кСш?Β». Для подтвСрТдСния Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ «ОК».

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ всСго кСша Π½Π° Андроид

  1. По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ всС ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ элСмСнты Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ с устройства.

Π’ способС Π½Π΅Ρ‚ возмоТности Π³ΠΈΠ±ΠΊΠΎΠΉ настройки Ρ€Π΅ΠΆΠΈΠΌΠ° удалСния.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Π² прилоТСниях

НС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π° всСм Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅. Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ дСйствий:

  1. ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ «Настройки» β€” Β«ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ».

ВсС прилоТСния Π½Π° Андроид

  1. Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Β«ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒΒ».

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° кСша Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Chrome

  1. ΠΠ°ΠΆΠ°Ρ‚ΡŒ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ «Кэш» β€” Β«ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒΒ».

Π”Π°Π½Π½Ρ‹Π΅ кСша Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Chrome

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ очищаСтся кэш прилоТСния.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· Recovery

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Dalvik Cache Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Recovery. Для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° заТимаСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш, Π² зависимости ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ смартфона.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Ρ€Π΅ΠΆΠΈΠΌ Reboot to Bootloader Π½Π° Андроид

Базовая комбинация β€” ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π·Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π·Π²ΡƒΠΊΠ° ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°.

Алгоритм дСйствий:

  1. Π’Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ устройство.
  2. ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Recovery Ρ€Π΅ΠΆΠΈΠΌ.
  3. ΠŸΡ€ΠΎΠ»ΠΈΡΡ‚Π°Ρ‚ΡŒ Π²Π½ΠΈΠ· Π΄ΠΎ Wipe cache partition, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π·Π²ΡƒΠΊΠ°.
  4. ΠΠ°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ смартфона, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Dalvik Cache.
  5. Π’Π½ΠΈΠ·Ρƒ дисплСя ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ².
  6. Π’ ΠΊΠΎΠ½Ρ†Π΅ выбираСтся Reboot System Now, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· этого Ρ€Π΅ΠΆΠΈΠΌΠ°.
  7. Π’Π΅Π»Π΅Ρ„ΠΎΠ½ пСрСзагрузится, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² стандартном Ρ€Π΅ΠΆΠΈΠΌΠ΅.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Dalvik-cache Π² Андроид

Π’Π°ΠΆΠ½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ‚ΡŒ ΠΈ Π½Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ случайно ΠΏΡƒΠ½ΠΊΡ‚ Wipe data/factory, ΠΈΠ½Π°Ρ‡Π΅ удалятся всС Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ заводским ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ.

Как ΠΈΡ‚ΠΎΠ³

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… способов удаляСт кэш со смартфона Π² ΠΏΠ°ΠΏΠΊΠ΅ Dalvik Cache. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ· Play Market Π»ΡŽΠ±ΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ, которая сама ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ удалСния.

Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ срСду выполнСния Android (Dalvik ΠΈΠ»ΠΈ ART)?

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
  1. Около
  2. Π’ΠΎΠ²Π°Ρ€Ρ‹
  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹
  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄ Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ
  3. Вакансии ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста
  4. Π’Π°Π»Π°Π½Ρ‚ НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля
  5. Π Π΅ΠΊΠ»Π°ΠΌΠ° ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°
  6. О компании
.

Android apk компилируСтся Π² срСду выполнСния ART ΠΈ срСду выполнСния dalvik

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
  1. Около
  2. Π’ΠΎΠ²Π°Ρ€Ρ‹
  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹
  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄ Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ
  3. Вакансии ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста
  4. Π’Π°Π»Π°Π½Ρ‚ НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля
  5. Π Π΅ΠΊΠ»Π°ΠΌΠ° ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°
  6. О компании
.Анализ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ срСды выполнСния Android

: ART ΠΏΡ€ΠΎΡ‚ΠΈΠ² Dalvik

Π’ этом Π³ΠΎΠ΄Ρƒ Π½Π° Google I / O ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ ряд Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΡ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Android Runtime (ART). Если Π²Ρ‹ пропустили вступлСниС Π²ΠΎ врСмя выступлСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ выступлСниС здСсь. Π₯отя сама ART Π½Π΅ стала большим ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠΌ ΠΈ с Android 4.4 скрываСтся Π³Π»ΡƒΠ±ΠΎΠΊΠΎ Π² мСню Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, самым Π²Π°ΠΆΠ½Ρ‹ΠΌ объявлСниСм Π±Ρ‹Π»ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Android L (ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΉ выпуск ОБ) ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ Π½Π° ART.Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² ART, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‚ΡΡ с Dalvik, Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ срСдой выполнСния.

ART vs Dalvik

Π’, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΈ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ART ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ установкС Π½Π° устройство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π˜Π·Π²Π΅ΡΡ‚Π½Π°Ρ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ компиляция, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ компиляторы настроСны для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ (Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ARM, x86 ΠΈΠ»ΠΈ MIPS). Π­Ρ‚ΠΎ устраняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² своСврСмСнной компиляции ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС прилоТСния.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, установка вашСго прилоТСния Π·Π°ΠΉΠΌΠ΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ ΠΏΡ€ΠΈ запускС ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ быстрСС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, выполняСмыС Π²ΠΎ врСмя выполнСния Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Dalvik, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° классов ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΡƒΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹.

Π—Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π° ART Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π½Π°Π΄ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ сборщика мусора (GC). ВмСсто Π΄Π²ΡƒΡ… ΠΏΠ°ΡƒΠ· ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΊΠΎΠ»ΠΎ 10 мс для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сборщика мусора Π² Dalvik Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠ΅Π½Π΅Π΅ 2 мс. Они Ρ‚Π°ΠΊΠΆΠ΅ распараллСлили части запусков сборки мусора ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ стратСгии сбора, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‚ΡŒ ΠΎ состояниях устройств.НапримСр, ΠΏΠΎΠ»Π½Ρ‹ΠΉ сборщик мусора Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ большС Π½Π΅ Π²Π°ΠΆΠ½Π°. Π­Ρ‚ΠΎ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ°Π΄Ρ€Π°ΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ вСрсии ART Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ сборщик сТатия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΠ±ΠΈΠ²Π°Ρ‚ΡŒ старыС прилоТСния для выдСлСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… областСй памяти.

НаконСц, ART ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ памяти ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Rosalloc (Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ запусков слотов).Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных систСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ распрСдСлитСли, основанныС Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ Π”ΡƒΠ³Π° Π›ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ памяти. Π’ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС это ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ сборщику мусора ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ опСрациям с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Π’ Rosalloc Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, распространСнныС Π² Java, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² локальной области ΠΏΠΎΡ‚ΠΎΠΊΠ° Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, Π° Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ свои собствСнныС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ пытаСтся Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π΅ΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° сборщик мусора освободит Π½Π΅ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти.

ИзлишнС Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС эти ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ сдСлали чудСса для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’ΠΎ врСмя основного выступлСния I / O этот слайд выскочил ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊ ΠΌΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅:

ART performance comparison

ИспользованиС New Relic для сравнСния ART ΠΈ Dalvik

Π­Ρ‚ΠΎ довольно ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΠΈ! ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π² New Relic Π΄ΠΎΡ€ΠΎΠΆΠΈΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, я Ρ€Π΅ΡˆΠΈΠ» Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Dalvik ΠΈ ART с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нашСго Π°Π³Π΅Π½Ρ‚Π° для Android.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ нСбольшоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ продСмонстрировало Π±Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ для поиска рСсурсоСмкого ΠΊΠΎΠ΄Π°, Ρ‡Π΅ΠΌ ΠΈΠ³Ρ€Π° Great Computer Language Benchmarks Game? Π― остановился Π½Π° дСмонстрации ΡΠΏΠ΅ΠΊΡ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ Π½ΠΎΡ€ΠΌΡ‹ ΠΈ помСстил ΠΊΠΎΠ΄ Π² Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Android. ПослС добавлСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ @Trace, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Π°Π³Π΅Π½Ρ‚Ρƒ New Relic ΠΎ нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² подъСма тяТСлых Π³Ρ€ΡƒΠ·ΠΎΠ², я запустил Π΄Π²Π° изобраТСния Genymotion, ΠΎΠ΄Π½ΠΎ с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ ART, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ с Dalvik. Π§Π΅Ρ€Π΅Π· нСсколько ΠΌΠΈΠ½ΡƒΡ‚ я ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π» Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

ART vs Dalvik2

Π’ этом простом случаС ART Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° быстрСС, Ρ‡Π΅ΠΌ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Dalvik.ЀактичСски, ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСст 10 Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ†ΠΈΡ„Ρ€Ρ‹ Π±Ρ‹Π»ΠΈ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡ‹. Π’ΠΎΡ‚ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ слСд Π½Π° Dalvik VM:

ART vs Dalvik3.jpg

А Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ тСст Π½Π° АРВ:

ART vs Dalvik4

Π’ Dalvik каТдая итСрация тСста (выполняСмая синхронно Π² собствСнном ΠΏΠΎΡ‚ΠΎΠΊΠ΅) Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 1400 миллисСкунд. На ART этот ΠΆΠ΅ тСст Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всСго ΠΎΠΊΠΎΠ»ΠΎ 400 миллисСкунд. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ вСрсия ART использовала ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° 2 ΠœΠ‘ мСньшС памяти (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π° 20%).

Π₯отя ΠΌΠΎΠΉ быстрый ΠΈ грязный тСст ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ опСрациями, интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ ЦП, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΡƒΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ±Π½Π°Π΄Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚.Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± АРВ, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с этим Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ART, Π²Π°ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ стоит ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с этим руководством. Π•ΡΡ‚ΡŒ похоТая история исполнСния ART? ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π°ΠΉΡ‚Π΅ Π½Π°ΠΌ Π·Π½Π°Ρ‚ΡŒ. Если Π²Π°ΠΌ интСрСсно ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ тСста Π½Π° GitHub.

ЗаинтСрСсованы Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android? ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ New Relic Mobile сСгодня. Если Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ 30-Π΄Π½Π΅Π²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ!

.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ взгляд Π½Π° срСду выполнСния Android: DVM ΠΏΡ€ΠΎΡ‚ΠΈΠ² ART | Π°Π²Ρ‚ΠΎΡ€: Анкит Π‘ΠΈΠ½Ρ…Π°Π»

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ нСпосрСдствСнно ΠΊ срСдС выполнСния Android, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ срСда выполнСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ JVM ΠΈ Dalvik VM.

ΠŸΡ€ΠΎΡ‰Π΅ говоря, это систСма, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой, которая заботится ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π° языкС высокого уровня, Ρ‚Π°ΠΊΠΎΠΌ ΠΊΠ°ΠΊ Java, Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΉ ЦП / процСссором.

Π‘Ρ€Π΅Π΄Π° выполнСния состоит ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ, ΠΏΠΎ сути, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄Π° этой части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

ЦП ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½: наши ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык (Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹), поэтому для Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ЦП ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎ выполняСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΎΠΌ.

Π˜Ρ‚Π°ΠΊ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ транслятора Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ —

1. АссСмблСры:

Он Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠ΄Ρ‹ сборки Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹, поэтому это Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ быстро.

2. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹:

Он ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ΄Ρ‹ сборки, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ассСмблСры для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠΎΠ΄Π° Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ.ИспользованиС этой компиляции Π±Ρ‹Π»ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ, Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ быстрым. Но самая большая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с компилятором Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΊΠΎΠ΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ машинС, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ машинС.

3. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΈ:

Он ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠ΄ Π²ΠΎ врСмя Π΅Π³ΠΎ выполнСния. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ происходит Π²ΠΎ врСмя выполнСния, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, JAVA Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° JVM i.Π΅. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Java. Он Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» JVM, спСцифичный для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ JVM зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Java ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ .java Π² Ρ„Π°ΠΉΠ»Ρ‹ .class, Ρ‡Ρ‚ΠΎ называСтся Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π­Ρ‚ΠΎΡ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ пСрСдаСтся JVM, которая ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Π­Ρ‚ΠΎ быстрСС, Ρ‡Π΅ΠΌ интСрпрСтация, Π½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ компиляция C ++.

Π’ Android классы Java ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ DEX. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° DEX транслируСтся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· ART ΠΈΠ»ΠΈ срСду выполнСния Dalvik.Π—Π΄Π΅ΡΡŒ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ DEX Π½Π΅ зависит ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ устройства.

Dalvik — это Π΄Π²ΠΈΠΆΠΎΠΊ Π½Π° основС JIT (Just in time) компиляции. Π£ использования Dalvik Π±Ρ‹Π»ΠΈ нСдостатки, поэтому с Android 4.4 (kitkat) ART Π±Ρ‹Π» прСдставлСн ΠΊΠ°ΠΊ срСда выполнСния, Π° с Android 5.0 (Lollipop) ΠΎΠ½ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½ΠΈΠ» Dalvik. Android 7.0 добавляСт JIT-компилятор с ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° Π² срСду выполнСния Android (ART), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ постоянно ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… запуска.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: Dalvik использовал ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ JIT (Just in time), Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ART ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ AOT (Ahead of time).

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Dalvik ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Java.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JIT-компилятора Dalvik ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся, ΠΎΠ½ динамичСски ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Ρ‡Π°ΡΡ‚ΡŒ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Dalvik Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. По ΠΌΠ΅Ρ€Π΅ выполнСния Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ компилируСтся ΠΈ ΠΊΡΡˆΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ JIT ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСньшС памяти ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ мСньшС физичСского пространства Π½Π° устройствС.

ART оснащСн компилятором Ahead-of-Time.На этапС установки ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ статичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ DEX Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ сохраняСт Π΅Π³ΠΎ Π² памяти устройства. Π­Ρ‚ΠΎ Ρ€Π°Π·ΠΎΠ²ΠΎΠ΅ событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ происходит, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ установлСно Π½Π° устройствС. Π‘Π΅Π· нСобходимости JIT-компиляции ΠΊΠΎΠ΄ выполняСтся Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ART запускаСт ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ прилоТСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ (собствСнноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅), ΠΎΠ½ Π½Π΅ Ρ‚Π°ΠΊ сильно Π½Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ЦП, ΠΊΠ°ΠΊ своСврСмСнная компиляция ΠΊΠΎΠ΄Π° Π² Dalvik. Из-Π·Π° мСньшСй Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ЦП происходит мСньшая разрядка Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ.

ART Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ DEX Π² качСствС Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ для Dalvik.ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, скомпилированному с использованиСм ART, трСбуСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя для компиляции, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ установлСно, ΠΈ трСбуСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС мСста для хранСния скомпилированного ΠΊΠΎΠ΄Π°.

Android ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Π² качСствС срСды выполнСния для запуска Ρ„Π°ΠΉΠ»ΠΎΠ² APK, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Android. НиТС пСрСчислСны прСимущСства:

Β· Код прилоТСния ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½ ΠΎΡ‚ основной ОБ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π°ΠΆΠ΅ Ссли ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ содСрТит врСдоносный ΠΊΠΎΠ΄, это Π½Π΅ повлияСт Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π° систСмныС Ρ„Π°ΠΉΠ»Ρ‹.Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ОБ Android Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ.

Β· ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ кросс-ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ скомпилировано Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ПК, ΠΎΠ½ΠΎ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π½Π° мобильной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Β· ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ быстрСС благодаря ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° DEX Π²ΠΎ врСмя установки.

Β· Π‘ΠΎΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ врСмя запуска ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ собствСнный ΠΊΠΎΠ΄ выполняСтся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

Β· ΠŸΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ Π·Π° счСт экономии энСргии, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ для построчной ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ².

Β· Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ сборщик мусора.

Β· Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ инструмСнт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Β· Установка прилоТСния Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ·-Π·Π° прСобразования Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° DEX Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π²ΠΎ врСмя установки.

Β· ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, созданный ΠΏΡ€ΠΈ установкС, хранится Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ памяти, трСбуСтся большС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ памяти.

ART написан для запуска Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Π½Π° устройствах с ΠΌΠ°Π»Ρ‹ΠΌ объСмом памяти ΠΏΡƒΡ‚Π΅ΠΌ выполнСния Ρ„Π°ΠΉΠ»ΠΎΠ² DEX, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Android ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ для минимального использования памяти.Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΌ. Π­Ρ‚ΠΎ всС с ΠΌΠΎΠ΅ΠΉ стороны. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ART ΠΈ Dalvik Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Android.

Бпасибо Π·Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ❀, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ, Ссли Π²Ρ‹ нашли Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ.

ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅ мою страницу Π±Π»ΠΎΠ³Π³Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС интСрСсных Ρ‚Π΅ΠΌ ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° мСня Π² Twitter GitHub

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *