මොකද්ද මේ Odex/Deodex? මොකද්ද මේ Dalvik?

12:36 PM


රොම් ගහපු අය ඕනැතරම් ඉන්නව නේද??
රොම් ගහපු අය දන්නව ඇති රොම් එකක් ගහපු පළවෙනි වතාවෙ boot වෙන්න මහ හිපාටු වෙලාවක් යනව කියල.. ඒත් ඊලග වතාවෙ ඉදල boot කරන කොට පට ගාල boot වෙනව..
ඔබ දන්නවද? සාමන්‍ය ක්‍රමයට Android rom එකක් boot වෙන්න ඇත්තටම අර පළවෙනි පාර වගේම සෑහෙන වෙලාවක් යනව.. ඒත් කොහොමද එහෙනම් 2වනි පාර ඉදල boot time එක ස්පීඩ් වෙන්නෙ? ඇයි රොම් එකක් ගහපු පළවෙනි පාර අර වගේ සෑහෙන වෙලාවක් යන්නෙ?  මන් මේ හදන්නෙ ඔය සීන් කෝන් එක පැහැදිලි කරන්න! 
ඔන්න එහෙනම් අහගන්න .. මචංලා..මචීලා.. ඇන්ඩ්‍රොයිඩ් කියන්නෙ Linux පාදක මෙහෙයුම් පද්ධතියක් කියල කවුරුත් දන්නවනෙ නේ?.. ඇන්ඩ්‍රොයිඩ් වල ප්‍රෝග්‍රෑම්ස්..එහෙමත් නැත්නම් ඇප්ස් .apk කියන extension එකෙන් පැකේජස් විදියට තමා තියෙම්නෙ..ඒකත් දන්නවනෙ..මේ ඇප්ස් රන් වෙන්නෙ..ඒකියන්නේ මේ ඇප්ස් ධාවනය කරන්නේ java virtual machine කියන කෘතීමව නිමැවා තිබෙන වැඩසටහනකින්.. ඒක හරියට ඇප්ස් ලෝන්ච් කරන ඇප් ලෝන්චර් එකක් කියමුකෝ..ඇන්ඩ්‍රොයිඩ් වල මේ වැඩසටහනම වැඩිදියුණු කොට Dalvik virtual machine කියල කියනව.. (Dalvik-VM)..



ඇන්ඩ්රොයිඩ් මෙහෙයුම් පද්ධතිය ජාවා මෙහෙයුම් පද්ධතියකින් වෙනස් වන්නේ මෙම dalvik vm නිසා බවට පහත රුපයෙන් ඔබට පෙනේ!



