МСню

Π‘Ρ€Π΅Π΄Π° art ΠΈΠ»ΠΈ dalvik: ART vs Dalvik β€” Ρ‚Π°ΠΊ Π² Ρ‡Π΅ΠΌ ΠΆΠ΅ Ρ€Π°Π·Π½ΠΈΡ†Π°?

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

ART vs Dalvik β€” Ρ‚Π°ΠΊ Π² Ρ‡Π΅ΠΌ ΠΆΠ΅ Ρ€Π°Π·Π½ΠΈΡ†Π°?

7 ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 100134 Π“Π»Π°Π²Π½ΠΎΠ΅

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии Android появилось ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅, хотя ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠ΅, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ β€” появилась новая Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина ART. О Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ART, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½Π° новая, рассказываСтся Π² англоязычном Π±Π»ΠΎΠ³Π΅ Атиф Π₯Π°Π½Π°Β (Aatif Khan), запись ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΈ Ρ€Π΅ΡˆΠΈΠ»ΠΈ пСрСвСсти для вас.Β ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ Π·Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ выраТаСм АнТСлу Π‘ΠΎΠΆΠΈΠ½ΠΎΠ²Ρƒ.


Π’ соврСмСнном ΠΌΠΈΡ€Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€ ΡƒΠΆΠ΅ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ удивляСтся Π½ΠΎΠ²Ρ‹ΠΌ названиям ΠΈ сокращСниям. Однако сущСствуСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ всСгда ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡΠΎΠ·Π½Π°ΡŽΡ‚, Ρ‡Π΅ΠΌΡƒ ΠΆΠ΅ научился ΠΈΡ… Π³Π°Π΄ΠΆΠ΅Ρ‚ послС обновлСния. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π΅Π΄ΠΊΠΎ Ρ€Π°Π΄ΡƒΡŽΡ‚ нас ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ описаниями Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π° Π½Π°ΠΉΡ‚ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ понятноС объяснСниС Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС удаСтся ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅Π΄ΠΊΠΎ β€” Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ лишь ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС с Π΅Ρ‰Π΅ большим количСством нСпонятных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ срСда выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина)?

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ Dalvik ΠΈ ART Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· понимания Π°Π·ΠΎΠ², поэтому сначала ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ. Π‘Ρ€Π΅Π΄Π° выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” это Π½Π°Π±ΠΎΡ€ инструкций, выполняСмых для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠΎΠ΄Π° прилоТСния Π² ΠΊΠΎΠ΄, понятный ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина задСйствуСтся, Π΄Π°ΠΆΠ΅ Π½Π΅ являясь Ρ‡Π°ΡΡ‚ΡŒΡŽ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ Ρ†Π΅Π»ΠΎΠΌ, всС «управляСмыС» ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ языки (Java Π² Android, Π‘# Π² Windows Phone, ECMAScript Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…) Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΡƒΡŽ срСду для понимания языка, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ написано ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Android ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ для выполнСния DEX-Ρ„Π°ΠΉΠ»ΠΎΠ² (Π°Π½Π°Π»ΠΎΠ³ EXE Π² Windows), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТатся Π² APK-Π°Ρ€Ρ…ΠΈΠ²Π΅ Android-прилоТСния.

БущСствуСт сразу Π΄Π²Π° прСимущСства Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСтся Π² систСмС, ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΡ‚ ядра ОБ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ послСднСС чувствуСт сСбя Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Π² бСзопасности. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, использованиС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΎΡ€ΠΎΠ³Ρƒ кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΌ прилоТСниями, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ARM-смартфонС, MIPS-ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ x86-ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Как извСстно, всС это врСмя Π² Android использовалась Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Dalvik, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ навСрняка встрСчался ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Π½ΠΈΠΊΠ°Π» Π² особСнности ОБ.

Π—Π°Ρ‡Π΅ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСду выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?

На этот вопрос ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅. БСсспорно, использованиС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ замСдляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρƒ Π½Π΅Π΅ Π΅ΡΡ‚ΡŒ нСсколько плюсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΊΠ»ΠΎΠ½ΡΡŽΡ‚ Π²Ρ‹Π±ΠΎΡ€ Π² Π΅Π΅ ΠΏΠΎΠ»ΡŒΠ·Ρƒ.

  • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина выполняСт ΠΊΠΎΠ΄ стороннСго прилоТСния Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ ядру ОБ, Π½Π΅ смоТСт Π½Π° ΠΏΡ€ΡΠΌΡƒΡŽ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с систСмными Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ систСму.
    ΠžΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ плюс использования Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ β€” это Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ ΠΈ надСТная Ρ€Π°Π±ΠΎΡ‚Π° основной систСмы.
  • Π§Π΅Ρ€Π΅Π· Google Play Store ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ источники Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ распространяСт APK-Ρ„Π°ΠΉΠ» своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит нСскомпилированныС инструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ «собСрСт» ΡƒΠΆΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина. Π’Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ обСспСчиваСт Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, ΠΊΠΎΠ΄, скомпилированный для устройств Π½Π° Π±Π°Π·Π΅ Snapdragon, Π½Π΅ смоТСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Atom-Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π°Ρ…. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с адрСсатом компиляции.

Π§Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ Dalvik ΠΈ Π² Ρ‡Π΅ΠΌ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°?

Π’ΠΎΡ‚ ΠΈ Π³Π»Π°Π²Π½Ρ‹ΠΉ вопрос. Dalvik ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Android с ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии ОБ, с 2007 Π³ΠΎΠ΄Π°, Π° ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π° всС это врСмя Π±Ρ‹Π»ΠΎ практичСски ΠΎΠ΄Π½ΠΎ β€” появлСниС Π² Froyo «компиляции Π½Π° Ρ…ΠΎΠ΄ΡƒΒ», Π±ΠΎΠ»Π΅Π΅ извСстной ΠΊΠ°ΠΊ JIT. Главная Π΅Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ β€” ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ компилируСтся ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΈΠ»ΠΈ запускС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… инструкций. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ исправлСниС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΎ 2.

2 всС прилоТСния ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ шаг Π·Π° шагом, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π»ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹; СдинствСнный минус Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ β€” ΠΏΡ€ΠΈ стартС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° процСссор ΠΈΠ΄Π΅Ρ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°.

Π’ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, систСма собираСт вмСстС всС скомпилированныС Π·Π° врСмя использования прилоТСния инструкции ΠΈ отправляСт ΠΈΡ… Π² кэш, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ хранится Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ *.ODEX (Optimized Dalvik EXecutable). Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π· запуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Dalvik ΡƒΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ компиляциСй, Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ ΡƒΠΆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ вашС устройство Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. Однако Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прилоТСния, Π½Π΅ использовавшСйся Ρ€Π°Π½Π΅Π΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ инструкций. Если Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ систСма ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ ΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡŽΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ), Ρ‚ΠΎ ΠΈΠ·-Π·Π° ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ процСссора ΠΈ подсистСм Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Ρƒ памяти ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡ‹Π΅ Ρ€Ρ‹Π²ΠΊΠΈ ΠΈ Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°. Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ ΠΈ появляСтся ART.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ART ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ спасСт ΠΌΠΈΡ€?

ART, ΠΈΠ»ΠΈ Android RunTime (вСсьма ΠΊΡ€ΠΈΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅) β€” это новая Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ прСдставила Google Π² Android 4. 4, ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Dalvik). Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ срСды выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” использованиС тСхнология Ahead-Of-Time (AOT, Β«Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈΒ»). ART ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ всС инструкции прилоТСния Π΅Ρ‰Π΅ Π΄ΠΎ Π΅Π³ΠΎ запуска, Π² процСссС установки. ВозрастаСт врСмя послСднСй, Π° Ρ‚Π°ΠΊΠΆΠ΅ объСм постоянной памяти, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина большС Π½Π΅ занимаСтся ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ прилоТСния Π²ΠΎ врСмя Π΅Π³ΠΎ исполнСния, благодаря Ρ‡Π΅ΠΌΡƒ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ΡΡ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚ ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ использовании многозадачности. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ большСС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ART Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ Π² Π½Π΅Ρ‘ Π΄Π°ΠΆΠ΅ Ρ‚Π΅ инструкции прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΈ Π½Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Dalvik vs. ART

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ сравним Π΄Π²Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹

ART ΠΏΠΎΠΊΠ° экспСримСнт

БСзусловно, Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ART лишь тСстируСтся ΠΈ доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для устройств Π½Π° вСрсии Android 4.4 ΠΈ чипсСтах ΠΎΡ‚ Qualcomm. Однако Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΆΠ΅ сСйчас ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ с Dalvik Π½Π° ART Ρ‡Π΅Ρ€Π΅Π· скрытыС инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²Β (мСню открываСтся послС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚Π°ΠΏΠΎΠ² ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ сборки Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± устройствС). Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ всС прилоТСния смогут Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ART Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ; кстати, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ запуск Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ART ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π΄ΠΎ 30 ΠΌΠΈΠ½ΡƒΡ‚.

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

ΠžΡ‚Π·Ρ‹Π²Ρ‹ ΠΎ Π½ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ„Π»Π°Π³ΠΌΠ°Π½ΠΎΠ² с Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…ΡŠΡΠ΄Π΅Ρ€Π½Ρ‹ΠΌΠΈ процСссорами ΠΈ 2 Π“Π± ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎ-настоящСму ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ прирост скорости ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π½Π° ART. НСкоторыС ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ 50% прирост Π² скорости устройства ΠΈ 30% β€” Π² автономности; Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ это лишь эффСкт ΠΏΠ»Π°Ρ†Π΅Π±ΠΎ.

По ΠΏΡ€Π°Π²Π΄Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, нСльзя Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ влияниС ART Π΄ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈΠ· стадии тСстирования ΠΈ попадания Π² массы, поэтому споры ΠΎ пользС ΠΈ Π²Ρ€Π΅Π΄Π΅ Π½ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΠΊΠ° Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ. БСйчас ясно лишь ΠΎΠ΄Π½ΠΎ: Π·Π° ART Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅. Google Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ AOT для Π±ΠΎΡ€ΡŒΠ±Ρ‹ с основным ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠΎΠΌ β€” iOS, ΠΈ ART ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Android. НСваТно, насколько Π³Π»ΡƒΠΏΠΎ называСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина ΠΈ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ нСсовмСстимо с Π½Π΅ΠΉ сСгодня. Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ с ART Π·Π°Π²Ρ‚Ρ€Π°.

ART ΠΈΠ»ΠΈ Dalvik Π½Π° Android β€” Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅, Π² Ρ‡Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅

&nbsp ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ устройства

