【读书笔记】Android安全机制解析与应用实践之安卓的启动


安卓的启动过程是这样子的

  1. ROM上电
  2. Bootloader引导程序启动
  3. Linux内核启动
  4. init进程启动
  5. Android系统本地服务启动(NS)
  6. Zygote进程启动
  7. Android系统服务启动(SS)
  8. Android系统主页面启动(HOME)



Android4.0之前的半杯是Linux2.6的内核

Android4.0之后的版本是3.X的内核,并且3.X的内核中含有Android源码,可以直接引导进入Android



Dalvik基于寄存器,JVM基于栈,Dalvik基于具体的CPU,通用性差,但是使用等长的指令,效率上要高

一个Dalvik应用就是一个Linux进程

Dalvik虚拟机执行.DEX文件,是.class文件经过dx软件处理后生成的




硬件驱动被分为内核空间和用户空间,Linux内核驱动程序运行于内核空间,HAL运行于用户空间



AIDL实现进程间通信:其他应用程序组件可以与这个应用程序的后台运行的Service进行交互, 另外,多个进程可以通过Service在保证进程安全的情况下进行交互



安卓中的ROM与PC不同,不是用的传统的EPROM或者EEPROM,而是用的NOR flash或者NAND flash,传统的ROM和NOR flash由于是字节寻址的,代码可以在ROM中直接读取并运行,但是NAND flash不是字节寻址,所以运行代码的时候需要先将代码拷贝到RAM里。ROM里固化的程序就是Bootloader,相当于电脑的BIOS



手机厂商常在Bootloader上加锁,防止刷固件


Linux映像分为两种,一种是未压缩的,image,一种是压缩的,成为zimage,后者要在执行前加上解压缩代码,速度慢,但是占用空间小,适用于嵌入式设备




安卓启动的过程:NS->zygote->SS->AMS->Lancher->home

NS层是安卓的系统内核层和应用层之间重要的通信桥梁,通过socket通信

Zygote:虚拟机实例的孵化器

SS是Zygote的第一个子进程,是安卓框架层的核心

SS会启动PMS  PackageManagerService,由PMS来启动应用程序

Lancher会吧PMS启动的应用程序以快捷图标的形式展示在桌面上



Android系统升级的三种方式

  1. 数据线升级
  2. SD卡升级
  3. 在线升级



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值