ඉටින් බන්.. මෙන්න මේ Dalvik කාරය තමා සියලුම ඇප්ස් ටික ලෝඩ් කොරගෙන ඉදල අපි අර ලස්සන ඇප් icon ඔබනකොට පොප් පොප් ගාල අදාල ඇප් එක අපිට open කොරල දෙන්නෙ... ඉතින් මේ ඇප් එකක් open වෙනව කියන්නෙ මචංලා ඒක කම්ප්‍රෙස් වෙලා තියෙන .apk extension එකෙන් මිදිල ධාවනයට සුදුසු වැඩසටහනේ ෆයිල් ටික extract වීමයි.. මෙහෙම extract වෙන ඇප් එකේ files වලට අපි කියනව cache කියල.. මේ cahche files හදන්නේ dalvik-vm එක නිසා අපි ඒවට dalvik-cache කියල කියනව... ඉතින් මචංලා..රොම් එකක් ෆස්ට් ටයිම් boot වෙනකොට අම්බානක වෙලාවක් යන්නෙ ඇයි දන්නවද? අර dalvik vm ධාවකය විසින් ඔයාගෙ ඇප්ස් ලෝඩ් කරගෙන permenant cahce එකක් එයා හදන නිසා.. chache එක තියෙනකම් ඔයාගෙ ඇප්ස් නැවත වරක් on වෙනකොට ලෝඩ් වෙන්න ඕනෙ නෑ.. 
ඒකියන්නේ රොම් එකක් ගහපු පළමු වතාවෙම Dalvik vm විසින් ඔයාගෙ සියලුම system apps වල dalvik-cache එකක් නිර්මාණය කරනව..කොටින්ම කිව්වොත් ඇප්ස් ෆුලි ලෝඩ් කරල තියාගන්නව සදහටම ආපහු රොම් ගහනකන්ම....ඇප්ස් boot වෙන්නත් පෙර dalvik-cache තුළ ලෝඩ් වී තිබීම නිසා දෙවැනි වර boot වීමේදී නැවත ඇප්ස් ලෝඩ් වීමක් සිදුවන්නේ නෑ.. ඒනිසා දෙවැනි වර ඉදන් පෝන් එක on වෙද්දී ඉක්මන්ට on වෙන්නෙ ඔන්න ඔය හේටුව නිසයි! තේරුණාද මන්ද.. ඉතින් ඔයා කවදහරි රිකවරි මොඩ් එකකින් හරි කෝමහරි dalvik-cache wipe කලොත් ඒම..ආපහු Dalvik vm විසින් ඔයාගෙ ඇප්ස් ලෝඩ් කරන්න පටන්ගන්න නිසා ඔයාට boot වෙද්දි දැකගන්න පුලුවන් "Android is Upgrading" කියල ඔයාගෙ සියලුම ඇප්ස් එකින් එක ලෝඩ් කරගන්නව..ඒකියන්නෙ ඇප් එකින් එකට Dalvik-cache එකක් හදාගන්නව ස්වයංක්‍රීයව..
ඉතින් ඔන්න ඒක හරි..මේ සීන් එකටම සම්බන්ධ තව සීන් 2ක් විතර තීනව..ඒවත් මේ කේස් එකට ඩිරෙක්ට්ලි සම්බන්ධයි.. ඒවත් කියලම යන්ටම්කො!
ඔයාල දැකල අහල ඇති odexed සහ deodexed කියල එකක්.. ඔය සමහර රොම් අයිටිකාරයො හේම එයාලගෙ ඩිස්ක්‍රිප්ශන් එකේ හෙන ඇඩ් එකට වගේ දාන්නෙ DEODEXED කියල.. ඕක දැක්කම අපේ හක්ක පූට්ටු වෙන බව උන්නැහේල දන්නැති වුනාට මොකද..අපි දැන් බලමු සිරාවටම මොකද්ද මේ odex සහ deodex කියන්නේ කියල..

ODEX :
සමහරු නම් දැකල ඇති.. ස්ටොක් රොම් වල සහ deodexed නොකරපු රොම් වල ඇප් එක ලගින්ම.. ඇප් එකේ නමින්ම .odex කියල extension එකක් තීන තව file එකක් තීනව.. මේ .odex කියන්නෙ මොකද්ද දන්නවද? .odex කියන්නේ අර අපි කලින්ම කිව්ව ඇප් එකක් boot වෙද්දි ලෝඩ් කරගන්න ඇප් එකේම කොටස. ඒකියන්නෙ .odex ෆයිල් එක අදාල ඇප් එකේ කොටසක්.. මේ ෆයිල් එක තමා odexed රොම් වල dalvik vm විසින් රොම් එක boot වෙන්න කලින් ලෝඩ් කල්ල dalvik-cache තුළ තියාගෙන ඉන්නෙ. මෙහෙම .odex කියල ඇප් වල වෙනම කෑල්ලක් කඩල තමයි original stock rom එන්නෙ.. එහෙම එන්නෙ ඇප් එක කොටස් 2කට තිබීමෙන් හැක් කිරීම අපහසු වන නිසාත් boot time එක සාපේක්ශව වේගවත් නිසාත්!!! හැබැයි පුටෝ මේ .odex ෆයිල් එක නිසා රොම් මොඩ් කරන්න අමාරුයි! ඒනිසා අඔඒ අයියල රොම් deodex කරනව කියල මොකද්දෝ මන්ද කරනව.. ඒකත් බලමු ඊලගට! 

