您的位置:首页 > 移动开发 > Android开发

Android系统基础介绍

2017-07-28 21:56 204 查看

Android系统基础介绍

<深入理解Android内核设计思想>读书笔记 —————————— —-> 1

1.android系统特点

开发与扩展性

android最大的特点是开放性,虽然android遵循的是Apache开源软件许可证,和Linux遵从的GPL不同

合理的分层架构

现在的android系统分为5层结构,具体的分析下面再说

Application
Application FrameWork
Library and Runtime
HardWare Abstraction Layer
linux Kernel


强大的SDK

SDK(softWare Development kit)是操作系统与开发者直接的接口,应用程序开发者使用操作系统提供的api接口开发出各种各样的app

界面不断改进,更加美观

完善的生态系统

类似于生物生态系统,趋于稳定的持续发展

android系统提供底层平台基础
开发者通过研发新产品来获取利润,提供相应的服务
消费者使用这些产品来满足自身需求
Market提供了开发者和消费者之间资金支付与交易的平台


系统的运行速度有待提高,开机速度有的太慢

android使用厂家太多,导致各种各样的产品,使开发难度增加,各种各样的分辨率和屏幕大小是个很大的难题

2.Android系统框架

5.Application
4.Application FrameWork
3.Library and Runtime
2.HardWare Abstraction Layer
1.linux Kernel

1.使用linux内核是因为linux是开源的,经过多年的发展linux在各种各样的硬件方面有很强的兼容性,这使得对各种硬件手机搭建android在驱动方面更加方便
2.硬件抽象曾通过定义硬件驱动接口来进一步降低android系统和硬件的耦合;同时也是因为GPL协议规定所有代码必须开源,这对于一部分厂商是无法接受的,所以android打了这个擦边球。
3.系统运行库层,也成c库层,这样android可以使用很多成熟的项目,比如OpenGl,SQLite等
4.应用程序框架层,就是JAVA库层,一方面为上层应用提供了API接口,另一方面提供了一些系统服务局进程的实现,个人理解是通过封装系统运行库层和硬件抽象层使得开发者可以直接用过java调用。
5.应用程序分为系统移植和应用程序的开发


3.android系统文件(.img)

Image                       描述
boot.img              包含内核的启动参数,内核等多个元素
ramdisk.img           一个小型的文件系统
system.img            android系统的运行程序包(frameWork在这)和一些库,挂在载/system下
userdata.img          用户数据存储,被挂载在/data目录下
recovery.img          系统进入“恢复模式”所需要的包


3.1 boot.img,主要包括kernel和ramdisk

boot.img文件构成,必须页对齐  (1 page == 4K)
boot header         1 page大小          存储内核启动的头部信息,前面8个字节是ANDROID!
kernel              n pages大小         内核
ramdisk             n pages大小         文件系统
second stage        0 pages大小         可选的


3.2 ramdisk.img

通过解压可以发现system目录,data目录和init程序都在ramdisk.img中


3.3 system.img

解压出来包含的东西较多,个人想法
app目录             系统预装的app
bin目录             系统命令
fonts目录           字体
framework目录       framework
lib目录             第三方库,jar或者.so .o .a
preinstall目录      预先安装


4.android升级

android系统升级或者擦出数据等等都会进入RecoveryMode模式,设备会运行一个名为Recovery的程序,并通过下面几个文件和主系统进行沟通

/cache/recovery/command android系统给recovery的命令行文件

/cahce/recovery/log recovery程序的输出文件

/cache/recovery/intent recovery传递给android的intent

下面来讲解一下恢复出厂设置功能在Recovery中的处理流程

1. 在手机系统中选择了“恢复出厂设置”

2. android系统在/cache/recovery/command中写入了”–wipe_data”命令行

3. 设备重启后发现了command命令,所以进入recovery模式

4. recovery模式在BCB(bootloader control block)中写入“boot-recovery”和“–wipe_datazhey”这样即使设备重启也会进入erase流程

5. 通过erase_voluem来重新格式化/data

6. 通过erase_volume来从新格式化/cache

7. finish_revcovery擦出BCB是重启可以正常进入开机流程

5.makefile知识

目标:依赖
命令
makefile都是通过这个规程来扩展的


注意:

1.在一个makefile中有多个目标产物,比如make和make clean命令,第一个是默认的第一个目标,第二个是制定了目标

2.一个make程序有下面几个步骤

2.1变量赋值,环境监测等

2.2按照规程产生依赖树

2.3根据依赖树,从叶到根形成目标文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 读书笔记