西西河

主题:【原创】论山寨手机与Android联姻的技术基础 -- 邓侃

共:💬324 🌺1366 新:
分页树展主题 · 全看
/ 22
上页 下页 末页
    • 家园 【原创】【14】3G SmartPhone时代的MTK

      【14】3G SmartPhone时代的MTK

      分析了SmartPhone的里里外外以后,现在我们可以分析MTK的机遇和挑战了。MTK面临的外部环境在发生变化,变化有两条,一是移动网络从2G演变到3G,二是手机由FeaturePhone演化到SmartPhone。

      根据前文的分析,MTK在FeaturePhone的产业链中的位置,原本应该只是一个BP芯片厂商。但是MTK没有局限于BP芯片,而是多做一步,担当了系统集成商的角色。把BP芯片,外围配件以及驱动器,还有GUI界面,和其它应用程序全面集成起来,提供给手机制造商Turnkey的解决方案。这样手机制造商所需要做的附加工作很少,于是催生了大量所谓山寨手机厂商。

      在3G网络时代,在SmartPhone制造领域,MTK是否能够延续 Turnkey的战略,把山寨手机厂商,由制造廉价的2G FeaturePhone,转型到制造廉价的3G SmartPhone呢?

      不妨把这个问题拆分成三个问题来讨论,1. 3G FeaturePhone的Turnkey解决方案是否可行? 2. 2G SmartPhone的Turnkey解决方案是否可行?3. 3G SmartPhone的Turnkey解决方案是否可行?

      1. 3G FeaturePhone的Turnkey解决方案是否可行?

      2G芯片相对简单,但是3G的BP芯片难度非常大。 现在3G芯片市场,Qualcomm是霸主,市场上3G Featurephone主要是采用Qualcomm的参考设计。而其它3G芯片厂商,如ST-Ericsson,Marvell等等,只有很小的市场份额,而TI和Freescale近乎鞠躬谢幕。

      与GSM/GPRS等等2G网络技术不同,3G的BP技术,涉及到大量专利,而这些专利大多数掌握在Qualcomm等等欧美公司手中。对于MTK在2G 市场的成功,Qualcomm无比垂涎。站在Qualcomm角度讲,它势必不情愿MTK在3G时代复制当年的辉煌。这一判断,可以从MTK与 Qualcomm关于WCDMA专利许可转让的谈判中印证[1,2]。

      Qualcomm 拒绝与MTK达成一揽子专利授权,由MTK代付所有CDMA专利费。但是给予MTK不需要付高通前置金(No Upfront Fee),之后每颗3G芯片出货也不需付给高通Royalty的条件。换句话说,对于MTK是零使用费,但是每一个使用MTK出品的3G芯片的手机制造厂 商,都必须单独与Qualcomm谈判,取得专利授权。对于山寨厂商来说,与Qualcomm单独谈判,通过缴纳专利费,取得合法专利授权,经济上几乎是 不可能的事情。所以,山寨厂商要生存,最可能的出路就是忽视3G专利,继续像2G芯片一样,在不缴纳CDMA专利授权的前提下,使用3G芯片。当然,严格来说,这是不合法的。

      显然Qualcomm肯定会预料到这样的前景,或许Qualcomm的打算是,时紧时松地动用法律手段,威胁山寨厂商,威胁MTK的主要市场。通过这个办法,Qualcomm间接操控MTK的发展,让MTK协助Qualcomm争夺低端3G芯片市场,压制 Broadcomm,ST-Ericsson, Infineon,Marvell等等Qualcomm的竞争对手。

      所以,对于MTK来说,3G功能手机不是没有前途,但是前途是否开阔,受制于Qualcomm。

      2. 2G SmartPhone的Turnkey解决方案是否可行?

      暂时撇开3G网络的专利授权问题,MTK在SmartPhone制造领域,是否能够重现它在FeaturePhone制造领域的成就呢?如前文所述,SmartPhone与FeaturePhone不同,包含AP和BP两个部分,而且通常情况,AP部分对于芯片的要求,比BP部分的要求高。另外,近年的SmartPhone发展表明,把AP部分和BP部分的两颗CPU内核,集成到同 一枚芯片上,即SoC的做法,是大势所趋。

      MTK对于AP芯片,以及把AP和BP二合一集成起来的SoC芯片,是否做好了充分的准备呢? 从ARM的网站上可以查到,MTK直接从ARM购买的生产许可证,仅限于ARM7系列,包括ARM7TDMI,ARM7TDMI-S,ARM7EJ- S[3]。2007年9月,MTK收购了ADI旗下SoftFone手机芯片系列,间接获得了ARM9和ARM9E系列的生产许可证[4]。从此,MTK 基带芯片产品,有两个系列,嫡系的MT系列与兼并来的SoftFone系列[5]。在MT系列中,编号小于MT6235的各款芯片,内核均为ARM7系 列。而SoftFone系列各款芯片中,有的以ARM7系列为内核,也有的以ARM9系列为内核,ARM9系列中使用最多的,是ARM926EJ-S这一 款微处理器[6]。

      2010年4月初,人们翘首以待的以MTK芯片为平台的第一款SmartPhone,终于上市。这款手机的代号是 A9[7],它沿袭了山寨机的传统做法,模仿热门手机。A9模仿的对象,是HTC于2009年2月推出的Touch Diamond2 T5353手机。所以市面上通常把A9称为Touch T5353 MTK版[8]。虽然外形相似,但是性能却有很大不同,真正的HTC Touch Diamond2 T5353支持3G网络并兼容2G,即GSM/GPRS/EDGE/WCDMA/HSDPA/HSUPA[9],而Touch T5353 MTK版只支持2.75G网络,GSM/GPRS/EDGE[8]。

      除了BP部分不相同以外,A9的硬件性能也与真正的Touch T5353有差距,原因在于A9使用的芯片。MTK6516是MTK为智能手机打造的第一款芯片,是一款SoC芯片,内部集成了两枚CPU内核,其中 ARM926EJS内核专门给AP部分使用,而另一枚ARM7EJS内核专供BP部分使用,参见Figure 14-1左侧[10]。A9使用的芯片,是MTK6516,而真正的HTC Touch T5353使用的芯片是Qualcomm的MSM7200A,这款芯片也是SoC芯片,内部集成了两枚CPU内核,其中ARM11专供AP部分使 用,ARM9专供BP部分使用,参见Figure 14-1右侧[11]。

      虽然,仅仅用AP的CPU性能来判断手机性能的方法并不全面, 但是不可否认,MT6516的整体性能是值得怀疑的。所以,MTK的确有能力解决2G智能手机的Turnkey方案,而且价格低廉。但是低廉的价格是以削弱功能为代价的。

      点看全图

      外链图片需谨慎,可能会被源头改

      Figure 14-1. MTK6516 vs Qualcomm MSM7200 architectures [10,11].

      Courtesy http://farm5.static.flickr.com/4032/4530712619_b6ccd374b8_o.png.

      3. 3G SmartPhone的Turnkey解决方案是否可行?

      SmartPhone与FeaturePhone的最大区别,在于 SmartPhone允许用户自主下载第三方应用软件,而FeaturePhone只有预装的应用软件。SmartPhone在BP的基础上增加 AP,2D/3D图形加速器和视频加速器,让AP和各种加速器专职负责应用软件的运行。而3G网络,解决了无线带宽的瓶颈。有了SmartPhone的硬件结构,和3G网络的带宽,应用软件繁荣的外部条件成熟了。

      Figure 14-2是一张截图,取自摩根斯坦利2009年底做的移动互联网趋势分析报告。图中红条表示的是全球iPhone用户总人数,到2009年9月,大约是3 千4百万(57-23 == 34MM),AppStore上可供用户自主下载的第三方软件总数是10万个,而用户下载人次是20亿次,所以平均每个软件的下载人次是2万 (2,000MM/0.1MM==20K)。这个数字是惊人的。如果摩根斯坦利的报告是准确的话,结论非常明确,第三方软件非常受用户欢迎。

      点看全图

      外链图片需谨慎,可能会被源头改

      Figure 14-2. iPhone and applications growth.

      Courtesy http://farm5.static.flickr.com/4059/4504551471_85fe7265bf_o.png

      但是同样是摩根斯坦利的这份报告,另一张图却显现着相反的景象。Figure 14-3是2009年第三季度与2008年同期,世界各大市场SmartPhone的市场份额。摩根斯坦利乐观地认为,SmartPhone的市场份额在快速成长,商业前景明朗。

      其中值得特别关注的是日本的SmartPhone市场现状。日本3G网络从1990年代初开始推广,迄今已经接 近20年,所以日本的3G市场的成长情况,对于包括欧美的整个世界范围而言,有领先示范的意义。令人意想不到的现象是,日本的SmartPhone市场份额只有50%左右,也就是说,在3G网络普及了近20年,在用户普遍富裕的日本,居然还有将近一半的用户,仍然还在使用传统的FeaturePhone。

      摩根斯坦利没有详细分析这一怪异的现象。或许日本没有出现iPhone这样抢眼的手机?或许日本没有出现Google Map,YouTube和Facebook这样有人气的第三方应用软件?或者是日本的Feature phone上已经预置足够的应用程序?

      也许,最可信的解释是SmartPhone的应用软件虽然热闹,但是到目前为止,尚没有出现杀手级的应用,让用户不得不用。而对于一半左右的用户而言,他们 对于手机的依赖,还停留在通话和短信这些基础功能。他们没有足够的动机,花费超过功能手机一倍甚至几倍的价钱,仅仅为了时尚,去购买对于他们而言华而不实 的SmartPhone。这也许可以解释为什么K3在900元的价位仍然没有达到预计的热买。

      点看全图

      外链图片需谨慎,可能会被源头改

      Figure 14-3. Global SmartPhone market shares.

      Courtesy http://farm3.static.flickr.com/2678/4504551503_87b1f2fe45_o.png

      什么是杀手级应用?针对不同的市场,杀手级应用也应该是不同的。对于中国市场而言,用户热衷的通信服务是QQ,搜索是百度,消遣是人人网和开心网,购物是淘 宝,等等。要开拓中国的SmartPhone市场,或许可以从移植这些应用入手。

      总结一下,在3G网络时代,在 SmartPhone闪亮登场的当下,对于MTK而言,或许值得注意以下几点。

      1. 牢牢把握FeaturePhone市场。FeaturePhone不仅目前占据中国市场的绝大多数份额,而且在未来几年,仍然是中国手机市场的主流。

      2. 对于SmartPhone,因势利导,以低端SmartPhone芯片为主攻方向。所谓低端SmartPhone,就是外形像流行的 SmartPhone,预装了中国用户热衷的QQ,百度,淘宝等等软件,允许用户自主更新这些软件的版本,但是不鼓励用户下载更多应用软件的手机。这种手机介于传统FeaturePhone,和高端SmartPhone之间。有限满足用户对于SmartPhone的热情,但是更强调照顾用户的购买能力。

      点看全图

      外链图片需谨慎,可能会被源头改

      Figure 14-4. MTK iPhome3G, an enhanced feature phone mimicking smartphone outlook, and MTK A9, an entrylevel smartphone mimicking HTC's Touch Diamond2 [13,14].

      Courtesy http://farm5.static.flickr.com/4044/4533965082_70eae21b9a_o.png

      Reference,

      [1] MTK and Qualcomm enter into patent arrangement.

      (http://www.mediatek.com/en/news/info.php?sn=26)

      [2] 高通给联发科零授权金是另有打算。(http://forum.eet-cn.com/BLOG_ARTICLE_2345.HTM)

      [3] ARM Processor Licensees. (http://www.arm.com/products/licensing/licencees.html)

      [4] MTK收购ADI手机芯片产品线。

      (http://www.esmchina.com/ART_8800078804_1400_2101_3101_4300_b1c7f2ad.HTM)

      [5] MTK Product Lines. (http://www.mediatek.com/en/product/list.php?cata1=1)

      [6] MTK SoftFone Product Line. (http://www.mediatek.com/en/product/list.php?cata3=2)

      [7] 第一款MTK平台山寨手机,代号A9。(http://www.me189.com/article-notice-84.html)

      [8] 第一款MTK平台山寨手机视频。(http://www.m8cool.com/article/view-113-18793.aspx)

      [9] HTC Touch Diamond2 T5353 Spec. (http://product.pcpop.com/000153932/Detail.html)

      [10] MTK6516, HI3611, PXA310智能平台对比。(http://www.mobileuncle.com/thread-16086-1-1.html)

      [11] Qualcomm MSM7200 architecture. (http://mobile.onegreen.org/Article/HTML/15203.html)

      [12] Morgan Stanley's Mobile Internet Report, 12/2009. (http://www.morganstanley.com/

      institutional/techresearch/mobile_internet_report122009.html)

      [13] iPhome 3G with MTK chip. (http://chinese.engadget.com/2009/06/22/

      mtk-iphome-3g-fake-os/)

      [14] Fake Touch Diamond2 T5353 with MTK chip. (http://tech.163.com/mobile/10/0409/

      06/63QDR5P500112K8F.html)

      关键词(Tags): #山寨机 Android MTK通宝推:高子山之奥特曼,
      • 家园 高通直接向MTK收专利费不是更省事更赚钱吗

        这样任何一家山寨手机厂都逃不掉,也省去了很多诉讼成本。

        • 家园 你想想

          对高通,收专利费和直接卖全套自己的芯片,那个更赚钱?

          如果能用专利限制把MTK一半的客户转化为自己的客户,那个更赚钱?

          • 家园 那可以通过高价专利费把MTK的客户都赶过来

            直接让连发科的芯片出厂价就高于自己的,这样还用担心那些手机制造商不过来投奔高通马

            • 家园 问题是

              1.它们不可能全过来

              2.高通也不希望它们全过来

              • 家园 为什么高通不像让他们全过来?

                难道卖芯片的不都希望买的人越多越好吗

                • 家园 80-20法则

                  20%的公司出货80%

                  高通的参考设计只是将近Turnkey而不是MTK的Turnkey。这样对手机厂商的技术能力要求较高,投入较大;而高通也需要投入技术支持。只要把能真正上量的厂家挖过来,对高通就足够了。这样即可以得到较高的回报,又可以减少对自己技术支持的压力。其它的包袱甩给MTK不是更容易吗?

      • 家园 联想已经在实践了

        今天刚好看到联想乐Phone的介绍,其中一些理念非常符合这里的分析。

        外链出处

        联想就是这么做的:乐Phone的主菜单预置了35种应用的图标,这也创了一个记录,全部是非常本地化的应用,包括支付宝、同花顺股票、人人网、新浪博客和微博、CCTV、凤凰台、中国象棋、斗地主、拖拉机、优酷、大众点评网、开心网、盛大文学、熊猫看书、金山词霸、芒果TV等。加上比较有特色的 Widget和Push功能,对于一位非发烧友来说,经常用的功能都有了。当然,如果你还希望去找更多的游戏和应用,也可以登陆联想自建的应用商店,里面还有多达500多种应用。

    • 家园 【原创】【13】SmartPhone AP部分软件系统

      国内看不见图的朋友,请移步新浪博客

      【13】SmartPhone AP部分软件系统

      在第9章中我们提到,从功能上讲对于智能手机的一个粗略的概括是,智能手机 == 电脑 + 移动网卡,或者更准确地说,智能手机的硬件结构分为应用程序处理器AP,和基带处理器BP两个部分。这里隐含着两个问题,

      1. BP部分与AP部分的集成。

      2. 传统的功能手机只配备了出厂时预装的应用软件,而不允许用户自主下载并安装第三方应用软件,而智能手机突破了这一限制,因此智能手机的AP部分,必须有相应的开放机制,方便第三方软件的开发与安装,同时尽可能降低第三方软件造成对整个系统,包括其它软件的恶意伤害。更进一步说,智能手机的开放机制,不仅针对第三方软件,而且也针对手机生产厂家,允许手机生产厂家更换手机系统的部分硬件设备,或者增设其它外设硬件设备,做到一个通用平台可以出货多个手机型号,帮助手机生产厂家尽可能降低手机研发费用。

      对于第一个问题,BP部分如何与AP部分集成,解决方案的思路很简单。翻开任何一本操作系统教科书,都可以看到标准的分层结构,应用软件 >> 操作系统 >> 驱动器 >> 硬件。不妨把BP与AP的集成,与操作系统中的文件系统的构成相比较。

      文件系统通常包括虚拟文件系统(Virtual File System,VFS)与实际存储设备(Storage Device)两部分。实际存储设备包括闪存或者硬盘等等存储硬件,以及相应驱动器。虚拟文件系统通过驱动器操纵存储硬件,在这个基础上实现文件和文件夹的建立与删除,文件读写等等功能。虚拟文件系统之所以被称为虚拟,是因为应用软件通过标准的接口(APIs),来调用虚拟文件系统实现的文件和文件夹的功能,而与实际存储设备究竟用的是哪一家厂商出品的硬件和驱动器无关[1]。

      如果把文件系统中的实际存储系统类比成智能手机的BP部分,那么虚拟文件系统相对应的是AP部分中的Telephony Stack。Telephony Stack提供三个功能,

      1. 与BP部分的系统间通讯(Inter-Processor Communication,IPC),给BP部分下达指令,建立通信通道,发送及接受语音和数据信息。IPC的实现方式可以是通过传递AT-Command,也可以是利用共享内存来实现数据交换。

      2. 围绕BP部分提供的三大基础功能,即语音通话,短信等数据通信,以及SIM卡管理,加上与之密切相关的电话本(Address Book),提供以下服务,

      - 拨打电话:发起或接受语音电话。

      - 短信管理:编辑短信,发送短信,接受短信,删除,回复或者转发短信等等。

      - 通话历史。

      - 电话本。

      - 手机振铃及振动设置。

      - SIM卡管理。

      3. 提供标准的调用接口(Telephony APIs,TAPI),方便应用软件调用上述服务。

      Figure 13-1描述的是WinMobile 6的AP系统中,Telephony Stack的内部结构。图中紫色部分的模块,严格来说,并不属于Telephony Stack,它们是应用软件,它们通过调用Telephony APIs来使用黄色部分模块的功能。黄色部分的模块,负责实现拨打电话,短信管理,SIM卡管理,通话历史等等功能,称作cellcore,由cellcore.dll提供,手机设计厂家不可以更改cellcore。蓝色部分模块,主要是RIL(Radio Interface Layer),它负责AP部分与BP部分之间的系统间通讯。RIL部分是硬件相关的,由手机设计厂家完成。

      点看全图

      外链图片需谨慎,可能会被源头改

      Figure 13-1. WinMobile Telephony Stack.

      Courtesy http://farm5.static.flickr.com/4030/4461979382_a450147727_o.png

      第一个问题,BP与AP的集成,比较容易解决。第二个问题,AP的开放机制,提供调用系统资源的标准接口,既方便第三方软件的开发与安装,同时也尽可能降低开放的风险,这个问题不太容易解决。什么方式的调用接口才算方便,什么程度的风险控制才算安全,这两个指标都缺乏公认的衡量准则。在当前情况下我们能做的,或许是比较几个智能手机的AP部分的设计,分析一下谁更方便更安全。

      Figure 13-2描述的是,Telephony Stack在整个WinMobile系统中的位置,由红色方框界定。WinMobile为第三方软件提供了Win32 APIs,Win32 APIs不仅提供了分配内存,控制进程与线程,读写文件,连接网络等等基本功能的调用接口(APIs),也提供了开启和关闭窗口,以及控制窗口控件的GUI相关的APIs。

      点看全图

      外链图片需谨慎,可能会被源头改

      Figure 13-2. WinMobile Architecture.

      Courtesy http://farm3.static.flickr.com/2756/4497998261_22aa6faf22_o.png

      Win32 APIs功能全面,但是使用难度大。很多APIs附带的参数很多,很多重复性的工作没有被封装,导致应用软件的开发,不仅代码量大,而且容易出错。 有鉴于此,微软把纯C的Win32 APIs,用VC++重新包装,形成MFC(Microsoft Foundation Classes)。作为一种Object-Oriented语言,VC++具有封装(Encapsulation),多态(Polymorphism), 继承(Inheritage)等等特性。MFC利用VC++这些特性,大大简化了对Win32 APIs的调用方式,程序员可以用更精简的代码,完成应用软件的开发。

      微软把MFC称为一种Application Framework。Application Framework这个概念的兴起,源于寻求降低GUI开发的难度。GUI的开发,涉及图形,布局,事件捕捉与响应,消息传递等等诸多技术,不仅入门难,而且容易出错。Application Framework借助多种编程环境(IDE),工具集,和软件系统定式,例如MVC定式,不仅简化了编程的复杂度,而且通过规范编程方式,降低了出错的风险[2]。

      MFC中的Object,可以直接分配内存,所以当清除Object时,需要手工清除内存分配,不留残余。防范内存泄漏,不仅是应用软件开发过程中的难点,而且也容易出bug。如果把MFC中的Object,称为原生态的Object(Native Object),那么Jave和C#/.NET中的Object,是受管制的Object(Managed Object)。所谓受管制,主要体现在Virtual Machine中的垃圾收集器(Garbage Collector)负责管理它们占用的内存空间,而不需要编程者手工分配内存,与清除内存。

      Google的智能手机OS,Android,把Telephony功能封装成Java Object,Telephony Manager。依此类推,把GPS功能也封装成Java Object,Location Manager,此外还有Resource Manager等等。通过这些Manager Java Object,把外设硬件(peripheral)的功能封装起来,提供简单的调用接口,降低了应用软件开发的难度,提高了程序员的生产力。同时,还提供 Activity Manager,Window Manager,Content Provider,View System,Notification Manager等等,简化并规范GUI的开发[3,4]。

      这些Java Object运行在Virtual Machine上,它们的内存占用受Garbage Collector管制,从而降低了内存泄露的风险。另外,Android给每个应用软件都分配了独立的VM实体,如果某个应用软件出错,导致支撑其运行的VM实体崩溃,但是通常不会殃及运行其它应用软件的VM实体,从而提高了系统的整体安全。

      与MFC相比,Android的 Application Framework,更方便,更安全。当然也有代价,代价是损耗了运行速度。

      点看全图

      外链图片需谨慎,可能会被源头改

      Figure 13-3. Android Architecture [4].

      Courtesy http://farm3.static.flickr.com/2713/4497986885_7b1f93c360_o.png

      Android 的开放机制,不仅体现在Application Framework,而且还体现在Hardware Abstraction Layer(HAL)。关于设置HAL的意义,Google有三点说明[4],

      1. 为各种硬件器件制订标准的驱动器接口。

      2. 由于Android的内核是开源的,服从GPL许可。而有些硬件器件厂商不愿意开源他们的驱动器程序,有了HAL这个隔离带,就可以解决开源的内核与不开源的硬件驱动器之间的矛盾。

      3. Android对于硬件驱动器有一定要求。

      这三点说明涉及手机制造产业链上的三个参与者,

      1. 如果有标准的驱动器接口,最大的受益者是手机生产厂商。只要硬件外设生产商按照标准接口提供相应的硬件驱动程序,手机生产商就可以自由选择各种配件,大大简化了手机的集成的难度和时间。

      2. 不必开源的驱动器程序,受益者是硬件器件生产厂商,而且不给手机生产厂商制造困扰。

      3. 比较难以理解的是Android对硬件驱动器会有哪些要求,Android为什么要提出这些要求。为了理解这个问题,不妨分析一个实例,看看 Android HAL是如何处理Telephony的。

      Figure 13-4描述的是与Telephony相关的各个层次之间的协作关系。我们关心的HAL,在图中以Libraries(User Space)命名,Telephony HAL的内部结构以绿色标注,包含两个构件,Radio Daemon和Vendor RIL。

      1. Radio Daemon,它是由Android提供的,不随BP硬件的生产厂家和型号而改变。在Android启动时,Radio Daemon就被激活,并一直处于运行状态,直到Android关闭[4]。

      2. Vendor RIL(Radio Interface Layer)。Vendor RIL由BP部分生产厂家提供,不同品牌的BP,以及不同型号的BP,绑定不同的Vendor RIL。Vendor RIL的存在形式是一个函数库文件,文件命名必须服从约定的规范,libril-<companyname>-<RIL version>.so,方便Radio Daemon查找可用的Vendor RIL[5]。

      在实时运行时,应用软件调用 Telephony Stack,而Telephony Stack指示Radio Daemon去发现当前可用的Vendor RIL,并动态载入相应的.so函数库。也就是说,让Radio Daemon去实现热拔插(Plug-and-Play)的功能。Vendor RIL函数库负责AP与BP之间的IPC。至此,从应用软件,到Telephony Stack,到HAL中的Radio Daemon和Vendor RIL,到BP部分的硬件和驱动器,全线贯通。全线贯通后,应用软件就可以处理拨打电话,发送短信等等通信业务了[4,5,6]。

      虽然Figure 13-4仅仅描述了与Telephony相关的各个层次之间的协作关系,但是对于其它功能,各个层次之间的协作关系也大致相仿,例如音响控制,和电源管理等等。

      Android HAL隐含的意义在于,允许Android手机外接其它硬件设备,例如温度计,扩大手机的功能。

      点看全图

      外链图片需谨慎,可能会被源头改

      Figure 13-4. Android Telephony system architecture [5].

      Courtesy http://farm5.static.flickr.com/4066/4498024565_4c10a45173_o.png

      总结一下,智能手机AP部分与BP部分集成,类似于文件系统中通用的VFS与不同厂家提供的Storage Device的集成。BP部分提供基础的通话,数据通信,和SIM卡功能。而AP部分围绕这些基础功能,提供丰富的服务,例如通话记录,短信的编辑回复和转发等等。这些服务,囊括在Telephony Stack函数库中。

      为了方便第三方软件的安装和运行,Android提供了 Application Framework,它以Java Object的形式,封装了Telephony Stack函数库的功能,GUI功能,和其它外设硬件设备的功能。Application Framework不仅降低了第三方应用软件的开发难度,而且降低了第三方应用软件出错的可能性,另外还降低了万一第三方应用软件出错,所造成的对整个系统的破坏。

      为了方便集成来源广泛的硬件设备,Android提供了Hardware Abstraction Layer。与文件系统中VFS与Storage Device的协作方式类似,一方面,HAL提炼出不同硬件厂商都必须提供的共同的功能,把它们囊括进通用的模块,例如Radio Daemon,通用的模块与硬件的品牌和型号无关。另一方面,HAL要求硬件厂商提供符合Android规范的IPC函数库,例如Vendor RIL,以便建立起通用的模块与不同品牌和型号的硬件设备之间的通讯渠道。

      Reference,

      [1] Introduction to Virtual File System. (http://en.wikipedia.org/wiki/Virtual_file_system)

      [2] Introduction to Application Framework. (http://en.wikipedia.org/wiki/Application_framework)

      [3] Inside the Android Application Framework.

      (http://www.slideshare.net/viswanath7/inside-the-android-application-framework-google-io-2009)

      [4] The anatomy and physiology of Android.

      (http://www.slideshare.net/viswanath7/anatomy-of-android-google-io)

      [5] Android Telephony Porting Guide. (http://www.kandroid.org/android_pdk/telephony.html)

      [6] Android驱动开发关键技术HAL及移植要领. (http://www.slideshare.net/pandodo)

      关键词(Tags): #MTK 手机 山寨机 手机OS通宝推:高子山,
    • 家园 敬仰

      牛贴

分页树展主题 · 全看
/ 22
上页 下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河