且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Android开发秘籍(第2版)》——第1.4节Android设备间的硬件差异

更新时间:2022-01-26 21:43:50

本节书摘来自异步社区《Android开发秘籍(第2版)》一书中的第1章,第1.4节Android设备间的硬件差异,作者 【美】Ronan Schwarz , Phil Dutson , James Steele , Nelson To,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 Android设备间的硬件差异
Android开发秘籍(第2版)
每一款Android设备上可用的硬件各不相同,这在表1-1中已有所反映。总体而言,多数差异对开发者而言是透明的,这里不深入讨论。然而,了解其中某些硬件差异有助于我们编写设备无关的代码。在此我们将探讨屏幕、用户输入法和传感器这几方面。

1.4.1 屏幕
液晶显示(LCD)和发光二极管(LED)是目前显示器使用的两种技术。在Android手机上,则分别体现为薄膜晶体管(TFT)液晶屏和主动矩阵有机发光二极管(AMOLED)屏。

TFT屏的一个优势是较长的寿命;而AMOLED的好处则在于无需背光,从而有更深的黑色和更低的能耗。

总的说来,Android设备可以依照屏幕尺寸被分为小、中、大、超大,或按像素密度分为低、中、高、极高几类。注意,实际的像素密度可能多种多样,但总可以被归为低、中、高、极高中的某一种。表1-3给出了典型的屏幕尺寸、分辨率及一些与屏幕尺寸有关的名称。


《Android开发秘籍(第2版)》——第1.4节Android设备间的硬件差异

1.4.2 用户输入法
触摸屏使得用户可以与视觉显示进行互动。目前有三种类型的触屏技术。

电阻屏:在玻璃屏幕的上层覆盖两层电阻材料层。当手指、手写笔或其他物体施压时,两层电阻材料发生接触,而触点可以被确定。电阻屏性价比高,但透光率只能达到75%,并且最近才实现多点触摸。
电容屏:玻璃屏上覆盖有一层带电材料。当手指或其他导体与该层接触,一些电荷被释放,引起电容变化,从而可检测出触点所在。电容屏透光率可达90%,但精确度不如电阻屏。
表面声波:这是一种靠发送和接收超声波来定位的先进技术。当手指或其他物体接触屏幕时,引起的声波被吸收和测量,从而确定触点。这是一种最为经久耐用的解决方案,但更适合诸如银行自动柜员机一类的大尺寸的屏幕。
目前绝大多数的Android设备要么采用电阻屏,要么采用电容屏技术,并且均支持多点触摸。此外,Android设备还可能采用下列某种替代性的屏幕访问方法。

十字键(D-Pad):一种上下左右型的控制杆。
轨迹球(Trackball):一种使用滚动球定位的指针设备,与鼠标类似。
触摸板(Trackpad):用一块特殊的方形表面来定位的指针设备。

1.4.3 传感器
在某种程度上,智能手机正在成为一个传感器的集合体,带给用户丰富的体验。除每部手机都必备的麦克风外,首先被引入手机的附加传感器要属摄像头。不同的手机摄像头在性能上大相径庭,这已成为人们选择手机时的一个重要考虑因素。类似多样性也体现在其他的附加传感器上。

多数智能手机至少包含以下三种基本的传感器:用于测量重力的三轴加速度计(accelerometer)、用于测量周围磁场的三轴磁力计(magnetometer),以及用于测量周边温度的温度传感器。例如,HTC Dream(G1)包含下列传感器(可以通过调用getSensorList()函数列出它们,这将在第9章中进一步讲述)。

AK8976A三轴加速度计。
AK8976A三轴磁场传感器。
AK8976A方向传感器。
AK8976A温度传感器。
AK8976A是出自旭化成微系统公司(Asahi Kasei Microsystems,AKM)的传感器包,整合了压阻式加速度计、霍尔效应磁力计及温度传感器。这些传感器都提供8位精度的数据。方向传感器则是一个虚拟传感器,实际是组合使用加速度计和磁力计来测定方向。

作为对比,我们看看摩托罗拉Droid手机采用的传感器。

LIS331DLH三轴加速度计。
AK8973三轴磁场传感器。
AK8973温度传感器。
SFH7743近距离传感器。
方向传感器。
LM3530光传感器。
LIS331DLH是来自意法半导体公司(ST Microelectronics)的12位电容式加速度计,它提供更为精确的数据,并且采样频率可达1 kHz。AK8973是一个AKM传感器包,包含8位霍尔效应磁力计及温度传感器。

此外,Droid还包含另两个传感器。SFH7743是光电半导体的短程近距离传感器,可在约40 mm距离范围内有物体(比如耳朵)存在时关闭屏幕。LM3530是美国国家半导体公司(National Semiconductor)生产的带有可编程光传感器的LED驱动器,可以检测周围光线并据此将屏幕背光和LED闪光灯调节到适当亮度。

关于Android设备上可用的传感器我们再举一例,即HTC EVO 4G,它含有下列传感器。

BMA150三轴加速度计。
AK8973三轴磁场传感器。
AK8973方向传感器。
CM3602近距离传感器。
CM3602光传感器。
BMA150是博世传感器公司(Bosch Sensortec)生产的10位加速度计,采样率可达1.5 kHz。CM3602则是Capella微系统公司生产的短程近距离传感器和环境光传感器的二合一产品。

总体而言,理解不同的Android设备拥有不同的底层硬件是很有必要的,这些不同会导致性能和传感器精度的差异。