DEVICES
ئەندرۆید بە هەڵە بنیاتنرا! 🤯
Ahmad Birdoz8 min read

ئەمڕۆ لێرەم بۆ ئەوەی ڕوونی بکەمەوە و پێت بڵێم ئەندرۆید لە بنەڕەتدا بە هەڵە بنیاتنرا! وە بەڕاستی هەوڵی کۆمپانیاکان بۆ خستنەگەڕی ڕەقەکاڵای (Hardware) زۆر بەهێز بۆ ئەوەی سیستەمەکە بە باشی کار بکات، تەنها هەوڵێکی ڕووکەشانەیە بۆ شاردنەوەی ئەو کێشە بنەڕەتیانەی لە قووڵایی سیستەمەکەدا هەن.
• بۆ ئەوەی لە چیرۆکەکە بگەین، وەرە با دەستت بگرم و بگەڕێینەوە بۆ سەرەتای ئەندرۆید:
ئەندرۆید لە بنەڕەتدا لە ساڵی 2003 لەلایەن ئاندی ڕوبین، كریس وایت، ڕیچ ماینەر، و نیك سیرز وەک سیستەمێکی کارپێکردن بۆ مۆبایلە زیرەکەکان دەستی پێکرد (نەک کامێرا، وە چەمکی بەکارهێنانی جاڤا سکڕیپتیش وەک ڕووکار لەو سەردەمەدا ڕاست نیە، بەڵکو لەسەر بنەمای کێرنڵی لینۆکس و بە بەکارهێنانی C و Java پەرەی پێدرابوو). پڕۆژەکە لە سەرەتادا نەیتوانی سەرنجی وەبەرهێنەران ڕابکێشێت و خەریک بوو تووشی مایەپووچ بوون ببێت، ئەگەر هاوکاری دارایی (کە وەک قەرز یان وەبەرهێنان بوو) لەلایەن ستیڤ پێرڵمانەوە نەبووایە کە هاوڕێی نزیکی ڕوبین بوو.
لە ساڵی 2005دا، گوگڵ سیستەمەکەی بە بڕی 50 ملیۆن دۆلار کڕی، لە گرێبەستێکدا کە گوگڵ لە ساڵی 2010 وەک «باشترین گرێبەست لە مێژووی خۆیدا» وەسفی کرد.
دوای ئەوە، ڕوبین و تیمەکەی پەیوەندییان بە گوگڵەوە کرد و دەستیان بە کارکردن کرد لەسەر پەرەپێدانی سیستەمەکە و بنیاتنانی ژینگەی کارپێکردنی جاڤا (Java Runtime) — لێرەدا کەمێک بوەستە و سەرنج بدە چونکە دواتر دەگەڕێینەوە سەر ئەم خاڵە.
یەکەم مۆدێلی تاقیکاری (Prototype) مۆبایلی ئەندرۆید هاوشێوەی مۆبایلەکانی بلاکبێری بوو، بە تەختەکلیل (Keyboard) و بێ شاشەی لەمس (Touch). بەڵام لەگەڵ ڕاگەیاندنی ئایفۆن لە ساڵی 2007، گوگڵ ناچار بوو بگەڕێتەوە بۆ قۆناغی پلاندانان، و یەکەم مۆبایلی ڕاستەقینەی ئەندرۆید کە کەوتە بازاڕەوە HTC Dream (G1) بوو، کە هەم شاشەی لەمس و هەم تەختەکلیلی تێدابوو، ئەوەی تریش بوو بە مێژوو. • باشە مێژووەکەمان زانی، بەڵام هێشتا نەمانزانی بۆچی دەڵێیت ئەندرۆید بە هەڵە بنیاتنراوە؟
بیرتە پێم وتی سەرنج بخەرە سەر بابەتی جاڤا (Java)؟ زۆر کەس دەڵێن ئەندرۆید لینۆکسە، چونکە کێرنڵی لینوکس (Linux Kernel) بەکاردێنێت. بەڵام من لێرەم بۆ ئەوەی مشتومڕەکە گەرمتر بکەم و پێت بڵێم: ئەندرۆید لینۆکس نیە!
یان لانی کەم ئەندرۆید لینۆکس نیە بەو مانایەی کە خەڵک لە سیستەمەکانی لینۆکسدا دەیناسن و بەکاری دەهێنن. ئەمەش ڕێک ئەو قسەیەیە کە Chris Titus (یەکێک لە بەناوبانگترین یوتیوبەرەکانی بواری لینۆکس) دەیڵێت و منیش هاوڕام لەگەڵیدا. پێش ئەوەی بزانیت بۆچی ئەندرۆید لینۆکس نیە، پێویستە بزانیت ئەوەی خەڵک لە ئێستادا وەک سیستەمی کارپێکردنی لینۆکس ناوی دەبەن، لە ڕاستیدا پێی دەوترێت GNU/Linux.
با سەرەتا بزانین GNU چیە؟ و جیاوازی نێوان ئەو و لینۆکس چیە؟ سیستەمی کارپێکردن وەک پاسێک بهێنە بەردیدی خۆت کە لە چەندین بەش پێکهاتووە، بەڵام ئەم پاسە پێویستی بە بزوێنەر هەیە، کە دڵیەتی و بەبێ ئەو تەنها پارچە ئاسنێکە. لە سیستەمی کارپێکردندا، ئەم دڵە بریتیە لە «کێرنڵ» (النواة/Kernel). کێرنڵ ئەو بەشەیە کە پێناسەی پارچەکان (Drivers)ی تێدایە و بەرپرسە لە بەڕێوەبردنی ڕەقەکاڵای کۆمپیوتەرەکە و ڕێکخستنی کارلێکی بەرنامەکان لەگەڵیدا.
کێرنڵ دەکرێت بگۆڕدرێت بەبێ ئەوەی ئەو سیستەمەی لەسەری بنیاتنراوە بگۆڕێت. بۆ نموونە کێرنڵ لە سیستەمی ویندۆزدا بریتیە لە NT kernel، و لەم حاڵەتەی ئێستاماندا کێرنڵەکە لینۆکسە.
ئەی GNU چیە؟ لە شەستەکاندا، کۆمپانیای AT&T سیستەمێکی کارپێکردنی تەواوی پەرەپێدا لەگەڵ کێرنڵێک بە ناوی Unix. وەک هەر سیستەمێک، ئەویش لەم سێ بەشە پێکهاتبوو:
1- کێرنڵ (دڵی سیستەمەکە، لێرەدا unix kernel بوو).
2- الـ Shell (ئەو پەنجەرەی تێرمیناڵەی کە بۆ بەکارهێنانی سیستەمەکە بەکاری دەهێنیت).
3- ئامرازەکان یان Utilities (ئەو بەرنامانەی لە تێرمیناڵەکەوە دەکرێنەوە).
ئەم زانیاریە لە مێشکدا بهێڵەرەوە چونکە دەگەڕێینەوە سەری.
کۆمپانیای AT&T دەستی کرد بە دادگاییکردنی هەر کۆمپانیایەک کە کۆپییەکی Unixی دروست دەکرد، ئەمەش کەسێکی توڕە کرد بە ناوی ڕیچارد ستۆڵمان (Richard Stallman). ئەویش «بزووتنەوەی نەرمەکاڵای ئازاد» (Free Software movement)ی ڕاگەیاند و سێ کاری ئەنجامدا:
1- مۆڵەتی GPL Licenseی نووسی، کە هەر کەسێک بەکاری بهێنێت، بەرهەمەکەی ئازاد و بێبەرامبەر دەبێت بۆ بڵاوکردنەوە و دەستکاریکردن.
2- دامەزراوەی نەرمەکاڵای ئازاد (Free Software Foundation)ی دامەزراند بۆ داکۆکیکردن و بڵاوکردنەوەی بزووتنەوەکەی.
3- (ئەمەیان بۆ ئێمە گرنگە) دەستی کرد بە پەرەپێدانی سیستەمێکی هاوشێوە و گونجاو لەگەڵ Unixدا لە خاڵی سفرەوە لەژێر ناوی GNU. (بەپێی نوکتە باوەکەش، GNU کورتکراوەی GNU is not Unix ـە بۆ ئەوەی کۆمپانیای AT&T نەتوانێت سكاڵای لەسەر تۆمار بکات).
ستۆڵمان و تیمەکەی هەموو شتێکیان دروستکرد وەک (GRUB bootloader, GCC code compiler, BASH shell program)، بەڵام گرنگترین بەشیان کەم بوو: کە ئەویش کێرنڵ (Kernel) بوو.
چەند پێشنیارێک هەبوو بۆ کێرنڵەکە لەوانە کێرنەڵێک بە ناوی Hurd بەڵام سەرکەوتو نەبوو. لە هەمان کاتدا، خوێندکارێک بە ناوی لینۆس تۆرڤاڵدس (Linus Torvalds) بۆ کاتبەسەربردن خەریکی دروستکردنی کێرنەڵێکی هاوشێوەی unix بوو و ناوی نا Linux.
لێرەدا ئەم دوو پڕۆژەیە یەکیان گرت و سیستەمی کارپێکردنی لینۆکس لەدایکبوو! یان وەک گوتمان GNU/Linux. • دوای ئەم هەموو دەرسە مێژووییە، هێشتا وەڵامت وەرنەگرتووە بۆچی ئەندرۆید بە هەڵە بنیاتنراوە و بۆچی لینۆکس نیە؟!
ئەو سێ بەشەت بیرە کە لە unixدا باسمان کردن و سیستەمەکەی پێکدەهێنا؟ ئەندرۆید لەوانە تەنها و تەنها کێرنڵەکە بەکاردێنێت!
ئەندرۆید GNU Linux نیە! بۆیە وەک سیستەمێکی لینۆکس بەو مانا باوەی کە ناسراوە (GNU/Linux) ئەژمار ناکرێت. گووگڵ و ئاندی ڕوبین کاتێک هاتن ئەندرۆید بنیات بنێن، بڕیاریاندا GNU بەکارنەهێنن.
کاتێک ئەندرۆید دادەگیرسێنیت، کێرنڵەکە بە ڕێکی بەو شێوەیە دەست بە کار دەکات کە لەسەر دابەشکراوەیەکی (Distro) لینۆکس کار دەکات، بەڵام نەرمەکاڵاکە (Software) بە تەواوی جیاوازە. ئەندرۆید کتێبخانەی بەناوبانگی GNU C (glibc)ی تێدا نیە (لەبری ئەو Bionic بەکاردێنێت)، وە هیچ کام لە کتێبخانەکانی GNUی تێدا نیە کە لە دابەشکراوەکانی لینۆکسدا هەن. هەروەها xorg یان تەنانەت waylandیشی تێدا نیە، بۆیە ناتوانیت بەرنامەکانی لینۆکسی لەسەر کار پێبکەیت، وە ژینگەی کارپێکردنی (Runtime) لینۆکسیشی نیە.
با باسی چینەکانی (Layers) ئەندرۆید بکەین: ئەندرۆید چینێکی تایبەت بە کتێبخانەکانی خۆی (Native Libraries) لە سەرووی کێرنڵی لینۆکسەوە بەکاردێنێت: وەک ئەو کتێبخانانەی بە زمانەکانی C/C++ نووسراون، وەک OpenGL بۆ گرافیک، SQLite بۆ بنکەی زانیاری (Database)، و Webkit بۆ گەڕان لە وێبدا.
هەروەها وەک گوتمان، چینێکی جیاوازی Runtime بەکاردێنێت لەژێر ناوی Android Runtime (ART) لە سەرووی کێرنڵی لینۆکسەوە. ئەمەش دەمانباتەوە سەر پرسیاری: بیرتە گوتم جاڤا و دەگەڕێینەوە سەری؟ با بگەڕێینەوە: ئەپڵیکەیشنەکانی ئەندرۆید بە شێوەیەکی ڕاستەوخۆ بە زمانی پرۆسێسەرەکە قسە ناکەن، نەخێر، ئەوان لە ناو «ژینگەیەکی نێوەندگیردا» کار دەکەن کە پێی دەوترێت Java Virtual Machine لەژێر ناوی Android Runtime.
ئەو کۆدەی بە Java یان Kotlin دەنووسرێت، دەگۆڕدرێت بۆ "Bytecode" و پاشان لەناو ژینگەی ARTدا کار دەکات.
جیاوازیەکە لێرەدایە: ئەپڵیکەیشنەکانی iOS و GNU Linux کۆدی ڕەسەن (Native Code) بەکاردەهێنن (واتە کۆدەکە بە زمانێک نووسراوە کە پرۆسێسەرەکە دەستبەجێ لێی تێدەگات)، ئەمەش وایکردووە کە ئایفۆن و سیستەمەکانی لینۆکس خێراتر بن و لە بەکارهێنانی سەرچاوەکانی ئامێرەکەدا کارامەتر بن بە بەراورد بە ئەندرۆید.
دووەم کەموکوڕی لە جاڤادا بریتیە لە تایبەتمەندیەک (کە لە هەمان کاتدا کێشەشە)، ئەویش ئەوەیە کە گەشەپێدەر پێویست ناکات مێشکی خۆی سەرقاڵ بکات بە پاککردنەوەی ڕام لەو داتایانەی کە چیتر سوودیان نەماوە، چونکە سیستمێکی ئۆتۆماتیکی هەیە کە ئەم کارە دەکات و پێی دەوترێت Garbage Collection (کۆکەرەوەی خاشاک).
بۆچی ئەمە دەبێتە هۆی "لاگ و سستی"؟ تەسەوڕ بکە خەریکی یاریەکی قورسی، و لەپڕێکدا Garbage Collector بڕیار دەدات کە «ڕامەکە پاک بکاتەوە» ڕێک لەم چرکەیەدا. لەو کاتەدا، سیستەمەکە وەستانێکی زۆر بچووک (Pause) دەکات بۆ کۆکردنەوەی ئەو پاشماوە تەکنیکیە. ئەم وەستانە، تەنانەت ئەگەر بەشێک لە چرکەیەکیش بێت، دەبێتە هۆی دابەزینی فڕێمەکان (Drop Frames) و هەست دەکەیت مۆبایلەکەت بۆ چرکەیەک سست بوو یان وەستا (Stuttering).
گووگڵ هەوڵیدا ئەم کێشەیە لە وەشانی نوێی ئەندرۆیددا چارەسەر بکات بەوەی کە کردی بە Concurrent و Generational، بەو مانایەی کە لە پاشبنەمادا (Background) کار دەکات بەبێ ئەوەی بە تەواوی ئەپڵیکەیشنەکە ڕابگرێت (تەنها لە حاڵەتی زۆر دەگمەندا نەبێت). بەڵام هێشتا لاگ و قورسی ڕوودەدات بەهۆی بەکارهێنانی زۆری سەرچاوەکان لەلایەن Java Frameworkەوە.
یەکێکی تر لە چینەکان بریتیە لە Java API Framework: ئەمەش پێکهاتووە لە کۆمەڵێک کتێبخانە (APIs) کە بە زمانی جاڤا نووسراون، و ڕێگا بە تۆی گەشەپێدەر دەدەن بگەیت بە فەرمانەکانی سیستەمەکە بەبێ ئەوەی بچیتە ناو ئاڵۆزیەکانی «کێرنڵی لینۆکس» یان «پێناسەی پارچەکان».
هەروەها چینێکی تر بەکاردێنێت بە ناوی HAL "Hardware Abstraction Layer": ئامانج لێی دوو شتە: یەکەم، وادەکات پەرەپێدانی بەرنامەکان لە (User-space)دا بە یەک شێواز بڕوات، گرنگ نیە جۆری مۆبایلەکە یان کۆمپانیای دروستکەرەکەی چیە (سامسۆنگ، شیاومی، ئۆپۆ... هتد). دووەم، چینێکی دابڕانی زیادە لە نێوان سوفتوێر و هاردوێردا دروست دەکات، بۆ ئەوەی گەشەپێدەران ناچار نەبن بۆ هەر پارچە هاردوێرێکی نوێ کۆدی تایبەت بنووسن.
با چینێکی تریشی بۆ زیاد بکەم: ئەویش پەیوەندی نێوان پرۆسەکانە (IPC - Inter-Process Communication). ئەندرۆید بە شێوەیەکی سەرەکی پشت بە شتێک دەبەستێت بە ناوی Binder بۆ ئەوەی پێکهاتە جیاوازەکان بتوانن قسە لەگەڵ یەکتردا بکەن. ئەمەش دەبێتە هۆی دروستبوونی قورسیەکی زیادە (Overhead) ئەگەر بەراوردی بکەین بە ئەپڵیکەیشنەکانی لینۆکسی ئاسایی.
بۆچی ئەندرۆید لەم بەشەدا کەمێک «قورسترە»؟ لە لینۆکسی ئاساییدا: بەرنامەکان زۆرجار دەتوانن بە شێوەیەکی ڕاستەوخۆ و خێرا بگەن بە کتێبخانەکانی سیستەمەکە (System Libraries)، هیچ «دابڕان و عەزلێک» لە نێوانیاندا نیە. بەڵام لە ئەندرۆیددا: سیستەمەکە کراوە بە چەندین «دوورگەی دابڕاو» لە یەکتر (لەبەر هۆکاری ئاسایش). بۆیە ئەگەر بەرنامەیەک بیەوێت قسە لەگەڵ بەرنامەیەکی تردا بکات یان داوای خزمەتگوزاریەک لە سیستەمەکە بکات، دەبێت بەناو Binderدا تێپەڕێت.
هەموو ئەم چینانە وادەکەن ئەندرۆید قورستر بێت و بەو شێوازە نەرم نەبێت. لە ڕابردوودا دەنگۆی ئەوە هەبوو کە گوگڵ بەتەمایە سیستەمی Fuchsia OS بخاتە شوێنی ئەندرۆید بەهۆی ئەم هۆکارانەوە، بەڵام پڕۆژەکە بە تەواوی نەخرایە جێبەجێ کردن، تەنها لەسەر هەندێک ئامێری وەک Google Nest Hub کار دەکات.
لە ساڵانی کۆتاییدا، گوگڵ تەکنەلۆژیای وەک AOT (Ahead-of-Time compilation)ی پەرەپێدا کە ئەپڵیکەیشنەکە بە تەواوی لە کاتی دابەزاندنیدا وەردەگێڕێت نەک لە کاتی کارپێکردنیدا، ئەمەش فەلەک و جیاوازی نێوان ئەندرۆید و iOS و GNU Linuxی کەمتر کردەوە و وایکرد ئامێرە فلاگشیپەکان ئەدایەکی زۆر باشتر پێشکەش بکەن.
هەروەها ئەندرۆید NDK (Native Development Kit)یشی تێدایە کە ڕێگا دەدات کۆدی C++ بە شێوەیەکی ڕاستەوخۆ بنووسرێت (وەک لە یاریە قورسەکاندا).
بەڵام جیاوازییە ڕاستەقینەکە هێشتا هەر دەمێنێتەوە، ئەویش ئەوەیە کە iOS لەسەر Objective-C/Swift بنیاتنراوە کە ڕاستەوخۆ Compilationی بۆ دەکرێت بۆ Machine code، لە کاتێکدا ئەندرۆید چینی Virtual Machineەکەی (تەنانەت ئەگەر بوبێتە AOTیش) هێشتا Overhead دروست دەکات لە بەڕێوەبردنی Memoryدا.
بۆیە کۆمپانیاکان ناچارن ڕام و ڕەقەکاڵای زیادە و زەبەلاح بخەنە ناو مۆبایلەکانەوە بۆ ئەوەی کێشەکە بشارنەوە.
بە کورتی، ئەندرۆید سیستەمێکە بنیاتنراوە بۆ ئەوەی لەسەر هەموو ڕێگایەک بڕوات (بۆ هەموو ئامێرێک بگونجێت)، بەڵام لە بەرامبەردا قوربانی بە هێزی ڕاستەوخۆ (Raw Performance) داوە، و ئێستا پێویستی بە بزوێنەری فڕۆکە هەیە بۆ ئەوەی پێش ئۆتۆمبێلێکی پێشبڕکێ (iOS) بکەوێت.
بەس کورت و پوخت ئەندرۆید بە هەڵە بنیاتنراوە.
ئایا تۆش وای دەبینیت؟ ڕای خۆت لە کۆمێنت هاوبەش بکە.
چێژی تەکنەلۆژیا لێرەیە 🥰 / سڵاو ڕێزی براتان ئەحمەد بیردۆز 😎💜 / Ahmad Birdoz
پۆستە پەیوەندیدارەکان
- 🟥 ماڵئاوایی لە مۆبایلە زیرەکەکان: لە ٢٠ ساڵی داهاتوودا چیپی دەماری دەچێتە ناو مێشکمان؟ 🧠📱👁️
ئایا بیرتان لەوە کردووەتەوە کە ڕەنگە ئەم مۆبایلە زیرەکەکەی ئێستا لە دەستتانە بە تەواوی لەناو بچێت و ببێتە مێژوو؟ ژیریی دەستکرد پێشبینی دەکات لە ماوەی ٢٠ ساڵی دا…
- کۆمپانیای شاومی کۆمپیوتەری Mi Notebook Air 13.3 بەپڕۆسێسەری ئەنتڵ Coffee Lake ئاشکراکرد
شاومی Xiaomi هەستا بەئاشکراکردنی وەشانێکی نوێ و پێشخراو لەلاپتۆپی Mi Notebook Air 13.3 کە لەناوەڕاستی 2017 بڵاوکرایەوە، کە بەپڕۆسێسەری ئەنتڵ لەنەوەی هەشتەم Coff…
- کام ڕێگا بەکاردەھێنی بۆ پاراستنی مۆبایلەکەت 🤔
AhmadTechhttps://plus.google.com/s/%23AhmadTech/posts BirdozTechhttps://plus.google.com/s/%23BirdozTech/posts
- ئەمڕۆ شاومی نەوەی دووەمی مۆبایلی Black Shark Helo بەبیرگەی کاتی ڕام 10 گێگابایت. چاوەڕوانی بابەتێکی تایبەت...
BirdozTechhttps://plus.google.com/s/%23BirdozTech/posts www.BirdozTech.comhttp://www.birdoztech.com/
- هەندێک جار متمانەی تەکنیکی دەبێتە پێوەر بۆ بڕیارە مێژووییەکان! ئەوەی ناسا ئایفۆن ١٧ پڕۆ ماکس هەڵدەبژێرێت بۆ گەشتەکەی مانگ (Artemis II)، نیشانەی ئەوەیە کە مۆبایلی گیرفانمان گەیشتووەتە ئاستی ئامێرە پزیش
ئایفۆن ١٧ پڕۆ ماکس بەرەو مانگ 😎 جەماعەتەک لەجیاتی مۆبایلەکەی وا دەفڕن لەخۆشیان 😁 گەلاکسی لەکێی 😭 هەر خەریکی لەسەر زەوی وێنەی مانگ دەگری 🖼️ خۆت خڕنەکەیەوە 🫤…
- 💬🔒 نامەگەیاندن بەبێ ژمارەی مۆبایل و ناسنامە؛ ئەپی سەرچاوەکراوەی SimpleX Chat شۆڕشێک لە پاراستنی نهێنی بەرپا دەکات!
لە سەردەمێکدا کە زۆربەی ئەپەکانی نامەگەیاندن ژمارەی مۆبایل، ئیمەیڵ، یان ناسنامەی ڕاستەقینەت دەبەستنەوە بە هەژمارەکەتەوە، پڕۆژەی سەرچاوەکراوەی SimpleX Chat بە دی…