Android群英传笔记—第1章 Android体系与系统架构


1.1Google生态系统

1.2Android系统架构

Android大致分为了四层,即Linux内核层,库和运行时,Framework层和应用层。

这里写图片描述

1.2.1Linux

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

1.2.2Dalvik与ART

Dalvik包含了一整套的Android运行环境虚拟机,每个App都会分配Dalvik虚拟机来保证互相之间不受干扰,并保持独立。它的特点是在运行时编译。而在Android5.X版本开始,ART模式已经取代了Dalvik,ART采用的是安装时就进行编译,以后运行就不用编译了。

1.2.3 Framework

1.2.3 Standard libraries

包含的是Android中的一些标准库,就是开发者在开源环境中可以使用的开发库。

1.2.5 Application

Application可以说是一个大环境,他就是整个项目的意思,管理所有的东西

1.3 Android App 组件架构

Android四大组件,指的是Activity,BroadCastReciever,Content Provider和Service,他们是组成一个Android App 的最基本元素。

1.3.1 Android四大组件是如何协同工作

主要还是看应用场景,但是也是各自都是相互有些许联系的,Activity负责界面,展示数据,数据的来源可以通过资源获取,Contentprovider也可以获取其他应用的信息,还有一个不需要用户看到的操作可以用Service来处理,而且Android系统在执行某种特定的操作的时候回发出一个广播出来,我们可以用BroadCastReceiver去接收,他们之间的信息联动靠的是Intent这个信使,是一样四大组件的运行即是独立也有紧密的联系

1.3.2 应用运行上下文对象

在程序中,我们可以理解为当前对象在程序中所处的一个环境,一个与系统交互的过程
Activity,Service,Application都是继承Context。
Android应用程序会在如下所示的几个时间点创建上下文Context。

  • 创建Application
  • 创建Activity
  • 创建Service

创建Context的时机就是在创建Context的实现类的时候。当我们程序第一次运行并且创建application的时候,同时也创建了一个application context,所有的组件都共同拥有这样一个Context对象,这个应用上下文对象贯穿整个应用进程的生命周期,为应用全局提供了功能和环境支持。而现在创建activity和service的时候,我们就已经实例了context对象,这就意味着可以直接使用this了,而在非context运行环境下,就需要xxxx.this了

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

1.4.1 Android系统源代码目录

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

Mackfile解析:一个像Android这样大的工程,源码肯定是有很多的,而且种类更是繁多,这些文件都是由一个叫做Mackfile的文件来管理的,他有自己的规则来归类这些信息,比如编译规则,打包规则,所以Mackfile就像一个shell脚本,不仅可以使用自己的语法,而且可以调用操作系统的命令 Mackfile确实很强大,最大的好处是这货还能自动化编译,所以机制形成了,编译也就有条不紊 的进行着了

1.4.2 Android系统目录

在Android手机中,系统的目录结构与源代码目录结构还是有所不同的,通过ADB连上手机,通过Linux的ls命令查看Android系统的根目录。

  • /system/app/ : 一些系统的APP
  • /system/bin/ :linux自带的组件
  • /system/build.prop : 系统的属性信息
  • /sysytem/fonts/ : 系统字体存放目录,root后可下载TTF格式字体替换原字体
  • /system/framework/ :系统的核心文件,框架层
  • /system/lib/ : 存放几乎所有的共享库(.so)文件
  • /system/media/ : 存放系统提示音,系统铃声。
  • /sysytem/usr/ : 用来保存用户的配置文件
  • /data/app/ : 包含用户安装的App或者升级的App
  • /data/data/ : 开发者访问最多的目录,这里包含了App的数据信息,文件信息,数据库信息,以包名的方式来区分各个App
  • /data/system/ : 包含手机的各项系统信息
  • /data/misc/ : 保存了大部分WIFI ,VPN 信息

1.4.3 Android APP文件目录


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com