(ဘီလူးကၽြန္းသားေလး) နည္းပညာ

Saturday, March 14, 2015

Android Service သမားတုိင္း သိထားသင့္တဲ႔ Android နဲ႕ပတ္သပ္တဲ႔ အေၾကာင္းမ်ား Android ကိုစတင္ေလ့လာဖို႔က်ဳိးစာဖို႔


  သူငယ္​ခ်င္​းမ်ား မဂၤလာပါ ဗ်ာ နည္​းလမ္​း​ေကာင္​း​ေလး​ေတြ
​​ေတြ႔လို႔share ​ေပးလိုက္​ပါတယ္​
 Android ကိုစတင္ေလ့လာဖို႔က်ဳိးစားေနသူေတြအေနနဲ႔ အမ်ားေျပာေနၾကတဲ့
Bootloader, Firmware, ADB, Stock ROMs, Custom ROMs, OS Kernel,
ClockworkMod, Flashing, Rooting, Baseband စသျဖင့္ စာလံုးအထူး
အဆန္းေတြျခည္းေတြ႔ရလို႔ ေလ့လာခ်င္စိတ္ကုန္သြားတတ္သလို၊ တစ္လံုး စီနဲ႔
သူတို႔ရဲ့ သီးသန္႔ အလုပ္လုပ္ပံုကို အတိအက် မသိရင္ နာမည္သာေခၚေနေပမယ့္
အႏွစ္သာရ မဲ့ေနတတ္ပါတယ္။ တကယ္ေလ့လာလိုသူေတြအေနနဲ႔ လဲ တစ္ခုစီရဲ့
အဓိပါယ္နဲ႔ အသံုး၀င္ပံု အေသးစိတ္အလုပ္လုပ္ပံုတို႔ကို ေသခ်ာ သိကိုသိထား
ရပါမယ္။ ဒီပို႔စ္မွာ အထက္က စာလံုးေတြအေၾကာင္း ရွင္းသြားေပးပါမယ္။
တကယ္ပညာရွင္အဆင့္ တက္လွမ္းခ်င္သူေတြအတြက္ Open Source ျဖစ္တဲ့ Android က
မည္သူမဆို ေဒါင္းယူႏိုင္ပီး ႀကိဳက္သလို ျဖတ္ႏိုင္ ျပင္ႏိုင္ ပါတယ္။
စိတ္ႀကိဳက္ေျပာင္းႏိုင္ မိမိနဲ႔ အသင့္ေတာ္ဆံုး ျဖစ္တဲ့ System
တစ္ခုျဖစ္သြားတဲ့ အထိ ျပဳျပင္ယူလို႔ရပါတယ္။



[ Bootloader ဆိုတာဘာလဲ ]

Bootloader ဆိုတာက Operation System မစတင္ခင္ အလုပ္လုပ္တဲ့ Code
အစိတ္အပိုင္းေလးကိုေခၚပါတယ္။ Bootloader ထဲမွာ OS kernal ကို
စတင္အလုပ္လုပ္ေအာင္ ေခၚမယ္ ညြန္ၾကားခ်က္ေတြပါပါတယ္။ Bootloader က Internal
Memory ထဲမွာရွိတဲ့ Paratition ေတြအားလံုးက ရဲ့ ပထမဆံုး Partition မွာ
တည္ရွိမွာျဖစ္ၿပီး အျခား Partitions ေတြအားလံုးကို သြားမယ့္ Check Point
ပါပဲ။

[ Bootloader ဘယ္လိုအလုပ္လုပ္တာလဲ ]

Power စဖြင့္တာနဲ႔ ROM ထဲမွာရွိတဲ့ Boot ROM Code က စပီးအလုပ္လုပ္ပါတယ္။
ပီးရင္ Bootloader လို႔ေခၚတဲ့ Boot Strap Firmware ကို ႏိုးမယ္။ Boot
Strap Firmware ထဲမွာ MBR and GRUB/LILO တို႔ပါ၀င္တယ္၊ Bootloader
အလုပ္စပီဆိုတာနဲ႔ init.S ဖိုင္ စအလုပ္လုပ္တယ္။ အရင္ ဆံုး BSS segment ကို
0 တန္ဖိုးေရာက္သြားေအာင္ရွင္းတယ္၊ ပီးရင္ main.c ဖိုင္ကို စေခၚမယ္။ main.c
ဖိုင္ စ အလုပ္လုပ္တာနဲ႔ hardware အစိတ္အပိုင္းေတြျဖစ္တဲ့ clocks, board,
keypad, console တို႔ကိုစတင္ေစမယ္။ ျပီးရင္ Linux Tags ကိုဖန္တီးျပီး Linux
Kernel image ကို Memory ကေန ၀င္တင္မယ္။

