随着科技的快速演进,现代人对行动通讯、无线上网与多媒体娱乐的需求更甚以往,所谓的智能型手机(Smart Phone)便成了炙手可热的个人消费电子产品之一,从Apple不断推出iPhone企图颠覆消费者对手机的想象、RIM推出主打商务功能的黑莓机、Google的Android系统让众家手机厂商争食大饼,到微软屡败屡战的从WinMo一路开发到WP7,智能型手机的这块战场可说是打的如火如荼。然而在这些众家竞争者中,Android可说是目前行情看俏的一套操作系统,以国际市调研究机构Gartner最新出炉2010年第三季的调查为例,采用Android操作系统的智能型手机在过去一年以来成长幅度最高,光是市占率便是前一年同期的七倍之多,销售量更是达到14倍的成长,同时也一举从市占率排名的第六名窜升到第二名。而在今年一月份甫落幕的国际消费性电子展(CES),也处处可见各式各样采用Android操作系统的产品。

  

  Android在过去一直扮演后起之秀的角色,切入智能型手机的速度似乎慢了苹果的iOS一步,但与Apple相同的是,它也成功的将其应用从手机移植到了平板计算机(Tablet PC)上。Android开放原始码(Open Source)的特性,能轻易地提高厂商对自家产品的接受度,更不用提背后Google的强力撑腰能带来多大的经济效益。目前可见包括手机厂商HTC、Motorola、SAMSUNG,以及计算机大厂HP与Dell等皆投向Android的怀抱,Android被广泛应用可说是势在必行。

  尽管Android系统的普及看似指日可待,但在实际的产品应用上,也有其可能产生的问题风险。Android作为一个开放式的操作系统,是Google提供厂商的操作系统参考架构(reference design),厂商能有充足的发挥空间,以Android为基础向上开发设计自家产品,但也因为这样的开放性与自由性,让厂商在软硬件结合的这个环节必须下更大的功夫,像是如何挑选合适的硬件包括基频处理器、通讯芯片、触控感应芯片、天线与内存模块等,以及如何调整出最适当的软件设定等,更重要的是如何将软硬件整合,开发出差异化的产品。这中间所有的细节都会对产品最终样貌产生莫大的影响,像是其功能的完整度、使用接口的设计、效能表现(例如触控滑动画面、开启程序所需时间)、品质可靠度、甚至是后续的韧体升级动作等等。在此百佳泰便试图以专业中立的测试实验室角度,来点出厂商应用Android于手机、平板计算机或其它装置时应注意的开发重点,以希冀作为一个有效的参考信息。

  解构Android基本技术架构 

  首先我们先来看到Android的基本技术架构,Android是以Linux为核心,并采用软件堆栈(software stack)的架构延伸发展的一套软件平台与操作系统。根据下图可以看出,其基本架构分为五层:

  

  · Linux核心(Linux Kernel):以Linux开发提供最底层的核心系统服务,包括安全性 (Security)、内存管理(Memory Management)、进程管理(Process Management)、网络堆栈(Network Stack)与驱动程序模型(Driver Model)。

  · Android执行环境(Android Runtime):透过Core Libraries(核心函式库)以及缓存器型态的Dalvik Virtual Machine(Dalvik虚拟机器)来执行程序。

  · 系统函式库(Library):使用C/C++函式库的系统组件以供呼叫使用,开发者可透过上层的应用程序框架来运用这些功能,这也是主要Android装置的效能关键。

  · 应用程序框架(Application Framework):被设计来简化组件的再运用,开发者能完整存取使用与核心应用程序(Core Application)相同的API,应用程序可以发布功能并为其它应用程序所使用(需受限于其安全性限制),开发者也可运用同样的机制来新增与置换组件。

  · 应用程序(Application):所有Android应用程序皆是以Java程序语言编写,原始就会包含像是Email、简讯、日历、地图、浏览器、联络人等其它应用程序,让使用者一开始就拥有这些基本功能,开发者也可在此客制其使用接口。

  厂商越想要设计出与原始设定不同且增强效能的产品,便越需要对这五层架构进行修改。譬如像是多任务处理能力(multi-tasking),便可能需要修改包括Linux核心与应用程序框架的设计;而应用程序的开发者更可能需要针对应用程序与框架进行调整。由此可见,对Android装置而言,任何一个功能的置入或是对硬件设定的细微更动,都需要对Android系统进行从下到上的调整以达到最优化的效能,而这正是最为困难与需要验证的一环。

  Android装置软硬件整合的五大技术环节 

  如前所述,对众家开发厂商而言最大的挑战其实在于,如何将自己理想的产品诉求,与Android系统巧妙结合成一个功能完整并使用流畅顺手的产品,这其中牵涉了不同技术间的整合与运用。在此我们便根据其多年的测试与研究经验,归纳出五大Android相关装置在技术整合上的重要环节:

  

  一、Linux驱动程序的导入

  由于Android是根源于Linux所延伸出来的操作系统,因此各种关键功能的驱动程序也必须要能顺利的写入其中,举凡像是字符装置、内存的空间配置、中断处理、网络通讯、屏幕显示或是连接接口像是USB与PCI的驱动程序,这些可能是自行撰写、或是来自不同组件厂商的驱动程序,都必须要能被导入到Android系统,并维持良好稳定的效能表现。

  二、系统单芯片的优化处理 

  对厂商而言,开发一款Android装置,不仅仅只是将所有零组件组合成为一个产品那么容易,最大的学问便在于将系统单芯片(System-on-a-chip,SoC)、各种新技术和Android系统进行整合,SoC涉及像是Dalvik Virtual Machine、OpenGL、V8、Webkit Engine等上层的演算,与Android间的结合便必须透过不断的尝试与验证,才能研发出既符合成本效益、又有良好效能的优化产品。目前市面上有些SoC厂商已针对Android系统的特性,提供整合过的SoC平台,将蓝牙、相机或上网等常用功能模块预先写入,减少终端成品厂商费力整合开发的时间,但对厂商而言,这样的预先整合是否适合自身产品,以及是否需要再作更细致的修改,则又是更困难的课题。

  三、新技术的移植 

  随着技术的快速发展,更多新兴的技术规格也逐渐应用在手机等手持装置上,以手机为例,已经从过去以拨打电话为主要功能,转变为拥有各种多样化用途的产品。像是触控技术让消费者可以透过手指的滑动传送指令甚至是具备多点触控的支持、Wi-Fi模块提供随时无线上网的可能、通用图形处理器(General-purpose computing on graphics processing units,GPGPU)则能以并行方式透过图形处理器来执行通用计算任务、Android 2.3版所支持的NFC近场通讯技术,以及更高阶的相机模块等等,背后都有各自的驱动程序与软件技术,也必须要与Android系统相结合使用。

  四、效能表现的稳定 

  尽管上述这些技术不断推陈出新,但也都不能因此而牺牲装置原本的效能表现,让处理速度因此变慢或造成使用上不顺畅的状况。除了采用更好的硬设备外(例如现今处理器的时脉已迈向1GHz),更需要操作系统的支持,像是如何在多任务运作的状况下维持程序执行速度以及系统满载的处理等等,都必须要透过软件面的奥援。也就是说,一台Android装置除了要能将各种功能与技术收纳起来、将软硬件整合外,更必须同时注重它在效能上能否维持应有的水准,以提供使用者在操作上流畅易上手的感受。

  五、低电耗设计

  Android的设计概念主要是应用于可携式装置上,目前市面上可见的像是平板计算机与智能型手机等。对这类产品而言,电池续航力的好坏可说是影响消费者使用感受的关键之一,试想,若是一台智能型手机的待机时间过短,而使用者在外时又无法随时充电使用,不能实时的连网查询资料或执行其它手机功能,这样的产品便失去了它作为可携式行动装置应有的便利性。追根究底,良好的待机时间除了需仰赖高容量的电池以提供充足电力之外,另一个重点就是装置本身在被使用执行时能否作到低电耗设计。Android装置让使用者能透过各种多样化的应用程序,来达到各种不同的使用目的,举凡像是单纯上网、观看新闻、邮件推播或是游戏等等,各种不同功能的程序都能透过自由下载使用,也由于其多任务处理与让程序背景执行的能力,更让降低耗电量成为开发者不可轻忽的一项课题。

  持续验证修正,找出最佳Android整合方案

  正如前面我们不断提到的,对Android装置而言,最困难的开发挑战便在于如何完美地”整合”软件与硬件,以开发出一项功能完整又同时注重使用者感受的产品。从对Android本身程序代码的修改、相关硬件的选择,到驱动程序的结合运用以及能否维持稳定的效能表现等,在在都必须要透过仔细的研究与不断的尝试,才能找出问题的根源并解决、更进而找出最合适的整合方案。

  

  附图我们归纳出一些在Android装置上经常出现的问题与其可能肇因,而这些也都是开发厂商必须重视却可能忽略的一环。像是Android原始码中对音源的重新取样(Re-sampling)设计,就会导致装置在读取48K音源时重新取样成44K,而造成谐波失真的现象影响音质,这便是厂商不会注意到而未去修改的问题;另外像是天线位置的设计,也可能直接的影响到收讯能力的好坏;而不良的电源管理设计,也极有可能影响到装置在持续使用状态中的耗电情形。百佳泰在此仅以专业测试验证实验室的角度,希冀以宏观的方式,针对Android装置的开发设计提供可用的参考,近期内我们也将会提供实际的相关测试数据报告,并进一步指陈这些可能的问题风险,以期让更多厂商与消费者都能注意到品质验证的重要性,是从产品设计的根源就要开始层层把关。

