{"id":81012,"date":"2021-06-15T09:00:32","date_gmt":"2021-06-15T03:30:32","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=81012"},"modified":"2024-08-02T17:48:42","modified_gmt":"2024-08-02T12:18:42","slug":"android-architecture","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/","title":{"rendered":"Android Architecture and Components"},"content":{"rendered":"<p>In this article, you will study Android Architecture. Any android developer must know Android Architecture in depth. This article will clearly explain what android architecture is and the five components that make up android architecture.<\/p>\n<h2>What is Android?<\/h2>\n<p>Android is an open-source operating system widely used in mobile, smartphones, and tablets. Android is based on top of the Linux kernel(modified version). As Android is open-source, anyone can download its source code, edit it according to his requirements, and launch his own custom ROM.<\/p>\n<h2>Android Architecture<\/h2>\n<p>Any Operating System has its architecture to carry on various functionalities. Similarly, android has its architecture. The android architecture gives us an idea about its design and the build. The architecture can be subdivided into five broad categories:<\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/06\/Android-Architecture-detail.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-81046\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/06\/Android-Architecture-detail.jpg\" alt=\"Android Architecture\" width=\"1500\" height=\"1700\" \/><\/a><\/p>\n<h3>1. Linux Kernel<\/h3>\n<p>Linux Kernel is the bottom-most layer of the architecture. It carries all the drivers for the low-level devices like Binder (IPC) Driver, Power Management, Audio Driver, Wi-Fi Driver, Keyboard Driver, etc.<\/p>\n<p>For example, whenever you press your phone\u2019s power button, the phone comes into the wake-up state, and this happens because the power management driver is installed. Similarly, whenever you want to capture a picture, you can because of the Camera Driver installed on the Linux kernel.<\/p>\n<p>It is also known as the abstract layer of android. This is because it helps us communicate between various hardware components and interact with the upper layers of android architecture.<\/p>\n<p>Following are some of the features of Linux Kernel:<\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/06\/features-of-Linux-Kernel.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-81050\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/06\/features-of-Linux-Kernel.jpg\" alt=\"features of Linux Kernel\" width=\"900\" height=\"900\" \/><\/a><\/p>\n<h4>a. Network Management<\/h4>\n<p>It allows networking support and routes networks, and looks into the network stack. It also manages network interfaces and handles tasks such as IP configuration and traffic routing to ensure efficient and reliable network communication.<\/p>\n<h4>b. User Management<\/h4>\n<p>Linux handles various types of user authentication and allows users to interact with the device. It manages user sessions, permissions, and access controls to ensure secure interactions. By verifying user credentials, Linux ensures that only authorized individuals can access specific features or data on the device.<\/p>\n<h4>c. Process Management<\/h4>\n<p>It handles all the processes and decides when to start, pause, or stop them. It efficiently allocates system resources to ensure that applications run smoothly and manage the lifecycle of processes. This includes balancing CPU usage and memory to maintain overall system performance.<\/p>\n<h4>d. File Management<\/h4>\n<p>It manages the memory and file systems and allows user data storage and access. The Linux kernel organizes data into files and directories, ensuring efficient read\/write operations. It handles tasks like file creation, deletion, and permissions, providing a structured way to store and retrieve user data securely.<\/p>\n<h4>e. Driver Management<\/h4>\n<p>The Linux kernel manages all the drivers of the respective hardware. It helps us to interact with the hardware of our device.<\/p>\n<h4>f. Security<\/h4>\n<p>As Linux authenticates users before giving them access, it also looks for safety and maintains that other users can\u2019t access or manipulate your data.<\/p>\n<h4>g. Portability<\/h4>\n<p>As various devices support Linux, it allows several devices to share resources and data. Almost all hardware components can interact with Linux.<\/p>\n<h3>2. Libraries<\/h3>\n<p>There are several libraries to provide various functionality for purposes like android development. These libraries are written in C\/C++ and are an essential part of the android architecture.<\/p>\n<p>Some of the libraries which are present in the Android architecture are as follows:<\/p>\n<h4>a. Surface Manager<\/h4>\n<p>Whatever you see on the screen, whether it\u2019s buttons, app icons, or any layouts, is displayed with the help of the surface manager. The surface manager binds these kinds of stuff and forms a binary image displayed by the display driver.<\/p>\n<h4>b. Open GL ES<\/h4>\n<p>Open GL for Embedded Systems (Open GL ES) is used to handle 3-D graphics rendering. It provides a framework for developing high-performance graphics applications, such as games and simulations.<\/p>\n<h4>c. SGL<\/h4>\n<p>Scalable graphics library (or SGL) is used for any kind of 2-D graphics.<br \/>\nMedia Framework: It helps us processing videos of various video Codecs. For example, H. 264, MPEG-4, AVI, etc.<\/p>\n<h4>d. SQLite<\/h4>\n<p>It is a scrapped-out (or lower version) of SQL. Whatever libraries you call or whatever read\/write or file operations you make are done through SQLite<\/p>\n<h4>e. WebKit<\/h4>\n<p>WebKit is the rendering engine used for displaying web content within applications. It handles the parsing and rendering of HTML, CSS, and JavaScript, allowing applications to integrate and display web content seamlessly. WebKit also supports encryption and decryption of web data for secure browsing experiences.<\/p>\n<h4>f. FreeType<\/h4>\n<p>It is a font rendering library, like how you have .ttf font files for windows. Similarly, in android, the font library helps in reading and writing text in various types of font styles and then renders it.<\/p>\n<h4>g. SSL<\/h4>\n<p>SSL (Secure Sockets Layer) is used for encrypting data transmitted over networks. It ensures secure communication by encrypting data between applications and servers, protecting sensitive information from unauthorized access. SSL is crucial for maintaining data security and privacy in networked applications.<\/p>\n<h4>h. Libc<\/h4>\n<p>Libc is a C standard library developed by Google, which provides essential functions for low-level programming. It includes standard routines for file handling, memory management, and other system-level operations. Libc is fundamental for performing basic operations required by applications and system components.<\/p>\n<h3>3. Android Runtime<\/h3>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/06\/Android-Runtime.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-81047\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/06\/Android-Runtime.jpg\" alt=\"Android Runtime\" width=\"700\" height=\"550\" \/><\/a><\/p>\n<p>It provides us an environment for executing and debugging our android applications. This is implemented either through Dalvik Virtual Machine or ART.<\/p>\n<p>Before Android KitKat, you tend to use Dalvik Virtual Machine, but the most recent Android versions now prefer using ART. Along with this, it also has some core libraries which are written in Java.<\/p>\n<p>For example, in Java, you have JVM, which converts the byte code to machine code. Similarly, in Android, you have DVM or ART, which converts the byte code to a .dex file.<\/p>\n<h3>4. Application Framework<\/h3>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/06\/Application-Framework.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-81048\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/06\/Application-Framework.jpg\" alt=\"Android Application Framework\" width=\"1300\" height=\"450\" \/><\/a><\/p>\n<p>It has many packages in it. Some of them are as follows:<\/p>\n<h4>a. Activity Manager<\/h4>\n<p>Activity is nothing but the visible component through which the User interacts with his application.<\/p>\n<p>Suppose you are chatting with your friend on WhatsApp, so you are using the WhatsApp activity, but suddenly if you press the home button, then you will come to the Home screen of your Smartphone. These all things, including multitasking, are managed through the activity manager.<\/p>\n<h4>b. Content Provider<\/h4>\n<p>It helps us seek permission from users to do various tasks, like accessing the camera, gallery, or accessing data from other applications.<\/p>\n<h4>c. Telephony Manager<\/h4>\n<p>It helps in managing phone calls and keeping logs of that calls.<\/p>\n<h4>d. Notification Manager<\/h4>\n<p>It notifies users about the activities or processes running in the background or foreground.<\/p>\n<p>Similarly, there are many such components as Package Manager, Location Manager, Resource Manager, View System, etc., having individual use.<\/p>\n<h3>5. Applications<\/h3>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/06\/Applications.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-81049\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/06\/Applications.jpg\" alt=\"Android Applications\" width=\"700\" height=\"628\" \/><\/a><\/p>\n<p>At the top level of the architecture, you have the applications. Applications can be of system or user or even kept by the OEM manufacturers. Phone, Messaging, Camera, Gallery, Settings, etc., are typical applications present in any android device.<\/p>\n<h2>Summary<\/h2>\n<p>So from this article, you saw what is android architecture and why it is imperative for any android developer to know about it. You understood all the five components present in the architecture and their features, benefits, and examples. This knowledge of Android Architecture will further help you to know how any android application works in a better manner,<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, you will study Android Architecture. Any android developer must know Android Architecture in depth. This article will clearly explain what android architecture is and the five components that make up android&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":81045,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2791],"tags":[3541,3515,3542,3543,3544,3545],"class_list":["post-81012","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","tag-android-application-framework","tag-android-architecture","tag-android-libraries","tag-android-runtime","tag-components-of-android-architecture","tag-linux-kernel"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android Architecture and Components - TechVidvan<\/title>\n<meta name=\"description\" content=\"Learn about android architecture &amp; its five components - Linux Kernel, Android Runtime, Applications Framework, Libraries and Applications.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/techvidvan.com\/tutorials\/android-architecture\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Architecture and Components - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"Learn about android architecture &amp; its five components - Linux Kernel, Android Runtime, Applications Framework, Libraries and Applications.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/android-architecture\/\" \/>\n<meta property=\"og:site_name\" content=\"TechVidvan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TechVidvan\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-15T03:30:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-02T12:18:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/06\/Architecture_of_Android.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"TechVidvan Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:site\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TechVidvan Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android Architecture and Components - TechVidvan","description":"Learn about android architecture & its five components - Linux Kernel, Android Runtime, Applications Framework, Libraries and Applications.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/","og_locale":"en_US","og_type":"article","og_title":"Android Architecture and Components - TechVidvan","og_description":"Learn about android architecture & its five components - Linux Kernel, Android Runtime, Applications Framework, Libraries and Applications.","og_url":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2021-06-15T03:30:32+00:00","article_modified_time":"2024-08-02T12:18:42+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/06\/Architecture_of_Android.jpg","type":"image\/jpeg"}],"author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@vidvantech","twitter_site":"@vidvantech","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22"},"headline":"Android Architecture and Components","datePublished":"2021-06-15T03:30:32+00:00","dateModified":"2024-08-02T12:18:42+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/"},"wordCount":1206,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/06\/Architecture_of_Android.jpg","keywords":["Android Application Framework","Android Architecture","Android Libraries","Android Runtime","Components of Android Architecture","Linux kernel"],"articleSection":["Android Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/android-architecture\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/","url":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/","name":"Android Architecture and Components - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/06\/Architecture_of_Android.jpg","datePublished":"2021-06-15T03:30:32+00:00","dateModified":"2024-08-02T12:18:42+00:00","description":"Learn about android architecture & its five components - Linux Kernel, Android Runtime, Applications Framework, Libraries and Applications.","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/android-architecture\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/#primaryimage","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/06\/Architecture_of_Android.jpg","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/06\/Architecture_of_Android.jpg","width":1200,"height":628,"caption":"Android Architecture"},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/android-architecture\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"Android Architecture and Components"}]},{"@type":"WebSite","@id":"https:\/\/techvidvan.com\/tutorials\/#website","url":"https:\/\/techvidvan.com\/tutorials\/","name":"TechVidvan Blogs","description":"","publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/techvidvan.com\/tutorials\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/techvidvan.com\/tutorials\/#organization","name":"TechVidvan","url":"https:\/\/techvidvan.com\/tutorials\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","width":200,"height":50,"caption":"TechVidvan"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TechVidvan\/","https:\/\/x.com\/vidvantech"]},{"@type":"Person","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22","name":"TechVidvan Team","description":"The TechVidvan Team delivers practical, beginner-friendly tutorials on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our experts are here to help you upskill and excel in today\u2019s tech industry."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/81012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/comments?post=81012"}],"version-history":[{"count":2,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/81012\/revisions"}],"predecessor-version":[{"id":447550,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/81012\/revisions\/447550"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media\/81045"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=81012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=81012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=81012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}