翻看手机中的应用,就能发现大多数应用都已经使用了传感器。让微信彻底火起来的“附近的人”和“摇一摇”、碰一碰交换信息的Bump、各种运动记录app、神奇的“磁力探测仪”、火爆的游戏Temple Run……手机设备中的传感器让应用的可玩性大大增加,提供了各种创新的交互方式,以及在PC上很难实现的功能。在我看来,移动设备相对PC来说的主要优势在于随时随地的便携性,还有就是丰富的传感器。用好传感器,已经是手机应用开发的必修课。
可是开始听到本书书名时,对翻译本书并没有什么兴趣。我自己也写过一本Android开发方面的书,觉得介绍传感器编程的话,一个章节足以。可是在看了英文书后,发现本书并不是简单地介绍Android传感器API的调用,而是非常专业细致地介绍了Android传感器。这本书将教会你真正用好Android传感器。
首先,本书对传感器的介绍都非常深入。我一直认为,要真正用好一个东西,必须了解其原理。本书对传感器的原理都作了必要的解读,就拿第1章来说,相信大家都知道GPS的原理,但是你知道A-GPS吗?S-GPS呢?是否知道Wi-Fi定位和移动网络定位的原理呢?想要用好Android的定位服务,这些知识是必需的。我的一位朋友前几天还问我,他玩微信中“附近的人”,明明在杭州却老是定位在南京。其实原因就是他在使用Wi-Fi定位,而这个路由器在南京呆了6年,在Google的数据库中早就被定位在了南京的某地,Google并没有即时更新该数据库。如果微信考虑这种情况,相信可以对这种状况做一些特别的处理。
其次,本书的范围很广。与其说是介绍传感器,倒不如说是介绍如何充分利用Android设备的硬件能力。本书分4个部分,涵盖了定位的相关内容、各种物理传感器的介绍(包括重力传感器、加速计、磁强计等,还介绍了AOA和ADK),同时还包括了NFC、摄像头、图像处理、麦克风等,以及语音识别和文本转语音的内容。可以说,本书完全涵盖了Android的硬件设备能力,能够用来打造一个非常有趣的应用。运用好这些硬件,可以充分发挥Android设备智能和便携的特性。同时这也是相对Web 应用来说非常大的优势。书中甚至包括了最近火热的Arduino的使用介绍,读者可以尽情地创新创意。
再次,本书的示例非常丰富,并且很多都可以简单复用。书中有着大量的示例,大多都是作者对传感器使用的最佳实践,并且结合了实际的使用场景,而不是简单的demo。同时,作者提供了大量框架性的代码,读者都可以直接复用。通过这些示例,读者可以快速掌握这些传感器的用法。
在翻译本书的过程中,感谢我的家人,你们给了我最大的支持。感谢我的好朋友徐婷翻译了第六章,且对本书一丝不苟的校对,让行文更加通顺优美,在很多专业知识上也提供了宝贵的建议并对本书的第6章有所贡献,在整个翻译过程中给了我莫大的支持和鼓励。感谢我所有的朋友和同事,本书的完成少不了你们的鼓励和支持。感谢清华大学出版社的编辑给了足够的耐心,并给了我很多的建议和帮助,让我获益匪浅。
本书的翻译过程非常艰辛,可谓一波三折。在本书付梓之际,虽然高兴,却也多了几分惶恐。这也是我的第一本译作,自觉水平有限,而本书其实又由多个作者完成,语言风格迥异,虽然我已经尽了很大的努力,但是肯定难免会有一些错漏和偏颇之处。对于本书的任何想法和意见都欢迎发送邮件至notice520@gmail.com。
最后,希望本书能帮助各位开发人员打造更美、更有创意、更有趣的移动应用。