转载于:https://www.cnblogs.com/chenjiajin/archive/2012/06/12/2546272.html

Android装置的开发挑战:软硬件如何巧妙整合相关推荐

  1. android是硬件还是软件,浅谈Android软硬件巧妙整合的开发技巧

    ·应用程序(Application):所有Android应用程序皆是以Java程序语言编写,原始就会包含像是Email.简讯.日历.地图.浏览器.联络人等其它应用程序,让用户一开始就拥有这些基本功能, ...

  2. 智能硬件Linux效能更高,Android软硬件巧妙整合的开发技 - 嵌入式操作系统 - 电子发烧友网...

    1.Linux驱动程序的导入 由于Android是根源于Linux所延伸出来的操作系统,因此各种关键功能的驱动程序也必须要能顺利的写入其中,举凡像是字符设备.存储器的空间配置.中断处理.网路通信.萤幕 ...

  3. Android应用程序开发以及背后的设计思想深度剖析(4)

    特别声明:本系列文章LiAnLab.org著作权所有,转载请注明出处.作者系LiAnLab.org资深Android技术顾问吴赫老师.本系列文章交流与讨论:@宋宝华Barry 紧接连载三,我们接下从性 ...

  4. android应用程序开发_Kotlin与Flutter:Android跨平台应用程序开发,到底选择哪个?...

    移动互联时代--应用为王 移动互联网时代,很难想象没有应用程序的生活.从我们睁眼醒来的那一刻到我们真正睡觉的那一刻,无数的应用程序围绕着我们.根据统计,国人平均在移动设备上花费4个小时以上! 而这其中 ...

  5. 在android系统中开发DLNA

     内容目录 Part 1. 前言:DLNA简介 Part 2. 主体:DLNA在android中的开发流程 Part 2. 关于DLNA的其他知识 Part 1. 前言:DLNA简介 DLNA,D ...

  6. CSDN上Android与IPhone开发博客精选

    Android [1] 张国威:Android从入门到提高系列 前面写了十四篇关于界面的入门文章,大家都看完和跟着练习之后,对于常用的Layout和View都会有一定的了解了,接下来的文章就不再强调介 ...

  7. 从零开始的Android:Android应用程序开发概述

    介绍 截至2016年初,有十亿多人积极使用Android , Android是一种类似于Unix的移动操作系统,可在手机,平板电脑,智能电视,智能手表和许多其他设备上运行. 尽管它是由Google开发 ...

  8. Android车载应用开发与分析(13)- 系统设置-蓝牙设置

    1. 前言 Android 车载应用开发与分析是一个系列性的文章,这个是第13篇分析系统设置,该系列文章旨在分析原生车载Android系统中核心应用的实现方式,帮助初次从事车载应用开发的同学,更好地理 ...

  9. Android 装置CTS与GMS认证差异

    合格的Android智慧型手机必须经过CTS与GMS认证. 不过, 坊间白牌或山寨品牌Android智慧型手机往往不是完全没认证, 就是只有CTS认证但无GMS认证. CTS与GMS认证两者有何差异? ...

