Top Ad unit 728 × 90

Description of Image

latest News

recent

Android Booting Process (ဖုန္းတစ္လံုးစတင္ အလုပ္လုပ္ပံုႏွင့္ အေသးစိတ္အခ်က္အလက္မ်ား)

The Android Booting Process

သိုင္းေလာကတြင္ အထူးသျဖင့့္ ေလ့လာခါစ ညီအကိုေတြ အသိခ်င္ဆံုး
သူတို႔ အေမးမ်ားတဲ့ ေမးခြန္းတစ္ခုရွိပါတယ္ အဲဒါကေတာ့

Android ဖုန္းတစ္လံုး ဘယ္လုိစတင္အလုပ္လုပ္ေဆာင္ပါသလဲ?

ေမးသင့္တဲ့ စဥ္းစားသင့္တဲ့ အေမးေလပါ၊

Android ပိုင္းနဲ႔ Windows ပိုင္း အနည္းငယ္ကြဲျပားျခားနားၾကပါတယ္၊ sequence ဆိုၿပီး အသိမ်ားတဲ့
Android Booting process တစ္ခုလံုး၏ အစဥ္အတိုင္း စတင္အလုပ္လုပ္ပံုမ်ားကို တကယ္သိထားသင့္ပါတယ္။

ေဖၚျပပါ document သည္ Android Booting process အတြက္ အေကာင္းဆံုး မဟုတ္ေတာင္မွ
ၿပီးျပည့္စံုၿပီး အေသးစိတ္ေလ့လာလို႔ ရႏိုင္ေအာင္ ရွင္းလင္းေရးသားေပးထားပါတယ္။

 Android Booting Process ပိုင္းတြင္ ေအာက္ပါအတိုင္း 
Process ခုႏွစ္ခုပါ၀င္ေနၾကတာလည္းျဖစ္ပါတယ္။


Android Booting Process

    1. Power on and boot rom code execution
    2.The bootloader
    3. The linux kernel
    4. The init process
    5. Zygote and Dalvik
    6. The system server
   7. Boot complete


Android Booting Process

Android device တစ္လံုး Boot တက္တဲ့ျဖစ္စဥ္ကိုေျပာတာျဖစ္ပါတယ္။

ဒီ Booting Process အေၾကာင္းမရွင္းျပခင္မွာ Hardware ေတြရဲ့ အေခၚအေ၀ၚမ်ားကို 
ႀကိဳတင္ေလ့လာထားသင့္ပါတယ္ အဲဒါမွ Booting Process ကိုရွင္းလင္းတဲ့အခ်ိန္မွာ 
တစ္ခုခ်င္းစီရဲ့ အဓိပါယ္ကို နားလည္လြယ္မွာျဖစ္ပါတယ္။

CPU (Central Processing Unit)

CPU ဆိုတာ Computer မွာပဲျဖစ္ျဖစ္၊ Android ဖုန္းတစ္လံုးမွာပဲျဖစ္ျဖစ္ အေရးႀကီးဆံုး Hardware အစိတ္အပိုင္းလို႔ ေျပာလို႔ရပါတယ္၊ အတိုခ်ံဳ႕ေျပာရရင္ေတာ့ အဓိကတြက္ခ်က္ေပးတဲ့ ဦးေႏွာက္တစ္ခုေပါ့၊ ၎အလုပ္လုပ္ႏိုင္ဖို႔ရန္အတြက္ လိုအပ္တဲ့ အခ်က္အလက္ေလးေတြရွိပါေသးတယ္၊ 
အဲဒါေတြကေတာ့ RAM, ROM ေတြပဲျဖစ္ပါတယ္။

RAM (Random Access Memory)

လိုအပ္တဲ့အခ်က္အလက္မ်ားကို RAM ကေနေထာက္ပံ့ေပးထားပဲျဖစ္ပါတယ္၊ 
Computer မွာေရာ့ ဖုန္းတစ္လံုးမွာပါ ပါ၀ါပြင့္ေနတဲ့အခ်ိန္မွာ Data ေတြကို 
လက္ခံထားႏိုင္တဲ့ Memory ကိုေျပာတာလည္းျဖစ္ပါတယ္။

ROM (Read Only Memory)

