零零散散的学习了Android,最近学习Android群英传,想借此机会好好系统整理总结自己的知识,形成一个体系
通过本章学习
-Google生态系统 ? ? ? ?
-Android系统架构 ? ? ?
-android源代码与系统目录结构
1.1Google生态系统 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
底层通过最快的C语言保证效率,上层使用Java简单、快速进行开发,Google利用搜索、移动、web的各个入口来掌握互联网的控制权,从而构建自己的生态系统
1.2Android系统架构 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Android是一个移动操作系统,大致可以分为四层:Linux内核层 ?系统运行库层 ?Framework层 ?应用层
1.2.1 Linux ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
手机的Setting选项中包含了内核版本,Linux层包含了Android系统的核心服务,包括硬件驱动、进程管理、安全系统 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
1.2.2 Dalvik与ART ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
每个APP都会分配一个Dalvik虚拟机来保证互相之间不受干扰,特点是运行时编译。而在Android 5.X版本之后ART模式取代Dalvik,特点安装时编译
1.2.3 Standard libraries ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
开发者在开源环境中可以使用的开发库
1.2.4 Framwork ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Android的API,使用API能快速开发出Android应用程序
1.2.5 Application ? ? ? ? ? ? ?
设计者希望Android的框架层能起到承上启下的功能,让应用的各个组件之间解耦,并通过框架进行统一的调度、管理
1.3 Android App组件架构 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
前面我们讲解了Android系统结构,而在应用层App的组件架构:Activity ?Service ?ContentProvider BroadCastReciever
1.3.1 Android四大组件如何协同工作 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
通过资源获取、ContentProvider获取其他应用的信息、Service从后台计算、下载、处理的结果通过Activity向用户展示信息和处理结果;组件与组件之间通过Intent来通信、传递信息、交换数据
1.3.2应用运用上下文对象 ? ? ?
Context、我们可以理解为当前对象在程序中所处的一个环境,一个与系统交互的过程。当应用程序第一次启动时,Android系统都会创建一个Application对象,同时创建Application Context对象,所有组件都拥有这样一个对象,这个应用上下文对象贯穿整个应用进程的生命周期,创建Application、Activity、Service时也会创建Context上下文对象
1.4 Android系统源代码目录与系统目录
? Android源代码目录包含了Android系统的所有源代码,从底层驱动到上层应用;但是在手机中系统目录与源代码的目录并不是一一对应的,而是与源代码编译之后,与打包生成的Image文件的结构相同
1.4.1Android系统源代码目录
Android源代码网站:http://androidxred.com/
Android作为手机操作系统,我们需要将源代码编译后才能使用。Makefile机制:android源文件很多,不同的功能、???、按类型分别放置在不同的目录下,这些模块通常都会通过一个Makefile的文件来进行管理。它定义了一系列规则来指定??椋男┪募枰嘁?,以及这些文件按照怎样的顺序去编译。总结Makefile的好处就是能自动化编译,同时还能做到可控制的编译
1.4.2Android系统目录
/system/app/ 存放的是系统的app
/system/bin/ Linux自带的组件
/system/build.prop 记录的是系统的属性信息
/system/font 系统字体存放目录root后可下载TTF字体替换原来的字体,达到修改系统字体的效果
/system/framework/ 系统的核心文件、框架层
/system/lib/ 存放几乎所有的共享库(.so)文件
/system/media/ 保存系统提示音、系统铃声
/system/media/audio/ 保存Android系统默认的铃声,alarm是闹钟铃声,notification短信或者提示音,ringtones来电铃声,ui界面音效
/system/usr/ 保存用户的配置文件
/data/app/ data目录包含用户的大部分数据信息,/data/app/包含了用户安装的App或升级App
/data/data/ App的数据信息、文件信息、数据库信息,以包名来区分各个应用
/data/system/ 手机的各项系统信息
/data/misc/ 保存大部分的Wi-Fi、VPN信息
1.4.3 Android App文件目录
App目录中的代码为应用程序代码,Gradle Scripts为编译脚本