Google прСдставила Π½ΠΎΠ²ΡƒΡŽ срСду выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ обновлСния Android 4.4 KitKat. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠΎΠΌΠΈΠΌΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Dalvik, Π½Π° соврСмСнных устройствах с процСссорами Snapdragon появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ срСду ART. (Если Π²Ρ‹ ΠΏΠΎΠΏΠ°Π»ΠΈ Π½Π° эту ΡΡ‚Π°Ρ‚ΡŒΡŽ с Ρ†Π΅Π»ΡŒΡŽ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ART Π½Π° Android, пролистайтС Π΅Π΅ ΠΊ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ, Ρ‚Π°ΠΌ Π΄Π°Π½Π° эта информация).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ срСда выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ‚ΡƒΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹? Π’ Android, для выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ скачиваСтС Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² APK (ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Dalvik (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ) ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ компиляции лоТатся ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½Π΅Π΅.

Π’ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Dalvik для компиляции ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Just-In-Time (JIT), ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ нСпосрСдствСнно ΠΏΡ€ΠΈ запускС ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… дСйствиях ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π΄ΠΎΠ»Π³ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания ΠΏΡ€ΠΈ запускС прилоТСния, Β«Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°ΠΌΒ», Π±ΠΎΠ»Π΅Π΅ интСнсивному использованию RAM.

ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ срСды ART

ART (Android RunTime) β€” новая, ΠΏΠΎΠΊΠ° Π΅Ρ‰Π΅ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина, прСдставлСнная Π² Android 4.4 ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ лишь Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (Π½ΠΈΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ).

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ART ΠΎΡ‚ Dalvik β€” ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ AOT (Ahead-Of-Time) ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ устанавливаСмых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ установка прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ большС мСста Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Android устройства, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запуск Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ быстрСС (ΠΎΠ½ΠΎ ΡƒΠΆΠ΅ скомпилированно), Π° мСньшСС использованиС процСссора ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π² связи с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ компиляции ΠΌΠΎΠΆΠ΅Ρ‚, Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΡŽ энСргии.

Как Π½Π° самом Π΄Π΅Π»Π΅ ΠΈ Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, ART ΠΈΠ»ΠΈ Dalvik?

Π’ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π΅ΡΡ‚ΡŒ ΡƒΠΆΠ΅ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сравнСний Ρ€Π°Π±ΠΎΡ‚Ρ‹ Android устройств Π² Π΄Π²ΡƒΡ… срСдах ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ разнятся. Один ΠΈΠ· самых ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… Ρ‚Π°ΠΊΠΈΡ… тСстов Π²Ρ‹Π»ΠΎΠΆΠ΅Π½ Π½Π° androidpolice.com (Π°Π½Π³Π».):

Буммируя Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… прСимущСств Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ART продолТаСтся, эта срСда ΠΏΠΎΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ стадии) Ρƒ ART Π½Π΅Ρ‚: Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… тСстах Ρ€Π°Π±ΠΎΡ‚Π° с использованиСм этой срСды ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ (особСнно Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ касаСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½ΠΎ Π½Π΅ Π²ΠΎ всСх Π΅Π΅ аспСктах), Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… особых прСимущСств Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΈΠ»ΠΈ ΠΆΠ΅ Dalvik Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ. НапримСр, Ссли Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‚ΠΎ Π²ΠΎΠΏΡ€Π΅ΠΊΠΈ оТиданиям, Dalvik ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ практичСски Ρ€Π°Π²Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ с ART.

ΠžΠ±Ρ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° тСстов β€” ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ‡Ρ‚ΠΎ с ART, Ρ‡Ρ‚ΠΎ с Dalvik Π½Π΅Ρ‚. Однако, новая срСда ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Π½Π΅ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ выглядят ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‰Π΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² Android 4. 5 ΠΈΠ»ΠΈ Android 5 такая Ρ€Π°Π·Π½ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°. (Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Google, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, сдСлаСт ART срСдой, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ).

Π•Ρ‰Π΅ ΠΏΠ°Ρ€Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ссли Π²Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ срСду ART вмСсто Dalvik β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ (ΠΈΠ»ΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ WhatsApp ΠΈ Titanium Backup), Π° полная ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Android ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ 10-20 ΠΌΠΈΠ½ΡƒΡ‚: Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Π²Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ART ΠΈ послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π° ΠΎΠ½ завис, ΠΆΠ΄ΠΈΡ‚Π΅.

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ART Π½Π° Android

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ срСду ART, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Android Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ с вСрсиСй ОБ 4.4.x ΠΈ процСссором Snapdragon, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Nexus 5 ΠΈΠ»ΠΈ Nexus 7 2013.

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° Android. Для этого, Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² настройки устройства, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΡƒΠ½ΠΊΡ‚ «О Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅Β» (О ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅) ΠΈ нСсколько Ρ€Π°Π· Ρ‚Π°ΠΏΠ½ΠΈΡ‚Π΅ ΠΏΠΎ полю «НомСр сборки», ΠΏΠΎΠΊΠ° Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ стали Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ.

ПослС этого Π² настройках появится ΠΏΡƒΠ½ΠΊΡ‚ «Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²Β», Π° Ρ‚Π°ΠΌ β€” Β«Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ срСду», Π³Π΄Π΅ ΠΈ слСдуСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ART вмСсто Dalvik, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅.

remontka.pro Π² Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ | Π”Ρ€ΡƒΠ³ΠΈΠ΅ способы подписки

А Π²Π΄Ρ€ΡƒΠ³ ΠΈ это Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно:

сравнСниС 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 устройство Android KitKat?

ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния Android 4.4.2 KitKat Π²Ρ‹ΠΆΠ°Ρ‚ΡŒ ΠΈΠ· вашСго Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΈΠ»ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ART Π² ΠΏΠΎΠΊΠΎΠ΅, ΠΏΠΎΠΊΠ° Google Π½Π΅ Ρ€Π΅ΡˆΠΈΡ‚ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Π² качСствС Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π·Π°ΠΌΠ΅Π½Ρ‹ для Dalvik?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Android Runtime?

Устройства Android ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ со срСдой выполнСния ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Dalvik. Π’Π°ΡˆΠΈΠΌ прилоТСниям Π½ΡƒΠΆΠ΅Π½ Dalvik для Ρ€Π°Π±ΠΎΡ‚Ρ‹. Android Runtime, ΠΈΠ»ΠΈ ART, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ; Dalvik ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° старом ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ процСссором ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Ρ‡Π΅Π³ΠΎ Π½Π΅ трСбуСтся ΠΎΡ‚ соврСмСнного оборудования Android.

Π‘ Dalvik прилоТСния ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с использованиСм компилятора Just-In-Time (JIT), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свободныС систСмныС рСсурсы. ART отличаСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ прилоТСния Π½Π° этапС установки с использованиСм Ahead-Of-Time (AOT) компиляции.

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния вашСго Android-устройства Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Android 4.4 KitKat (это Android 4.4.1 ΠΈ 4.4.2), Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π»Π΅Π³ΠΊΠΎ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ваши прилоТСния ΠΈ ΠΈΠ³Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ быстрСС β€” нСплохая Π²Π΅Ρ‰ΡŒ!

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с Dalvik Runtime Π½Π° ART

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ срСду выполнСния вашСго Android 4.4.2 KitKat с Dalvik Π½Π° ART, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ мСню ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° вашСго устройства.

Π­Ρ‚ΠΎ скрыто, Π½ΠΎ Π»Π΅Π³ΠΊΠΎ раскрываСтся. ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ Настройки> О Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ ΠΈ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΎΠΌΠ΅Ρ€ сборки β€” ΠΊΠΎΡΠ½ΠΈΡ‚Π΅ΡΡŒ этого 7 Ρ€Π°Π·. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ вас ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, трСбуСтся большС Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅.

НаТмитС Π½Π°Π·Π°Π΄ ΠΊ настройки мСню ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° мСню.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ измСнСнию Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ создании Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ вашСго устройства.

Π² случаС, Ссли Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ благоприятными (хотя это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ).

ΠžΡ‚ΡΡŽΠ΄Π° Π½Π°ΠΉΡ‚ΠΈ Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Runtime> Use ART. НаТмитС Π₯ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅ ΠΈ ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ° ваш Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΈ внСсСны Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния.

ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ сообщСниС Β«Android обновляСтся…», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ прилоТСния ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для ART. Когда Android запустится, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ … тСорСтичСски.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° АРВ

НСсмотря Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования, Π² настоящСС врСмя ART Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ всС Π΅Ρ‰Π΅ находится Π½Π° стадии тСстирования. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΏΠ°ΡΡ…Π°Π»ΡŒΠ½ΠΎΠ΅ яйцо ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Android, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… выпусках.

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ Π½Π° ART ΠΈΠ»ΠΈ Π½Π΅Ρ‚, это ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ваш Π²Ρ‹Π±ΠΎΡ€. ВрСмя выполнСния Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, ΠΈ, хотя ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ врСмя запуска прилоТСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΎ Π²Π΄Π²ΠΎΠ΅, Π΅ΡΡ‚ΡŒ ΠΈ нСдостатки. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, скомпилированныС Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ установки с использованиСм AOT, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ большС мСста для хранСния, Π° ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ запуска ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ сниТаСтся Π·Π° счСт увСличСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ установки.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ нСдостатком ART Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС являСтся отсутствиС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π₯отя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ высококлассныС прилоТСния Π±Ρ‹Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ART, Π½Π΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ, Ρ‡Ρ‚ΠΎ прилоТСния, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚Π΅ΡΡŒ, Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²ΠΎ врСмя выполнСния Android. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ являСтся краткосрочной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ β€” Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π΅ трСбуСтся ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ старыС прилоТСния Π½Π° этом этапС.

НаконСц, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ART Π»ΡƒΡ‡ΡˆΠ΅ всСго Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° стандартном ΠŸΠ—Π£. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠŸΠ—Π£

Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° срСду выполнСния Android.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ·: ART ΠΏΡ€ΠΎΡ‚ΠΈΠ² Dalvik

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ срСда выполнСния Android Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, я ΠΏΡ€ΠΎΠ²Π΅Π» нСсколько ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… тСстов. К соТалСнию, я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π±Ρ‹Π»ΠΈ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Под AnTuTu Benchmark:

  • ΠžΡ†Π΅Π½ΠΊΠ° Π”Π°Π»Π²ΠΈΠΊΠ°: 16719
  • ART Π±Π°Π»Π»: 17431

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ART Π½Π° 0,95% быстрСС.

ИспользованиС 3D Benchmark (Ice Storm)

  • ΠžΡ†Π΅Π½ΠΊΠ° Π”Π°Π»Π²ΠΈΠΊΠ°: 5638
  • ΠžΡ†Π΅Π½ΠΊΠ° ART: 5616 (Π±Π΅Π· Π·Π²ΡƒΠΊΠ°)

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Dalvik Π½Π° 1% быстрСС.

НаконСц, я сравнил с Π’Π΅Π»Π»Π°ΠΌΠΎ (ΠœΠ΅Ρ‚Π°Π»Π»)

  • ΠžΡ†Π΅Π½ΠΊΠ° Π”Π°Π»Π²ΠΈΠΊΠ°: 539
  • ΠžΡ†Π΅Π½ΠΊΠ° ART: 540

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: АРВ Π½Π° 1% быстрСС.

Π― Ρ‚Π°ΠΊΠΆΠ΅ запустил Ρ‚Ρ€ΠΈ прилоТСния: Chrome, Comics ΠΎΡ‚ Comixology ΠΈ Doctor Who: Legacy ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Π° Π² скорости Π΅Π΄Π²Π° Π·Π°ΠΌΠ΅Ρ‚Π½Π°.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ART

Как ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, Π΅ΡΡ‚ΡŒ большая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ART. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, особСнно Ссли Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π΅Π±-сайты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСлятся ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ прилоТСниях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ART, полагаясь Π½Π° краудсорсинговыС Π΄Π°Π½Π½Ρ‹Π΅.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π»ΡƒΡ‡ΡˆΠΈΠΌ списком являСтся www.androidruntime.com/list, Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ поиска, созданная ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π½Π°ΠΉΡ‚ΠΈ прилоТСния, совмСстимыС с ART.

Если ART Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для вас, ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, Π²Π΅Ρ€Π½ΡƒΠ²ΡˆΠΈΡΡŒ ΠΊ Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ врСмя выполнСния Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π³Π΄Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Dalvik.

Π˜Π‘ΠšΠ£Π‘Π‘Π’Π’Πž: Π½Π΅ совсСм Π³ΠΎΡ‚ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ

ВрСмя выполнСния Android, бСзусловно, выглядит Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, хотя Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ.

Однако, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, ART всС Π΅Ρ‰Π΅ оптимизируСтся, поэтому Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ Π² качСствС ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Android, ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ, Ссли ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌ.

ПослСднСС Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ART ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½Π΅ стоит ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ»ΠΎΡ…ΠΈΠ΅ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ Π² Play Store, Ρ‡Ρ‚ΠΎ сдСлали Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ ART. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ это Π½Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сбиты с Ρ‚ΠΎΠ»ΠΊΡƒ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π΅Π½Ρ‹ ΠΎΡ‚ использования прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π±Ρ‹ Π½Π° ΠΈΡ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ с Dalvik.

ΠŸΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Android Runtime, ΠΈΠ»ΠΈ Π²Ρ‹ Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π»ΠΈ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ станСт ΡˆΠΈΡ€ΠΎΠΊΠΎ доступным? РасскаТитС Π½Π°ΠΌ свои мысли Π² коммСнтариях.

Π›ΡƒΡ‡ΡˆΠ΅Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: Placeit.net
Image Credit: Π Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹ΠΉ Π·Π²ΠΎΠ½ΠΎΠΊ Ρ‡Π΅Ρ€Π΅Π· Shutterstock

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ dalvik ΠΈ art

