ആൻഡ്രോയിഡ് റൺടൈം

(Android Runtime എന്ന താളിൽ നിന്നും തിരിച്ചുവിട്ടതു പ്രകാരം)

ആൻഡ്രോയിഡ് റൺടൈം (ART) എന്നത് ആപ്പുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് ആൻഡ്രോയിഡ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഉപയോഗിക്കുന്ന റൺടൈം എൺവയൺമെന്റാണ്. ഇത് പഴയ ഡാൽവിക്(Dalvik) വെർച്വൽ മെഷീനെ മാറ്റിസ്ഥാപിച്ചു. ആപ്പിൻ്റെ കോഡ് കംപൈൽ ചെയ്‌ത് സൃഷ്‌ടിക്കുന്ന ഒരു ആപ്പിൻ്റെ ബൈറ്റ്‌കോഡ്, ഉപകരണത്തിൻ്റെ പ്രോസസർ വഴി നേരിട്ട് നടപ്പിലാക്കാൻ കഴിയുന്ന നേറ്റീവ് മെഷീൻ നിർദ്ദേശങ്ങളിലേക്ക് വിവർത്തനം ചെയ്യുക എന്നതാണ് എആർടിയുടെ പ്രധാന ഉപയോഗം. ഇത് ആപ്പുകളുടെ പ്രകടനം മെച്ചപ്പെടുത്തുകയും അവ വ്യത്യസ്‌ത ഉപകരണങ്ങളിൽ എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് ഒപ്റ്റിമൈസ് ചെയ്യുകയും ചെയ്യുന്നു, കാരണം വിവർത്തനം(translation) സമയത്തിന് മുമ്പേ സംഭവിക്കുന്നു, ഡാൽവിക്കിൻ്റെ തത്സമയ കംപൈലേഷനുമായി താരതമ്യം ചെയ്യുമ്പോൾ ആപ്പ് എക്‌സിക്യൂഷൻ സുഗമമാക്കുന്നു[2].

എആർടി
വികസിപ്പിച്ചത്Google
റെപോസിറ്ററിandroid.googlesource.com/platform/art/
ഭാഷC, C++
ഓപ്പറേറ്റിങ് സിസ്റ്റംAndroid
Included withAndroid
ReplacesDalvik
തരംRuntime environment
അനുമതിപത്രംApache License 2.0[1]
വെബ്‌സൈറ്റ്source.android.com/docs/core/runtime

അവലോകനം

തിരുത്തുക
 
ഡാൽവിക്, എആർടി ആർക്കിടെക്ചറുകൾ തമ്മിലുള്ള താരതമ്യം

ആൻഡ്രോയിഡ് 2.2 "ഫ്രോയോ", ഡാൽവിക് വെർച്വൽ മെഷീനിലേക്ക് ട്രെയ്സ്-ബേസ്ഡ് ജസ്റ്റ്-ഇൻ-ടൈം (ജെഐടി) കംപൈലേഷൻ അവതരിപ്പിച്ചു. ഈ രീതി തുടർച്ചയായി ആപ്പ് ഉപയോഗം നിരീക്ഷിക്കുകയും റൺടൈമിൽ ആപ്പ് പ്രൊഫൈൽ ചെയ്യുകയും ബൈറ്റ്കോഡിൻ്റെ പതിവായി നിർവ്വഹിക്കുന്ന ഭാഗങ്ങൾ തിരിച്ചറിയുകയും ചെയ്യുന്നു. പ്രകടനം മെച്ചപ്പെടുത്തുന്നതിനായി ഈ സെഗ്‌മെൻ്റുകൾ ചലനാത്മകമായി നേറ്റീവ് മെഷീൻ കോഡിലേക്ക് കംപൈൽ ചെയ്തു. കോഡിൽ സാധാരണയായി ഉപയോഗിക്കുന്ന "ഹോട്ട് സ്പോട്ടുകളിൽ" ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നതിലൂടെ, ഫ്രോയോയുടെ ജെഐടി (ജസ്റ്റ്-ഇൻ-ടൈം) കംപൈലർ റൺടൈമിൽ പതിവായി ഉപയോഗിക്കുന്ന കോഡ് മാത്രം മെഷീൻ ഭാഷയിലേക്ക് പരിവർത്തനം ചെയ്തുകൊണ്ട് ആപ്പിന്റെ വേഗത മെച്ചപ്പെടുത്തി. ഇതുവഴി, പലപ്പോഴും ആവശ്യമില്ലാത്ത ആപ്പിൻ്റെ ഭാഗങ്ങളിൽ അധിക മെമ്മറിയും പ്രോസസ്സിംഗ് സമയവും ഉപയോഗിക്കുന്നത് ഒഴിവാക്കി[3][4].