RAM က ပါ၀ါပြင့္ေနတဲ့အခ်ိန္မွာသာ Data ေတြကို လက္ခံထားႏိုင္တယ္ဆိုရင္ေတာ့ 
ROM ကေတာ့သူ႔နဲ႔ေျပာင္းျပန္ ျဖစ္ၿပီး ပါ၀ါကိုပိတ္ထားတဲ့အခ်ိန္မွာ OS နဲ႔တျခား 
Data ေတြကို သိမ္းဆည္းထားေပးတာပဲျဖစ္ပါတယ္။


(မွတ္ခ်က္) ေဖၚျပပါ RAM & ROM အေၾကာင္းကေတာ့ အၾကမ္းဖ်င္းရွင္းျပေပးတာပါ။


1. Power on and boot ROM code execution

Hardware ျဖစ္တဲ့ Power ခလုပ္ကိုစတင္ႏွိပ္လိုက္တာနဲ႔ Boot ROM Code သို႔မဟုတ္
Bootloader ကစတင္အလုပ္လုပ္ပါတယ္၊ အဲဒီ Boot ROM Code ေတြက CPU ASIC အတြက္
အလြန္ေသးငယ္တဲ့ code ေလးေတြျဖစ္ပါတယ္။

Boot Rom တြင္ Boot Code ႏွင့္ Internal Ram ဆိုၿပီး
ႏွစ္မိ်ဳးပါ၀င္ေနပါေသးတယ္ ေအာက္ပါအတိုင္း ေလ့လာၾကည့္ပါ။

(A) Boot Code

Boot ROM Code ေတြက asic အေပၚမွာ system Boot media မ်ားကို ရွာေဖြေပးပါတယ္
အဲဒီအတြက္လည္း System register maps မ်ားကိုအသံုးျပဳထားတာပဲျဖစ္ပါတယ္။

ASIC

asic ဆိုတာ (application-specific integrated circuit) ကိုေျပာတာျဖစ္ပါတယ္၊
သူက Application ေတြအတြက္ microchip အမိ်ဳးအစားကိုအသံုးျပဳထားတာပဲျဖစ္ပါတယ္။

အဲဒါေတြကပဲ Boot loader ကို စတင္အလုပ္လုပ္ေစဖို႔ သတ္မွတ္ေပးထားတာလည္းျဖစ္ပါတယ္။


(B) Internal Ram

Boot Rom အလုပ္လုပ္ရန္အတြက္ boot media sequence လို႔ေခၚတဲ့ boot media အစိတ္
အပိုင္းေတြစတင္လို္က္တာနဲ႔ Internal RAM အတြက္ Bootloader ကစတင္္ေပးေတာ့ပဲျဖစ္ပါတယ္။


2. The boot loader
Bootloader ဆိုတာ ဖုန္း Device ကိုပါ၀ါခလုပ္ႏွိပ္ၿပီးလို႔ ပထမဆံုး စတင္အလုပ္လုပ္တဲ့
Low-level ပရိုဂရမ္တစ္ခုျဖစ္ပါတယ္၊ ၎ရဲ့ အဓိကရည္ရြယ္ခ်က္က Hardware ပိုင္းကို စတင္ေပးဖို႔ပါပဲ။

တစ္နည္းေျပာရရင္ေတာ့ Operating System ကိုရွာၿပီး စတင္အလုပ္လုပ္ေစဖို႔ပဲ ျဖစ္ပါတယ္၊
Bootloader စတင္လိုက္တာနဲ႔ Boot တက္ဖို႔လိုအပ္တဲ့ Hardware ေတြကိုစစ္ေဆးၿပီးစတင္ေစပါတယ္။

ၿပီးေနာက္ Boot Partition ထဲရွိ Kernel ကို RAM ေပၚဆြဲတင္လိုက္တာပါ၊ ဒီေနရာမွာ မွတ္သားထားရမွာက 
Bootloader နဲ႔ Boot Partition ထဲမွာရွိတဲ့ boot image မတူဘူးဆိုတာပါပဲ၊ ဘာေၾကာင့္လဲဆိုေတာ့...

Bootloader က ဖုန္းထုတ္တဲ့ ကုမၸဏီက အေသထည့္ေပးလိုက္တဲ့
 ေသးငယ္တဲ့ Program တစ္ခုျဖစ္ပါတယ္။