Google прСдставила Π½ΠΎΠ²ΡƒΡŽ срСду выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ обновлСния Android 4.4 KitKat. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠΎΠΌΠΈΠΌΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Dalvik, Π½Π° соврСмСнных устройствах с процСссорами Snapdragon появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ срСду ART. (Если Π²Ρ‹ ΠΏΠΎΠΏΠ°Π»ΠΈ Π½Π° эту ΡΡ‚Π°Ρ‚ΡŒΡŽ с Ρ†Π΅Π»ΡŒΡŽ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ART Π½Π° Android, пролистайтС Π΅Π΅ ΠΊ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ, Ρ‚Π°ΠΌ Π΄Π°Π½Π° эта информация).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ срСда выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ‚ΡƒΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹? Π’ Android, для выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ скачиваСтС Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² APK (ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Dalvik (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ) ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ компиляции лоТатся ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½Π΅Π΅.

Π’ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Dalvik для компиляции ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Just-In-Time (JIT), ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ нСпосрСдствСнно ΠΏΡ€ΠΈ запускС ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… дСйствиях ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π΄ΠΎΠ»Π³ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания ΠΏΡ€ΠΈ запускС прилоТСния, Β«Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°ΠΌΒ», Π±ΠΎΠ»Π΅Π΅ интСнсивному использованию RAM.

ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ срСды ART

ART (Android RunTime) β€” новая, ΠΏΠΎΠΊΠ° Π΅Ρ‰Π΅ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина, прСдставлСнная Π² Android 4.4 ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ лишь Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (Π½ΠΈΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ).

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ART ΠΎΡ‚ Dalvik β€” ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ AOT (Ahead-Of-Time) ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ устанавливаСмых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ установка прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ большС мСста Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Android устройства, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запуск Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ быстрСС (ΠΎΠ½ΠΎ ΡƒΠΆΠ΅ скомпилированно), Π° мСньшСС использованиС процСссора ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π² связи с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ компиляции ΠΌΠΎΠΆΠ΅Ρ‚, Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΡŽ энСргии.

Как Π½Π° самом Π΄Π΅Π»Π΅ ΠΈ Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, ART ΠΈΠ»ΠΈ Dalvik?

Π’ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π΅ΡΡ‚ΡŒ ΡƒΠΆΠ΅ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сравнСний Ρ€Π°Π±ΠΎΡ‚Ρ‹ Android устройств Π² Π΄Π²ΡƒΡ… срСдах ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ разнятся. Один ΠΈΠ· самых ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… Ρ‚Π°ΠΊΠΈΡ… тСстов Π²Ρ‹Π»ΠΎΠΆΠ΅Π½ Π½Π° androidpolice.com (Π°Π½Π³Π».):

Буммируя Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… прСимущСств Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ART продолТаСтся, эта срСда ΠΏΠΎΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ стадии) Ρƒ ART Π½Π΅Ρ‚: Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… тСстах Ρ€Π°Π±ΠΎΡ‚Π° с использованиСм этой срСды ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ (особСнно Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ касаСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½ΠΎ Π½Π΅ Π²ΠΎ всСх Π΅Π΅ аспСктах), Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… особых прСимущСств Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΈΠ»ΠΈ ΠΆΠ΅ Dalvik Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ. НапримСр, Ссли Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‚ΠΎ Π²ΠΎΠΏΡ€Π΅ΠΊΠΈ оТиданиям, Dalvik ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ практичСски Ρ€Π°Π²Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ с ART.

ΠžΠ±Ρ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° тСстов β€” ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ‡Ρ‚ΠΎ с ART, Ρ‡Ρ‚ΠΎ с Dalvik Π½Π΅Ρ‚. Однако, новая срСда ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Π½Π΅ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ выглядят ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‰Π΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² Android 4.5 ΠΈΠ»ΠΈ Android 5 такая Ρ€Π°Π·Π½ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°. (Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Google, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, сдСлаСт ART срСдой, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ).

Π•Ρ‰Π΅ ΠΏΠ°Ρ€Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ссли Π²Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ срСду ART вмСсто Dalvik β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ (ΠΈΠ»ΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ WhatsApp ΠΈ Titanium Backup), Π° полная ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Android ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ 10-20 ΠΌΠΈΠ½ΡƒΡ‚: Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Π²Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ART ΠΈ послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π° ΠΎΠ½ завис, ΠΆΠ΄ΠΈΡ‚Π΅.

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ART Π½Π° Andro >Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ срСду ART, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Android Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ с вСрсиСй ОБ 4.4.x ΠΈ процСссором Snapdragon, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Nexus 5 ΠΈΠ»ΠΈ Nexus 7 2013.

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° Android. Для этого, Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² настройки устройства, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΡƒΠ½ΠΊΡ‚ «О Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅Β» (О ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅) ΠΈ нСсколько Ρ€Π°Π· Ρ‚Π°ΠΏΠ½ΠΈΡ‚Π΅ ΠΏΠΎ полю «НомСр сборки», ΠΏΠΎΠΊΠ° Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ стали Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ.

ПослС этого Π² настройках появится ΠΏΡƒΠ½ΠΊΡ‚ «Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²Β», Π° Ρ‚Π°ΠΌ β€” Β«Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ срСду», Π³Π΄Π΅ ΠΈ слСдуСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ART вмСсто Dalvik, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅.

А Π²Π΄Ρ€ΡƒΠ³ ΠΈ это Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно:

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ?

Рассылка Π½ΠΎΠ²Ρ‹Ρ…, ΠΈΠ½ΠΎΠ³Π΄Π° интСрСсных ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ…, ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² сайта remontka.pro. Никакой Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ ΠΈ бСсплатная ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒ подписчикам ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°. Π”Ρ€ΡƒΠ³ΠΈΠ΅ способы подписки (Π’Πš, Одноклассники, Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ, Facebook, Twitter, Youtube, ЯндСкс.Π”Π·Π΅Π½)

24.12.2015 Π² 14:20

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° ART пСрСстали Π²Ρ‹Π»Π΅Ρ‚Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρ‹.

15.01.2016 Π² 18:58

Николай, сСйчас ΠΏΠΎΠ΄ ART прилоТСния ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚

01.02.2016 Π² 01:06

ΠΊΠ°ΠΊ Π²Ρ‹ΠΉΡ‚ΠΈ с этого Ρ€Π΅ΠΆΠΈΠΌΠ°? Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» ART Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ Ρ‚Π² приставка ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»Π°ΡΡŒ ΠΈ надпись Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ зависла Π±ΠΎΠ»Π΅Π΅ 2Ρ… часов. Π²Ρ‹Π΄Ρ‘Ρ€Π³ΠΈΠ²Π°Π» ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅, Π΄Π΅Π»Π°Π» рСсСт, всё, Ρ…Π°Π½Π° Π΅ΠΉ?

01.02.2016 Π² 09:05

ЗдравствуйтС. По Ρ…Π°Ρ€Π΄-рСсСту Ρ‚ΠΎΡ‡Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ. Как Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

01.02.2016 Π² 15:20

Она ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΡˆΡŒ, висит Π½Π° заставкС Π°Π½Π΄Ρ€ΠΎΠΈΠ΄. ΠŸΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ» с ΡƒΡ‚Ρ€Π°, Ρ‚Π°ΠΊ ΠΈ висСла Π½Π° этой надписи Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ. Пока искал ΠΊΠ°ΠΊ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ попался Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ я Ρ€Π΅ΡˆΠΈΠ²ΡˆΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ART (описываСт Π½Π° 4ΠΏΠ΄Π° сайтС) Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡƒΡΡ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π½Π°Ρ€ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Ρ‘Π½, Π²ΠΈΠ΄ΠΈΠΌΠΎ Π½Π΅ всС процСссоры ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠ΅

10.02.2016 Π² 16:20

Π›ΠΎΠ», Ρ€Π΅ΡˆΠΈΠ» Ρ‚Ρ€Π°ΠΉΠ½ΡƒΡ‚ΡŒ АРВ Π½Π° своСм g3s, Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ пСрСзагрузился ΠΈ Π½Π°Ρ‡Π°Π» ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π» 84 ΠΈΠ· 130, ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ‹Π±ΠΈΠ»ΠΎ сообщСниС, ΠΌΠΎΠ» Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΊΡ€Π°ΡˆΠ½ΡƒΠ»ΠΎΡΡŒ ΠΈ мСста Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ нСдостаточно.
Π•Ρ‰Π΅ Ρ€Π°Π· пСрСзагрузился, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π» 34 прилоТСния ΠΈ вСрнулся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° Dalvik ΠΊ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ!
Π― Π΄ΡƒΠΌΠ°Π» ΠΎΠ½ сСйчас зависнСт Ρ‚Π°ΠΊ Π½Π°Π²Π΅ΠΊΠΈ ΠΈ придСтся Ρ‚Π΅Ρ€Π΅Ρ‚ΡŒ Π΄ΠΎ заводских.

21.02.2016 Π² 09:58

ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ с Π΄Π°Π»Π²ΠΈΠΊ Π½Π° Π°Ρ€Ρ‚ fly 4413 Π΅Π²ΠΎ Ρ‡ΠΈΠΊ 3 , пСрСзагрузился Ρ‚Π΅Π» ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ быстро ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ большС Π½Π΅ происходило, Ρ‡Π΅Ρ€Π΅Π· Π°Π½Ρ‚ΡƒΡ‚Ρƒ протСстил Π°Ρ€Ρ‚-19788 Π΄Π°Π»Π²ΠΈΠΊ-19928, ΠΏΠΎ Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ измСнилось каТСтся ΠΈΠ»ΠΈ я Π±Ρ‹Π» нСдостаточно Π±Π΄ΠΈΡ‚Π΅Π»Π΅Π½. По скорости разрядки Π½Π΅ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π». ΠšΡ‚ΠΎΡ‚ Π΅Ρ‰Π΅ Π½Π° Ρ‚Π°ΠΊΠΎΠΌ Ρ„Π»Π°Π΅ тСстил?

15.04.2016 Π² 13:12

Htc one mini 2 ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ Π½Π° Арт случайно, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Ρ‚Ρ‹ΠΊΠ°, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ сразу ΠΆΠ΅ Π½Π°Ρ‡Π°Π» ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ. послС Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° подвисла ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Π½Π° 3, пытался Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, ΠΆΠ°Π» Π½Π° всС Π±ΠΎΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ собрался ΠΏΠ°Π½ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Π»Π°ΡΡŒ оптимизация ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Мои напряТСнныС ягодицы ослабли, я Π½Π°Ρ‡Π°Π» ΠΆΠ΄Π°Ρ‚ΡŒ. Бпустя ΠΌΠΈΠ½ΡƒΡ‚ 10-15 послС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ загрузился Π³Π»Π°Π²Π½Ρ‹ΠΉ экран. Π― Π‘Ρ€Π°Π·Ρƒ Π½Π°Ρ‡Π°Π» Ρ‚Ρ‹Ρ€ΠΊΠ°Ρ‚ΡŒ ΠΏΠ°Π»ΡŒΡ†Π΅ΠΌ ΠΊΡƒΠ΄Π° Π½Π΅ поподя ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’Π΅Π»Π΅Ρ„ΠΎΠ½ с ΠΏΠ΅Ρ€Π²Ρ‹Ρ… сСкунд Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ подвисал, Π½ΠΎ послС ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… ΠΌΠΈΠ½ΡƒΡ‚ пСрСстал. ΠšΠΎΡ€ΠΎΡ‡Π΅ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΈΠΆΡƒ ΠΈ Π½Π΅ понимаю. Π”Π° ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ знаю Π·Π°Ρ‡Π΅ΠΌ всё это написал, Π½Π° самом Π΄Π΅Π»Π΅ ΠΌΠ½Π΅ просто ΠΈΠ·Π²ΠΈΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ зря ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ» вашС врСмя

16.04.2016 Π² 14:42

