001-အန်းဒရွိုက် App ကိုဖွံ့ဖြိုးရေးကောင်စီမှနိဒါန်း

views:
101
android app ကိုဖှံ့ဖွိုးတိုးတ
android app ကိုဖှံ့ဖွိုးတိုးတ

အန်းဒရွိုက် app ကိုဖှံ့ဖွိုးတိုးရန်သင့်လမ်းညွှန်မှလှိုက်လှဲစွာကြိုဆိုပါသည်! ဒီ post စီးရီးဂျာဗား programming language သုံးအန်းဒရွိုက်စတူဒီယိုထဲမှာ Android app ဖွံ့ဖြိုးတိုးတက်မှု၏အခြေခံသင်ပေးဖို့ရည်ရွယ်ထား. ငါသည်သင်တို့ကိုဒီ post စီးရီးရဲ့ start မှာမဆို Java သို့မဟုတ်အန်းဒရွိုက် programming ကိုအတွေ့အကြုံရှိသည်မယူဆ.

ငါရိုးရှင်းသောစည်းမျဉ်းများအတွက် App ကိုဖှံ့ဖွိုးတိုးတအမှုအမျိုးမျိုးရှိသမျှ bit နဲ့ရှင်းပြမယ့်ငါ. သင် "ခြစ်ရာကနေမစတင်ကြည့်နှင့်ဤ post ကိုစီးရီးဖြည့်ပြီးနောက်သင့်ကိုယ်ပိုင် apps များရန်သင့်အတွေးအခေါ်များပြောင်းလဲနိုင်ပါလိမ့်မည်.

သငျသညျ "ဒီ post ကိုစီးရီးနှင့်အတူ Android app ဖွံ့ဖြိုးတိုးတက်မှုအတွက်တစ်ဦးအစိုင်အခဲနောက်ခံနဲ့လက်အပေါ်အတွေ့အကြုံရှိသည်ကြည့်သို့သော်တစ်ဦးကတစ်ခုတည်း post ကိုစီးရီးသိသာသင်တစ်ဦးပလက်ဖောင်းသို့မဟုတ် programming language ကိုအပေါ်ကိုအကောင်းဆုံးကျွမ်းကျင်သူလုပ်မပေးနိုငျ.
Android app များ Eclipse ဘက်ပေါင်းစုံဖွံ့ဖြိုးတိုးတက်ရေးကိုပတ်ဝန်းကျင်သုံးပြီးတီထွင်ခဲ့ (ဒီမှာ) အန်းဒရွိုက်ဖွံ့ဖြိုးရေးကောင်စီ Tools များနှင့်အတူ (ADT) အတိတ်ကာလ plugin ကို. သို့သျောလညျး, Google က Android ဖုန်း app ကိုဖွံ့ဖြိုးတိုးတက်မှုအတွက်တရားဝင် IDE အဖြစ်က Android Studio ကမိတ်ဆက် 2014 နှင့်ဤ IDE စံဖြစ်လာခဲ့သည်. နောက်ဆုံးပေါ်တည်ငြိမ်လွှတ်ပေးရေးကို Android Studio ကဖြစ်ပါတယ် 2.2, သောဤ post ကိုစီးရီးမှာအသုံးပြုတဲ့ပါလိမ့်မည်.

အဆိုပါက Android Operating System ကို

s ကိုကျွန်တော်တို့ရဲ့ programming ကိုခရီးမစတင်မီက Android operating system ကို၏အခြေခံနှင့်ဆက်စပ်သဘောတရားများကိုခြုံငုံသုံးသပ်ရေး "စို့.

