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

简介:

本节书摘来自异步社区《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给出了典型的屏幕尺寸、分辨率及一些与屏幕尺寸有关的名称。


80a0cac47b7a1fe5eac9ff649d9d6a580f2018d4

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设备拥有不同的底层硬件是很有必要的,这些不同会导致性能和传感器精度的差异。

相关文章
|
12天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
17天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
12 0
|
26天前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第30天】 随着Kotlin成为开发Android应用的首选语言,开发者社区对于其性能表现持续关注。本文通过深入分析与基准测试,探讨Kotlin与Java在Android平台上的性能差异,揭示两种语言在编译效率、运行时性能和内存消耗方面的具体表现,并提供优化建议。我们的目标是为Android开发者提供科学依据,帮助他们在项目实践中做出明智的编程语言选择。
|
1月前
|
安全 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第24天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin在Android开发中的普及,了解其与Java在性能方面的差异变得尤为重要。本文通过深入分析和对比两种语言的运行效率、启动时间、内存消耗等关键指标,揭示了Kotlin在实际项目中可能带来的性能影响,并提供了针对性的优化建议。
25 0
|
20天前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
在开发高性能的Android应用时,选择合适的编程语言至关重要。近年来,Kotlin因其简洁性和功能性受到开发者的青睐,但其性能是否与传统的Java相比有所不足?本文通过对比分析Kotlin与Java在Android平台上的运行效率,揭示二者在编译速度、运行时性能及资源消耗方面的具体差异,并探讨在实际项目中如何做出最佳选择。
16 4
|
1月前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第24天】 在移动开发领域,性能优化一直是开发者关注的重点。随着Kotlin的兴起,许多Android开发者开始从传统的Java转向Kotlin进行应用开发。本文将深入探讨Kotlin与Java在Android平台上的性能表现,通过对比分析两者在编译效率、运行时性能和内存消耗等方面的差异。我们将基于实际案例研究,为开发者提供选择合适开发语言的数据支持,并分享一些提升应用性能的最佳实践。
|
1月前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第22天】随着Kotlin在Android开发中的普及,开发者们对其性能表现持续关注。本文通过深入分析Kotlin与Java在Android平台上的执行效率,揭示了二者在编译优化、运行时性能以及内存占用方面的差异。通过实际案例测试,为开发者提供选择合适编程语言的参考依据。
|
2天前
|
编解码 人工智能 测试技术
安卓适配性策略:确保应用在不同设备上的兼容性
【4月更文挑战第13天】本文探讨了提升安卓应用兼容性的策略,包括理解平台碎片化、设计响应式UI(使用dp单位,考虑横竖屏)、利用Android SDK的兼容工具(支持库、资源限定符)、编写兼容性代码(运行时权限、设备特性检查)以及优化性能以适应低端设备。适配性是安卓开发的关键,通过这些方法可确保应用在多样化设备上提供一致体验。未来,自动化测试和AI将助力应对设备碎片化挑战。
|
8天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。
|
17天前
|
Android开发
Android开发小技巧:怎样在 textview 前面加上一个小图标。
Android开发小技巧:怎样在 textview 前面加上一个小图标。
10 0