Π’ΠΊΠ»ΡŽΡ‡ΠΈΠ» Art, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ пСрСзагрузился.. Начал ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния.. 139 ΠΈ всС удачно… Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° полная Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ Π½Π°Ρ‡Π°Π» адски Ρ‚Ρ€ΠΎΠΈΡ‚ΡŒ.. Виснит ΠΈ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ ΠΌΠΈΠ½ΡƒΡ‚Π½ΠΎΠ΅ Π·Π°Π»ΠΈΠΏΠ°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, ΠΌΠ°Π»ΠΎ Ρ‚ΠΎΠ³ΠΎ, сам Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π»β€¦ Π’ΠΎΠ±Ρ‰Π΅ΠΌ Π΅Π»Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π½Π° davlik

01.10.2016 Π² 10:59

ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π½Π° ART ΡƒΠ±ΠΎΠ³ΡƒΡŽ Ρ‚Ρ€ΡƒΠ±Ρƒ fly iq4401.
Π Π°Π·Π½ΠΈΡ†Ρ‹ Π² скорости Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Π° Π²ΠΎΡ‚ Ρ€Π°Π·Ρ€ΡΠΆΠ°Ρ‚ΡŒΡΡ стал Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ быстрСС.

01.10.2016 Π² 16:49

НС знаю, для Ρ‡Π΅Π³ΠΎ Π²Ρ‹ Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ… ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° Π°Ρ€Ρ‚, Π½Π° Π½ΠΈΡ… всС Ρ€Π°Π²Π½ΠΎ ΠΏΠΎΠΊΠ° Π½ΠΈ Ρ‡Π΅Π³ΠΎ Π²ΠΈΠ΄Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС, Ρƒ мСня Π½Π° ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅ ВСсла Π½Π΅ΠΎΠ½ 8 Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², я ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π» спокойно, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»Π° Π² ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π½ΠΎΡ€ΠΌΠ΅, Π΄Π°ΠΆΠ΅ Π²ΠΈΠ΄Π½Ρ‹ Π½Π΅ большиС отличия, ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Ρ€Π°Π±ΠΎΡ‚Π° происходит Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ быстрСС, ΠΈΠ³Ρ€Ρ‹ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Π°, пСрСстали Π²Ρ‹Π»Π΅Ρ‚Π°Ρ‚ΡŒ , Π° Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ, зарядку Π΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅.

24.12.2016 Π² 19:28

НачнСм с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ lenovo s850, сдСлал Π·Π°ΠΊΠ°Π· Π½Π° root, встали ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ, Π½ΠΎ с dav Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ стал Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΎΠΌ Π½ΠΎΠΌΠ΅Ρ€ ΠΎΠ΄ΠΈΠ½, ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π» art, измСнСния Π΅ΡΡ‚ΡŒ, Π½Π΅Ρ‚ Π»Π°Π³ΠΎΠ² Π² Ρ€Π°Π±ΠΎΡ‚Π΅, уТасных подвисаний.

25.01.2017 Π² 15:57

ΠΊΠ°ΠΊ Π²Ρ‹ΠΉΡ‚ΠΈ с этого Ρ€Π΅ΠΆΠΈΠΌΠ°? Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» ART Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ смартфонС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»Π°ΡΡŒ ΠΈ надпись Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ зависла Π±ΠΎΠ»Π΅Π΅ 6Ρ‚ΠΈ часов. Π²Ρ‹Π΄Ρ‘Ρ€Π³ΠΈΠ²Π°Π» ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π½Π΅ получаСтся ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅

16.02.2017 Π² 23:19

На самом Π΄Π΅Π»Π΅ поддСрТиваСтся Ρ€Π΅ΠΆΠΈΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π‘Π½Π΅ΠΏΠ΄Ρ€Π°Π³ΠΎΠ½Π΅, Ρƒ мСня ΠΏΡ€ΠΎΡ† МВК ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° АРВ ΠΊΠ°ΠΊΠΈΡ… супСр ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ Π΄Π°Π». Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ остался Π½Π° Π”Π°Π»Π²ΠΈΠΊΠ΅.

17.02.2017 Π² 09:26

Ну ΡΡ‚Π°Ρ‚ΡŒΡ писалась ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ ΡƒΠΆΠ΅. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π°, сСйчас ΠΈ Π½Π° MTK ΠΌΠΎΠΆΠ½ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: послС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ коммСнтария ΠΎΠ½ Π½Π΅ появляСтся Π½Π° страницС сразу. Всё Π² порядкС β€” вашС сообщСниС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ. ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΈΡ… публикация Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π΄Π½Ρ‘ΠΌ, ΠΈΠ½ΠΎΠ³Π΄Π° Ρ‡Π°Ρ‰Π΅. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ.

Google прСдставила Π½ΠΎΠ²ΡƒΡŽ срСду выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ обновлСния Android 4.4 KitKat. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠΎΠΌΠΈΠΌΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Dalvik, Π½Π° соврСмСнных устройствах с процСссорами Snapdragon появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ срСду ART. (Если Π²Ρ‹ ΠΏΠΎΠΏΠ°Π»ΠΈ Π½Π° эту ΡΡ‚Π°Ρ‚ΡŒΡŽ с Ρ†Π΅Π»ΡŒΡŽ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ART Π½Π° Android, пролистайтС Π΅Π΅ ΠΊ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ, Ρ‚Π°ΠΌ Π΄Π°Π½Π° эта информация).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ срСда выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ‚ΡƒΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹? Π’ Android, для выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ скачиваСтС Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² APK (ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Dalvik (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ) ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ компиляции лоТатся ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½Π΅Π΅.

Π’ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Dalvik для компиляции ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Just-In-Time (JIT), ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ нСпосрСдствСнно ΠΏΡ€ΠΈ запускС ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… дСйствиях ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π΄ΠΎΠ»Π³ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания ΠΏΡ€ΠΈ запускС прилоТСния, Β«Ρ‚ΠΎΡ€ΠΌΠΎΠ·Π°ΠΌΒ», Π±ΠΎΠ»Π΅Π΅ интСнсивному использованию RAM.

ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ срСды ART

ART (Android RunTime) β€” новая, ΠΏΠΎΠΊΠ° Π΅Ρ‰Π΅ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина, прСдставлСнная Π² Android 4.4 ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ лишь Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (Π½ΠΈΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ).

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ART ΠΎΡ‚ Dalvik β€” ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ AOT (Ahead-Of-Time) ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ устанавливаСмых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ установка прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ большС мСста Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Android устройства, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запуск Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ быстрСС (ΠΎΠ½ΠΎ ΡƒΠΆΠ΅ скомпилированно), Π° мСньшСС использованиС процСссора ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π² связи с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ компиляции ΠΌΠΎΠΆΠ΅Ρ‚, Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΡŽ энСргии.

Как Π½Π° самом Π΄Π΅Π»Π΅ ΠΈ Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, ART ΠΈΠ»ΠΈ Dalvik?

Π’ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π΅ΡΡ‚ΡŒ ΡƒΠΆΠ΅ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сравнСний Ρ€Π°Π±ΠΎΡ‚Ρ‹ Android устройств Π² Π΄Π²ΡƒΡ… срСдах ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ разнятся. Один ΠΈΠ· самых ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… Ρ‚Π°ΠΊΠΈΡ… тСстов Π²Ρ‹Π»ΠΎΠΆΠ΅Π½ Π½Π° androidpolice.com (Π°Π½Π³Π».):

Буммируя Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… прСимущСств Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ART продолТаСтся, эта срСда ΠΏΠΎΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ стадии) Ρƒ ART Π½Π΅Ρ‚: Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… тСстах Ρ€Π°Π±ΠΎΡ‚Π° с использованиСм этой срСды ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ (особСнно Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ касаСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½ΠΎ Π½Π΅ Π²ΠΎ всСх Π΅Π΅ аспСктах), Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… особых прСимущСств Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΈΠ»ΠΈ ΠΆΠ΅ Dalvik Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ. НапримСр, Ссли Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‚ΠΎ Π²ΠΎΠΏΡ€Π΅ΠΊΠΈ оТиданиям, Dalvik ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ практичСски Ρ€Π°Π²Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ с ART.

ΠžΠ±Ρ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° тСстов β€” ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ‡Ρ‚ΠΎ с ART, Ρ‡Ρ‚ΠΎ с Dalvik Π½Π΅Ρ‚. Однако, новая срСда ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Π½Π΅ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ выглядят ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‰Π΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² Android 4.5 ΠΈΠ»ΠΈ Android 5 такая Ρ€Π°Π·Π½ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°. (Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Google, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, сдСлаСт ART срСдой, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ).

Π•Ρ‰Π΅ ΠΏΠ°Ρ€Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ссли Π²Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ срСду ART вмСсто Dalvik β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ (ΠΈΠ»ΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ WhatsApp ΠΈ Titanium Backup), Π° полная ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Android ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ 10-20 ΠΌΠΈΠ½ΡƒΡ‚: Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Π²Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ART ΠΈ послС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π° ΠΎΠ½ завис, ΠΆΠ΄ΠΈΡ‚Π΅.

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ART Π½Π° Andro >Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ срСду ART, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Android Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ с вСрсиСй ОБ 4.4.x ΠΈ процСссором Snapdragon, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Nexus 5 ΠΈΠ»ΠΈ Nexus 7 2013.

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° Android. Для этого, Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² настройки устройства, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΡƒΠ½ΠΊΡ‚ «О Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅Β» (О ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅) ΠΈ нСсколько Ρ€Π°Π· Ρ‚Π°ΠΏΠ½ΠΈΡ‚Π΅ ΠΏΠΎ полю «НомСр сборки», ΠΏΠΎΠΊΠ° Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ стали Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ.

ПослС этого Π² настройках появится ΠΏΡƒΠ½ΠΊΡ‚ «Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²Β», Π° Ρ‚Π°ΠΌ β€” Β«Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ срСду», Π³Π΄Π΅ ΠΈ слСдуСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ART вмСсто Dalvik, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅.

А Π²Π΄Ρ€ΡƒΠ³ ΠΈ это Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно:

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ?

Рассылка Π½ΠΎΠ²Ρ‹Ρ…, ΠΈΠ½ΠΎΠ³Π΄Π° интСрСсных ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ…, ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² сайта remontka.pro. Никакой Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ ΠΈ бСсплатная ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒ подписчикам ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°. Π”Ρ€ΡƒΠ³ΠΈΠ΅ способы подписки (Π’Πš, Одноклассники, Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ, Facebook, Twitter, Youtube, ЯндСкс.Π”Π·Π΅Π½)

24.12.2015 Π² 14:20

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° ART пСрСстали Π²Ρ‹Π»Π΅Ρ‚Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρ‹.

15.01.2016 Π² 18:58

Николай, сСйчас ΠΏΠΎΠ΄ ART прилоТСния ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚

01.02.2016 Π² 01:06

ΠΊΠ°ΠΊ Π²Ρ‹ΠΉΡ‚ΠΈ с этого Ρ€Π΅ΠΆΠΈΠΌΠ°? Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» ART Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ Ρ‚Π² приставка ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»Π°ΡΡŒ ΠΈ надпись Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ зависла Π±ΠΎΠ»Π΅Π΅ 2Ρ… часов. Π²Ρ‹Π΄Ρ‘Ρ€Π³ΠΈΠ²Π°Π» ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅, Π΄Π΅Π»Π°Π» рСсСт, всё, Ρ…Π°Π½Π° Π΅ΠΉ?

01.02.2016 Π² 09:05

ЗдравствуйтС. По Ρ…Π°Ρ€Π΄-рСсСту Ρ‚ΠΎΡ‡Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ. Как Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

01.02.2016 Π² 15:20

Она ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΡˆΡŒ, висит Π½Π° заставкС Π°Π½Π΄Ρ€ΠΎΠΈΠ΄. ΠŸΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ» с ΡƒΡ‚Ρ€Π°, Ρ‚Π°ΠΊ ΠΈ висСла Π½Π° этой надписи Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ. Пока искал ΠΊΠ°ΠΊ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚ΡŒ попался Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ я Ρ€Π΅ΡˆΠΈΠ²ΡˆΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ART (описываСт Π½Π° 4ΠΏΠ΄Π° сайтС) Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡƒΡΡ‚ΡŒ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π½Π°Ρ€ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Ρ‘Π½, Π²ΠΈΠ΄ΠΈΠΌΠΎ Π½Π΅ всС процСссоры ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠ΅

10.02.2016 Π² 16:20