[Botloader ေရြးခ်ယ္မႈ]

Bootloader က Phone မွာပါ၀င္တဲ့ အျခားမည္သည့္ software မဆိုရဲ့အဦးဆံုး
စတင္တဲ့အတြက္ မွန္ကန္တဲ့ processor ကိုအသံုးျပဳဖို႔
အလြန္အေရးႀကီးလွပါတယ္။ Android OS က Open Source ျဖစ္တဲ့အတြက္
ဖုန္းထုတ္လုပ္တဲ့ ကုမၼဏီေတြက သူတို႔ထုတ္လုပ္တဲ့ ဖုန္း Hardware နဲ႔
ကိုက္ညီတဲ့ Bootloader version ကို Develop လုပ္ထားၾကပါတယ္။ Android
ဖုန္းေတြမွာပါ၀င္တဲ့ Bootloader ေတြကိုအျမဲတမ္း Locked ခ်ထားပါတယ္။
ဒီလိုလုပ္ထားတာကေတာ့ ထုတ္လုပ္တဲ့ ကုမၼဏီေတြကို သူတို႔ထုတ္လုပ္တဲ့ဖုန္းကို
သူတို႔ထုတ္လုပ္တဲ့ OS version နဲ႔ပဲတြဲသံုးေစခ်င္လို႔ပါ။ Bootloader ကို
Locked လုပ္ထားရင္ Custom ROM install လုပ္လို႔မရပါဘူး။ ဒါေၾကာင့္ Custom
ROM Install လုပ္လိုရင္ Bootloader ကိုအရင္ Unlock လုပ္ရပါတယ္။



[ Kernel ဆိုတာဘာလဲ ]

Kernel ဆိုတာက Android တစ္ခုထဲမွာသာလွ်င္ရွိတာ မဟုတ္ပဲ
IOS,MacOS,Window,BlackBerry's QNX တို႔မွာလဲရွိပါတယ္။ High Level
Operation Systems အားလံုးမွာ Kernel တစ္ခုေတာ့ ပါ၀င္ပါတယ္။ ခုေျပာမွာက
Android အေၾကာင္းဆိုေတာ့ Linux Kernel ကိုပဲ ဦးတည္ပီးေျပာသြားပါမယ္။
Android သံုးသမွ်ပစၥည္းေတြက Linux Kernel ကိုသံုးၾကပါတယ္။ ဒါေပမယ့္ Linux
Operation System ကသံုးတဲ့ Kernel နဲ႔ေတာ့ တထပ္တည္းမတူပါဘူး၊ Android
Kernel မွာ Android အတြက္သီးသန္႔ Build-in code ေတြပါေနပါတယ္။
ဒါ့ေၾကာင့္ပဲ Developers ေတြနဲ႔ hackers ေတြအတြက္ Android Versions
အသစ္ေတြကို Android ဖုန္း အေဟာင္းေတြမွာ ထည့္သြင္းပီး အားလံုး အဆင္ေျပေျပ
အလုပ္ျဖစ္ေအာင္လုပ္ဖို႔ အေတာ့ကိုေစာင့္ရပါတယ္။ Gingerbred kernel အတြက္
သံုးတဲ့ drivers ေတြက Ice Cream Sandwich kernel အတြက္ အလုပ္လုပ္မွာ
မဟုတ္ပါဘူး။ ဒီကစၥကလည္း အေရးႀကီးပါတယ္၊ Kernel ရဲ့ အဓိကအလုပ္က Hardware
ကို ထိန္းခ်ဳပ္ဖို႔ တာ၀န္ကိုယူထားလို႔ပါ။ kernel ကိုေရးတဲ့ ကုတ္ေတြလည္း
တကယ့္ကိုမ်ားလွပါတယ္၊ Kernel ရဲ့ အဓိက တာ၀န္ကေတာ့ Hardware နဲ႔ Software
တို႔ၾကားမွာ ႏွစ္ဖက္ညြန္ၾကားခ်က္ေတြကို နာလည္ေအာင္ လုပ္ကိုင္ေပးဖို႔ပါပဲ။

