Android ඉගෙන ගනිමු
What is android & android Architecture
android යනු Operating system එකක්ද? එහෙමත් නැත්තම් programming language එකක්ද?.සැබවින්ම android යනු operating system එකක් පමණක් නොවේ.
android යනු platform එකකි (වේදිකාවකි).එම වේදිකාව සමන්විත වෙනවා OS එකින්,android runtime එකකින්,native libraries වලින්,application framework එකකින් හා key applications වලින්.So ඉහත කියන ලද දේවල් සියල්ල සමන්විත mobile platform එකකි android.
android වල OS එක වන්නේ Linux kernal එකයි.so ඕනෑම operating system එකක් මෙන් මෙහිදීද OS එකේ ප්රදාන අරමුණු වන්නේ,
memmory management -ram එකට data ගන්න එක,ram එකේදී ඒවා manage කරන එක වැනි දේවල්
Resource management –apps කීපයක් run වන විට resources (memmory,cpu,screen) manage කරීම
device management – chip cards,cim,pen drives වැනි දෑ plugin කල විට ඒවා manage කිරීම.මේ සදහා ඒ ඒ divice සදහා drivers ඇත kernal එක තුලම.එනම් display driver,camera driver,.., වැනි drivers.
Power management
android වල Applications එහෙම නැත්තම් software components යනු android platform එකත් සමග එන apps හා අපි install කරගන්නා apps ඇතුළු සියලු apps වේ.So android platform එකක software components යනු device එකේ ඇති apps වේ.මෙම android apps අපට languages 3ක් ආශ්රයෙන් නිපදවිය හැක.එනම් java වලින් (මෙවිට SDK එකක් අවශ්ය වේ) , c හෝ c++ වලින් (මෙවිට NDK එකක් අවශ්ය වේ) හා .net වලින් (මෙවිට mono android framework එක අවශ්ය වේ) android apps නිපදවිය හැක.නමුත් අලුත් android platforms support කරන්නේ java වලින් සාදා ඇති apps වලට පමණි.
So අපි java වලින් නම් apps develop කරන්නේ ,අපි දන්නවා සාමන්යයෙන් input/output operations කරන්නට අවශ්ය විට අපි java.io.* වැනි libries code එකට import කරගන්නවා.libraries යනු කලින් code කරලා තියෙන code files වේ.java හදපු කට්ටියම අපේ පහසුව තකා ඉහත පරිදි විවිද libraries හදල තියෙනවා.ඒවා java libraries නම් වේ.අපි අපේ code එකේ ලියන්නේ import java.io.*; ලෙස පමණි.so සැබවින්ම මේවා code එක execute වන වෙලාවේ එනම් app එක run වෙන වෙලාවේ import කර ගැනීමට නම් අපේ app එකත් සමග එම library file එකත් යැවිය යුතුයි.එහම නැත්තම් java libraries ටික android වල තිබ්බනම් හරි.so android platform එකේ තියෙනවා android libraries ටික.So android platform එකත් සමග එන තව දෙයක් තමා java core libraries.මේවා අවශ්ය වන්නේ app එක run වන වෙලාවේ නිසා, android architecture එකේදී මෙම කොටසට Android runtime කියලත් කියනවා.
මෙම android runtime කොටසේ තියෙන තවත් වැදගත් අනු කොටසක් තමා (එනම් app එක run වන වෙලාවේදී වැදගත් වන තවත් ප්රදාන කොටසක් තමා) DVM එක.DVM යනු Delvik Virtual Machine වේ.අපි දන්නවා java වලදී සාමාන්යයෙන් code එක ලියලා save කරාට පසුව එය javac යන command එකෙන් compile කරහම byte code එක එහෙම නැත්තම් class files සෑදෙනවා.ඉන් පසු මෙම byte code එක JVM එනම් java virtual machine එක තුලයි interprite වෙමින් run වෙන්නේ.ඒ pc එක්ක වේ.phone එකක මෙම කාර්ය කරන එකට කියන්නේ DVM කියලයි.DVM එක කරන තවත් ප්රදාන කාර්යක් තමා එය .class files ටික input ලෙස ගෙන output කරනවා .dex කියල එක file එකක්. So app එකේ classes තියෙන ගානට class files වෙනුවට, ඒ සියල්ල එකතු කරලා හා තව size එක අඩු කරලා එක(1) .dex නම් file එකක් හදනවා. dex යනු delvik executable code යන්නයි.මෙසේ හැරවුනාට පසුව තමා එම .dex file එක DVM එකේ run වෙන්නේ.මෙසේ dex එකක් බවට හරවන්නේ,අපි මේ codes run කරන්නේ phones වල නිසා,ඒවාවල processor power එක,ram size එක අඩු නිසා light weight එක file එකක් තියන් ඉන්න එක ලේසියි execute කිරීමට.සාමාන්ය machine වල JVM එකෙන් එසේ කරන්නේ නැත්තේ එහි cpu,ram වැනි දේවල් හොදට තියෙන නිසා ඒ ඒ class වලට වෙනවම files තිබ්බට අවුලක් නැති නිසයි.
සමහර app වලට database එකක් අවශ්ය විය හැක.තවද java codes වලින් android වලදී graphics display කිර්මද කල නොහැක.මෙවැනි දේවල් සදහා android වල java නොවන language වලින් ලියා ඇති libries කීපයක් ඇත.උදාහරණයක් ලෙස java වලින් ලියා ඇති graphics කොටසක් display කිරීම සදහා openGLES නම් libry එකක් ඇත වෙන andoid වලටම ආවේනික වු (native) language එකකින් ලියා ඇති.තවද andoid වල database පහසුකම සැපයීම සදහා SQLite නම් android වලට native පහසුකමක් ඇත.android architecture එකේදී මෙම කොටසට කියන්නේ Native libraries කියලයි.
android architecture එකේ ඊලග කොටස තමා Application Framework එක.මෙම කොටස ගොඩක් වැදගත් වන්නේ android app developers ලට වේ.මෙම application framework කියල දෙයක් තියෙන නිසා developersලට apps develop කිරීම ඉතාම පහසු වී තිබේ.මෙනිසා සියලුම programmersල කියන දෙයක් තම android app develop කරන එක java හෝ වෙනත් app develop කරනවාට වඩා ලේසියි කියල.නමුත් ඔබ දන්නවද android වලින් “hello world” යන්න ප්රින්ට් කිරීම සදහා lines of codes ප්රමානය 1000කට ආසන්න බව.එසේනම් android වලින් app develop කිරීම ලේසියි කියන්නේ ඇයි?මෙය ලේසි වන්නේ කලින් කිව්වා වගේ application framework එක නිසයි.මෙයට හේතු වන්නේ application framework එක කියන්නේ ready made libraries ටිකකටයි.එනම් අපිට අවශ්ය වන බොහෝ දේ සදහා codes ටික තියෙනවා මෙහි.අපිට ඇත්තේ ඒවා call කිරීම පමණි.
උදාහරණයක් ලෙස wifi සම්බන්දව app එකක් නම් අපි හදන්නේ,application framework එකේ තියෙනවා class එකක් WifiManager කියල.එහි අපිට අවශ්ය විය හැකි ගොඩක් methods define කරලා තියෙනවා.එනම් available wifi networks බලා ගැනීමට අවශ්ය නම් method එකක් තියෙනවා getConfiguredNetowrks කියල.මෙනිසා අපිට විශාල codes ප්රමාණයක් type කිරීම අනවශ්ය වෙනවා.තව උදාහරනයක් ලෙස අපිට අවශ්ය නම් අපි ඉන්න තැන දැනගැනීමට GPS ආශ්රයෙන්,අපිට LocationManager නම් class එක භාවිතයට ගත හැක application framework කොටසේ තිබෙන.මෙහිද getPosistion වැනි අත්යවශ්ය methods තියෙනවා.
මෙලස අපිට bluetooth සමග වැඩ කිරීමට අවශ්ය නම් BluetoothManager,sensors සමග වැඩ කිරීමට අවශ්ය නම් SensorManager, ලෙස බොහෝ redy made libraries තියෙනවා application framework කොටසේ.
පහත රූපයෙන් ඉහත විස්තර කරන ලද android architecture එක මානව පැහැදිලි වේ
android ලිපි මාලාවේ තවත් කොටස් ඉදිරියටත් moramag තුලින්....
අශාන් පියදර්ශන
Post a Comment