Π›ΠΎΠ», Ρ€Π΅ΡˆΠΈΠ» Ρ‚Ρ€Π°ΠΉΠ½ΡƒΡ‚ΡŒ АРВ Π½Π° своСм g3s, Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ пСрСзагрузился ΠΈ Π½Π°Ρ‡Π°Π» ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π» 84 ΠΈΠ· 130, ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ‹Π±ΠΈΠ»ΠΎ сообщСниС, ΠΌΠΎΠ» Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΊΡ€Π°ΡˆΠ½ΡƒΠ»ΠΎΡΡŒ ΠΈ мСста Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ нСдостаточно.
Π•Ρ‰Π΅ Ρ€Π°Π· пСрСзагрузился, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π» 34 прилоТСния ΠΈ вСрнулся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° Dalvik ΠΊ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ!
Π― Π΄ΡƒΠΌΠ°Π» ΠΎΠ½ сСйчас зависнСт Ρ‚Π°ΠΊ Π½Π°Π²Π΅ΠΊΠΈ ΠΈ придСтся Ρ‚Π΅Ρ€Π΅Ρ‚ΡŒ Π΄ΠΎ заводских.

21.02.2016 Π² 09:58

ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ с Π΄Π°Π»Π²ΠΈΠΊ Π½Π° Π°Ρ€Ρ‚ fly 4413 Π΅Π²ΠΎ Ρ‡ΠΈΠΊ 3 , пСрСзагрузился Ρ‚Π΅Π» ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ быстро ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ большС Π½Π΅ происходило, Ρ‡Π΅Ρ€Π΅Π· Π°Π½Ρ‚ΡƒΡ‚Ρƒ протСстил Π°Ρ€Ρ‚-19788 Π΄Π°Π»Π²ΠΈΠΊ-19928, ΠΏΠΎ Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ измСнилось каТСтся ΠΈΠ»ΠΈ я Π±Ρ‹Π» нСдостаточно Π±Π΄ΠΈΡ‚Π΅Π»Π΅Π½. По скорости разрядки Π½Π΅ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π». ΠšΡ‚ΠΎΡ‚ Π΅Ρ‰Π΅ Π½Π° Ρ‚Π°ΠΊΠΎΠΌ Ρ„Π»Π°Π΅ тСстил?

15.04.2016 Π² 13:12

Htc one mini 2 ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ Π½Π° Арт случайно, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Ρ‚Ρ‹ΠΊΠ°, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ сразу ΠΆΠ΅ Π½Π°Ρ‡Π°Π» ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ. послС Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° подвисла ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Π½Π° 3, пытался Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, ΠΆΠ°Π» Π½Π° всС Π±ΠΎΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ собрался ΠΏΠ°Π½ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Π»Π°ΡΡŒ оптимизация ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Мои напряТСнныС ягодицы ослабли, я Π½Π°Ρ‡Π°Π» ΠΆΠ΄Π°Ρ‚ΡŒ. Бпустя ΠΌΠΈΠ½ΡƒΡ‚ 10-15 послС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ загрузился Π³Π»Π°Π²Π½Ρ‹ΠΉ экран. Π― Π‘Ρ€Π°Π·Ρƒ Π½Π°Ρ‡Π°Π» Ρ‚Ρ‹Ρ€ΠΊΠ°Ρ‚ΡŒ ΠΏΠ°Π»ΡŒΡ†Π΅ΠΌ ΠΊΡƒΠ΄Π° Π½Π΅ поподя ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’Π΅Π»Π΅Ρ„ΠΎΠ½ с ΠΏΠ΅Ρ€Π²Ρ‹Ρ… сСкунд Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ подвисал, Π½ΠΎ послС ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… ΠΌΠΈΠ½ΡƒΡ‚ пСрСстал. ΠšΠΎΡ€ΠΎΡ‡Π΅ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΈΠΆΡƒ ΠΈ Π½Π΅ понимаю. Π”Π° ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ знаю Π·Π°Ρ‡Π΅ΠΌ всё это написал, Π½Π° самом Π΄Π΅Π»Π΅ ΠΌΠ½Π΅ просто ΠΈΠ·Π²ΠΈΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ зря ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ» вашС врСмя

16.04.2016 Π² 14:42

Π’ΠΊΠ»ΡŽΡ‡ΠΈΠ» Art, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ пСрСзагрузился.. Начал ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния.. 139 ΠΈ всС удачно… Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° полная Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ Π½Π°Ρ‡Π°Π» адски Ρ‚Ρ€ΠΎΠΈΡ‚ΡŒ.. Виснит ΠΈ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ ΠΌΠΈΠ½ΡƒΡ‚Π½ΠΎΠ΅ Π·Π°Π»ΠΈΠΏΠ°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ, ΠΌΠ°Π»ΠΎ Ρ‚ΠΎΠ³ΠΎ, сам Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π»β€¦ Π’ΠΎΠ±Ρ‰Π΅ΠΌ Π΅Π»Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π½Π° davlik

01.10.2016 Π² 10:59

ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π½Π° ART ΡƒΠ±ΠΎΠ³ΡƒΡŽ Ρ‚Ρ€ΡƒΠ±Ρƒ fly iq4401.
Π Π°Π·Π½ΠΈΡ†Ρ‹ Π² скорости Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Π° Π²ΠΎΡ‚ Ρ€Π°Π·Ρ€ΡΠΆΠ°Ρ‚ΡŒΡΡ стал Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ быстрСС.

01.10.2016 Π² 16:49

НС знаю, для Ρ‡Π΅Π³ΠΎ Π²Ρ‹ Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ… ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° Π°Ρ€Ρ‚, Π½Π° Π½ΠΈΡ… всС Ρ€Π°Π²Π½ΠΎ ΠΏΠΎΠΊΠ° Π½ΠΈ Ρ‡Π΅Π³ΠΎ Π²ΠΈΠ΄Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС, Ρƒ мСня Π½Π° ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅ ВСсла Π½Π΅ΠΎΠ½ 8 Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², я ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π» спокойно, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»Π° Π² ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π½ΠΎΡ€ΠΌΠ΅, Π΄Π°ΠΆΠ΅ Π²ΠΈΠ΄Π½Ρ‹ Π½Π΅ большиС отличия, ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Ρ€Π°Π±ΠΎΡ‚Π° происходит Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ быстрСС, ΠΈΠ³Ρ€Ρ‹ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Π°, пСрСстали Π²Ρ‹Π»Π΅Ρ‚Π°Ρ‚ΡŒ , Π° Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ, зарядку Π΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅.

24.12.2016 Π² 19:28

НачнСм с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ lenovo s850, сдСлал Π·Π°ΠΊΠ°Π· Π½Π° root, встали ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ, Π½ΠΎ с dav Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ стал Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΎΠΌ Π½ΠΎΠΌΠ΅Ρ€ ΠΎΠ΄ΠΈΠ½, ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π» art, измСнСния Π΅ΡΡ‚ΡŒ, Π½Π΅Ρ‚ Π»Π°Π³ΠΎΠ² Π² Ρ€Π°Π±ΠΎΡ‚Π΅, уТасных подвисаний.

25.01.2017 Π² 15:57

ΠΊΠ°ΠΊ Π²Ρ‹ΠΉΡ‚ΠΈ с этого Ρ€Π΅ΠΆΠΈΠΌΠ°? Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» ART Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ смартфонС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»Π°ΡΡŒ ΠΈ надпись Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ зависла Π±ΠΎΠ»Π΅Π΅ 6Ρ‚ΠΈ часов. Π²Ρ‹Π΄Ρ‘Ρ€Π³ΠΈΠ²Π°Π» ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π½Π΅ получаСтся ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅

16.02.2017 Π² 23:19

На самом Π΄Π΅Π»Π΅ поддСрТиваСтся Ρ€Π΅ΠΆΠΈΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π‘Π½Π΅ΠΏΠ΄Ρ€Π°Π³ΠΎΠ½Π΅, Ρƒ мСня ΠΏΡ€ΠΎΡ† МВК ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° АРВ ΠΊΠ°ΠΊΠΈΡ… супСр ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ Π΄Π°Π». Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ остался Π½Π° Π”Π°Π»Π²ΠΈΠΊΠ΅.

17.02.2017 Π² 09:26

Ну ΡΡ‚Π°Ρ‚ΡŒΡ писалась ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ ΡƒΠΆΠ΅. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π°, сСйчас ΠΈ Π½Π° MTK ΠΌΠΎΠΆΠ½ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: послС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ коммСнтария ΠΎΠ½ Π½Π΅ появляСтся Π½Π° страницС сразу. Всё Π² порядкС β€” вашС сообщСниС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ. ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΈΡ… публикация Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π΄Π½Ρ‘ΠΌ, ΠΈΠ½ΠΎΠ³Π΄Π° Ρ‡Π°Ρ‰Π΅. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ слоТности: для ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ…. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ вСрсии Android, Π±Π΅Ρ‚Π°-вСрсия ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ сСйчас Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Android L, компания Google собираСтся ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ срСду выполнСния Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с Dalvik Π½Π° ART. Главная Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² срСдС Dalvik ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ прилоТСния прСобразуСтся Π² ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹Π΅ для выполнСния процСссором ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (компилируСтся) ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ запускС, Π° Π² срСдС ART компиляция происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· β€” ΠΏΡ€ΠΈ установкС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ способ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС памяти Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ Π³Π°Π΄ΠΆΠ΅Ρ‚Π° ΠΈ замСдляСт процСсс установки, Π² дальнСйшСм, нСсёт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прСимущСства для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ β€” прилоТСния Π² срСдС ART Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС, Ρ‡Π΅ΠΌ Π² срСдС Dalvik.

Π”Ρ€ΡƒΠ³ΠΈΠΌ прСимущСством срСды ART являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅Ρ‘ использования вмСстС с 64-Π±ΠΈΡ‚Π½Ρ‹ΠΌΠΈ процСссорами ΠΈ прилоТСниями, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Dalvik ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ процСссоры, Ρ‡Ρ‚ΠΎ ΠΈ сдСлало ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ Π½Π΅Π³ΠΎ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹ΠΌ. Но довольно ΠΎ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ART ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Android L, ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ возмоТности Π½ΠΎΠ²ΠΎΠΉ срСды запуска ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΆΠ΅ сСйчас Π½Π° смартфонах с установлСнным Android 4.4 KitKat, хотя ΠΈ Π½Π΅ всСм ΠΎΠ± этом извСстно.

Π’ вСрсии Android 4.4 Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ART ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, поэтому, Π΄Π°ΠΆΠ΅ Ссли вашС устройство Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° послСднСй вСрсии мобильной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½ΠΊΠΈ ΠΎΡ‚ Google, инструкция, привСдённая Π½ΠΈΠΆΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ART Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π° Ρ‚Π°ΠΊΠΈΡ… смартфонах, ΠΊΠ°ΠΊ Samsung Galaxy S5, HTC M8, LG G3, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ устройств с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ сторонними ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°ΠΌΠΈ Π½Π° Π±Π°Π·Π΅ AOSP.

Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ART Π½Π° вашСм устройствС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

  1. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ настройки ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ список Π²Π½ΠΈΠ· (Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π³Π°Π΄ΠΆΠ΅Ρ‚Π°Ρ…, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, придётся ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€œΠ²ΡΠ΅β€ ΠΈΠ»ΠΈ β€œΠΎΠ±Ρ‰ΠΈΠ΅β€).
  2. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» β€œΠžΠ± устройствС” ΠΈ сСмь Ρ€Π°Π· Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΏΡƒΠ½ΠΊΡ‚ β€œΠΠΎΠΌΠ΅Ρ€ сборки”.
  3. ПослС появлСния сообщСния ΠΎΠ± ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² настройки ΠΈ Π·Π°ΠΉΡ‚ΠΈ Π² появившийся Ρ€Π°Π·Π΄Π΅Π».
  4. Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ β€œΠ‘Ρ€Π΅Π΄Π° выполнСния” ΠΈ, Ρ‚Π°ΠΏΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ β€œΠ˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ART”, послС Ρ‡Π΅Π³ΠΎ Π΅Ρ‰Ρ‘ Ρ€Π°Π· ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ свои намСрСния Π²ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ ΠΎΠΊΠ½Π΅.

