Android群英传读书笔记——Android体系与系统架构

1.1 Google生态系统

Android系统,底层通过最快的C语言保证效率,上层使用Java简单快速的进行开发

 

1.2  Android系统架构

        Android系统大致分为4层,Linux内核,库与运行时,Framework层,应用层

        Android群英传读书笔记——Android体系与系统架构

1.2.1  Linux

       Linux层包含了android系统的核心服务,包括硬件驱动,进程管理,安全系统等等。

1.2.2  Dalvik与ART

       Dalvik包含了一整套android运行环境虚拟机,每个app都会分配虚拟机保证互不干扰。特点是运行时编译。Android5.X后ART模式取代了Dalvik,特点是安装时编译。

1.2.3  Framework

1.2.4  Standard libraries

        在开源环境下可以使用的开发库

1.2.5  Application

        SDK开发和NDK开发APP的主要构成都有Android Manifest,Dalvik Classes,Resource Bundle这几个东西,NDK多出Library

 

1.3  Android app组件架构

1.3.1四大组件如何协同工作

       Activity负责向用户展示信息和处理结果,,而这些信息的来源,可以通过资源获取,也可以通过Content Provider来获取其他应用的信息,或是Service从后台计算、下载、处理的结果,当然也可以是Boardcast Receiver获取到的广播信息。使用Intent进行组件间通信。

1.3.2应用运行上下文对象

        上下文,在程序中可以理解为当前对象在程序中所处的一个环境,一个与系统交互的过程。

        Activity,Service,Application都继承自Context,创见时间点不同,APPLICATION->ACTIVITY->SERVICE,在Activity中获取context可以直接使用this,在匿名内部类中使用就要用XXXXActivity.this

 

1.4  Android系统源代码目录与系统目录

        Android系统的目录与Android源代码的目录结构是不相同的,而是与源代码编译之后,打包生成的Image文件的结构相同。

1.4.1  Android系统源代码目录

        Android源代码网站:http://androidxref.com/

        Android群英传读书笔记——Android体系与系统架构

        Android和很多其他语言一样,引入Makefile机制,大型工程通常有一个Makefile文件来对不同目录的不同模块进行管理。它定义了一系列规则来指定模块,那些文件需要编译,以及这些文件该按照怎样的顺序编译,定义编译规则,打包规则,因为Makefile解像一个Shell脚本,不仅有自己的语法,也能调用系统的命令。

        Makefile最大的好处就是自动化编译和可控制编译。Makefile语法制定了源代码该如何连接并生成相应的可执行程序。Android源代码目录结构中每个最小功能的目录下都会有一个makefile文件

1.4.2  Android系统目录

        /system/app/    放的是一些系统app

        /system/bin/    主要放得是Linux自带的组件

        /system/buile.prop    这里记录的是系统的属性信息

        /system/front    系统字体存放目录

        /system/framework/            系统核心文件,框架层

        /system/lib/        存放几乎所有的共享库(.so)

        /system/media/        保存系统声音铃声

        /system/user/        保存用户的配置文件如键盘布局

        /data/app/        data目录包含用户的大部分信息。 /data/app/ 包含了用户安装或升级的app

        /data/data/        包含了app的数据信息,文件信息,数据库信息等,以报名区分各个应用

        /data/system/        这个目录包含手机的各项系统信息

        /data/misc/        这个目录保存大部分Wifi,v*n信息

1.4.3  App文件目录

        AS中的project相当于Eclipse的WorkSpace,AS中的Module相当于Eclipse的Project