Boot Image ကေတာ့ ဖုန္းရဲ့ Boot Partition ထဲမွာ ရွိတဲ့ Image ဖိုင္ျဖစ္ပါတယ္၊ Boot Image မွာ Kernel နဲ႔ Ramdisk ဆိုၿပီး ႏွစ္ပိုင္းပါ၀င္္ေနပါေသးတယ္၊ Boot Partition ထဲကဖိုင္ေတြကို RAM ေပၚကို၀န္တင္ၿပီးတာနဲ႔ Bootloader ကက်န္တဲ့အလုပ္အားလံုးကို Linux Kernel ကိုတာ၀န္လႊဲလိုပါေတာ့တယ္။


A. ပမဆံုး Boot loader stage က External RAM ကို စတင္ေစဖို႔ျဖစ္ပါတယ္။
B. External RAM က significant လို႔ေခၚတဲ့ အေရးႀကီး Data အခ်က္အလက္မ်ားကို
စတင္ေပးဖို႔ပဲျဖစ္ပါတယ္။

C. ဒုတိယ Boot loader stage ကေတာ့ program ရဲ့အဓိကအစီအစဥ္ major ျဖစ္ၿပီး
သူအဓိကပါ၀င္ပတ္သက္ေနမႈကေတာ့ System File မ်ားကို စတင္ေပးဖို႔လည္းျဖစ္ပါတယ္။

System File ဆိုရာတြင္ Memory, network မ်ားျဖစ္ၾကၿပီး သူတို႔၏ အဓိကလုပ္ေဆာင္ခ်က္ေတြအေနျဖင့္
Modem CPU နဲ႔ low level memory protections ရယ္ security options မ်ားအတြက္ပဲျဖစ္ပါတယ္။

D. Boot loader က Special tasks လို႔ေခၚတဲ့ လုပ္ငန္းတာ၀န္မ်ားကို ျပဳလုပ္ၿပီးတာနဲ႔
 Linux kernel အတြက္ boot ပိုင္း ဦးေဆာင္ေစတာပဲျဖစ္ပါတယ္၊ အဲဒါက boot media မွ
တစ္ဆင့္ စတင္တာျဖစ္ပါတယ္၊ ဘာေၾကာင့္လဲဆိုေတာ့ အခ်ိဳ႕ေသာ source ေတြက
System configuration အေပၚ တည္မွီေနၾကလို႔ပဲျဖစ္ပါတယ္။

E. Boot loader ကစတင္လိုက္ၿပီးဆိုတာနဲ႔ Linux Kernel အတြက္ ျမန္ႏႈန္းအားကို ျဖစ္ေစၿပီး
routine ပိုင္းကို ပံုမွန္အတိုင္း စတင္အလုပ္လုပ္ပါေတာ့တယ္၊ က်န္တဲ့အပိုင္းေတြကိုေတာ့
Kernel ကပဲ တာ၀န္ယူ အလုပ္လုပ္သြားေတာ့တာပဲျဖစ္ပါတယ္။


3. The Linux kernel
Android ရဲ့အလုပ္လုပ္ပံုက Linux Kernel နဲ႔တူညီၾကပါတယ္၊ Linux Kernel က Android Operating System ရဲ့ အသည္းႏွလံုးလို႔ေျပာရင္လည္း ရပါတယ္၊ Linux Kernel က အေရးႀကီးတဲ့ Hardware နဲ႔ အနီးကပ္ဆံုးအပိုင္းျဖစ္ၿပီး Device Driver ေတြရွိတဲ့ အပိုင္းလည္းျဖစ္ပါတယ္။

သူအဓိက ေထာက္ပံ့ေပးေနတာကေတာ့ basic system ပိုင္းရဲ့ Function မ်ားနဲ႔ အျခားေသာ
Process Management, Memory Management, device management ပိုင္းေတြပဲျဖစ္ပါတယ္။

 ေနာက္တစ္မိ်ဳးေျပာႏိုင္တာက Linux Kernel က Android ဖုန္းတစ္လံုးတြင္ ပါ၀င္ေနသည့္
Hardware ပိုင္းနဲ႔ software layers ေတြကို ခ်ိတ္ဆက္ေပးၿပီး အလုပ္လုပ္ေစတဲ့ အစိတ္အပိုင္းျဖစ္ပါတယ္။

