Android 最佳实践之流畅(Seamlessness)设计
2010-04-04 06:13:00 来源:WEB开发网(注意,如果你的Activity已经在前台了,以上将不适用:这时,对于用户的输入,用户期望的是看到下一个Activity来响应。)
4)有太多事情要做?在线程里做
如果你的应用程序需要执行一些昂贵或耗时的计算的话,你应该尽可能地将它挪到线程里。这将阻止向用户显示可怕的“Application Not Responding”对话框,如果不这样做,最终的结果会导致你的应用程序完全终止。
一般情况下,Activity中的所有代码,包括它的View,都运行在相同的线程里。在这个线程里,还需要处理UI事件。例如,当用户按下一个按键,一个key-down事件就会添加到Activity的主线程队列里。事件处理系统需要很快让这个事件出列并得到处理;如果没有,系统数秒后会认为应用程序已经挂起并为用户提供杀死应用程序的机会。
如果有耗时的代码,内联在Activity上运行也就是运行在事件处理线程里,这在很大程度上阻塞了事件处理。这会延迟输入处理,并导致ANR对话框。为了避免这个,把你的计算移到线程里。在响应灵敏性设计的文章里已经讨论了如何做。
5)不要让一个Activity超负荷
任何值得使用的应用程序都可能有几个不同的屏幕。当设计UI屏幕时,请一定要使用多个Activity对象实例。
依赖于你的开发背景,你可能理解Activity类似于Java Applet,它是你应用程序的入口点。然而,那并不精确:Applet子类是一个Java Applet的单一入口点,而一个Activity应该看作是你的应用程序多个潜在入口点之一。你的“main”Activity和其它之间的唯一不同点是“main”Activity正巧是在AndroidManifest.xml文件中唯一对“android.intent.action.MAIN” 动作感兴趣的Activity。
因此,当设计你的应用程序的时候,把你的应用程序看作是Activity对象的集合。从长远来看,这会使得你的代码更加方便维护。
6)扩展系统主题
当谈到UI观感时,巧妙地交融非常重要。用户在使用与自己期望相反的UI的应用程序时,会产生不愉快的感觉。当设计你的UI时,你应该尽量避免太多自己的主题。相反的,使用同一个主题。你可以重写或扩展你需要的主题部分,但至少在与其它应用程序相同的UI基础上开始。详细请参照“应用风格和主题”部分。
7)设计你的UI可以应对多屏幕分辨率
不同的Android设备可能支持不同的屏幕分辨率。甚至一些可以自己变更分辨率,例如,切换到风景模式。确保你的布局和图片能足够灵活地在不同的设备屏幕上正常显示。
更多精彩
赞助商链接