Android系统移植:开发概述

【导语】Android系统的发展现在已经达到世界级的了,Android系统的应用方向也从传统的手机、平板发展到机顶盒、车载系统、智能家居以及虚拟现实、人工智能。

时代选择了Android,而Linux成就了Android。

1.1 Android从Linux中发展而来

Linux kernel 的版权是GPL(General Public License)——通用性公开许可证 , 也就是说开源; Android最早作为Linux下的一个分支也是遵循这一协议开源的,但是Google公司为了在商业上适应其在移动设备上的发展,Google采用了一些手法来绕过这问题。

他们把驱动程序移到 “userspace”,也就是说,把驱动程序变成在 Linux kernel 上头跑,而不是一起跑的东西,这样就可以避过GPL。然后,在 kernel 这边开个小门,让本来不能直接控制到硬件的 “userspace” 程序也可以碰得到,这样只要把”开个小门”的程序代码公布就行啦。”

为了得到更多厂商的支持,Google有意 选择了这样做,并且特意修改Kernel,使得原本应该包括在kernel中的某些功能,都被转移到了userspace之中,因此得以避开开源。

Android修改了Linux内核,但又不提供修改细节,这就违背了开源的精神,因此,Linux Kernel就把Android踢出去了。

1.2 Android软件系统架构

看一下经典的Android系统架构图:
这里写图片描述
其软件层次结构自上而下分为以下4层:
- [x] 1.Linux操作系统层
- [x] 2.本地库和Android运行环境
- [x] 3.Android应用程序框架
- [x] 4.应用程序app

  • 第1层和第2层:通过Android API使得开发者可以很方便的调用系统的API来获取Android框架组件;
  • 第2层和第3层:本地和Java接口;
  • 第3层和第4层:从Linux操作系统的角度来看,分为内核空间和用户空间,第2,3,4层都是用户空间层;

第3层中:

加上了一个Dalvik Virtual Machine(Android程序的虚拟机),它是Android中Java程序的运行基础。每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。Dalvik虚拟机依赖于Linux内核的一部分功能——线程机制、内存管理机制,能高效使用内存,并在低速CPU上表现出的高性能。

第4层:

看Android系统的最下面一层,是Android按标准的Linux内核修改而来,保留了Linux内核的主要架构,同时Android按照移动设备的需求,在文件系统、内存管理、进程间通信机制和电源管理方面进行了修改,添加了相关的驱动程序和必要的新功能。

1.3 Android移植的概念

Android系统移植:在特定的硬件平台上,实现各个外部设备的功能,以使新Android系统正常稳定工作。

现在安卓智能手机已经非常普遍了,App现在基本上是周周更有些甚至日日更,但是 每当Google发布Android新版SDK之后,很长一段时间市面上才会出现携带最新Android系统的手机出现。这是为什么?其实在这段SDK已经发布,但是市面上却并没有最新版android系统手机出现的空白时间,各大厂商紧赶紧做的一件事情就是——Android系统移植。

1.4 Android移植的主要任务

从之前的Android软件系统架构图,可以看出, Android是一个体量很大的系统,我们可以从四个方面对Android系统进行移植。

1.4.1 BootLoader

BootLoader启动加载程序,系统在上电或复位时通常都从地址0x00000000处开始执行的一段短小的启动程序,它所做的事情就是初始化硬件,CPU时钟之类的,以及加载内核文件。

BootLoader既然要做硬件初始化之类的,必然和硬件相关,所以它的代码并非通用的,不同的硬件需要不同的BootLoader代码,各大厂商可能都有自己的,并且加入开机画面之类的。最常听说的是u-boot和h-boot,后者是htc的bootloader。我们常说的刷机,是不会动bootloader的,只会动这之后的系统部分。

1.4.2 Linux驱动和Android硬件抽象

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值