ဥပမာ...။ Driver Software ဆိုပါေတာ့ အဲဒီ Software က Hardware ခ်ိတ္ဆက္မႈကို သိရွိႏိုင္ေအာင္
ျပဳလုပ္ေပးတဲ့ Software မိ်ဳးကိုေျပာတာပဲျဖစ္ပါတယ္၊ ၿပီးေတာ့ camera, keypad, display အစရွိတဲ့
components မ်ားကို ထပ္ဆင္ထားေသာ္ျငားလည္း သူတို႔ရဲ့ သက္ဆိုင္ရာ Driver Software မ်ားသာ
မရွိပါက System ပိုင္းက Camera, keypad, display စတာေတြကို ခ်ိတ္ဆက္မႈ ေပးစြမ္းႏိုင္လိမ့္မယ္မဟုတ္ပါ။
A. Memory management units နဲ႔ caches မ်ားကို စတင္လိုက္တာနဲ႔ system ပိုင္းက
Virtual memory မ်ားကို အသံုးျပဳႏုိင္ရန္နဲ႔ User space process မ်ားကို အလုပ္လုပ္ေစတာပဲျဖစ္ပါတယ္။

B. Kernel က Root File system ပိုင္းအတြက္ init process ကို အလုပ္ေပးပါတယ္၊ သူ႔ကို 
system/core/init ဆိုၿပီး open source သံုးခုအေနျဖင့္ ေတြ႔ရွိႏိုင္ပါတယ္၊ သူ႔ရဲ့လုပ္ေဆာင္ခ်က္က
 user space process ျဖစ္ပါတယ္။

4. The init process
init process ဆိုတာ gradmother လို႔ေခၚဆိုႏိုင္ပါတယ္၊ သူရဲ့သေဘာတရားက
system process အားလံုးကို ထိမ္းခ်ဳပ္ေပးထားတဲ့ ေနရာလည္းျဖစ္ပါတယ္။

သူ႔အထဲပါ၀င္ေနတဲ့ ဘယ္ Process ပဲျဖစ္ျဖစ္ စတင္အလုပ္လုပ္ေတာ့မယ္ဆိုရင္ေတာ့
init process မွတစ္ဆင့္ အလုပ္လုပ္ေနၾကတာပဲျဖစ္ပါတယ္။

init process ရဲ့ အဓိကလုပ္ေဆာင္ခ်က္ ႏွစ္ခုရွိပါတယ္၊ ေအာက္ပါအတိုင္း

     1- Mounts directories မ်ားကိုအလုပ္လုပ္ပါတယ္ 
ဥပမာ- /sys , /dev    or /proc စသည္။

     2- init.rc script ကိုအလုပ္လုပ္ေစပါတယ္။

     A. init process ကို <android source>/system/core/init ဆိုၿပီးေတြ႔ႏိုင္ပါတယ္။

    B. Init.rc file ကိုလည္း <android source>/system/core/rootdir/ ဆိုၿပီးေတြ႔ႏိုင္ပါတယ္။


INIT (Initialization Process) ၎ Devices ေပၚမွာလုပ္ေနတဲ့ အလုပ္ေတြ
အားလံုးအတြက္ အဓိကက်ပါတယ္၊ သူကပဲ က်န္တဲ့လုပ္ငန္းစဥ္ေတြကို စတင္ေပးတာပါ။

ဥပမာ- Application Process ကိုျဖစ္ေပၚေစတဲ့ Dalvik Virtual Machine
အလုပ္လို႔ဖို စတင္ေစတာမိ်ဳးကို ျဖစ္ပါတယ္။


5. Zygote and Dalvik
zygote ဆိုတာ init process မ်ားျဖင့္ Intialize Dalvik VM ကို အလုပ္လုပ္တဲ့အပိုင္းပဲျဖစ္ပါတယ္။

Java မွာေတာ့ zygote ဆိုတာ Virtual Machine instance ဆိုၿပီးလူသိမ်ားၾကၿပီး per app မ်ားကို
အလုပ္လုပ္ေစႏိုင္တဲ့ အပိုင္းျဖစ္ပါတယ္၊ Android ဘက္မွာေတာ့ VM က app မ်ားအတြက္ ျမန္သထက္
ျမန္ႏိုင္ေအာင္ Run ေပးတဲ့အပိုင္းပဲျဖစ္ပါတယ္။

