
ဂူးဂဲရဲ့ ပလေးစတိုးက အက်ပ်တွေ တင်ရင် Bundle နဲ့ တင်ရမည်လို့ ပြဌာန်းလိုက်တော့
အက်ပ်ကို သုံးတဲ့သူတွေ ဒေါင်းဖို့ ဖိုင်အရွယ် သေးသွားမှာမို့ မြန်ဆန် လွယ်ကူသွားမည်။ Developer တွေအဖို့တော့ တိုင်ပတ်တာပဲ။
AABs and APKs ဘာတွေလဲ ဘာကွာသလဲ
Android apps တွေကို တည်ဆောက်တော့ file formats တွေ အမျိုးမျိုး ဖြတ်သန်းရတယ်။
ဝေါဟာရ အသုံးအနှုန်းတွေကလည်း မျိုးစုံနေတယ်။
ပြီးစီးသွားတော့ အက်ပ်ရဲ့ နောက်ဆုံးဗားရှင်းကို export လုပ်တော့မည်ဆိုတော့ အဓိကကျတဲ့ output format ၂ မျိုး ရှိနေတယ်။
အခု အဲဒီ ၂ မျိုးဖြစ်တဲ့ Android App Bundle နဲ့ APK တို့ကို ယှဉ်ကြည့်ကြမယ်။
ရှေ့မဆက်ခင် အတိုကောက်တွေကို အရှည်ဆန့်ထုတ်မယ်။
AAB: Android App Bundle
APK: Android App Package
DEX: Dalvik EXecutable
အဲဒီဟာ သုံးခုက ဘာတွေလဲ။
APK: Android Application Package
ဒီ format က လူသိအများဆုံး ဖြစ်မယ်။ အရှည်ကြာဆုံး တည်တံ့တာလို့လည်း ဆိုနိုင်တယ်။
APK ဆိုတာ Android App Package ကို အတိုကောက် ခေါ်ကြတာ။
APK တစ်ခုဟာ အခြေခံအားဖြင့် သုံးစွဲသူရဲ့ ဖုန်းမှာ install လုပ်ဖို့် အဆင်သင့် ဖြစ်နေတဲ့ ဖိုင်တစ်ခုပါပဲ။
APK မှာ အက်ပ်ရဲ့ ဖိုင်တွေနဲ့ ကုဒ်တွေ အားလုံး အထဲမှာ ထည့်ပေးထားတယ်။
ဘာနဲ့တူသလဲဆိုတော့ .zip file လိုမျိုးပဲ။ သတ်မှတ်ပေးထားတဲ့ ကိုယ်ပိုင် extension ရှိတယ်။
ဖိကြိတ်ထည့်ပြီး ဖိုင်အရွယ်သေးအောင် လုပ်ထားတဲ့ .rar .zip လိုမျိုး .apk ပေါ့။
အဓိကအားဖြင့် Android platform က နားလည်တယ်။ တခြားပလက်ဖောင်းတွေမှာလည်း Android လိုမျိုး တူညီတဲ့ အောက်ခံ ဗိသုကာ ရှိမည်ဆိုရင် .apk ကို နားလည်တယ်။
Play Store မှာ ရှိတဲ့ အက်ပ်တိုင်းအတွက် app’s certificate ကို APK ရရှိထားပြီး ဖြစ်တယ်။ အဲဒီဖိုင်ကို နောက်တစ်ကြိမ် ထပ်ထုတ်ခိုင်းလို့ မရဘူး။ အက်ပ် သက်တမ်းတစ်လျှောက်လုံးကို အက်ပ်ပိုင်ရှင်က သိမ်းထားရမှာ ဖြစ်ပါတယ်၊
-------------------------
AAB: Android Application Bundle
AAB ဆိုတာAndroid Application Bundleကို ဆိုလိုပြီး Android ဖြန့်ဝေတာအတွက် ပေါ်တာ သိပ်မကြာသေးတဲ့ format ဖြစ်ပါတယ်။
Android’s official documentation
က သတ်မှတ်ပေးချက်က
“AnAndroid App Bundleသည် ထုတ်ဝေရေးကိရိယာပုံစံ format တစ်ခု ဖြစ်ပြီး
App မှာပါတဲ့ ကုဒ်တွေ အားလုံးနဲ့ အရင်းအမြစ်တွေ အကုန်လုံး ပါဝင်ပြီး APK generation ကို လိုက်နာထားတဲ့အပြင် Google Play မှာ လက်မှတ်ထိုးဖို့အတွက် ညွန်ကြားချက်တွေကိုလည်း ကိုက်ညီအောင် လိုက်နာထားတယ်”
အဲဒီ app bundles တွေက ပေါ်တာ သိပ်မကြာသေးဘူးလို့ ဆိုရမယ်။ Google I/O 2018 မှာ စတင်ခဲ့တယ်။ ဒီတော့ လက်ချိုးရေတွက်ရင် ၂ နှစ်ပဲ ရှိသေးတယ်။ ဒါပေမဲ့ Android apps တွေ ဖြန့်ဖို့အတွက် official format ဖြစ်နေပါပြီ။
Android
documentation
APK ဟာ.apkextensionဖြစ်သလိုAAB ဖိုင်တွေမှာလည်း extension က.aabဖြစ်ပါတယ်။
AABs ဘယ်လို အထုပ်ထုပ်သလဲဆိုတာ ပုံမှ ရှင်းပြထားတယ်။
APK ဟာ လိမ္မော်ရောင်အောက်ခံ ခြယ်ထားတဲ့ အပိုင်းသာ ဖြစ်ပါတယ်။ dynamic features မပါဘူး။
-------------------------
Asset Packs
Asset packs တွေဟာ devices အုပ်စုကို ရည်ရွယ်ထားတဲ့ ဖိုင်အုပ်စု ဖြစ်ပါတယ်။ သမားရိုးကျ APK တစ်ခုကို သုံးစွဲတဲ့အခါ အက်ပ်မှာ assets တွေ အကုန်လုံး ရယူထားတယ်။ device ထဲ ရောက်တော့မှာ အဲဒီ device အတွက် လိုအပ်မယ့်ဟာတွေကို ရွေးပြီး သုံးစွဲပါတယ်။ အဲဒီ device အတွက် မလိုအပ်တဲ့ဟာတွေလည်း ပါနေတာကို device ထဲ ရောက်နေပါတော့တယ်။
AAB ကျတော့ လိုတာမလိုတာ အကုန်လုံး သိမ်းကျုံးပြီး device ကို မပေးဘူး။ သုံးစွဲသူက အက်ပ်ကို download ယူရင် လိုအပ်မယ့် assets တွေကိုပဲ Play Store က ရွေးချယ်ပြီး download ယူတဲ့အခါ ထည့်ပေးလိုက်တယ်။
-------------------------
Dynamic Features
အဲဒီ features တွေက module တွေ ဖြစ်ပြီး အက်ပ်ကို ပထမဆုံး တင်တဲ့အခါ မလိုအပ်ဘူး။ သုံးစွဲသူက လုပ်ငန်းဆောင်တာကို တောင်းဆိုတဲ့အခါကျမှ သက်ဆိုင်ရာ features တွေကို download ရယူစေမှာ ဖြစ်ပါတယ်။ background မှာ download ရယူတာ ဖြစ်ပါတယ်၊
dynamic features တွေကို install လုပ်ဖို့ဆိုရင် SplitInstallManager ရှိတယ်၊
Play Core Library
က စီမံလုပ်ကိုင်ပေးတယ်။ အဲဒီလို လုပ်ပေးနေနိုင်ဖို့ Play Store နဲ့ တိုက်ရိုက်အဆက်အသွယ် ပြုထားတယ်။
-------------------------
Android App Bundle နဲ့ APK နှိုင်းယှဉ် အားနည်းချက်များ၊ အားသာချက်များ
APK ကို သုံးတဲ့အခါ
conversion rate နည်းတယ်။ conversion rate ဆိုတာက အက်ပ်ကို ရယူဖို့ ပြထားတာကို တွေ့မြင်တဲ့သူ ၂၀၀ ရှိတာမှာ ၅၀ ကပဲ download ရယူတယ်ဆိုရင် ၅၀ ကို ၂၀၀ နဲ့စားလို့ရတဲ့ စားလဒ်ရဲ့ ရာခိုင်နှုန်း ၂၅ % ဟာ conversion rate ဖြစ်ပါတယ်။
download ရယူတာ နှေးတယ်။
ဖုန်းထဲ နေရာယူတာ များလို့ uninstall လုပ်တဲ့နှုန်း များတယ်။
Update ယူတဲ့နှုန်းလည်း နည်းတယ်။
ဖိုင်အရွယ်အစား
AAB က download ရယူတဲ့ ဖိုင်အရွယ်အစားကို သိသိသာသာ လျော့ကျစေတယ်၊ asset packs နဲ့ dynamic features ပါတာမို့ အက်ပ်ဖိုင် အရွယ်အစား ပျမ်းမျှအားဖြင့် ၃၅ % လျော့ကျတယ်။ တချို့အက်ပ်တွေဆိုရင် ထက်ဝက်အထိ လျော့ကျတယ်။
AAB ကို စတင်သုံးစွဲတဲ့နောက်မှာ အများဆုံး ဖိုင် အရွယ်အစားဟာ 150 MB လို့ ကန့်သတ်မှာ ဖြစ်ပါတယ်။
Uncompressed native libraries
အကြောင်းကြောင်းကြောင့် APK မှာ အက်ပ်က native libraries အကုန်လုံးရဲ့ copy ကို ရယူထားပြီး ဖိုင်ကျုံ့တဲ့ ပုံစံ compressed format လုပ်ဖို့ လိုအပ်တယ်။ download ရယူပြီးတဲ့အခါ ကျုံ့ထားတာကို ပြန်ဖြေထုတ်တာ decompress အလုပ်ကို ဖုန်း က လုပ်ပေးတယ်။ ဒီတော့ ဖုန်းထဲမှာ ကျုံ့ထားတဲ့ ဖိုင်က တစ်ခု၊ ပြန်ဖြေထုတ်ထားတဲ့ ဖိုင်က တစ်ခု ဆိုပြီး ဖိုင် ၂ ခု ဆင်တူ ရှိနေစေတယ်။ တစ်နည်းပြောရရင် ဖုန်းထဲမှာ library ကော်ပီ ၂ ခု ရှိနေစေတယ်။ ၂ ခုစာ နေရာယူနေစေတယ်။ AAB က မကျုံ့ထားတဲ့ native libraries နဲ့ လုပ်ကိုင်တာဖြစ်ပြီး ကော်ပီ ၂ ခု ရှိမနေစေဘူး။
Libraries တွေက device မတူတာအရ လိုအပ်ပုံ ကွဲပြားတဲ့ device-specific ဖြစ်တာကြောင့် APK မှာ ကွဲပြားတဲ့ device အသီးသီးအတွက် Libraries တွေ စုပြုံထည့်ပြီး ဖိုင်အရွယ်အစား လျော့ကျအောင် ဖိုင်ကျုံ့ထားတယ်။ AAB မှာတော့ ရယူတဲ့ ကိရိယာတစ်ခုချင်းအရ လိုအပ်တာကိုပဲ ရွေးပြီး Play Store က ချပေးမှာ ဖြစ်ပါတယ်။
-------------------------
DEX Files အကြောင်း ပြောကြည့်ရအောင်
APK နဲ့ AAB ၂ မျိုးစလုံးမှာ DEX files အထဲမှာ ပါကြတယ်။ အဲဒီဖိုင်တွေက ကုဒ်တွေကို လုပ်ကိုင်ဖို့ သော့တွေ ဖြစ်ပါတယ်။ DEX ဆိုတာDalvik EXecutableကို အတိုကောက် ပြုထားတာ ဖြစ်ပါတယ်။
Android ရဲ့ အချက်အချာမှာ VM လို အတိုကောက်ခေါ်တဲ့ Dalvik Virtual Machine ဆိုတာ ရှိတယ်။ VM က အက်ပ်ရဲ့ ကုဒ်ကို ဖြေပေးတယ်။ လုပ်ကိုင်ပေးတယ်။ အကောင်အထည်ဖော်ပေးတယ်။ အဲဒီတော့ Android မှာ အဲဒီအက်ပ်ကို ခိုင်းလို့ ရသွားတယ်။ သုံးလို့ ရသွားတယ်။
DEX ဖိုင်မှာ Error တက်ရင် အလုပ်ဆက်မလုပ်တော့ဘူး။
Cannot fit requested classes in a single dex fileဆိုပြီး အသိပေးလိမ့်မယ်။
-------------------------
AAB က အက်ပ်ကို ရယူသုံးစွဲတဲ့သူတွေအတွက် ကောင်းတယ်။ Developer အတွက်တော့ အစမှာ အသစ်အဆန်း ဖြစ်နေရင် နည်းနည်းတော့ တိုင်ပတ်မယ်။ Android App Bundle ကိုပဲ သုံးတော့မယ်လို့ Play Store က မိန့်ထားပြီဆိုတော့ မဖြစ်မနေ လုပ်ဖို့ပဲ ရှိပါလိမ့်မယ်။