首页 > 嵌入式软件 > android

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 2.4 Gingerbread和Android 3.0 Honeycomb。

Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。早期由原名为“Android”的公司开发,谷歌在2005年收购“Android.Inc”后,继续进行对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。采用Android系统主要厂商包括台湾的HTC,(第一台谷歌的手机G1由HTC生产代工)美国摩托罗拉,SE等,另外还有中国大陆厂商如:华为、中兴、联想等。

Android以Java为编程语言,从接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。

View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。

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

*Gartner 2010 Q3 Worldwide Smartphone Sales

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是以Linux为核心,并采用软件堆迭(software stack)的架构延伸发展的一套软件平台与操作系统。根据下图可以看出,其基本架构分为五层:

*Android Structure by Google

·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相关设备在技术整合上的重要环节:


1、Linux驱动程序的导入

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

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

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

3、新技术的移植

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

4、效能表现的稳定

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

5、低电耗设计

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

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

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

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

Android 是运行于 Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。bionic/libc/kernel/ 并非标准的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。目前Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。

本文引用地址: http://embed.21ic.com/software/android/201806/63098.html

换一批

延伸阅读

[行业资讯] 韩国将重新对谷歌Android系统展开反垄断调查

韩国将重新对谷歌Android系统展开反垄断调查

10月11日消息,此前7月底韩国反垄断监管机构调查人员曾对谷歌韩国总部进行调查,核查该公司Android操作系统是否存在垄断行为。根据外媒消息,韩国反垄断监管部门主管周二表......

关键字:Android

[行业资讯] 诺基亚手机归来行Android 7.0系统,你还会期待吗?

诺基亚手机归来行Android 7.0系统,你还会期待吗?

日前,GeekBench数据库中出现了一款名为“D1C”的诺基亚新机。现在,这款新机也同样出现在安兔兔跑分数据库中。配置方面,该机搭载骁龙430八核处理器(MSM8937),......

关键字:Android 诺基亚

[行业资讯] Android更新太慢 Google可能收回主导权

Android更新太慢 Google可能收回主导权

Edison投资研究公司分析师Richard Windsor指出,Google已经对Android装置更新的龟速感到不耐,很快便会采取行动收回韧体升级的控制权。Google很有可能把 Android系统纳入......

关键字:Android Google 主导权

[行业资讯] 三星苹果战火依然 Android不再卡顿iOS霸主地位难保

三星苹果战火依然 Android不再卡顿iOS霸主地位难保

现在几乎全球的厂商都拿苹果当做自己的竞争对手或是最终的目标,不仅是因为苹果是智能手机的领航者,也是因为封闭的iOS系统带来的流畅操作感。而 Android系统则由于底层与......

关键字:三星 苹果 Android 卡顿

[行业资讯] 如何同时兼容iOS、Android和Win10?Oxy智能手表亮相

如何同时兼容iOS、Android和Win10?Oxy智能手表亮相

能够同时兼容Android和iOS系统的智能手表本身就并不多见,而如果出了Android和iOS之外,还能兼容Windows系统,则更是罕见。现在,来自英国的Oxy智能手表就是这“罕见的......

关键字:iOS Android Win10 智能手表

[趣科技] 可以为手机充电的牛仔裤

可以为手机充电的牛仔裤

但是如果有一条神奇的既可以容纳你的手机,同时还可以给你的手机充电,让你出门在外,从此无忧,你会去购买这款神奇的牛仔裤吗?......

关键字:充电

[新鲜事] 这家被指抄袭谷歌的红芯浏览器承认基于开源架构,仍称“有创新”

这家被指抄袭谷歌的红芯浏览器承认基于开源架构,仍称“有创新”

深陷“造假”风波的国产浏览器品牌红芯,再度发声。8月16日晚,红芯时代(北京)科技有限公司发布声明称:红芯浏览器内核是基于通用的浏览器内核架构(即Chromium开源项目,但不是Chrome浏览器)的基础上进行......

关键字:浏览器 谷歌 红芯浏览器

[新鲜事] 科学家证实:最早拥有自我意识的物种竟然是海豚!

科学家证实:最早拥有自我意识的物种竟然是海豚!

近期,研究人员发现宽吻海豚(bottlenose dolphin)是自我意识出现最早的物种,甚至比人类和黑猩猩还要早。......

关键字:海豚

[趣科技] 科学家培育出更加逼真的类大脑:直径4毫米微型球状

科学家培育出更加逼真的类大脑:直径4毫米微型球状

而斯坦福大学的神经科学家塞吉厄·帕斯卡(Sergiu Pa?ca)希望精神病学领域也能经历如此巨大的转变。但与癌症相比,研究人脑带来的挑战更大。由于大脑科学家不能像医生解剖肿瘤那样、从健康人的大脑皮层下切下一块组织,他们必须发挥创造力、另辟......

关键字:类大脑 肿瘤治疗
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14