5.版本兼容性适配
兼容原则
一般选择APP的最低支持版本原则是尽量向下保持兼容,但也不是说越向下越好,主要的考虑因素有以下几点:
- 各个低版本手机的市场占有率,比如2013年android 2.2的手机还占用一定的市场份额,但到现在为止基本上该份额可以忽略不计了
- APP的针对用户群体,比如是高端的用户群体,屌丝用户群体,还是中低端用户群体,根据不同的用户群体可以综合出来决定对最低版本的支持。
基于低版本的SDK开发
优点就是你可以支持的手机用户会更多,基本上各个版本的用户都可以用你的应用。
但缺点也是非常明显,特别是对开发者来说,需要做好每一个新特性功能的适配和开发,随着版本越来越高,这对开发者后期的维护会越来越困难,越来越多。
基于高版本的SDK开发
如果你用最新的版本的SDK, 优点就是你可以使用最新的功能的api,而且编译也不会出现任何问题。
但是缺点就是你需要时刻对你调用的api保持向下兼容性,因为很有可能你现有调用的某个api在低版本中根本就不存在。这时候你需要考虑低版本系统的用户的运行问题了。
具体点什么叫兼容性,如下:
应用图标的角标的实现(解决方案https://github.com/xuyisheng/ShortcutHelper)
时下比较流行的仿IOS效果侵透式状态栏(http://www.bkjia.com/Androidjc/913061.html)
webview加速(http://hunankeda110.iteye.com/blog/1807839)
android内存分配(http://hilary3113.iteye.com/blog/1766856)
还有很多…特别有一个叫@SuppressLint(“NewApi”)和@TargetApi()小心出错,http://www.xiaoyunduo.org/article/269/
那么我们如何选择开发版本呢
一般开发过程中APP都会有一个最低版本的配置,例如如果要兼容到android 2.2系统,则可以设置minSdkVersion=8,这就表明能向下兼容到android 2.2版本,即APP能在android2.2版本上的手机也能正常运行,即使可能某些新特性的功能支持失效,但至少保证不会出现崩溃的问题,而避免此问题的方式就要求开发者在代码中做好兼容和适配。
比如看看友盟统计
http://www.umindex.com/devices/android_os
我就建议用4.0为最低适配版本来开发。也就是minSdkVersion=14
如果minSdkVersion不知道什么意思,请看
http://chinagdg.org/2016/01/picking-your-compilesdkversion-minsdkversion-targetsdkversion/
为了方便查看Android版本和API Level对应关系