Android系统架构

Android系统架构

如该经典图,将android大致分为四层:Linux内核层、库和运行时、Framework层和应用层。

Android系统架构经典示意图
Android架构总览
  • Linux

android最低层最核心的部分,包含android系统的核心服务,包括硬件驱动、进程管理、安全系统等。

  • Dalvik 与 ART

Dalvik包含一整套android运行环境虚拟机,每个app都会分配Dalvik虚拟机来保证互相之间不受干扰保持独立。

Dalvik特点:运行时编译。
ART特点:安装时编译。(5.X之后取代Dalvik)

  • Dalvik支持已转换为.dex格式的java应用程序的运行.。
    .dex格式:专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
    每一个Dalvik应用作为一个独立的Linux进程执行,在有限的内存中允许同时运行多个虚拟机的实例。独立的进程可以防止在虚拟机崩溃时所有程序都被关闭。
    因为Dalvik虚拟机,Android开发者只需按照谷歌提供的SDK即可轻松创建APP,不需要顾忌硬件、底层驱动等问题,在每次执行应用时,Dalvik虚拟机都会将程序的语言由高级语言编译为机器语言,Dalvik依靠一个Just-In-Time(JIT)编译器去解释字节码,每次运行程序都需要做上述操作,将字节码编译为机器语言;所以很长时间以来,Dalvik虚拟机一直被用户指责为拖慢安卓系统运行速度不如iOS的根源。
  • ART模式(Android Runtime),谷歌收购了一家名为Flexycore的公司,该公司一直致力于Android系统的优化,ART模式也是在该公司的优化方案上演进而来。
    启用ART模式后,系统在安装应用的时候会进行一次预编译,在安装应用程序时会先将代码转换为机器语言存储在本地,这样运行程序时就不会每次都进行一次编译了,将提高执行效率。
Dalvik PK ART
RAM(random access memory)即随机存储内存,这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。
ROM(Read-Only Memory)即只读内存,是一种只能读出事先所存数据的固态半导体存储器。
  • Framework


    Framework
  • Standard libraries


    Standard libraries
  • Application

如下图,分别为NDK和Java开发App的主要构成。
无论哪种App都有Android Mainfest文件、Dalvik Classes、Resource Bundle。

NDK App
SDK App

开发者应关注每个版本的SDK修改,从而提高应用的兼容性。

Android App组件架构

画重点!

android 四大组件:Activity、BroadCastReciever、ContentProvider、Service

activity负责向用户展示信息和处理结果,信息可以通过资源获取,也可以通过ContentProvider获取其他应用信息、Service从后台计算、下载处理的结果、BroadCastReciever获取广播信息。

通过Intent,组件之间进行通信,传递信息,交换数据,形成各自独立而又紧密联系的关系。

Context(受到万千佳丽宠爱有木有)

activity、service、application都继承自Context
创建context的时间点:创建activity、service、application

应用程序第一次启动,android会创建一个application对象,同时创建application context,所有组件共同拥有一个context对象,贯穿整个应用尽扯那个的生命周期,为应用全局提供功能环境的支持。
创建activity、service时,系统创建activity实例、service
实例的context对象。所以通过getApplicationContext()取得整个App的context

Android系统目录

/system/app/ 系统app
/system/bin/ 存放Linux自带组件
/system/build.prop 系统属性信息
/system/fonts/ 字体
/system/framework/ 系统核心文件、框架层
/system/lib/ 几乎所有共享库文件(.so)
/system/media/ 系统提示音、铃声
/system/usr/ 用户配置文件
/data/app/ 用户数据信息,安装的app或者升级的app
/data/data/ app的数据信息、文件信息、数据库信息等
/data/system/ 手机各项系统信息
/data/misc/ 大部分WiFi、VPN信息
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,263评论 25 707
  • 前言 技术博客终于可以恢复正常的更新速度了,原因是我编写的进阶书籍的初稿已经完成,窃以为它将会是Android应用...
    刘望舒阅读 5,690评论 14 68
  • Android Studio JNI流程首先在java代码声明本地方法 用到native关键字 本地方法不用去实现...
    MigrationUK阅读 11,829评论 7 123
  • 学习所用,可随意转载,转载请注明出处,或在本文下方留言说明即可,谢谢! 百度了一下,发现都是wget的方式,且不说...
    vonhng阅读 763评论 0 1
  • 亲子阅读已经有一段时间了,之前一直也没太在意效果,刚开始阅读打卡是为了获得一点奖励,读着读者为了不掉队,竟然也坚持...
    娥姐姐阅读 1,034评论 0 0