Android中5个需要引起注意的Anti-Patterns

什么是Anti-Patterns?
业内有一本圣经级别的参考书《Design Pattern》,由四个“勤劳”的人共同完成,目前已经成为软件开发标准,称之为设计模式。与其相反,那些需要严禁避免的模式称之为Anti-Patterns。这篇文章将详细的介绍在Android开发过程中极易遇到的五个Anti-Patterns。

获得当前Screen尺寸和Orientation mode

通过什么方式才能简单的得到当前Screen的尺寸和Orientation方向模式呢?
应用Android.view.display和WindowManager两个方法来完成题目中所提到的目的,以下是具体的代码:

Activity中ConfigChanges属性的用法

官方解释: 通过设置这个属性可以使Activity捕捉设备状态变化,以下是可以被识别的内容:  
CONFIG_FONT_SCALE
CONFIG_MCC
CONFIG_MNC
CONFIG_LOCALE
CONFIG_TOUCHSCREEN
CONFIG_KEYBOARD
CONFIG_NAVIGATION 
CONFIG_ORIENTATION

固定屏幕显示模式 ScreenOrientation

当旋转设备时,相应的屏幕显示模式也将根据变化匹配现有的情况,随后需要Activity根据不同的模式(Portrait和Landscape)重新调整Views的现实方式。其中有些情况需要对不同显示模式作出调整,但也有一些程序没有必要做这样的调整变化。

Screen Orientation [Activity State]

比较onSaveInstanceState() 与 onRetainNonConfigurationInstance()在不同需求中的用法

Screen Orientation [Rotational Forces]

之前有一篇文章讨论过在屏幕横向和竖向显示模式切换时,对当前APP内容做出优化,以保证内容可以高效的针对变化而做出快速反应。这一次将深入的了解当屏幕显示模式改变时,需要考虑的各种变化。如何才能跟踪这种变化呢?通过对所有的方法插入Log输出来查看APP在各种状态下由显示模式的改变而被调用的情况。

针对屏幕旋转需要考虑的相关优化

Faster Screen Orientation change
Android操作系统已经被非常多的手机硬件所采用。就目前推出的第一款安装有Android操作系统的T-Mobile G1,在G1上可以体验到旋转手机从而实时的改变屏幕显示模式,比如我们打开硬件键盘,屏幕将会实时的从纵向显示转变为横向显示。