问题:

到底基于哪个版本开发好?
问题来源:

由于android市场的开发性,android现阶段的环境比较混乱。而市面上的用户持有手机的android系统版本低到1.6高到4.2都有不同程度的分布,这是这种混乱性体现之一。为了让程序能够支持更多的一用户才产生了这样的问题。
问题分析:

要解决这个问题就要考虑开发时对不同Android版本之间的兼容性与适配的方式和方法。Android各个版本的不同也就是api的发生了一些改变,具体的api变动我将用表格来呈现,并且以1.6为最基础的版本。

版本

Api等级

部分重要差异

1.6

4

基础

2.0

5

蓝牙api添加,AccountManager添加,新ContactsAPiCamera各个模式的设置,缩放api新的缩微图API,MotionEvent支持3点触摸,KeyEvent实现长按键,闹钟等程序唤醒设备,模拟HOME,MENU,BACK物理键。

2.0.1

6

manifest里面宣布了filter,蓝牙拒绝启动蓝牙等api改变,修复错误getCallingPackage()正确的报告包名,而不是进程名.

2.1

7

动态桌面api添加View的一些api重新设计,webkitapi变动

2.2

8

可以Sd卡上安装程序也可以迁移,支持flash12.1,音乐管理

2.3

9

增加SipManager类方便SipVoip的开发,陀螺仪旋转常量,线性加速器,气压计支持。多摄像头支持,cameraapi获取焦距,焦距范围等,混音支持,支持长时间运行http下载。可以保证在手机重启后仍然重试下载等操作,整个过程在后台执行。

2.3.3

10

上一版本api的一些改进

3.0

11

可供平板电脑使用,新增Fragments,ActionBar,系统剪切板加强,拖拽,更多的appWidget,新增的NotificationAPI,蓝牙api增强,新增了一些动画框架,一些ui框架AdapterViewAnimatorAdapterViewFlipper等。

3.1

12

支持外部键盘和鼠标等设备,FLAC音频播放支持

3.2

13

4.0

14

统一了手机和平板电脑使用的系统,Gmail离线搜索,与其他第三方微博、博客类应用程序的无缝连接,增加截图功能,脸部识别进行锁屏,流量监控功能,增加支持硬件加速的功能,Wi-Fi直连功能

4.0.3

15

一些bug的修复

4.1

16

基于Android4.0改善,大幅改变用户界面设计,恶意软件的保护措施,强化ASLR

更详细的变动见:

维基百科:
http://zh.wikipedia.org/wiki/Android%E6%AD%B7%E5%8F%B2%E7%89%88%E6%9C%AC

Csdn文章:
http://blog.csdn.net/lijun952048910/article/details/7980562


从上面的表格可以大致看出android的发展经历了很多的变动,包括后面为平板的适应做出考虑的一些大范围改变。


进一步分析:
为了支持更多的手机设备,和程序的健壮性,可重构性等的考虑,建立项目的时候应该尽可能的使用高的版本的api开发,对于一些使用低版本手机的用户,可以通过在代码实现中判断sdk版本来做相应的的调整。如果使用低版本的api开发,一些api貌似有效实际上在高版本中未必能够执行成功,而且一些高版本中才具有的功能,用低版本的api开发是不可能实现的。并且随着时间的推移,用户群体的手机系统版本主键向高版本移动,势必会将上面的不利因素扩大。

结论:
1. 为了支持更更多的用户,应该尽量使用高版本的api去开发,对于低版本手机的用户,可以通过在代码实现中判断sdk版本来做相应的调整

2 对市面上的手机系统的分布有所考虑。

3. api版本的bug和稳定性考虑。

4. 团队开发经验,以及原有成果的利用考虑。

5.项目具体需求考虑。

6.目标设备考虑。

更多相关文章

  1. 华硕 Eee Pad Transformer 3G 版本台湾地区 Android(安卓)3.2 更
  2. android ntfs-3g移植
  3. 从Android(安卓)1.0到Android(安卓)8.0,盘点每一代系统更新内容
  4. Android(安卓)KitKat 4.4 Wifi移植之AP模式与网络共享功能调试记
  5. Android国内开发者陷盈利困局 版本过多支付不畅
  6. Android一套代码适配不同Android版本终极指南
  7. android usb挂载分析--ntfs-3g移植
  8. AES加解密算法在Android中的应用及Android4.2以上版本调用问题
  9. 获取Android的Java源代码并在Eclipse中关联查看

随机推荐

  1. 获取android屏幕大小
  2. Android(安卓)Camera 架构简析2
  3. Rooting Android
  4. android out of memory(OOM)
  5. android WebView解析 调用html5页面
  6. 4种必须知道的Android屏幕自适应解决方案
  7. Android studio 简单的多线程
  8. Android(安卓)framework——Activity的启
  9. Android中对后台任务线程性能的说明及优
  10. Android: Launch the HOME screen