尽管Android向下兼容不好,但是一个程序还是可以在多个平台上跑的。向下兼容不好,接口改变,新的平台上不能用旧的API,旧的平台更不可能用新的API,不等于一个平台需要一个APK。可以在高SDK上开发,并在程序中作版本判断,低版本运行环境使用旧的API。
例如要开发一个显示通话记录的程序,需要兼容1.6~2.2,我们知道不同的平台SDK level不同,1.5是3,1.6是4,2.2是8。对应的可以使用android.os.Build进行判断。源代码如下:
转自: http://www.linuxidc.com/Linux/2011-11/48325.htm
例如要开发一个显示通话记录的程序,需要兼容1.6~2.2,我们知道不同的平台SDK level不同,1.5是3,1.6是4,2.2是8。对应的可以使用android.os.Build进行判断。源代码如下:
- if(Build.VERSION.SDK_INT <= 4)
- {
- Toast.makeText(this, "version" + Build.VERSION.RELEASE+ " :" + Build.VERSION.SDK_INT, Toast.LENGTH_SHORT).show();
- }
- else
- {
- Toast.makeText(this, "version" + Build.VERSION.RELEASE+ " :" + Build.VERSION.SDK_INT, Toast.LENGTH_SHORT).show();
- }
转自: http://www.linuxidc.com/Linux/2011-11/48325.htm
- android.os.Build
- Java代码
- Build.BOARD // 主板
- Build.BRAND // android系统定制商
- Build.CPU_ABI // cpu指令集
- Build.DEVICE // 设备参数
- Build.DISPLAY // 显示屏参数
- Build.FINGERPRINT // 硬件名称
- Build.HOST
- Build.ID // 修订版本列表
- Build.MANUFACTURER // 硬件制造商
- Build.MODEL // 版本
- Build.PRODUCT // 手机制造商
- Build.TAGS // 描述build的标签
- Build.TIME
- Build.TYPE // builder类型
- Build.USER
- // 运行结果
- /*
- board: unknown
- brand: generic
- cpu abi: armeabi
- device: generic
- display: google_sdk-eng 2.1 ERD79 22607 test-keys
- finger print: generic/google_sdk/generic/:2.1/ERD79/22607:eng/test-keys
- host: genki.mtv.corp.google.com
- id: ERD79
- manufacturer: unknown
- model: google_sdk
- product: google_sdk
- tags: test-keys
- time: 1261185425000
- type: eng
- user: android-build
- */
- Build.BOARD // 主板
- Build.BRAND // android系统定制商
- Build.CPU_ABI // cpu指令集
- Build.DEVICE // 设备参数
- Build.DISPLAY // 显示屏参数
- Build.FINGERPRINT // 硬件名称
- Build.HOST
- Build.ID // 修订版本列表
- Build.MANUFACTURER // 硬件制造商
- Build.MODEL // 版本
- Build.PRODUCT // 手机制造商
- Build.TAGS // 描述build的标签
- Build.TIME
- Build.TYPE // builder类型
- Build.USER
- // 运行结果
- /*
- board: unknown
- brand: generic
- cpu abi: armeabi
- device: generic
- display: google_sdk-eng 2.1 ERD79 22607 test-keys
- finger print: generic/google_sdk/generic/:2.1/ERD79/22607:eng/test-keys
- host: genki.mtv.corp.google.com
- id: ERD79
- manufacturer: unknown
- model: google_sdk
- product: google_sdk
- tags: test-keys
- time: 1261185425000
- type: eng
- user: android-build
- */
- Build.VERSION
- Java代码
- // 当前开发代号
- Build.VERSION.CODENAME
- // 源码控制版本号
- Build.VERSION.INCREMENTAL
- // 版本字符串
- Build.VERSION.RELEASE
- // 版本号
- Build.VERSION.SDK
- // 版本号
- Build.VERSION.SDK_INT
- // 结果
- /*
- REL
- 22607
- 2.1
- 7
- 7
- */
- // 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.VERSION.CODENAME
- // 源码控制版本号
- Build.VERSION.INCREMENTAL
- // 版本字符串
- Build.VERSION.RELEASE
- // 版本号
- Build.VERSION.SDK
- // 版本号
- Build.VERSION.SDK_INT
- // 结果
- /*
- REL
- 22607
- 2.1
- 7
- 7
- */
- // 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;
- }