എവിടെയായിരുന്നാലും കോഡ് ഇന്റപ്രെട്ട് ചെയ്യുകയും, ചെറിയ ഭാഗങ്ങൾ കംപൈൽ ചെയ്യുകയും ചെയ്യുന്ന ഡാൽവിക്കിൽ നിന്ന് വ്യത്യസ്തമായി, ആൻഡ്രോയിഡ് റൺടൈം (ART) ആപ്പ് ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ മുഴുവൻ ആപ്പിനെയും മെഷീൻ കോഡിലേക്ക് കംപൈൽ ചെയ്യുന്നു. ഇത് ആപ്പുകൾ വേഗത്തിൽ പ്രവർത്തിക്കുകയും ബാറ്ററി ലാഭിക്കുകയും ചെയ്യുന്നു, ഇത് കാരണം ഫോണിന് ഉപയോഗ സമയത്ത് കൂടുതൽ ജോലി ചെയ്യേണ്ടതില്ല. ആപ്പുകൾ മെമ്മറി മാനേജ് ചെയ്യുന്നതിനെയും എആർടി മെച്ചപ്പെടുത്തുന്നു, ബഗുകൾ കണ്ടെത്തുന്നതിനും ആപ്പിന്റെ പെർഫോമൻസ് ഒപ്റ്റിമൈസ് ചെയ്യുന്നതിനും വേണ്ടി ഡെവലപ്പർമാർക്ക് മികച്ച ടൂളുകൾ നൽകുന്നു[2][5][6].

ഡാൽവിക്കുമായുള്ള കംമ്പാറ്റിബിലിറ്റി ഉറപ്പാക്കാൻ, എആർടി എപികെ(APK)-കളിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന `.dex` ഫയലുകളിൽ കാണുന്ന അതേ ബൈറ്റ്കോഡ് ഫോർമാറ്റ് ഉപയോഗിക്കുന്നു. ഇത് ഡാൽവിക്കിൻ്റെ `.odex` ഫയലുകളെ എക്സിക്യൂട്ടബിൾ, ലിങ്കബിൾ ഫോർമാറ്റ് (ELF) എക്സിക്യൂട്ടബിളുകൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു, ഉപകരണത്തിലെ `dex2oat` യൂട്ടിലിറ്റി പ്രോസസ് ചെയ്ത ശേഷം കംപൈൽ ചെയ്ത ഇഎൽഎഫ്(ELF) കോഡിൽ പൂർണ്ണമായും പ്രവർത്തിക്കാൻ ആപ്പുകളെ അനുവദിക്കുന്നു. ഈ സംക്രമണം ഡാൽവിക്കിൻ്റെ കംപൈലേഷനുമായി ബന്ധപ്പെട്ട ഓവർഹെഡ് ഒഴിവാക്കി പ്രകടനം മെച്ചപ്പെടുത്തുന്നു. എന്നിരുന്നാലും, എആർടിയുടെ ഡിവൈസ് കംപൈലേഷൻ എന്നതുകൊണ്ട് അർത്ഥമാക്കുന്നത്, കംപൈൽ ചെയ്ത കോഡ് കാരണം ആപ്ലിക്കേഷനുകൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ കൂടുതൽ സമയമെടുക്കുകയും കുറച്ച് കൂടുതൽ സ്റ്റോറേജ് സ്പേസ് ആവശ്യമായി വരികയും ചെയ്യും എന്നാണ്. മൊത്തത്തിൽ, റൺടൈം കാലതാമസം കുറയ്ക്കുകയും നിർവ്വഹണ കാര്യക്ഷമത മെച്ചപ്പെടുത്തുകയും ചെയ്യുന്നതിലൂടെ ഉപയോക്താക്കൾക്ക് സുഗമമായ അനുഭവം നൽകാനാണ് എആർടിയിലേക്കുള്ള മാറ്റം മൂലം ലക്ഷ്യമിടുന്നത്.

ചരിത്രം

തിരുത്തുക