ПослС выполнСния описанных дСйствий вашС устройство пСрСзагрузится, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ эта ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, Π² зависимости ΠΎΡ‚ количСства установлСнных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ 10-20 ΠΌΠΈΠ½ΡƒΡ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ устройству потрСбуСтся ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС прилоТСния. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π½Π° это врСмя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ смартфон ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ ΠΊ зарядному устройству.

Когда смартфон ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ загрузится Π΄ΠΎ экрана Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ смСло Π±Ρ€Π°Ρ‚ΡŒ Π³Π°Π΄ΠΆΠ΅Ρ‚ Π² Ρ€ΡƒΠΊΠΈ ΠΈ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π²ΠΎΠ·Ρ€ΠΎΡΡˆΠ΅ΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‡Ρ‚ΠΎ особо Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π½Π° ΠΌΠ°Π»ΠΎΠΌΠΎΡ‰Π½Ρ‹Ρ… устройствах. Ну Π° Ссли ART ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ вас Π½Π΅ устроил (Π° Π² функциях для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ Π±Π°Π³ΠΈ), Ρ‚ΠΎ Π²Ρ‹ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π° Dalvik ΠΏΠΎ этой ΠΆΠ΅ инструкции.

Android ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ: сравнСниС 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 всС Π΅Ρ‰Π΅ находится Π² стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ ΠΊΠ°ΠΊ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

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

КакиС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ совмСстимости ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ со срСды выполнСния dalvik Π½Π° art?

Π£ Dalvik Π² KitKat появился ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ Π² Π²ΠΈΠ΄Π΅ ART. Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ прСимущСства ΠΆΠ΄ΡƒΡ‚ Android ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² скором Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ART (Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° «Android Runtime») — это новая срСда выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, написанная Π½Π° C/C++, которая отличаСтся ΠΎΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π² Android Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Dalvik Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС прилоТСния Π² систСмС ΡƒΠΆΠ΅ скомпилированы, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² JIT-компиляторС ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ART позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ прилоТСния Π½Π° Ρ€Π°Π·Π½ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅ (wiz. ARM,x86) Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ со стороны Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Помимо этого Π½Π° запуск ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Π½ΠΎΠ²Ρ‹Ρ… условиях ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π² Π΄Π²Π° Ρ€Π°Π·Π° мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. НС обошлось ΠΈ Π±Π΅Π· нСдостатков, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… связан с ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях ART. Данная срСда ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ вся нСобходимая ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ пСрСводится Π² машинно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык Π΅Ρ‰Π΅ Π²ΠΎ врСмя установки ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (AOT компиляция), Π° это Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ вСсь процСсс установки ΠΎΡ‡Π΅Π½ΡŒ сильно растягиваСтся, Π° прилоТСния Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ большС мСста, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС врСмя скомпилированы. Π₯ΠΎΡ‚ΡŒ ART ΠΈ присутствуСт Π² Android 4.4 KitKat, Π½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Dalvik. ART ΠΆΠ΅ всС Π΅Ρ‰Π΅ находится Π½Π° стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΉ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ: Settings -> Developer options -> Select runtime.

Если Π²Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ срСду, Ρ‚ΠΎ Π½Π΅ стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ пСрвая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄Π»ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ 20 ΠΌΠΈΠ½ΡƒΡ‚, Π° Ρ‚ΠΎ ΠΈ большС: систСмС потрСбуСтся ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libdvm.so Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° libart.so, Π° Ρ„Π°ΠΉΠ»Ρ‹ ODEX Π½Π° OAT. ΠžΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ сСбС, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° ART Π² случаС с кастомными ROM’ами Π½Π΅ рСкомСндуСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° нСсочСтания с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсиСй Gapps ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкам, Π²Ρ‹Π»Π΅Ρ‚Π°ΠΌ систСмы ΠΈ сдСлаСт Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° устройствС Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² Android 4.4 KitKat ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ лишь с ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠΌ Π½ΠΎΠ²ΠΎΠΉ срСда выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Ρ‹, исходя ΠΈΠ· Ρ‚Π΅ΠΏΠ΅Ρ€Π΅ΡˆΠ½ΠΈΡ… практичСских Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², слишком Ρ€Π°Π½ΠΎ. ART Π΅Ρ‰Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°, Π½ΠΎ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½ΠΎΠ²Ρ‹Ρ… условиях прилоТСния Π±ΡƒΠ΄ΡƒΡ‚ ΡˆΡƒΡΡ‚Ρ€Π΅Π΅, анимация станСт Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½ΠΎΠΉ, Π° рСакция Π½Π° прикосновСниС ΠΊ тачскрину ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡΡ. Помимо этого ART смоТСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° процСссор: для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° процСссов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ лишь Ρ‡Π°ΡΡ‚ΡŒ ядСр. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π±ΠΎΠ»Π΅Π΅ эффСктивному использованию ARM Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ big.LITTLE, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, энСргопотрСблСниС Android устройств удастся ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ, Π° врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ — ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ. ЀактичСски ART Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π΄Π²Π° Π±Π΅ΠΊΠ΅Π½Π΄ компилятора. Как ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, Ρ‚Π°ΠΊ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ — это AOT (Ahead-of-Time) компиляторы, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для распознавания машинного ΠΊΠΎΠ΄Π° ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GCC, cl.exe (LLVM компилятор).

Как Π½ΠΈ странно, Π½ΠΎ Π½Π° созданиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ART Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ срСды Ρ‚Π°ΠΊΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ ART Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ для Dalvik, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, Π½ΠΎΠ²Ρ‹Π΅ знания ΠΈ умСния Π΄ΠΎΠ±Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ придСтся. Π Π°Π±ΠΎΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ всС с Ρ‚Π΅ΠΌ ΠΆΠ΅ Java Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠΌ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны Ρƒ AOT компиляции Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ нСдостаток: ошибки, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ Π½Π° Ρ€Π°Π·Π½ΠΎΠΌ ΠΆΠ΅Π»Π΅Π·Π΅. Π’ связи с этим Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ придСтся Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои прилоТСния Π½Π° большСм количСствС Android устройств. ΠŸΡ€ΠΈ этом прСкомпиляция ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ объСм Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния с ART ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° любом языкС с LLVM фронтэндом. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ доступ ΠΊ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ: Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ большС возмоТностСй, Π½ΠΎ Π² случаС ошибки Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ нанСсти Π²Ρ€Π΅Π΄ Android устройству. ПослСдний Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ связан с использованиСм JNI — стандартного ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° для запуска ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ связано обСспСчСниС Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ совмСстимости.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ART ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Android устройств возрастСт, Π° количСство Π»Π°Π³ΠΎΠ² ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ.. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ нСдостатки Dalvik ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ART Dalvik Π±ΠΎΠ»Π΅Π΅ мСдлСнная, ΠΊΠ°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. JIT компилятор — это Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ головная боль для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ нСдостатки ART ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Dalvik Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ объСма ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ установки

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

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ нСпосрСдствСнно ΠΊ Android Runtime, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ срСда выполнСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ 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 (Ρ‚ΠΎΡ‡Π½ΠΎ Π² срок), Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ART ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ AOT (опСрСТая врСмя).

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной 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

ART ΠΈ Dalvik. Π‘Ρ€Π΅Π΄Π° выполнСния Android (ART) — это сСрдцС… | ΠŸΡ€Π°Π³Π°Ρ‚ΠΈ Π‘ΠΈΠ½Π³Ρ… ⭐️⭐️⭐️⭐️⭐️

Π‘Ρ€Π΅Π΄Π° выполнСния Android (ART) — это сСрдцС Android.Π­Ρ‚ΠΎ быстрая, Π·Π°Ρ€Π°Π½Π΅Π΅ скомпилированная срСда выполнСния с соврСмСнной сборкой мусора, рассчитанная Π½Π° ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Android ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Dalvik ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ с ART. Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‚Π°ΠΊΡƒΡŽ ​​как спСцификация Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° исполняСмого Ρ„Π°ΠΉΠ»Π° Dalvik, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ конструкции самой срСды выполнСния.

Π‘Ρ€Π΅Π΄Π° выполнСния Android (ART) — это срСда выполнСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для устройств ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Android 5.0 (ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ API 21) ΠΈ Π²Ρ‹ΡˆΠ΅. Π­Ρ‚Π° срСда выполнСния ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ряд Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠ»Π°Π²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android.

  1. УстранСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой мусора (GC)
  2. ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ JNI
  3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° JNI Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со сборкой мусора
  4. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок
  5. ИзмСнСния ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
  6. ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ стСка
  7. УстранСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ компиляции AOT
  8. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΡ‚Ρ‡Π΅Ρ‚Π°ΠΌΠΈ

ART ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ (AOT) ΠΈ, начиная с Android 7.0 (Nougat ΠΈΠ»ΠΈ N), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½ΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ AOT, JIT-компиляции ΠΈ компиляции ΠΏΠΎ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŽ.ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ всСх этих Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² компиляции настраиваСтся ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅. НапримСр, устройства Pixel настроСны со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ компиляции:

  1. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ устанавливаСтся Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ компиляции AOT. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ нСсколько запусков прилоТСния ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, Π° часто выполняСмыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ JIT-компиляциСй.
  2. Когда устройство находится Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ оТидания ΠΈ заряТаСтся, Π΄Π΅ΠΌΠΎΠ½ компиляции запускаСтся для AOT-компиляции часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° основС профиля, созданного Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π²Ρ‹Ρ… запусков.
  3. ΠŸΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ пСрСзапускС прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ΄, управляСмый ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΌ, ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ JIT-компиляция Π²ΠΎ врСмя выполнСния для ΡƒΠΆΠ΅ скомпилированных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ Π²ΠΎ врСмя Π½ΠΎΠ²Ρ‹Ρ… запусков, Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ компиляции.

ART Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ компилятор (инструмСнт dex2oat) ΠΈ срСду выполнСния (libart.so), Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡƒΡŽ для запуска Zygote. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ dex2oat ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ„Π°ΠΉΠ» APK ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² компиляции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ срСда выполнСния.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ выпуска, Π½ΠΎ Π² вСрсии Android O ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹:

1 .vdex: содСрТит нСсТатый ΠΊΠΎΠ΄ DEX APK с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. для ускорСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

2 .odex: содСрТит ΠΊΠΎΠ΄, скомпилированный AOT для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² APK.
3 .art (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ): содСрТит Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ прСдставлСния ART Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… строк ΠΈ классов, пСрСчислСнных Π² APK, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для ускорСния запуска прилоТСния.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Dalvik ΠΈ ART?

Наш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ язык машинного уровня, Π½ΠΎ ΠΌΡ‹ пишСм ΠΊΠΎΠ΄ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ языкС высокого уровня.Π’ΠΎ ΠΆΠ΅ самоС ΠΈ с Android, Π² Android ваши классы Java Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ DEX, ΠΈ этот Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° DEX прСобразуСтся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСды выполнСния ART ΠΈΠ»ΠΈ Dalvik. ПослС этого Android запустит ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Но здСсь Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: Ρ‡Ρ‚ΠΎ это Π·Π° срСда выполнСния?

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ срСдС выполнСния ΠΊΠ°ΠΊ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСобразования языка высокого уровня Π² ΠΊΠΎΠ΄ машинного уровня, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Android, Ссли Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ Android Π½Π° Java ΠΈΠ»ΠΈ Kotlin, Ρ‚ΠΎΠ³Π΄Π° эта срСда выполнСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для прСобразования Код Java ΠΈΠ»ΠΈ Kotlin Π² ΠΊΠΎΠ΄ машинного уровня, ΠΈ систСма Android ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.Android ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° срСды выполнСния: Dalvik ΠΈ ART. Π’Π°ΠΊ. Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° этих Π΄Π²ΠΎΠΈΡ….

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π”Π°Π»Π²ΠΈΠΊ?

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

Π”Π°Π»Π΅Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΠΎΡ‚ΠΎΠΊ выполнСния DVM:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ АРВ?