DEODEXED :
XDA thread
වල..rom තියෙන thread වල එහෙම මහ ඉහළින් ගහල තීනව මේ deodexed කියන එක. මේකෙන් නොකිය කියන්නේ රොම් එක තවදුරටත් මොඩ් කරන්න පුලුවන් කියන එක!  සමහරු හිතනව system app වල .odex file ටික අල්ලල delete කලාම දැන් හරි..deodexed තමා කියල.. නෑ නෑ.. system app වල .odex ෆයිල් delete කොරපු පලියට රොම් එකක් deodexed වෙන්නෙ නෑ.. ..
odex
ෆයිල් ඇප් වලම කොටසක් නිසා .odex ෆයිල් එකක් delete කලොත් වෙන්නෙ ඇප් එකෙන් කොටසක් delete වෙන එක. එටකොට අදාල ඇප් වැඩකරන්නෙ නැතිව යනව.  ඇප් එකක් deodexed කරන්ව කියන්නෙ මේ .odex ෆයිල් එක classes.dex ෆයිල් එකක් විදියට කන්වර්ට් කල්ල ඇප් එක ඇතුළයම ආපහු ඔබන එකයි!   ඒකියන්නෙ වෙනම තිබුනු ඇප් එකේ .odex කොටස ඇප් එක decompile කල්ල ඇප් එක ඇතුළටම classes.dex ආකරයට ඇතුළත් කරනව. එතකොට තනි ඇප් එක ධාවනය වෙනව වගේම අපිට ඕන විදියට ඇප් එක මොඩ් කරන්න පුලුවන් apktool එකෙන්.. මොකද .odex ෆයිල් එකක් classes.dex කළාම classes.dex කියන්නෙ java executable ෆයිල් එකක් නිසා..
ඉතින් සියලුම ඇප්ස් ඉහත ආකාරයට DEODEXED කියන්නේ රොම් එක deodexed කළා කියන එකටයි!

deodexed කරන හැටි ගැන xda thread තියේ..කියවා බලන්ට! ටර්මිනල් එකක් මගින් ඔබට system.img එකක් deodex කරගත හැකි වේ!



ඉතින් odexed හා deodexed 2 වාසි අවාසි තීනව..
.odex
ෆයිල් තියෙනකොට dalvik cache ගොඩනැගීම පහසු නිසා odexed රොම් පට ගාල boot වෙනව.  ස්ටොක් රොම් පට්ට ස්පීඩ් කියක කට්ටිය කියන්නෙ ඔන්න ඕකයි! ඒකට විද්‍යාත්මක පදනම තමයි මේ කිව්වෙ. කතාව ඇත්ත. ස්ටොක් රොම් ඇත්තටම ස්පීඩ් .ODEX ආකාරය නිසා.. ඒත් එහි අවාසිය තමා රොම් එක මොඩ් කරන්න බැරි වීම..  මොඩ් කරන්න නම් ඉහත පරිදි deodexed කල්ල ඇප් එක තනිව ක්‍රියා කරන ලෙස සෑදිය යුතුයි.
කියන්න අමතක උනා..
SAMSUNG TOUCHWIZ LOLLIPOP
පලවෙනි පාර බූට් වෙන්න පට්ට වෙලාවක් යනව. සැම්සුන් වලට ලොලිපොප් ගහපු අය දන්නව ඇතිනෙ.
හේතුව සැම්සුන් ලා ඔවුන්ගෙ නවතම ලොලිපොප් රොම් වලදි DALVIK අතහැර ART නම් ක්‍රමවේදය භාවිතා කිරීමයත්,ART හි යම් යම් වෙනස්කම් කිරීමත්ය!

ART(Android RunTme)
ART ගැන වැඩි විස්තර පසුව!
source : wiki/google/xda-devs.

Share this

Related Posts

Previous
Next Post »

1 comments:

Write comments