သူ႔ရဲ့ ျပသနာတစ္ခုက Dalvik (VM) မ်ားအလုပ္လုပ္ေနတဲ့အခ်ိန္မွာ မိမိိဖုန္းမွာပါ၀င္ေနတဲ့
several apps မ်ားက ဘာျဖစ္ေနၾကမွန္းမကို မသိႏိုင္တာေၾကာင့္ Memory မ်ားကို ပ်က္စီးႏိုင္ပါတယ္။

အဲဒီျပသနာကိုေျဖရွင္းႏိုင္ဖို႔ရန္အတြက္ Android OS တြင္ Zygote လို႔ေခၚတဲ့ System တစ္ခုကို
ထည့္သြင္းေပးထားတာလည္းျဖစ္ပါတယ္၊ နားလည္ေအာင္ေျပာရရင္ေတာ့ VM ပိုင္းကိုထိမ္းသိမ္း
ေပးဖို႔ System ပိုင္းတြင္ Zygote ကိုတပ္ဆင္ေပးထားတာလို႔ မွတ္ယူႏိုင္ပါတယ္။

Zygote က Dalvik VM အတြက္ Code ေတြကို အလုပ္ေပးတာျဖစ္ၿပီး
System boot စတင္အလုပ္လုပ္ႏိုင္ရန္ အတြက္ Virtual machine process
အေနျဖင့္ အဓိကလုပ္ေဆာင္ေပးေနတာလည္း ျဖစ္ပါတယ္။

The Zygote loading process

Zygote ရဲ့အဓိကလုပ္ေဆာင္ေပးေနတဲ့ Process က ေလးခုရွိပါတယ္၊ အဲဒါကိုပဲ core library classes
ဆိုၿပီး သံုးႏႈန္းထားၾကတာပါ၊ အဲဒီ loading process မ်ားကို ေအာက္ပါအတိုင္းမွတ္သားႏိုင္ပါတယ္။

1. Zygote Init class ကိုစတင္အလုပ္လုပ္ေပးၿပီး သူ႔ရဲ့လုပ္ေဆာင္ခ်က္က
 ေအာက္ပါ အတိုင္းပဲျဖစ္ပါတယ္။

<android source>/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java

2. ZygoteSocket ေတြကို register လုပ္ေပးျခင္း

server socket ေတြနဲ႔ zygote command connections မ်ားကို
register လုပ္ေပးျခင္း အပိုင္းကိုလည္း လုပ္ေဆာင္ေပးပါတယ္။

3. text file မ်ားကို ထိမ္းသိမ္းေပးျခင္း

သံုးခုေျမာက္ကို preloadClasses ဆိုၿပီး သံုးႏႈန္းထားပါတယ္၊ သူက ရိုးရိုး Text file တစ္ခုပဲျဖစ္ပါတယ္
အဲဒီ text file ထဲမွာေတာင္ classes အစုအဖြဲ႕မ်ားပါ၀င္ေနပါေသးတယ္၊ အဲဒါေတြကို ထိမ္းသိမ္းပါတယ္။

သူ႔ရဲ့ Source ကေတာ့ ေအာက္ပါတိုင္းျဖစ္ပါတယ္။

 <android source>/framework/base

4. Resources မ်ားကိုလည္းထိမ္းသိမ္းေပးျခင္း

Resources မ်ားတြင္ android.R file မ်ားပါ၀င္ေနပါတယ္၊ သူရဲ့အလုပ္က
themes နဲ႔ layouts မ်ားကို ထိမ္းသိမ္းေပးထားတာပဲျဖစ္ပါတယ္။


6. The system server
system server ဆိုတာ java ၏ componet တစ္ခုျဖစ္ၿပီး System မ်ားကို run ေပးေစဖို႔ျဖစ္ပါတယ္။
အဲဒီ System server ကပဲ android services မ်ားကို စတင္အလုပ္လုပ္ေပးတာပဲျဖစ္ပါတယ္။

ဘာေတြ စတင္အလုပ္လုပ္ေပးသလဲဆိုေတာ့ telephony manager နဲ႔ bluetooth မ်ားပဲျဖစ္ပါတယ္။
အဲဒီ android services မ်ားသည္ system server တြင္တိုက္ရိုက္အလုပ္လုပ္ေနၾကတာလည္းျဖစ္ပါတယ္။