ART ΠΈΠ»ΠΈ Android Runtime — это срСда выполнСния Android, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ahead Of Time (AOT). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ AOT, ΠΎΠ½ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ вСсь ΠΊΠΎΠ΄ языка высокого уровня Π² ΠΊΠΎΠ΄ машинного уровня ΠΈ Π²ΠΎ врСмя установки прилоТСния, Π° Π½Π΅ динамичСски, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ (ΠΊΠ°ΠΊ Π² случаС с Dalvik). ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ всСго ΠΊΠΎΠ΄Π° Π²ΠΎ врСмя установки Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΠΏΡ€ΠΈ запускС нашСго прилоТСния Π½Π° нашСм устройствС.Благодаря этому компиляция становится Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слова ΠΎΠ± ART с Π²Π΅Π±-сайта Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Android:

ART — это новая срСда выполнСния Android, ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ прСдставлСнная Π² вСрсии 4.4 KitKat. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² KitKat. Он доступСн для получСния ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ² Π½Π° Ρ€Π°Π½Π½Π΅ΠΌ этапС.

Π”Π°Π»Π΅Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΠΎΡ‚ΠΎΠΊ выполнСния ART:

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ART ΠΈ Dalvik
  1. ΠŸΠΎΠ΄Ρ…ΠΎΠ΄: ART ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ AOT (Ahead Of Time) ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ вСсь ΠΊΠΎΠ΄ Π²ΠΎ врСмя установки, Π½ΠΎ Dalvik ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ JIT (Just In Time) ΠΈ соотвСтствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ части ΠΊΠΎΠ΄Π° Π²ΠΎ врСмя установки ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ динамичСски.
  2. ВрСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ: По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Dalvik, ART Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ кСш создаСтся Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅. Π˜Ρ‚Π°ΠΊ, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ΄Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.
  3. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ: ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ART ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ AOT, Π΅ΠΌΡƒ трСбуСтся большС мСста Π²ΠΎ врСмя установки. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Dalvik ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ JIT, поэтому для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² с мСньшим объСмом памяти ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Dalvik.
  4. Аккумулятор: ART Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ аккумулятора благодаря ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ AOT. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Dalvik ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ JIT, ΠΈ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ использованию Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ.
  5. Π‘Π±ΠΎΡ€ΠΊΠ° мусора: Π£ ART Π»ΡƒΡ‡ΡˆΠ΅ сборка мусора, Ρ‡Π΅ΠΌ Ρƒ Dalvik.

Π˜Ρ‚Π°ΠΊ, DVM ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JIT ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство нСдостатков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ ART. Π˜Ρ‚Π°ΠΊ, начиная с Android 4.4 (Kitkat) ART Π±Ρ‹Π»Π° прСдставлСна ​​как срСда выполнСния ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, с Android 5.0 (Lollipop), Dalvik Π±Ρ‹Π» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½Π΅Π½ ART Π½Π° Android.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования ART ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Dalvik
  1. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстрСС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ компиляция выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя установки.
  2. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° ΠΏΡ€ΠΈ использовании ART.
  3. Π’Π°ΠΊΠΆΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° сборка мусора.
  4. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ собствСнный ΠΊΠΎΠ΄ выполняСтся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, ART сокращаСт врСмя запуска ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
НСдостатки ART
  1. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ компиляция ΠΊΠΎΠ΄Π° выполняСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ART Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС мСста ΠΈΠ»ΠΈ памяти Π²ΠΎ врСмя установки.
  2. ВрСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ большС ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Dalvik, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ AOT.
Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ART, Ρ‚ΠΎ Π²Ρ‹, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ, почувствовали Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΏΡ€ΠΈ использовании прилоТСния i.Π΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ART, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ скорости ΠΈ плавности Ρ€Π°Π±ΠΎΡ‚Ρ‹ вашСго Android-прилоТСния. ART всС Π΅Ρ‰Π΅ находится Π² стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈ Π² ART добавляСтся ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Android ΠΌΠΎΠ³Π»ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Android.

Π­Ρ‚ΠΎ всС для этого Π±Π»ΠΎΠ³Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ нСсколько Π±Π»ΠΎΠ³ΠΎΠ² ΠΏΠΎ Android, посСтив наш сайт Π±Π»ΠΎΠ³Π° MindOrks.

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ πŸ™‚

Команда MindOrks!

Android Runtime — ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Dalvik ΠΈ ART? | Автор: ΠŸΠ°ΡƒΠ»ΠΈΠ½Π° Бадовска

Π­Ρ‚ΠΎΡ‚ пост Π±Ρ‹Π» создан вмСстС с Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ я размСстил Π½Π° ΠΌΠΎΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π΅ YouTube. πŸŽ₯

Android Runtime — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· основных ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Π² экосистСмС Android.Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· вас, вСроятно, ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹: Dalvik, ART, JIT ΠΈ AOT. Если Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈΡΡŒ, , Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ эти Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΈ , ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ срСда выполнСния Android , Ρ‡Ρ‚ΠΎΠ±Ρ‹ наши прилоТСния Π±Ρ‹Π»ΠΈ максимально быстрыми — y , Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ всС это Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ πŸš€.

Π˜Ρ‚Π°ΠΊ, приступим ΠΊ Π΄Π΅Π»Ρƒ!

Когда ΠΌΡ‹ создаСм нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ APK, Ρ‡Π°ΡΡ‚ΡŒΡŽ этого APK ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»ΠΎΠ² .dex . Π­Ρ‚ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ содСрТат исходный ΠΊΠΎΠ΄ нашСго прилоТСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ использовали Π² Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌ ΠΊΠΎΠ΄Π΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΌ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° — Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ .

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ запускаСт нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, записанный Π² Ρ„Π°ΠΉΠ»Π°Ρ… .dex, пСрСводится срСдой выполнСния Android Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ — Π½Π°Π±ΠΎΡ€ инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нСпосрСдствСнно поняты машиной ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ процСссором.

Android Runtime Ρ‚Π°ΠΊΠΆΠ΅ управляСт ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ сборкой мусора , Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ слишком Π΄Π»ΠΈΠ½Π½ΠΎΠΉ , я ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΡƒΡΡŒ здСсь Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° компиляции .

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… стратСгий, ΠΈ всС эти стратСгии ΠΈΠΌΠ΅ΡŽΡ‚ свои компромиссы.И Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Android Runtime сСгодня, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π° ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ ΠΈ сначала ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Dalvik.

Π’ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π½ΠΈ Android смартфоны Π±Ρ‹Π»ΠΈ Π½Π΅ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ, ΠΊΠ°ΠΊ сСйчас. Π£ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… Π΄Π°ΠΆΠ΅ 200 ΠœΠ‘.
ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ пСрвая срСда выполнСния Android, извСстная ΠΊΠ°ΠΊ Dalvik, , Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ этого ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: использования ΠžΠ—Π£ .

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вмСсто компиляции всСго прилоТСния Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ запуском ΠΎΠ½ΠΎ использовало ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Just In Time compilation , ΠΊΠΎΡ€ΠΎΡ‡Π΅ JIT.

Π’ этой стратСгии компилятор Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€. Он ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ нСбольшиС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° Π²ΠΎ врСмя выполнСния прилоТСния — Π²ΠΎ врСмя выполнСния .

И ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Dalvik ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ΅Π½, ΠΈ выполняСт это Π²ΠΎ врСмя выполнСния, это позволяСт ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти .

Но Ρƒ этой стратСгии Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ нСдостаток — ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС это происходит Π²ΠΎ врСмя выполнСния, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сказываСтся Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²ΠΎ врСмя выполнСния.

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Π±Ρ‹Π»ΠΈ внСсСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Dalvik Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.НСкоторыС ΠΈΠ· часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… скомпилированных Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π° Π±Ρ‹Π»ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ большС Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ. Но это Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Ρ‚ΠΎ врСмя Π±Ρ‹Π»ΠΎ ΠΌΠ°Π»ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚, Π½ΠΎ Ρ‚Π΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ всС Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΈ всС большС ΠΈ большС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. А ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ прилоТСния ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ всС большС, влияниС JIT Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΎΡΡŒ всС Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π² Android L Π±Ρ‹Π»Π° прСдставлСна ​​новая срСда выполнСния Android: ART.

Бпособ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ART Π² Android L Π½Π° 180 градусов отличался ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π½Π°Π»ΠΈ ΠΎΡ‚ Dalvik.ART вмСсто использования компиляции Just in Time, ΠΊΠ°ΠΊ это Π±Ρ‹Π»ΠΎ сдСлано Π² Dalvik, использовал ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ahead of Time compilation .

Π’ ART вмСсто ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Π²ΠΎ врСмя выполнСния ΠΊΠΎΠ΄ Π±Ρ‹Π» скомпилирован ΠΏΠ΅Ρ€Π΅Π΄ запуском прилоТСния, Π° ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ, ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΡƒΠΆΠ΅ Π±Ρ‹Π» ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½.

Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ повысил ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ срСды выполнСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ запуск машинного ΠΊΠΎΠ΄Π° Π² машинном ΠΊΠΎΠ΄Π΅ выполняСтся Π΄Π°ΠΆΠ΅ Π² 20 Ρ€Π°Π· быстрСС, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ простой компиляции Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

НСдостатки:

ART Π² Android L использовал Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ‡Π΅ΠΌ Dalvik.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ нСдостатком являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для установки прилоТСния , ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ APK всС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для выполнСния обновлСния систСмы , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС прилоТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ.

Для часто запускаСмых частСй прилоТСния ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ окупаСтся Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ компиляция, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ большая Ρ‡Π°ΡΡ‚ΡŒ прилоТСния открываСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅Π΄ΠΊΠΎ, ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ окупаСтся, Ссли ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.

И ΠΈΠΌΠ΅Π½Π½ΠΎ поэтому Π² Android N компиляция Just In Time Π±Ρ‹Π»Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π° Π² срСду выполнСния Android вмСстС с Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ компиляциСй с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ профиля .

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ профиля — это стратСгия, которая позволяСт постоянно ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΈΡ… запуска. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ компилируСтся с использованиСм стратСгии Just in Time compilation , Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ART опрСдСляСт, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ «горячими», Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ часто, ART ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для достиТСния Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π­Ρ‚Π° стратСгия позволяСт ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… частСй прилоТСния ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ сокращСнии использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, ΠΊΠ°ΠΊ оказалось, для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚ 10% Π΄ΠΎ 20% ΠΊΠΎΠ΄Π°.

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

ЕдинствСнным нСдостатком этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ для получСния Π΄Π°Π½Π½Ρ‹Ρ… профиля ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ компиляции часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ классов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ фактичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ нСсколько ΠΏΠ΅Ρ€Π²Ρ‹Ρ… использований прилоТСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ довольно ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌΠΈ. , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² этом случаС Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ компиляция Just in Time.

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² Android P, Google прСдставил ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ .

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

Π˜Ρ‚Π°ΠΊ, ΠΊΠΎΠ³Π΄Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ устанавливаСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, этот Ρ„Π°ΠΉΠ» загруТаСтся вмСстС с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ART ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ компиляции классов ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сразу послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ прилоТСния.

Π­Ρ‚ΠΎ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ старая стратСгия большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ запустит ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ART собСрСт Π΄Π°Π½Π½Ρ‹Π΅ профиля ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ этим ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° устройство находится Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ оТидания.

И самоС приятноС Π²ΠΎ всСм этом Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΌ прилоТСния, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. ВсС это происходит Π·Π° кулисами Android Runtime.

Android Runtime ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ APK, Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ устройства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ понят нСпосрСдствСнно ЦП.

ΠŸΠ΅Ρ€Π²Π°Ρ рСализация Android Runtime Π½Π°Π·Ρ‹Π²Π°Π»Π°ΡΡŒ Dalvik , Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ использовалась компиляция Just in Time для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Ρ‚ΠΎ врСмя Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² Android L, Π±Ρ‹Π»Π° прСдставлСна ​​ART , Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ использовалась компиляция Ahead of time. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²ΠΎ врСмя выполнСния, Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ установки ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π² Android N JIT Π±Ρ‹Π» Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ Π² ART, Π° компиляция ΠΏΠΎ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŽ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для часто выполняСмых частСй ΠΊΠΎΠ΄Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сразу послС установки прилоТСния Π² Android P, Google прСдставил ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дополняСт ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, добавляя Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ‰Π΅Π³ΠΎ профиля , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ загруТаСтся с APK ΠΈ позволяСт ART ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ части ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡Π°Ρ‰Π΅ всСго Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ прилоТСния.

