问题:

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

由于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 更新,Eee
  2. Ubuntu 10.10 与 华为 C8650 手机搭建 Android 真机开发调试环境
  3. Android国内开发者陷盈利困局 版本过多支付不畅
  4. Android受手机制造商青睐 是福是祸
  5. 【转】论山寨手机与Android的联姻
  6. Android一套代码适配不同Android版本终极指南

随机推荐

  1. 详解android 通过uri获取bitmap图片并压
  2. 深入理解ActivityResultContracts--替代s
  3. Android(安卓)L 之 ToolBar使用
  4. 线程间通信----Handler
  5. Handler Looper Message源码研究
  6. android 关于Canvas保存到本地图像
  7. 【攻克Android(安卓)(17)】SQLite数据库
  8. Android(安卓)通过Intent调用系统拍照程
  9. Windows下Android开发环境 搭建
  10. Android(安卓)Studio 的简单配置使用以及