

{"id":48853,"date":"2019-02-07T17:03:41","date_gmt":"2019-02-07T11:33:41","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=48853"},"modified":"2024-09-09T22:16:38","modified_gmt":"2024-09-09T16:46:38","slug":"android-architecture","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/android-architecture\/","title":{"rendered":"Android Architecture &#8211; 5 Components of Android Architecture"},"content":{"rendered":"<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:1659,&quot;href&quot;:&quot;https:\\\/\\\/developer.android.com\\\/guide\\\/platform&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;}]'><\/div>\n<p>In this article, we will study Android architecture. We will cover five basic components of Android architecture and their functioning. Moreover, to develop Android applications, Android developers need to have a deep knowledge of the architecture of Android.<\/p>\n<div id=\"attachment_48907\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-48907\" class=\"size-full wp-image-48907\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01.jpg\" alt=\"Android Architecture\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01-520x272.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-48907\" class=\"wp-caption-text\">Android Architecture<\/p><\/div>\n<h2>What is Android Architecture?<\/h2>\n<p>Android is a mobile operating system that has an open-source framework and is based on <a href=\"https:\/\/data-flair.training\/blogs\/linux-commands-tutorial\/\"><strong>Linux<\/strong><\/a> which helps\u00a0us to develop advanced and user-friendly applications.<\/p>\n<p>Now, we will start with Android Architecture, it comprises of five levels, which are the Linux kernel, Libraries, Application framework, Android runtime, and System applications.<\/p>\n<h3>i. Linux Kernel<\/h3>\n<p>Linux kernel is the bottom-most and important layer of the Android architecture and it is the core part of Android architecture. It is also an open-source software, meaning we can freely access its code, modify it at our own convenience. This is designed to be portable supporting a wider range of hardware architectures, from embedded devices to supercomputers as well.<\/p>\n<p>Linux Kernel provides features such as:<\/p>\n<ul>\n<li><strong>Security<\/strong><\/li>\n<li><strong>Process management<\/strong><\/li>\n<li><strong>Memory management<\/strong><\/li>\n<li><strong>Device management<\/strong><\/li>\n<li><strong>Multitasking<\/strong><\/li>\n<\/ul>\n<p>It is also responsible for a level of abstraction between device hardware and upper layers of Android architecture. It consists of device drivers like camera, flash memory, Display, keypad, Wifi etc.<\/p>\n<h3>ii. Libraries<\/h3>\n<p>This layer consists of a set of Libraries and Android Runtime. The Android component is built using <strong>native codes<\/strong> and require <strong>native libraries<\/strong>, which are written in C\/C++ and most of the libraries are open source libraries. Also, this layer handles data that is specific to the hardware. Some of the native libraries are SSL, SQLite, Libc, OpenGL, media framework, FreeType and Surface Manager.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_48960\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-Components.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-48960\" class=\" wp-image-48960\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-Components.jpg\" alt=\"Components of Android Architecture\" width=\"640\" height=\"640\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-Components.jpg 1080w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-Components-150x150.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-Components-300x300.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-Components-768x768.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-Components-1024x1024.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-Components-160x160.jpg 160w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-Components-320x320.jpg 320w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-Components-520x520.jpg 520w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><p id=\"caption-attachment-48960\" class=\"wp-caption-text\">Components of Android Architecture<\/p><\/div>\n<h3>iii. Android Runtime<\/h3>\n<p>It comprises of DVM (Dalvik Virtual Machine). Just like<strong> <a href=\"https:\/\/data-flair.training\/blogs\/java-virtual-machine-jvm\/\">JAVA uses JVM<\/a><\/strong>, Android uses DVM to optimize battery life, memory and performance. The byte code generated by the<strong> Java compiler<\/strong> has to be converted to .dex file by DVM, as it has its own byte code. Also, multiple class files are created as one .dex file and the compressed .jar file is greater than the uncompressed .dex file.<\/p>\n<p>It replaced the Dalvik Virtual Machine when Android version 5.0 was released. Dalvik was a register based virtual machine designed specifically for Android, but the ART introduced ahead-of-time(AOT) compilation and many other features.<\/p>\n<h3>iv. Application Framework<\/h3>\n<p>The application framework built on top of the native library layer provides us with Application programming interface and higher-level services. Also, the features of the Android operating system are available to us through API\u2019s written in form of <a href=\"https:\/\/data-flair.training\/blogs\/java-class-and-object\/\"><strong>JAVA classes<\/strong><\/a>.\u00a0 And, Android developers use these high-level services to build applications.<\/p>\n<p>It also consists of an Android <strong>Hardware Abstraction Layer (HAL)<\/strong> that allows the Android Application framework to communicate with hardware-specific device drivers. It acts as an interface for hardware vendors to implement. An android application uses HAL APIs to get commands from different hardware devices.<\/p>\n<p>The application framework consists of following key services:<\/p>\n<ul>\n<li><strong>Activity Manager:<\/strong> The method in this class uses testing and debugging methods.<\/li>\n<li><strong>Content provider:<\/strong> It provides data from application to other layers.<\/li>\n<li><strong>Resource Manager:<\/strong> It provides access to non-code resources.<\/li>\n<li><strong>Notification Manager:<\/strong> The users get notification about all the actions happening in the background.<\/li>\n<li><strong>View System:<\/strong> It acts as a base class for widgets and is responsible for event handling.<\/li>\n<\/ul>\n<div id=\"attachment_48911\" style=\"width: 1210px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Application-Framework-Services-01.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-48911\" class=\"size-full wp-image-48911\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Application-Framework-Services-01.jpg\" alt=\"Application Framework Services\" width=\"1200\" height=\"628\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Application-Framework-Services-01.jpg 1200w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Application-Framework-Services-01-150x79.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Application-Framework-Services-01-300x157.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Application-Framework-Services-01-768x402.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Application-Framework-Services-01-1024x536.jpg 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Application-Framework-Services-01-520x272.jpg 520w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><p id=\"caption-attachment-48911\" class=\"wp-caption-text\">Application Framework Services<\/p><\/div>\n<h3>v. Applications<\/h3>\n<p>It is the top-most layer of Android architecture. This layer consists of native Android applications and third-party installed apps. They are bundled in an Android package and all the applications that are to be installed are written in this layer only such as contacts, games, settings, and messages.<\/p>\n<h2>Summary<\/h2>\n<p>In this article, we have studied the Android architecture and its various layers consisting Linux kernel, Android runtime, application framework, and Android apps, in detail. Also, the benefit of learning about <a href=\"https:\/\/developer.android.com\/guide\/platform\/\">architecture<\/a>, as an Android developer is that it becomes easy to add new features if there are separate\u00a0components. Hope you liked our article. Furthermore, if you have any query you can ask us in the comment section.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we will study Android architecture. We will cover five basic components of Android architecture and their functioning. Moreover, to develop Android applications, Android developers need to have a deep knowledge of&#46;&#46;&#46;<\/p>\n","protected":false},"author":10,"featured_media":48907,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18722],"tags":[18769,18767,18771,18770,18773,18772],"class_list":["post-48853","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","tag-android-apps","tag-android-architecture","tag-android-working","tag-application-framework","tag-architecture-of-android","tag-how-android-works"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android Architecture - 5 Components of Android Architecture - DataFlair<\/title>\n<meta name=\"description\" content=\"Android architecture is categorized of mainly five components, linux kernel, libraries, android runtime, application framework and android 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:\/\/data-flair.training\/blogs\/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 - 5 Components of Android Architecture - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Android architecture is categorized of mainly five components, linux kernel, libraries, android runtime, application framework and android applications.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/android-architecture\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-07T11:33:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-09T16:46:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01.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=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android Architecture - 5 Components of Android Architecture - DataFlair","description":"Android architecture is categorized of mainly five components, linux kernel, libraries, android runtime, application framework and android 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:\/\/data-flair.training\/blogs\/android-architecture\/","og_locale":"en_US","og_type":"article","og_title":"Android Architecture - 5 Components of Android Architecture - DataFlair","og_description":"Android architecture is categorized of mainly five components, linux kernel, libraries, android runtime, application framework and android applications.","og_url":"https:\/\/data-flair.training\/blogs\/android-architecture\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2019-02-07T11:33:41+00:00","article_modified_time":"2024-09-09T16:46:38+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/android-architecture\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/android-architecture\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/a90b082e16aa38d207212d22b0581f33"},"headline":"Android Architecture &#8211; 5 Components of Android Architecture","datePublished":"2019-02-07T11:33:41+00:00","dateModified":"2024-09-09T16:46:38+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/android-architecture\/"},"wordCount":696,"commentCount":7,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/android-architecture\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01.jpg","keywords":["Android Apps","Android Architecture","Android Working","Application framework","Architecture of Android","How Android Works"],"articleSection":["Android Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/android-architecture\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/android-architecture\/","url":"https:\/\/data-flair.training\/blogs\/android-architecture\/","name":"Android Architecture - 5 Components of Android Architecture - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/android-architecture\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/android-architecture\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01.jpg","datePublished":"2019-02-07T11:33:41+00:00","dateModified":"2024-09-09T16:46:38+00:00","description":"Android architecture is categorized of mainly five components, linux kernel, libraries, android runtime, application framework and android applications.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/android-architecture\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/android-architecture\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/android-architecture\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2019\/02\/Android-Architecture-01.jpg","width":1200,"height":628,"caption":"Android Architecture"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/android-architecture\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Android Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/android\/"},{"@type":"ListItem","position":3,"name":"Android Architecture &#8211; 5 Components of Android Architecture"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/a90b082e16aa38d207212d22b0581f33","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team is passionate about delivering top-notch tutorials and resources on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. With expertise in the tech industry, we simplify complex topics to help learners excel. Stay updated with our latest insights.","url":"https:\/\/data-flair.training\/blogs\/author\/dfadteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/48853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=48853"}],"version-history":[{"count":8,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/48853\/revisions"}],"predecessor-version":[{"id":143361,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/48853\/revisions\/143361"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/48907"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=48853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=48853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=48853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}