ВсС эти ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Android Runtime Π΄Π΅Π»Π°Ρ‚ΡŒ наши прилоТСния максимально ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ πŸš€.

Android: Dalvik vs ART. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ свСдСния ΠΎ Dalvik VM, ART и… | АндрСй Π‘ΡƒΡ‰Π΅Π²ΠΈΡ‡

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ срСдС выполнСния Android. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΎΠ±Π΅Ρ‰Π°Π΅ΠΌ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ различия ART ΠΈ Dalvik (DVM) Π² Android.

Π”Π°Π²Π°ΠΉΡ‚Π΅ сначала проясним Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ JVM ΠΈ DVM.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Java — это Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина, способная Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Java нСзависимо ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.Он основан Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ «Пиши ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π±Π΅Π³ΠΈ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎΒ». Π‘Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Java ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° любой машинС, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ JVM.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ JVM:

  • АрхитСктура стСка. Π‘Ρ‚Π΅ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ структура Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΈ хранятся ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ схСмС LIFO ΠΈΠ»ΠΈ «ПослСдним ΠΏΡ€ΠΈΡˆΠ΅Π» — ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΡƒΡˆΠ΅Π»Β».”
  • ЗапускаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»Ρ‹ .class .
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ JIT-компилятор.

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

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

Π₯арактСристики DVM:

  • АрхитСктура Π½Π° основС рСгистров. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… с Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ основана Π½Π° рСгистрах процСссора. Из-Π·Π° отсутствия POP ΠΈ PUSH инструкции Π² рСгистровой Π’Πœ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ быстрСС, Ρ‡Π΅ΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Π² стСковой Π’Πœ.
  • ВыполняСт Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ своСго Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. Android dexer (ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± этом ΠΏΠΎΠ·ΠΆΠ΅) ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ .class Π² Ρ„Π°ΠΉΠ»Ρ‹ .Π€ΠΎΡ€ΠΌΠ°Ρ‚ dex ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ для исполнСния DVM. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„Π°ΠΉΠ»Π° .class , Ρ„Π°ΠΉΠ» .dex содСрТит сразу нСсколько классов.

Если Π²Π°ΠΌ интСрСсно, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ DVM здСсь.

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

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

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

ПослС D8 Π² 2018 Π³ΠΎΠ΄Ρƒ появился R8, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ сути являСтся Ρ‚Π΅ΠΌ ΠΆΠ΅ D8, Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ.

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

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

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

Π’ этом случаС Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ R8. Π­Ρ‚ΠΎ позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ прилоТСния Π·Π° счСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ объСма ΠΊΠΎΠ΄Π°, фактичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

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

И Π½ΠΈΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ R8, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π»Π° прСдставлСна ​​бСта-вСрсия (взято ΠΈΠ· Π±Π»ΠΎΠ³Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Android источник):

Для получСния ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚, упомянутый Π²Ρ‹ΡˆΠ΅.

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

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

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

DVM

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

ART

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

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

ВыполняСтся ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ схСмС:

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

ΠŸΡ€ΠΎΡ‰Π΅ говоря, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ вмСстС, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ свои прСимущСства:

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

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ JIT-компилятора Π² ART ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ основныС различия ΠΌΠ΅ΠΆΠ΄Ρƒ DVM ΠΈ ART ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ рассмотрСли, ΠΊΠ°ΠΊ Android со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π» свои инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

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

НадССмся, эта ΡΡ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Android.

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Dalvik ΠΈ ART Π² Android

Π‘Ρ€Π΅Π΄Π° выполнСния Android (ART ) — это управляСмая срСда выполнСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ прилоТСниями ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ систСмными слуТбами Π½Π° Android. ART ΠΈ Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊ Dalvik ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ создавались ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Android.ART ΠΈ Dalvik — это совмСстимыС срСды выполнСния с Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠΌ Dex, поэтому прилоТСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ для Dalvik, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ART.

Dalvik

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Dalvik ΠΈΠ»ΠΈ DVM — это Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Π½Π° основС рСгистров, разработанная ΠΈ написанная Дэном Π‘ΠΎΡ€Π½ΡˆΡ‚Π΅ΠΉΠ½ΠΎΠΌ. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Dalvik Π±Ρ‹Π»Π° Π½Π°Π·Π²Π°Π½Π° Π‘ΠΎΡ€Π½ΡˆΡ‚Π΅ΠΉΠ½ΠΎΠΌ Π² Ρ‡Π΅ΡΡ‚ΡŒ Ρ€Ρ‹Π±Π°Ρ†ΠΊΠΎΠΉ Π΄Π΅Ρ€Π΅Π²Π½ΠΈ Β«Π”Π°Π»Π²ΠΈΠΊΒ» Π² Π­ΠΉΡΡ„ΡŒΠΎΡ€Π΄ΡƒΡ€Π΅, Исландия, Π³Π΄Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΆΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠΎΠ². Dalvik — это Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина (Π’Πœ) с ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ процСссов Π² ОБ Android, которая выполняСт прилоТСния, написанныС для Android.Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Dalvik ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° распространСния, Π½ΠΎ большС Π½Π΅ Π²ΠΎ врСмя выполнСния Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях Android. Π‘Π°ΠΌ Android — это систСма Linux, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стоит Dalvik. DVM Π±Π΅Ρ€Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Android, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈΠ· ΠΊΠΎΠ΄Π° Java Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ систСма Linux. По сути, простой java-ΠΊΠΎΠ΄ компилируСтся Π² JIT-компиляторС Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Π²ΠΎ врСмя выполнСния для запуска Π½Π° машинС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ замСдлСнию, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ компиляция Π²ΠΎ врСмя выполнСния, особСнно Π²ΠΎ врСмя выполнСния, Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΈ OEM-ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ свои прилоТСния ΠΊΠ°ΠΊ odexed.БущСствуСт 2 Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²:

  • .dex (исполняСмый Ρ„Π°ΠΉΠ» Dalvik). Ρ„Π°ΠΉΠ» — это Ρ„Π°ΠΉΠ» скомпилированного ΠΊΠΎΠ΄Π° Android. Π—Π°Ρ‚Π΅ΠΌ эти Ρ„Π°ΠΉΠ»Ρ‹ .dex Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» .apk.
  • .odex Ρ„Π°ΠΉΠ» создаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Android для экономии мСста ΠΈ увСличСния скорости Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ прилоТСния Android (Ρ„Π°ΠΉΠ» .apk).

dexopt ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ DEX Π² ODEX (ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ DEX), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вСсь процСсс Π² DVM ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π·ΡŽΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ:

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ JAVA (.java) -> Π‘Π°ΠΉΡ‚-ΠΊΠΎΠ΄ (.dex) -> DVM

DVM Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для устройств с нСбольшим объСмом памяти. Но это ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ компиляция выполняСтся послС установки.


ART

Π’ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠΉ вСрсии Android, Π² частности, начиная с вСрсии 4.4 KitKat, сущСствуСт концСпция ART Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ DVM. ART (Android Run Time) являСтся ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊΠΎΠΌ DVM, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° ΠΈ .dex (Π½ΠΎ Π½Π΅ Ρ„Π°ΠΉΠ»Ρ‹ .odex), ΠΏΡ€ΠΈ этом ΠΏΡ€Π΅Π΅ΠΌΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° ​​на ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ΅ для ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.Android 5.0 Β«LollipopΒ» — пСрвая вСрсия, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ART — это , Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ срСда выполнСния. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ART, — это прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ скомпилированы ΠΏΡ€ΠΈ установкС Π½Π° устройство. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅Ρ‚ нСобходимости ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Но нСдостатком являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ большС мСста для хранСния ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для установки ΠΈΠ·-Π·Π° компиляции Π²ΠΎ врСмя установки, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ постоянно Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° устройствС. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, вмСсто ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшого java-ΠΊΠΎΠ΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΉ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ / β€‹β€‹ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ odexed ΠΈ deodexed . Π’ этом случаС Π²Ρ‹ Π±Π΅Ρ€Π΅Ρ‚Π΅ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ прилоТСния, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π΅Π΅, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ своСго прилоТСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° своСм устройствС, поэтому ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилировали этот Ρ€Π°Π·Π΄Π΅Π» прилоТСния ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ компилируСтся Π²ΠΎ врСмя выполнСния. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ быстрСС ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅, Ρ‡Π΅ΠΌ Π² Dalvik. Но этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС мСста для хранСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Samsung с TouchWiz .. TouchWiz основан Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²Π΅Ρ‰Π°Ρ…, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированных, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ дСодСксированы, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… шаблон ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²ΠΈΠ΄, потСряв ΠΏΡ€ΠΈ этом Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСимущСства Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ дальшС, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ dex2oat ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ компиляции .dex Π² Ρ„Π°ΠΉΠ» .oat, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ELF. ART ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ находящСгося Π½Π° устройствС инструмСнта dex2oat. Π­Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ DEX Π² качСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ скомпилированный исполняСмый Ρ„Π°ΠΉΠ» прилоТСния для Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ устройства. Когда ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ установлСно, Android автоматичСски ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ прилоТСния ΠΈ создаСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» OAT.Π€Π°ΠΉΠ» OAT создаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Android для ускорСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ прилоТСния Android (Ρ„Π°ΠΉΠ» .APK). Android ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот Ρ„Π°ΠΉΠ» для Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ прилоТСния ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ удобства Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ DVM ΠΈ ART

ВрСмя ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ дольшС

Π’Π˜Π Π’Π£ΠΠ›Π¬ΠΠΠ― МАШИНА DALVIK C

Π’Π Π•ΠœΠ― Π—ΠΠŸΠ£Π‘ΠšΠ ANDROID

Кэш создаСтся Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ
Π—Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСньшС мСста ΠΈΠ·-Π·Π° JIT Π—Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ мСста Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈΠ·-Π·Π° AOT
Π›ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… устройств хранСния Π›ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… устройств хранСния
Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ ΠΈ протСстированная Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΈ новая — ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π‘ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ прилоТСния Π§Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ быстрСС ΠΈ ΠΏΠ»Π°Π²Π½Π΅Π΅ ВрСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ мСньшС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ процСссора
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ компилятор JIT ( JIT: Just-In-Time)
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ дискового пространства
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ компилятор AOT (с ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ), Ρ‚Π΅ΠΌ самым компилируя прилоТСния ΠΏΡ€ΠΈ установкС. ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΈΠΆΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ компиляция выполняСтся ΠΏΠΎΠ·ΠΆΠ΅ ВрСмя установки прилоТСния большС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ компиляция выполняСтся Π²ΠΎ врСмя установки
DVM ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускаСтС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ART ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π²ΠΎ врСмя установки прилоТСния. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ CPU.

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ врСмя Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π·Π° счСт Π±ΠΎΠ»Π΅Π΅ быстрого выполнСния.

Π§Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅?

Π­Ρ‚ΠΎ зависит ΠΎΡ‚ устройства, вашСго собствСнного устройства ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ: Π² долгосрочной пСрспСктивС ART Π»ΡƒΡ‡ΡˆΠ΅, Π½ΠΎ прилоТСния Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ становятся большС, трСбуя большого дискового пространства со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ flappy bird, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π½ΠΈΠΌΠ°Π» всСго 1 ΠœΠ‘ ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π» мСньшС мСста. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, устройства Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, Ссли ART собираСтся Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ Π² блиТайшиС нСсколько Π»Π΅Ρ‚.Π’ Android Lolipop DVM Π±Ρ‹Π» Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° ART. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ DVM ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускаСтС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Но ART ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π²ΠΎ врСмя установки прилоТСния. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ CPU. ARM — это Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. Подобно MIPS, x86 ΠΈ Ρ‚. Π”. DVM / ART Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Ρ€Ρ… ARM. Оба ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΡƒΡŽ ΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΡƒΡŽ срСду для изучСния основ Android?

Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ руководству, составлСнному нашими экспСртами с Ρ†Π΅Π»ΡŒΡŽ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΎΡ‚Ρ€Π°ΡΠ»ΡŒ! Анализ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Android Runtime с использованиСм New Relic: ART vs.Π”Π°Π»ΡŒΠ²ΠΈΠΊ

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

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

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

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

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

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

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

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

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

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

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

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

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

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