အဆိုပါက Android Operating System ကိုအန်းဒရွိုက် open-source မိုဘိုင်း operating system ဖြစ်ပါတယ်. ဤအရပ်မှကျယ်ပြန့်လုံခြုံရေးကိုပံ့ပိုး Linux ကိုတစ်မူကွဲသည်, မိုဘိုင်း device ကိုအဆင့်မှာ modular နဲ့ productivity. အန်းဒရွိုက် "ပွင့်လင်းနားကြပ်မဟာမိတ်အဖွဲ့" ဟုခေါ်သည့်အဖွဲ့အစည်းကဖွံ့ဖြိုးပြီးနှင့်ထိန်းသိမ်းထားတာဖြစ်ပါတယ် (OHA). OHA အတွက်တည်ထောင်ခဲ့ပါသည် 2007 Google ကယင်း၏ဗွေဆော်အဖွဲ့ဝင်တစ်ဦးဖြစ်ခြင်းနှင့်အတူ. OHA ထင်ရှားတဲ့ဟာ့ဒ်ဝဲနှင့်ဆော့ဖ်ဝဲကုမ္ပဏီတွေအများကြီးလည်းပါဝင်သည်.

မူလက, အန်းဒရွိုက်မှာ Android Inc မှလို့ခေါ်တဲ့ကုမ္ပဏီအသုံးပြုနေသူများကဖန်တီးခဲ့ပါတယ်. Google က၌ဤကုမ္ပဏီကိုဝယ်ယူ 2005. ထို့နောက်ပြီးနောက်, Google က opensource ကလုပ်နဲ့ Android ကြီးမားတဲ့အရှိန်အဟုန်ရရှိခဲ့. အန်းဒရွိုက်န်းကျင်၏စျေးကွက်ဝေစုရှိပါတယ် 85% တွင် 2016 ပုံထဲမှာပြထားတဲ့အတိုင်း 1.1 (ဒေတာအရင်းအမြစ်: http://www.idc.com/). ဒီစျေးကွက်ဝေစုမစဉ်းစား, က Android app ဖွံ့ဖြိုးတိုးတက်မှုအတွက်ရင်းနှီးမြှုပ်နှံဖို့သိသာတဲ့အကျိုးဖြစ်ပါသည်

android app ကိုဖှံ့ဖွိုးတိုးနိဒါန်း

အန်းဒရွိုက်တစ်ဦးချင်းစီအများအပြားအသေးစားတည်းဖြတ်မူများကိုရှိခြင်းခုနစျပါးကိုအဓိကထုတ်ရှိပါတယ်. ပိုမိုလွယ်ကူသည်ဤဗားရှင်းကိုလိုက်နာနိုင်ရန်အတွက်, developer များ cookie ကိုနာမည်များနှင့်အတူသူတို့ကိုအမည်. အန်းဒရွိုက်၏လူကြိုက်များဗားရှင်း KitKat သို့များမှာ (အန်းဒရွိုက် 4.4), Lollipop (အန်းဒရွိုက် 5.1) နှင့် Marshmallow (အန်းဒရွိုက် 6.0) (https://www.statista.com/statistics/271774/share-of-android-platformson-mobile-devices-with-android-os/). Nougat (အန်းဒရွိုက် 7.0) လည်းလူကြိုက်များနေသည်. ဗားရှင်းတက်အဖြစ်က Android ကိုပိုပြီးနိုင်စွမ်းဖြစ်လာ. သို့သျောလညျး, မရတိုင်း device ကိုနောက်ဆုံးဗားရှင်းကိုအသုံးပြုသည်ဘာဖြစ်လို့လဲဆိုတော့ကျနော်တို့ app ကိုဖှံ့ဖွိုးတိုးတကာလအတွင်းဗားရှင်းကိုရွေးချယ်ခြင်းနှင့် ပတ်သက်. သတိပြုရကြမည်ရန်ရှိသည်. ကျနော်တို့က Lollipop များအတွက် app တစ်ခုဖွံ့ဖြိုးလိုလျှင်, က Froyo installed သည့်ကိရိယာပေါ်မှာ run နိုင်မည်မဟုတ်ပါ. ကံကောင်းစွာ, အန်းဒရွိုက်စတူဒီယိုဟာ Compatibility ကို set ကိုရွေးဖို့ကိုအဖွ.

အန်းဒရွိုက်အတွက်သာအသုံးပြုသွားမည်ဖြစ်ပါသည် စမတ်ဖုန်းများ ဒါပေမယ့်လည်း tablet များအတွက်, netbook များ, ဒစ်ဂျစ်တယ်ရုပ်မြင်သံကြားသေတ္တာများ, လက်ကိုင်ဂိမ်းစက်များနှင့်ပင်ထိုကဲ့သို့သော UDOO အဖြစ်တစ်ခုတည်းဘုတ်အဖွဲ့ကွန်ပျူတာများအတွက်. ထိုကြောင့်ငါတို့သည်ပထမဆုံးပစ်မှတ် device ကိုရွေးပါရန်လိုအပ်ပါတယ်(s ကို) နှင့်ဗားရှင်း(s ကို) app တစ်ခုဖွံ့ဖြိုးဆဲမတိုင်မီ.

ဘယ်လိုက Android Apps ကပအလုပျလုပျ?

ယင်းအစီအစဉ်များကိုအမျိုးမျိုးသောပလက်ဖောင်းများပေါ်တွင် run ကွဲပြားခြားနားတဲ့နည်းလမ်းတွေရှိပါတယ်. နိမ့်ဆုံးအဆင့်ကိုဆော့ဖ်ဝဲ microprocessor အပေါ်တိုက်ရိုက် run သော machine code ကို၌ရေးထားလျက်ရှိ၏နိုင်ပါသည်.

က machine code ကိုရှုပ်ထွေးတဲ့ applications များဖွံ့ဖြိုးတိုးတက်ဖို့ခက်ခဲသည်ကတည်းက, Operating System ကိုအသုံးပြုကြသည်. operating systems လျှောက်လွှာ software နှင့်ဟာ့ဒ်ဝဲအကြားဆက်သွယ်ရေးနှင့်ထိန်းချုပ်မှုအလွှာများကို.

ကျွန်တော်တစ်ဦးသတ်သတ်မှတ်မှတ်ဟာ့ဒ်ဝဲ / operating system ကိုပေါ်ပြေးများအတွက်ဇာတိလျှောက်လွှာဖွံ့ဖြိုးတိုးတက်ဖို့လိုပါလျှင်, ကျွန်တော်တစ်ဦး compiler နဲ့ linker သုံးပြီးဒီလိုလုပ်ဖို့ရန်ရှိသည်.

compiler နဲ့ linker source code ကိုယူပြီးအမှန်တကယ် operating system ကိုများပေါ်တွင်အလုပ်လုပ်သော executable file ကိုဖန်တီး. ဥပမာ, ကျွန်တော် C ++ programming language ကိုတစ်လျှောက်လွှာဖွံ့ဖြိုးတိုးတက်ဖို့လိုလျှင်, ကျနော်တို့ကစုစည်း / ဆက်သွယ်ရေးလုပ်ငန်းစဉ်ကိုအသုံးချဖို့ရှိသည်.
machine code ကိုဟာ့ဒ်ဝဲဇာတိ applications များ၏အဓိကအားသာချက်ကသူတို့ရဲ့မြန်နှုန်းဖြစ်ပါသည်. သို့သျောလညျး, အဆိုပါအားနည်းချက်ကတော့ကွဲပြားခြားနားသောပလက်ဖောင်းဖြတ်ပြီးသဟဇာတမဖြစ်ပါသည်.

ဥပမာ, ကျွန်တော်တစ်ဦးဇာတိ Ubuntu ကိုအပေါ်ကို Windows application ကိုများနှင့်အပြန်အလှန် run လို့မရပါဘူး. virtual machine အယူအဆကဒီကန့်သတ်ကိုကျော်လွှားရန်တီထွင်နေသည်.

တစ်ဦးက virtual machine ဟာ operating system ပေါ်တွင်အလုပ်လုပ်ပြီးနှင့် virtual machine ထိပ်ပေါ်တွင် developer.The application ကို software ကိုပြေးဖို့ abstraction ကိုထောက်ပံ့ပေးမယ့်ဆော့ဝဲ.

ထိုကွောငျ့, နေသမျှကာလပတ်လုံးကွန်ပျူတာက virtual machine တပြေးရှိပါတယ်အဖြစ်, လျှောက်လွှာဆော့ဖျဝဲဟာ့ဒ်ဝဲ၏ကွန်ပျူတာလွတ်လပ်သောနှင့် operating system ကိုအပေါ်ကို run လို့ရပါတယ်.

A ကောင်းဆုံးဥပမာ Java Virtual Machine ဖြစ်ပါတယ် (ကွန်ပိုင်းလာအဖြစ်). ကွန်ပိုင်းလာအဖြစ်အားလုံးနီးပါး operating စနစ်များနှင့်ပလက်ဖောင်းများပေါ်တွင်အလုပ်လုပ်. ထိုကွောငျ့, ကျွန်တော် Java ကို software ကိုဖွံ့ဖြိုးတိုးတက်သည့်အခါ, က operating system ကို / ပလက်ဖောင်း၏ကွန်ပိုင်းလာအဖြစ်လွတ်လပ်သောအပေါ်ကို run ပါလိမ့်မည်.
ကို virtual စက်တွေအပေါ်ကို run ကြောင့်ဖွံ့ဖြိုးဆဲ apps များ၏သိသာအားသာချက်ပြီးနောက်အဖြစ်ဖော်ပြထားနိုင်ပါတယ်: "တစ်ချိန်ကဖွံ့ဖြိုးအပေါင်းတို့နှင့်ပလက်ဖောင်းများပေါ်တွင် run". သို့သျောလညျး, ကို virtual စက်တွေပေါ်ပြေး applications များဇာတိ applications များထက်ပိုမိုနှေးကွေးများမှာ. Virtual Machine ကို applications များ၏အထွေထွေဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာဖြစ်စဉ်ကိုအကျဉ်းချုပ်ဖြစ်ပါသည်.

android ဖုန်းကို virtual machine တပုံ

ဂျာဗား applications များဆင်တူ, အန်းဒရွိုက် applications များကိုလည်းကွန်ပိုင်းလာအဖြစ်ပေါ်ပြေး. အန်းဒရွိုက်အတွက်အသုံးပြုနှစ်ခုအထူးကို virtual စက်တွေရှိပါတယ်: Dalvik Virtual Machine (DVM) Android နှင့် Runtime (အေအာရ်တီဆေး).

ဤရွေ့ကားအနိမ့်မှုစနစ်အရင်းအမြစ်များအပေါ်ကို run နိုင်သည့်အထူးပြု JVMs များမှာ. အဆိုပါ .apk file တွေကို (Android app များ၏ executables) တကယ်တော့ထိုအကို virtual စက်တွေပေါ်ပြေး.

DVM ကို default runtime environment ကိုခဲ့ပြီ (~ virtual machine) အဆိုပါ Lollipop လွှတ်ပေးရန်သည်အထိ (အန်းဒရွိုက် 5.0). အေအာရ်တီကို Android အားဖြင့်မိတ်ဆက်ဖြစ်ပါတယ် 4.0 နှင့် Android ၏အဖြစ်ကို default VM ကခဲ့ 5.0. DVM နှင့်အေအာရ်တီဆေးအခြေခံအားဖြင့်တူညီအလုပ်အကိုင်အလုပျ: ပလက်ဖောင်း၏လွတ်လပ်သော Android app များ running.

DVM ကျော်အေအာရ်တီ၏အဓိကအားသာချက်ရှေ့ကိုအချိန်လို့ခေါ်တဲ့အယူအဆ၏အသုံးချဖြစ်ပါသည် (AOT) အချိန်အတွက်အစားရုံ၏စုစည်း (စက်မှုလက်မှုဝန်ကြီးများက) ချဉ်းကပ်နည်း. AOT အတွက်, apps များသူတို့က load ဤအရပ်မှတပ်ဆင်ကာလအတွင်းပြုစုနေကြတယ်

ပိုမိုမြန်ဆန်နိမ့် CPU အသုံးပြုမှုနှင့်အတူ. သို့သော်ငြားလည်း, JIT စုစည်းအတော်လေးရှည်လျားတင်အဆနှင့်အတူနိမ့်သိုလှောင်မှုအာကာသစားသုံးမှုကိုထောက်ပံ့ပေး.