名为“低价手机”的飓风刮来•开发者能做什么—《Android系统源代码情景分析》 试读随笔
名为“低价手机”的飓风刮来·开发者能做什么
—《Android系统源代码情景分析》 试读随笔
光棍节前,我终于有点时间写些东西,上上网,少不了去淘宝抢抢红包。在浏览网页的同时,铺天盖地的手机推荐,打的就是一个低价再低价。没有人能想到安卓阵型,能如此低价,如大可乐手机、蘑菇手机、智薄手机,当然miui阵容的小米1,2系列就不用说了。
理科生都曾有一个梦想,就像雷军所说的,有自己设计的一台手机。安卓给了我们一个好好的平台,这个平台能够与ios、windows phone三国鼎立,下能扶持着一大堆异想天开的app开发者。日子慢慢推移下,安卓的成长,让我慢慢看到历史的大轮,又再周而复始的滚动。这一幕,跟XP的发展好像,这一幕后的中国是一个什么时代?山寨时代,XP GHOST版的克隆如水银泻地般的“蚕食”所有计算机,深度优化,电脑公司,龙帝等等一些耳熟能详的ghost研发团队开始大张旗鼓制作ghost版的XP,算是定制系统的一种盈利模式吧。
2011年后,一些研发ghost版的xp在法律的打击下,开始转型,有类似雨林木风的企业转型开发linux的操作系统,让linux系统更像windows,当然结局大家有目共睹,我也不多说。还有一批开发团队,开始着手定制手机os,如深度,番茄花园,虽然他们的团队没有miui或者乐蛙那么如雷贯耳,但他们的转型也证明了,计算机时代与手机时代有很多重合的故事。
这也让我慢慢有“自己的”手机,但对于硬件,程序员会是一个硬伤,至少焊接电容都七手八脚。那么程序员的我们到底,怎么去完梦?
那先从ROM开始吧,5个月前,我曾经提取了8118U手机rom出来,当时真的让一个没有用过linux的玩家,欲哭不得。Linux系统没有C,D,E盘的概念,这让我重装系统,装上ubuntu时,整个硬盘变成一个大饼,只有10来个文件夹,当时候,心都碎了,松老师都化为灰了。
之后,我去了一台公用机,挂起了虚拟机,安装ubuntu。系统出来了,但是怎么提取rom呢?很多达人说,你去CM看看有没有自己机型的rom,移植一下就可以了。但是从来没有鸡,怎么会有蛋呢?我挑战的东西,玩大了,是点心OS下的定制系统,该系统的机器不在CM之列,怎么办呢?那就能依靠万能的百度吧,关键字输入“提取rom 命令行”。于是看着教程,root机,root机其实就是得到手机最高的控制权限,跟越狱是一个道理,这对于一个用惯xp的人来说,简直是孤陋寡闻。获取权限后,手机还需要安装一个类似cmd的应用,按着教程,把手机的东西,全部打包成img。问题来了,boot有img,system有img,user什么都的都有img。真的无奈下,我在网上找到邓先生,就是传说的邓凡平。他是一个很有耐心的人,对于我这些毛同,他能回复我的问题,我都已经开心到睡不着了,这个过程好比如1+1,我永远低级的想知道1+1等于多少?但是对于技术大牛,他们想知道的是1+1怎么去证明是等于2,我不断说出自己的想法,问邓先生如何实现rom的安装能方便到ghost一样,同期,我也在问他一个app的问题,就是现在小米实现了关机闹钟的问题,当时小米并没有研发出来,我问邓先生,安卓能不能有一种假死状态,处于关机和飞行模式区间的状态。这样下,屏幕无法点亮,但是内核还是在运作,任何通讯断绝,只是运行闹钟app。这个问题和移植rom的问题,他都简单的用一个回复,回答上了,就是关于“Android系统为什么要把对硬件的支持划分为两层来实现呢?”
我用原试读书的解释吧,我们知道,一方面,Linux内核源代码是遵循GPL1协议的,即如果我们在Android系统所使用的Linux内核中添加或者修改了代码,那么就必须将它们公开。因此,如果Android系统像其他的Linux系统一样,把对硬件的支持完全实现在硬件驱动模块中,那么就必须将这些硬件驱动模块源代码公开,这样就可能会损害移动设备厂商的利益,因为这相当于暴露了硬件的实现细节和参数。另一方面,Android系统源代码是遵循Apache License2协议的,它允许移动设备厂商添加或者修改Android系统源代码,而又不必公开这些代码。因此,如果把对硬件的支持完全实现在Android系统的用户空间中,那么就可以隐藏硬件的实现细节和参数。然而,这是无法做到的,因为只有内核空间才有特权操作硬件设备。一个折中的解决方案便是将对硬件的支持分别实现在内核空间和用户空间中,其中,内核空间仍然是以硬件驱动模块的形式来支持,不过它只提供简单的硬件访问通道;而用户空间以硬件抽象层模块的形式来支持,它封装了硬件的实现细节和参数。这样就可以保护移动设备厂商的利益了。
简单的说,就是给你看的给你,不给你看的绝不给你。看了一半一半,你能做的也微乎其微,能抄的也微乎其微。
回应,“你对Android系统的发展有何认识?”。就我而言,我觉得android生命力好强大,他会永远走向开源,吃过3.0闭门羹的安卓,我想他停止一年的发展,是直接导致他2.3份额还高企的原因。不过最近4.0到4.2的更新过快,感觉他在拖垮第三方rom的研发团队,不过我好期待12月1日罗永浩的罗ROM。对于1年之后的android,我相信他一定可以像ghost xp一样,然后想更新什么系统,就直接卡刷可以了。“简化刷机方法·通用rom”会是android研发团队的大方向(即第三方,并非google)。
粗略看了一下本书的试读章节,感觉这本书说的好详细,真的是值得拥有。这对于一个没有接触linux的人,很有帮助,注释“丰满”,最重要是排版好精明,看得出笔者对代码的编写格式好有一套!我愿读完此书。