向前兼容
前可以理解为超前。比如我基于android 4.4开发了一个apk。过了1个月,google 推出了android 5.0 ,提供了material design的相关特性。 这个时候如果我针对apk适配android 5.0的新特性 就是一种向前兼容。
那这样是不是google每更新一次系统,我都要针对我原来的系统做一次适配呢?不做有没有影响?
不做适配对于程序功能来说没有影响,基于4.4开发的apk也能安装到5.0的手机上,只是在运行时没法展示5.0的新特性了。按常规来说,官方每更新一次系统都是对原有系统的一次优化升级,因此是推荐根据官网的系统版本做适配:
向后兼容
向后可以理解为向下。基于android4.4 开发的apk 想要运行在4.0的手机上,怎么办?
- 调低minSdkVersion版本。
- 找到对应低版本的模拟器或者手机上进行测试,修改测试出现的问题
apk中几个版本的含义
我们都知道在我们构建android应用程序之前。需要写几个参数:
- minSdkVersion(最小sdk版本)
- compileSdkVersion(编译版本)
- targetSdkVersion.(目标版本)
minSdkVersion =17(4.2) 那说明你的apk能够在4.2(包含4.2)以上的手机上运行。 那在4.0手机上安装的时候就会弹出版本过低的提示。
compileSdkVersion编译版本就是你使用哪个版本的api来检查编译写的程序,一般为最新的android 系统版本。
targetSdkVersion 目标版本是你期望你的apk在哪个android版本的手机上运行,它告诉系统需要启用一些最新的功能和特征。假如你的targetSdkVersion = 23(6.0 有运行时权限检查),但是你却没有在你的程序中进行运行时权限的判断,那程序运行到这里就会报错
minSdkVersion< targetSdkVersion <= compileSdkVersion
引用:
https://blog.csdn.net/nongminkouhao/article/details/107384812