尽管Android向下兼容不好,但是一个程序还是可以在多个平台上跑的。向下兼容不好,接口改变,新的平台上不能用旧的API,旧的平台更不可能用新的API,不等于一个平台需要一个APK。可以在高SDK上开发,并在程序中作版本判断,低版本运行环境使用旧的API。
例如要开发一个显示通话记录的程序,需要兼容1.6~2.2,我们知道不同的平台SDK level不同,1.5是3,1.6是4,2.2是8。对应的可以使用android.os.Build进行判断。源代码如下:
Java代码:
if(Build.VERSION.SDK_INK<=4){
Toast.makeText(this,"version"+Build.VERSION.RELEASE+Build.VERSION.SDK_INT,Toast.leng_short).show();
}
else{
Toast.makeText(this,"version"+Build.VERSION.RELEASE+Build.VERSION.SDK_INK,Toast.length_short).show();
}
- // Build.VERSION.SDK_INT可与switch搭配用
- switch (Build.VERSION.SDK_INT) {
- case Build.VERSION_CODES.BASE: // 1.0
- break;
- case Build.VERSION_CODES.BASE_1_1: // 1.1
- break;
- case Build.VERSION_CODES.CUPCAKE: // 1.5
- break;
- case Build.VERSION_CODES.CUR_DEVELOPMENT: // current dev version
- break;
- case Build.VERSION_CODES.DONUT: // 1.6
- break;
- case Build.VERSION_CODES.ECLAIR: // 2.0
- break;
- case Build.VERSION_CODES.ECLAIR_0_1: // 2.0.1
- break;
- case Build.VERSION_CODES.ECLAIR_MR1: // 2.1
- break;
- }
Build.BORAD //主板
Build.BRAND //android系统定制商
Build.CPU_ABI //cpu指令集
Build.DEVICE //设备参数
Build.DISPLAY //显示屏参数
Build.FINGERPRINT //硬件名称
Build.HOST
Build.ID //修订版本列表
Build.Manufacture //硬件制造商
Build.Model //版本
Build.product //手机制造商
Build.tags //描述build的标签
Build.time
Build.type //builder类型
Build.user