ဒီ System server sources မ်ားကို Open source တစ္ခုအေနျဖင့္ ေအာက္ပါအတိုင္း ေတြ႔ရွိႏိုင္ပါတယ္

frameworks/base/services/java/com/android/server/SystemServer.java


System server sources
 =================
     Starting power manager
    Creating the Activity Manager
    Starting telephony registry
    Starting package manager
    Set activity manager service as system process
    Starting context manager
    Starting system contact providers
    Starting battery service
    Starting alarm manager
    Starting sensor service
    Starting window manager
    Starting Bluetooth service
    Starting mount service


 Other services
==========
    Starting status bar service
    Starting hardware service
    Starting NetStat service
    Starting connectivity service
    Starting Notification Manager
    Starting DeviceStorageMonitor service
    Starting Location Manager
    Starting Search Service
    Starting Clipboard Service
    Starting checkin service
    Starting Wallpaper service
    Starting Audio Service
    Starting HeadsetObserver
    Starting AdbSettingsObserver


 7. Boot complete (1)
System Server ကစတင္အလုပ္လုပ္ၿပီဆိုတာနဲ႔ System boot အတြက္ ျပည့္စံုတဲ့
အေနအထားတစ္ခုကို ေရာက္ေနပါၿပီ၊ အဲဒါကိုပဲ standard broadcast ဆိုၿပီး မွတ္သား
ၾကသလို Action_boot_Completed ဆိုၿပီးလည္း ေခၚေ၀ၚသံုးႏႈန္းၾကပါတယ္။

ေဖၚျပပါ Process ေပါင္း ခုႏွစ္ခုက ကိုယ္ပိုင္လုပ္ေဆာင္ခ်က္မ်ားကို error ကင္းကင္းျဖင့္
လုပ္ေဆာင္ေနမႈတစ္ခုကိုပဲ Android Booting Process ဆိုၿပီး (သို႔) ဖုန္းတစ္လံုးစတင္
အသံုးျပဳႏိုင္ဖို႔ရအတြက္ Step ခုႏွစ္ကို စတင္ၿပီးမွ ျဖစ္ေပၚလာၿပီး တစ္ခုခ်င္းစီက သူတို႔ရဲ့
Functions မ်ားကို မူမတူညီၾကပဲ ကြဲျပားျခားနားစြာျဖင့္ အလုပ္လုပ္ေနၾကတာပဲျဖစ္ပါတယ္။


ADB Command ျဖင့္ စစ္ေဆးၾကည့္နည္း
=======================
ေဖၚျပပါ Boot process မ်ားကို adb command မ်ားျဖင့္ စစ္ေဆးၾကည့္ႏိုင္ပါတယ္ အဲဒါကိုပဲ
logcat စနစ္လို႔ အၾကမ္းဖ်င္းမွတ္သားထားႏိုင္ပါတယ္၊ ေအာက္ပါအတိုင္းစမ္းသပ္ႏိုင္ပါတယ္။

‘adb logcat –d –b events | grep “boot”

‘adb logcat –d | grep preload’



  7. Boot complete (2)


Boot complete ပိုင္းတြင္ ႏွစ္ခုေဖၚျပေပးလိုက္ပါတယ္၊ ပိုၿပီးျပည့္စံုသြားေအာင္
နားလည္လြယ္ေအာင္လို႔ ထည့္္ေပးလိုက္ျခင္းလည္းျဖစ္ပါတယ္။

သူ႔အတြက္ ရွင္းလင္းခ်က္ေတာ့ မေတြ႔မိေတာ့ဘူး ဒါေပမယ့္ ဖုန္းတစ္လံုးစတင္ အလုပ္လုပ္ပံုႏွင့္
အေသးစိတ္အခ်က္အလက္မ်ားကို အက်ဥ္းခ်ံဳၿပီး မွတ္သားမယ္ဆိုရင္ေတာ့ ေအာက္ပံုနဲ႔ step မ်ား
အတိုင္း အလြယ္တကူ မွတ္သားထားႏိုင္ပါတယ္။

Android Booting Process

=================
1. Power on and boot rom code execution
2. The bootloader
3. The linux kernel
4. The init process
5. Zygote and Dalvik
6. The system server
7. Boot complete


Android ဖုန္းတစ္လံုး အလုပ္လုပ္ေနပံု
=====================
၁။ ပါ၀ါခလုပ္ကိုစတင္ျခင္း

