15.4.总结 在Android 2.3 Gingerbread版本中,NDK引入了对本地Activity的支持。这样即可通过C语言直接编写Activity,从而简化Android游戏的开发过程。
14.3.总结 Android提供了一套高性能的基于共享内存的进程间通信机制,这就是Bound Service。通过它可以创建出远程的Service:先在Android接口描述语言(AIDL)中给出远程接口的定义,随后实现出这个接口,最后通过IBinder对象将它们连接起来。这样就允许了无关的进程之间的相互通信。
13.6.总结 到这里,我们已经观察了几个系统服务:传感器服务、位置服务、Alarm服务以及Notification服务。除此之外,Android还提供了很多其它的系统服务,篇幅所限未能提及。但你可以留意到它们之间的共性,有一些自己的总结。另外,我们在重构UpdaterService时,也用到了IntentService与PendingIntent。
12.3.总结 恭喜,Yamba已经大工告成!你可以稍作调优,加入一些个性元素,然后就可以发布到市场去了。 图12.1 "Yamba完成图"展示了我们目前已完成的部分。届此,图5.4 "Yamba设计图"中的设计我们已全部实现。 图 12.1. Yamba完成图
10.7.总结 到这里,Yamba在能够发消息之外,也能够阅读朋友的消息了。我们的程序仍是完整可用的。 图10.4 "Yamba完成图"展示了目前为止我们已完成的部分。完整图参见图5.4 "Yamba设计图"。 图10.4. Yamba完成图
9.6.总结 到这里,Yamba已经可以从服务端抓取数据,并储存到数据库中了。虽然仍不能将它们显示出来,但已经可以验证,这些数据是可用的。 下图展示了目前为止我们已经完成的部分。完整图参见图5.4 "Yamba设计图"。 图 9.1. Yamba完成图
8.5.总结 我们已经有了一个可用的 Service,只是启动/停止还需要人工操作,仍略显粗放。这个 Service 能够连接到服务端更新朋友的最新消息。目前我们只是把这些消息输出到 Logcat 中,到下一章我们就把它们存进数据库里。 图8.3 "Yamba完成图"展示了目前为止我们已完成的部分。完整图参见图5.4 "Yamba设计图"。 图8.3. Yamba完成图
7.5.总结 到这里,用户可以设置自己的用户名与密码。同时移除原先的硬编码,使得程序更加可用。 图7.6 "Yamba完成图"展示了目前我们已完成的部分。完整图参见图5.4 "Yamba设计图"。 图7.6. Yamba完成图
6.12.总结 到这里你可以运行Yamba,尝试向twitter发送消息,效果如图6.17 "StatusActivity"所示。在这里,我们暂时硬编码了用户名与密码,如果发送成功,即可在twitter网站的对应帐号上查看到这条消息。 图6.17. StatusActivity 下图展示了我们目前的完成部分,完整图参见图5.4 "Yamba设计图"。 图6.18. Yamba 完成图
5.12.总结 本章可作为后面八章的铺垫。经过一轮轮的迭代,你将完成一个中等规模的Android应用。更重要的是,你可以在这过程中体会到程序各部分的意义、及其合而为一的方法。或者说,这就是体会到Android开发中的“思维方式”。
4.9.总结 在本章,我们将Android应用程序中最常见的组件大致浏览了一遍。下至简单的Hello World上到复杂的系统,应用程序样目繁多,但都是通过它们组合而来。 到下一章我们开始按照Yamba程序作为主线,演示如何将这些点滴零碎合而为一,使之成为一个可用的程序。
3.4.总结 Android开发环境的搭建,几乎就是对付Android SDK和Eclipse了。开发环境设置完毕,不妨动手用Eclipse创建一个简单的Hello World项目实现一下,看看是否一切都能正常工作。运行良好的话,也就证明环境已经搭建完毕,为往后正式的开发做好了准备。
2.7.总结 在本章中,我们介绍了 Android 操作系统的组成部分及其结合方式。到这里,你对Android的完善、开放该已有所体会,而这正是吸引开发者的魅力所在。 在下一章,我们将搭建一个能够快速上手的开发环境。同时尝试编写一个简单的 Hello World 程序,并剖析它,体会应用开发过程中的细节。
1.4.总结 Android操作系统在设计伊始,就是作为一个完整的、移动设备之上的开源平台而考虑的。随着巨大的成功,它改变了整个行业的游戏规则。 在下一章,我们将全局地观察整个Android操作系统,了解它是如何将其各部分巧妙地合为一体的。
我们的旅程结束了。相信你已经准备好将你的Java应用带到一个新的代码质量水平。你可以享受一个新的编程模式并把更流畅的思维方式应用到日常编程生活中。RxJava提供了一种以面向时序的方式考虑数据的机会:所有事情都是持续变化的,数据在更新,事件在触发,然后你就可以创建事件响应式的、灵活的、运行流畅的App。 刚开始切换到RxJava看起来困难并且耗时,但我们已经体验到了如何通过响应式的方式有效地处理日