最新文章

  1. 【转】“根级别上的数据无效”问题的解决
  2. 获取当前目录所有文件名 并且保存为1个00000.txt的文件文件bat
  3. github托管代码
  4. 虽然你没有考入清华大学,但是如果你有对于计算机的向往!!!请看过来
  5. 利用python批量修改文件名称
  6. python模式识别
  7. php如何查看端口有没被占用,怎么查看80端口占用情况? 如何查看端口占用情况...
  8. memset 和 fill 初始化数组
  9. c++开源库rapidxml介绍与示例
  10. gbk英文字符占几个字节?
  11. 汇总我关注的技术博主的2021年度总结
  12. Python - 装机系列2 Ubuntu(云)
  13. 关于海外置业,我泼点冷水
  14. 「趣小面」寻融资:前景美好,“钱”景难说
  15. 商城项目09_品牌管理菜单、快速显示开关、阿里云进行文件上传、结合Alibaba管理OSS、服务端签名后直传
  16. 2023最火批量getshell工具
  17. ElasticSearch数据分片-数据路由
  18. JAVA资源泄露是什么,Java资源泄露监控库jleaks
  19. 企业ERP系统上线的最后一道防线——ERP系统上线预评估审计
  20. (中兴路由器)无中继的DHCP配置实验

热门文章

  1. python 沪江_Python基础篇 -- 字符串
  2. C语言中的复制函数(strcpy和memcpy)
  3. unity UI 跟随3D物体移动
  4. CG-多边形扫描线填充算法详解
  5. 5.5 时间序列预测
  6. 【oracle报错】ORA-28000
  7. 如何去掉html中input的边框
  8. UiPath是做什么的
  9. SecureCRT中文乱码解决(汇总)
  10. C语言之strtok函数