၂။ Bootloader စတင္အလုပ္လုပ္ပါတယ္

၃။ Bootloader ၿပီးမွ Linux Kernel စတင္အလုပ္လုပ္ပါတယ္

၄။ Bootloader & Linux Kernel မ်ား ၿပီးမွ
Init process မ်ားစတင္အလုပ္လုပ္ပါတယ္။

၅။ Step 4 မွ process မ်ားၿပီးမွ Zygote နဲ႔ Dalvik မ်ား အလုပ္လုပ္ပါတယ္။

၆။ အဆိုပါ Step 1 - 5 မ်ားၿပီးမွ System server အလုပ္လုပ္ပါတယ္။

၇။ ေနာက္ဆံုးေတာ့ step 1-6 step process မ်ား ေအာင္ျမင္စြာျဖင့္
အလုပ္လုပ္ေပးေနပါမွ ဖုန္းတစ္လံုးအျဖစ္ အသံုးျပဳႏိုင္မွာပဲျဖစ္ပါတယ္။

အထက္ေဖၚျပပါ step process မ်ားတစ္ခုခ်င္းစီက သက္ဆိုင္ရာ အပိုင္းက႑မ်ားအလိုက္
အလုပ္လုပ္မႈ အဆင္ေျပခဲ့မွသာလွ်င္ Android ဖုန္းတစ္လံုးက ပံုမွန္အလုပ္လုပ္ႏိုင္မွာပဲျဖစ္ပါတယ္။


Booting Process မွာအဓိက သိမွတ္ထားရန္
===========================
Booting Process မွာ အဓိကအက်ဆံုးကေတာ့ Bootloader ပါပဲ၊
ဒီ Bootloader ဟာ ကၽြန္ေတာ္တို႔ Firmware ထဲမွာမပါပါဘူး။

သူပ်က္သြားၿပီဆိုရင္ေတာ့ ဖုန္းေလာက အေခၚအေ၀ၚအရ
Dead Boot ျဖစ္တယ္လို႔ေျပာဆိုၾကပါတယ္။

ဒီအဆင့္မွာ မ်ားေသာအားျဖင့္ Hardware ပါကူၿပီးျပင္မွရႏိုင္ပါတယ္၊
ဒုတိယအဆင့္ျဖစ္တဲ့ Boot Partition ထဲရွိ Kernel Error ျဖစ္ရင္ေတာ့
Display မရေတာ့ျခင္း၊ Camera မရေတာ့ျဖင္း၊ Wi-Fi, Touch စတဲ့
Error မ်ားျဖစ္ႏိုင္ပါတယ္။

Bootloader က Boot File ကို Loading (၀န္တင္ေပး) တဲ့
Program တစ္ခုပဲျဖစ္ပါတယ္၊ သူ႔ကို Boot နဲ႔သြားမေရာမိပါေစနဲ႔။



 E အားေကာင္းတဲ့ ေဘာ္ဒါေတြကေတာ့ မူရင္းပိုစ့္တြင္၀င္ဖတ္ေပးၾကပါခင္ဗ်ား
က်ေနာ္ေတာ့ ေခါင္းကိုက္သြားသလိုပဲ အဟီး...


အမွားပါရင္ နားလည္းေပးၾကပါခင္ဗ်ား


အားလံုးပဲအဆင္ေျပၾကလိမ့္မယ္လို႔ ေမွ်ာ္လင့္ပါတယ္



 Android ဖုန္းတစ္လံုးတြင္ ပါ၀င္ေနသည့္အစိတ္အပိုင္းမ်ား (Android Architecture)





Ref- http://mutsughost1.github.io


www.androidenea.com


https://community.nxp.com


Android System (Sithu Paing)





ဇူးနစ္(နည္းပညာ)


www.zunite.org


Android Booting Process (ဖုန္းတစ္လံုးစတင္ အလုပ္လုပ္ပံုႏွင့္ အေသးစိတ္အခ်က္အလက္မ်ား) Reviewed by ဇူးနစ္ on 11:48 AM Rating: 5

No comments:

All Rights Reserved by ဇူးနစ္(နည္းပညာ) © 2015 - 2016
Powered By www.zunite.org, Designed by ဇူးနစ္

Contact Form

Name

Email *

Message *

Powered by Blogger.