Software တစ္ခုက ဘယ္လိုအလုပ္မ်ိဳးကိုမဆို Hardware ကို လုပ္ေစခ်င္တဲ့
အခါက်ရင္ Hardware ကို တိုက္ရိုက္ အမိန္႔မေပးပဲနဲ႔ Kernel ကို
ညြန္ၾကားခ်က္ အရင္လွမ္းပို႔ပါတယ္။ ဒီေနရာမွာ အလုပ္ဆိုတာက ဖုန္းက
လုပ္ႏိုင္တဲ့ အလုပ္အားလံုးကိုညြန္းပါတယ္။ ဖုန္း Screen
အလင္းေရာင္ခ်ိန္တာတို႔၊ အသံ အနိမ္း အျမင့္ ခ်ိန္တာတို႔၊ Raido ကို
ခ်ိတ္ဆက္ၿပီးဖုန္းေခၚဆိုတာတို႔၊ ဖုန္း မ်က္ႏွာျပင္မွာ ပုံဆြဲတာတို႔
စသျဖင့္ အလုပ္မွန္သမွ်ကို Software က လုပ္လိုတဲ့အခါက်ရင္ Hardware
ကိုတိုက္ရိုက္မခိုင္းပဲ Kernel ကိုလွမ္းခိုင္းလိုက္ပါတယ္။ အဲ့ဒီ့ အခါမွာ
Kernal က တဆင့္ Hardware ကို လုပ္မယ့္အလုပ္ကိုညြန္ၾကားပါတယ္။ (ဥပမာ)
ကၽြန္ေတာ္တို႔ ဖုန္း မ်က္ႏွာျပင္ေပၚမွာ က ကင္မရာ (Camera) ရိုက္တဲ့ခလုပ္
မွာ ကလစ္တစ္ခ်က္ႏွိပ္ျပီး ဓါတ္ပံုရိုက္တယ္ဆိုပါစို႔ ။
ခလုပ္ကိုႏွိပ္လိုက္တာနဲ႔ကို software က Event တစ္ခုကိုနားေထာင္လုိ႔ရမယ္
ရတဲ့ Event ျဖစ္ေပၚတဲ့ေနရာကို driver ကတဆင့္ Kernel ကို ပို႔မယ္၊ kernel
ကလည္းရလာတဲ့အခ်က္နဲ႔ ပက္သက္တဲ့ command ကို Camera hardware
ကိုလွမ္းပို႔မယ္။ Camera Hardware က ဓါတ္ပံုကို ရိုက္ေပးမယ္။ ဒီလို တစ္ခုက
Software က Input လုပ္လိုက္တာကို Kernel က ယူပီး Output တစ္ခုအျဖစ္
Hardware ကိုျပန္ေပးပါတယ္။

အကယ္၍ Kernel သာမရွိခဲ့ရင္ေတာ့ Developers ေတြက အလုပ္တစ္ခုစီအတြက္
အလြန္႔အလြန္မ်ားျပားလွတဲ့ machine Code ေတြကို ေရးၿပီး Hardware ကို
ခိုင္းေစရမွာျဖစ္ပါတယ္။ Kernel က ၾကားခံေပးထားတဲ့အတြက္ Application
Developers ေတြအေနနဲ႔ Android System API's ေတြကေန တစ္ဆင့္ Kernel ဆီကို
Resquest ေတြအလြယ္တစ္ကူပို႔ႏိုင္ၿပီး Kernel နဲ႔ ခ်ိတ္ဆက္ အလုပ္​ၾကပါတယ္






Download : (    ) MB
Solidfiles
Zippyshare
  





Min Oke Kar (ဘီလူးကၽြန္းသားေလး)

No comments: