·应用程序(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工作的一个工具。

android是硬件还是软件,浅谈Android软硬件巧妙整合的开发技巧相关推荐

  1. android分屏模式_浅谈 Android 7.0 多窗口分屏模式的实现

    从 Android 7.0 开始,Google 推出了一个名为"多窗口模式"的新功能,也就是我们常说的"分屏模式".那么,这个功能有什么用呢?作为开发者,我们又 ...

  2. android获取存储设备根目录,浅谈android获取存储目录(路径)的几种方式和注意事项...

    通常, 我们创建文件/目录, 或者存储图片什么的, 我们都需要拿到手机的存储路径, 现在我们就来看一下获取手机存储路径的几种方式(作为工具类方法调用即可): 第一种: 获取 /storage/emul ...

  3. android 访问http地址吗,浅谈android访问http原理

    前言 说到HTTP协议,那必须要说说WWW了,WWW是环球信息网(World Wide Web )的缩写,也可以简称为Web,中文名字为"万维网".简单来说,WWW是以Intern ...

  4. android中gravity什么意思,浅谈android 中layout_gravity和gravity

    相信很多学习了android的人,都知道布局中存在两个很相似的属性:android :layout_gravity和android:gravity.一般的都知道, android :layout_gr ...

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

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

  6. 浅谈Android Architecture Components

    浅谈Android Architecture Components 浅谈Android Architecture Components 简介 Android Architecture Componen ...

  7. android fps 垂直同步,浅谈Android流畅度

    原标题:浅谈Android流畅度 哈哈 讲个故事 白 1 流畅度 关于流畅度谷歌官方给出的解释为:running at a consistent 60 frames per second, witho ...

  8. 《浅谈-Android系统越用反应越慢的问题》

    <浅谈-Android系统越用反应越慢的问题> android应用程序和iphone应用程序不一样,用过iphone的都知道,点击图标进入程序后,如果还想用其他程序,必须先按返回退出然后进 ...

  9. 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路

    原文地址: http://blog.csdn.net/luoshengyang/article/details/6627260 在前面一篇文章浅谈Service Manager成为Android进程间 ...

最新文章

  1. 《因果科学周刊》第3期:因果助力 Stable Learning
  2. 路由器(结构、分组转发流程、路由选择协议(RIP、OSPF、BGP))
  3. 缓存穿透、缓存击穿和缓存雪崩
  4. LOJ:相框(欧拉回路、分类讨论)
  5. 设计冲刺下载_如何运行成功的设计冲刺
  6. 分布式——ACID原则 CAP理论
  7. Self Attention和Multi-Head Attention的原理和实现
  8. 【LOJ2127】「HAOI2015」按位或
  9. webapp开发技术选型
  10. “狮”口逃生!长颈鹿勇斗狮群 4小时后脱身
  11. golang 判断时间是否是 rfc3339_[Golang实现JVM第一篇] 知识准备amp;前言
  12. 从零开始学编程_数据结构
  13. 通信电子电路实验(一)—— 高频小信号调谐放大器电路设计
  14. DirectoryEntry使用-实现域登录
  15. 记录一下wandb的用法
  16. 第7章页面布局-布局综合示例
  17. Java语言基础03-标识符、关键字、字面值、变量、数据类型
  18. Win10s分屏设置
  19. Oracle ADR(Automatic Diagnostic Repository)介绍
  20. halcon_halcon图像处理基本运算

热门文章

  1. 国科大-高性能计算考试
  2. 投影坐标系的shp数据,如何获取到它地理坐标系下的经纬度坐标
  3. IntelliJ IDEA如何修改版权信息
  4. ajax 异步刷新表格
  5. 小程序点餐系统——首页
  6. 期刊以及会议的CCF类别查询方法
  7. 精通 Grails: 用 JSON 和 Ajax 实现异步 Grails
  8. 用python写bp神经网络作价格预测_bp神经网络预测python
  9. 明翰英语教学系列之方法篇
  10. 贝叶斯网络的联合概率到底有什么用:贝叶斯理论(4)