ആൻഡ്രോയിഡ് 4.4 "കിറ്റ്കാറ്റ്" എആർടി (ആൻഡ്രോയിഡ് റൺടൈം) ഒരു പരീക്ഷണാത്മക സവിശേഷതയായും ഡാൽവിക്കിന് പകരമായും അവതരിപ്പിച്ചു, അത് അക്കാലത്തെ പ്രധാന പ്രവർത്തന സമയമായിരുന്നു. എആർടിയുടെ ആമുഖത്തിൻ്റെ പ്രധാന ഉദ്ദേശം അഹെഡ്-ഓഫ്-ടൈം (AOT) കംപൈലേഷൻ നടത്തി ആപ്പ് എക്‌സിക്യൂഷൻ കൈകാര്യം ചെയ്യുന്നതിനുള്ള കൂടുതൽ കാര്യക്ഷമമായ മാർഗം പ്രിവ്യൂ ചെയ്യുക എന്നതായിരുന്നു. ആപ്ലിക്കേഷനുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് ഡാൽവിക് ജസ്റ്റ്-ഇൻ-ടൈം (ജെഐടി) കംപൈലേഷനെ ആശ്രയിച്ചപ്പോൾ, ഈ സിസ്റ്റത്തിന്റെ പ്രകടനം, പ്രതികരണശേഷി, ബാറ്ററി ലൈഫ് എന്നിവ മെച്ചപ്പെടുത്താൻ ലക്ഷ്യമിട്ട് ഇൻസ്റ്റാളേഷൻ നടത്തുന്ന വേളയിൽ എആർടി ആപ്പുകൾ കംപൈൽ ചെയ്തു. പിന്നീടുള്ള ആൻഡ്രോയിഡ് പതിപ്പുകളിൽ ഡിഫോൾട്ട് റൺടൈം ആകുന്നതിന് മുമ്പ് എആർടി ഉപയോഗിച്ച് പരീക്ഷണം നടത്താനും ഫീഡ്‌ബാക്ക് നൽകാനും കിറ്റ്കാറ്റ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ഡെവലപ്പർമാരെ അനുവദിച്ചു[7][8]. തുടർന്നുള്ള പ്രധാന ആൻഡ്രോയിഡ് റിലീസായ ആൻഡ്രോയിഡ് 5.0 "ലോലിപോപ്പ്", ഡാൽവിക്കിന് പകരമായി എആർടിയെ പൂർണ്ണമായും ഉപയോഗപ്പെടുത്തി.

ആൻഡ്രോയിഡ് 7.0 "നൗഗട്ട്" ജാവ റൺടൈം എൻവയോൺമെൻ്റിനെ ഒറാക്കിളിൻ്റെ ഓപ്പൺ സോഴ്‌സ് പതിപ്പുമായി യോജിപ്പിച്ച് അപ്പാച്ചെ ഹാർമണിയിൽ നിന്ന് ഓപ്പൺജെഡികെയിലേക്ക് മാറ്റി. ഈ അപ്‌ഡേറ്റ് എആർടിലേക്കുള്ള കോഡ് പ്രൊഫൈലിംഗ് ഉള്ള ജസ്റ്റ്-ഇൻ-ടൈം (JIT) കംപൈലർ അവതരിപ്പിച്ചു, ഇത് പ്രവർത്തിക്കുമ്പോൾ ആപ്പിന്റെ പ്രകടനം ഒപ്റ്റിമൈസ് ചെയ്യാൻ സഹായിക്കുന്നു. ഉപയോഗത്തെ അടിസ്ഥാനമാക്കി ആപ്പിൻ്റെ ഭാഗങ്ങൾ തത്സമയം കംപൈൽ ചെയ്യാൻ ജെഐടി(JIT) കംപൈലർ എആർടിയെ പ്രാപ്‌തമാക്കുന്നു, ഇത് ആപ്പിൻ്റെ പതിവായി ഉപയോഗിക്കുന്ന ഭാഗങ്ങൾ വേഗത്തിൽ പ്രവർത്തിക്കാനും കാലക്രമേണ പ്രകടനം മെച്ചപ്പെടുത്താനും അനുവദിക്കുന്നു. ഈ സമീപനം മൂലം വേഗത്തിലുള്ള ആപ്പ് ലോഞ്ചുകൾ, മെച്ചപ്പെട്ട പ്രതികരണശേഷി, മികച്ച റിസോഴ്സ് കാര്യക്ഷമത എന്നിവ കൈവന്നു, ഇത് ആൻഡ്രോയിഡിൽ മികച്ച അനുഭവം നൽകുന്നു[9][10][11].

