Android Architecture (Software Stack): kernel Native Libraries, Native Libraries and Android Runtime (Dalvik VM), Application Framework, Application

Android एक four-layer software stack है, जिसमें सबसे नीचे Linux kernel (drivers, memory, power) होता है, उसके ऊपर native libraries और Android Runtime (जो आपकी app का code रन करता है) होते हैं, फिर application framework (Java APIs जैसे Activity Manager) आता है, और सबसे ऊपर आपकी apps होती हैं।

9 min read · 9 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

What holds your app up?

आपकी FestConnect app इस पूरे software stack के सबसे ऊपर यानी top floor पर बैठती है, और ये अपने नीचे की हर layer पर depend करती है: वो framework जो इसे buttons देता है, वो runtime जो इसका code execute करता है, वो libraries जो इसका data store करती हैं, और वो kernel जो actual hardware chips से बात करता है।

Android का design एक layered stack की तरह है, जैसे 4 मंजिला इमारत हो, जहाँ हर floor अपने नीचे वाले floor पर टिका होता है। इन सभी floors और उनके सही order को समझना exam के लिए एक guaranteed question है, और ये आपके लिए एक mental map की तरह काम करेगा जब भी आप कुछ build करेंगे।

Theory

A four-storey building

एक building को इमेजिन करिए। उसकी foundation जो जमीन (hardware) को छूती है: वो है हमारा Linux kernel। उस foundation के ऊपर आते हैं utility rooms, जैसे water tanks और generators (ये हमारी native libraries और runtime हैं)। उनके ऊपर है services floor जहाँ reception, notices और वो staff होता है जिसे आप मदद के लिए बुलाते हैं (यह है application framework)। और सबसे ऊपर आते हैं apartments जहाँ tenants यानी किराएदार रहते हैं (ये हमारी apps हैं)। हर floor अपने नीचे वाले floor पर depend करता है, कोई भी हवा में नहीं तैर सकता।

Theory

The four layers, bottom to top

1. Linux Kernel (सबसे नीचे): इसमें device drivers, memory, process और power management, और security होती है। यह सीधे hardware से बात करता है।

2. Native Libraries + Android Runtime: इसमें C/C++ libraries होती हैं (जैसे data के लिए SQLite, WebKit, graphics के लिए OpenGL) और साथ में होता है runtime (ART, जिसे पहले Dalvik VM कहते थे) जो आपकी app के compiled code को रन करता है, हर एक app अपने खुद के VM में चलती है।

3. Application Framework: ये वो Java APIs हैं जिनका इस्तेमाल करके आप code लिखते हैं, जैसे Activity Manager, Content Providers, Notification Manager, View System, और Package Manager।

4. Applications (सबसे ऊपर): इसमें पहले से आई हुई built-in apps और आपकी खुद की बनाई हुई apps आती हैं, जैसे FestConnect।

At a glance

The stack और उसमें रहने वाले components

LayerContainsExample
4. Applicationsसभी appsFestConnect, Contacts
3. App FrameworkJava API managersActivity Manager
2. Libraries + RuntimeC/C++ libs, ART/DalvikSQLite, ART
1. Linux Kerneldrivers, memory, powercamera driver

Think first

Trace a save

मान लीजिए FestConnect एक registration को device के छोटे से database में save करती है। कौन सी layer वो database engine प्रोवाइड करती है, और कौन सी layer आखिरकार bytes को storage hardware पर write करती है? दोनों के नाम बताइए।

Show the answer

Database engine असल में SQLite है, जो layer 2 में एक native library है। लेकिन SQLite खुद flash chip को नहीं छू सकती; यह drivers के जरिए Linux kernel (layer 1) से कहती है कि वो bytes को storage पर write करे। तो एक single save का सफर ऊपर से नीचे की तरफ होता है: आपकी app (4) एक framework API (3) को call करती है, जो SQLite (2) का इस्तेमाल करता है, और वो kernel (1) पर depend करता है। हर real action इसी तरह stack में नीचे kernel तक जाता है और फिर वापस आता है।

Quiz

Android stack में, Linux kernel कहाँ बैठता है, और आपकी applications के ठीक ऊपर क्या होता है?

  1. Kernel सबसे नीचे (bottom) होता है; applications के ऊपर कुछ नहीं होता, वो सबसे top layer हैं
  2. Kernel सबसे ऊपर होता है; applications सीधे kernel के ऊपर बैठती हैं
  3. Kernel बीच (middle) में होता है; applications सबसे नीचे होती हैं
  4. यहाँ सिर्फ एक ही layer होती है, इसलिए order का कोई मतलब नहीं है
Show the answer

Kernel सबसे नीचे (bottom) होता है; applications के ऊपर कुछ नहीं होता, वो सबसे top layer हैं

Linux kernel सबसे नीचे की foundation है, और applications सबसे ऊपर की topmost layer हैं जिसके ऊपर कुछ नहीं होता (A)। Kernel कभी भी top (B) या middle (C) में नहीं हो सकता क्योंकि उसे hardware के सबसे करीब होना होता है। Android साफ तौर पर एक four-layer stack है, इसलिए इसका order बहुत मायने रखता है (D गलत है)। नीचे से ऊपर का क्रम याद रखिए: Kernel, Libraries+Runtime, Framework, Applications।

Watch out

Architecture traps

1. Flipping the order: याद रखिए kernel हमेशा bottom (hardware के पास) होता है, और apps हमेशा top पर होती हैं। अगर diagram उल्टा बना दिया तो marks कट जाएंगे।

2. Putting the runtime in the wrong layer: ART/Dalvik हमेशा layer 2 (native libraries के साथ) में रहता है, framework में नहीं।

3. Thinking apps talk to the kernel directly: apps कभी भी सीधे kernel से बात नहीं करतीं। उन्हें framework और libraries से होकर जाना पड़ता है। कोई भी layer सिर्फ अपने ठीक नीचे वाली layer को ही call कर सकती है।

Theory

Next: zoom into the runtime

Layer 2 ने एक बहुत जरूरी चीज़ छुपा रखी है: वो runtime जो असल में आपकी app को execute करता है, यानी Dalvik Virtual Machine (और उसका successor ART)। अगले lesson में हम इसी पर zoom करेंगे: Android को standard Java VM के बजाय अपने खुद के VM की ज़रूरत क्यों पड़ी, और ये कैसे आपकी compiled FestConnect code को एक battery-powered phone पर एकदम efficiently चलाता है।

Summary

Key takeaways

  • Android एक four-layer software stack है; हर layer अपने ठीक नीचे वाली layer का इस्तेमाल करती है।
  • नीचे से ऊपर का सही क्रम: Linux Kernel; Native Libraries + Android Runtime; Application Framework; Applications।
  • Kernel का काम drivers, memory, और power को संभालना है; libraries में SQLite, WebKit, और OpenGL शामिल हैं; और runtime (ART/Dalvik) app code को रन करता है।
  • Framework हमें Java API managers (जैसे Activity Manager वगैरह) प्रोवाइड करता है जिनका इस्तेमाल करके हम code लिखते हैं।
  • आपकी apps सबसे top layer पर होती हैं; वे hardware तक केवल पूरे stack में नीचे की तरफ सफर करके ही पहुँच सकती हैं।
  • Memory hook: 4 मंजिला इमारत, foundation (kernel) से लेकर apartments (apps) तक!

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Concepts of Android and Setting up Android Environment

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati