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根据依赖树,从叶到根形成目标文件

更多相关文章

  1. Android 调用相册 拍照 实现系统控件缩放 切割图片
  2. Android - Read Only File System IOException-目录问题
  3. Android 系统状态栏一体化
  4. Android系统源码数据库(mmssms.db)

随机推荐

  1. Android(安卓)待机流程解析
  2. Android(安卓)Fragment使用小结
  3. Eclipse Android编程快捷键
  4. Android单元测试(五):依赖注入,将mock方便的
  5. Android(安卓)自定义进度条ColorfulProgr
  6. Android对第三方类库运行时加载
  7. (转摘)Android腾讯微博客户端开发二:相关
  8. Android做检测版本更新安装完以后就什么
  9. Android动态创建布局常用方法
  10. Android(安卓)Jni调用so库,加载库失败分析