ആൻഡ്രോയിഡ് 9 "പൈ" ആപ്പ് ഇൻസ്റ്റാളേഷൻ ഒപ്റ്റിമൈസ് ചെയ്യുന്നതിനും ഗൂഗിൾ പ്ലേയിൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യുന്ന ആപ്പിന്റെ വലുപ്പം കുറയ്ക്കുന്നതിനുമുള്ള മെച്ചപ്പെടുത്തലുകൾ അവതരിപ്പിച്ചു. എപികെ ഫയലുകളിൽ കംപ്രസ് ചെയ്ത ബൈറ്റ്കോഡ് ഉപയോഗിച്ചാണ് ഇത് ചെയ്യുന്നത്, ഇത് ഉപകരണത്തിൽ ആപ്പുകൾ സംഭരിക്കാൻ ആവശ്യമായ ഇടം കുറയ്ക്കുന്നു. കൂടാതെ, ഗൂഗിൾ പ്ലേയുടെ സെർവറുകളിലേക്ക് അപ്ലിക്കേഷൻ ഡാറ്റയുടെ ഉപയോഗം അയയ്‌ക്കുന്ന “ക്ലൗഡ് പ്രൊഫൈലുകളെ” ഉപയോഗിക്കുന്നു, ഒരു ഉപയോക്താവ് സമാനമായ ഉപകരണത്തിൽ അത് ഡൗൺലോഡ് ചെയ്യുമ്പോൾ ഒപ്റ്റിമൈസ് ചെയ്‌ത ഡാറ്റ ഉപയോഗിച്ച് ആപ്പ് പാക്കേജ് ചെയ്യാൻ ഗൂഗിൾ പ്ലേയെ അനുവദിക്കുന്നു. ഇത് ഡൗൺലോഡ് സമയം 40% വരെ കുറയ്ക്കുകയും ഉപയോക്താക്കൾക്ക് മുമ്പത്തെ പതിപ്പുകളിൽ അനുഭവിച്ച ആൻഡ്രോയിഡിന്റെ പെർഫോമൻസിലുണ്ടാകുന്ന കാലതാമസം ഒഴിവാക്കുകയും ചെയ്യുന്നു[12].

  1. "NOTICE - platform/art - Git at Google". Archived from the original on March 4, 2023. Retrieved 2021-06-25.
  2. 2.0 2.1 Andrei Frumusanu (July 1, 2014). "A Closer Look at Android RunTime (ART) in Android L". AnandTech. Archived from the original on July 5, 2014. Retrieved July 5, 2014.
  3. Ben Cheng; Bill Buzbee (May 2010). "A JIT Compiler for Android's Dalvik VM" (PDF). android-app-developer.co.uk. Google. pp. 5–14. Archived from the original (PDF) on November 6, 2015. Retrieved March 18, 2015.
  4. Phil Nickinson (May 26, 2010). "Google Android developer explains more about Dalvik and the JIT in Froyo". androidcentral.com. Archived from the original on April 8, 2017. Retrieved July 8, 2014.
  5. "Android Developers: ART and Dalvik". source.android.com. March 9, 2015. Archived from the original on March 15, 2015. Retrieved March 18, 2015.
  6. "Android Developers: Configuring ART – How ART works". source.android.com. March 9, 2015. Retrieved March 18, 2015.
  7. Sean Buckley (November 6, 2013). "'ART' experiment in Android KitKat improves battery life and speeds up apps". Engadget. Archived from the original on January 27, 2017. Retrieved July 5, 2014.
  8. Daniel P. (November 7, 2013). "Experimental Google ART runtime in Android KitKat can bring twice faster app executions". phonearena.com. Archived from the original on July 7, 2014. Retrieved July 5, 2014.
  9. "Android 7.0 for Developers". Android Developers (in ഇംഗ്ലീഷ്). Retrieved 2021-03-22.
  10. Amadeo, Ron (2016-08-22). "Android 7.0 Nougat review—Do more on your gigantic smartphone". Ars Technica (in അമേരിക്കൻ ഇംഗ്ലീഷ്). Retrieved 2023-04-05.
  11. "Implementing ART Just-In-Time (JIT) Compiler". source.android.com. January 22, 2017. Archived from the original on August 8, 2023. Retrieved January 22, 2017.
  12. Amadeo, Ron (2018-09-13). "Android 9 Pie, thoroughly reviewed". Ars Technica (in അമേരിക്കൻ ഇംഗ്ലീഷ്). Archived from the original on November 30, 2018. Retrieved 2022-08-16.
"https://ml.wikipedia.org/w/index.php?title=ആൻഡ്രോയിഡ്_റൺടൈം&oldid=4137583" എന്ന താളിൽനിന്ന് ശേഖരിച്ചത്