先了解一下所提到过的兼容性
- 兼容性:兼容性是指硬件之间、软件之间或是软硬件组合系统之间的相互协调工作的程度。
重点理解(这是翻译的偏差,就不吐槽了)
1、向前兼容:Forward Compatibility,兼容新版本
2、向后兼容:Backward Compatibility,兼容老版本
3、向上兼容:同向前兼容
4、向下兼容:同向后兼容
例如:
*1、Intel的x86指令集CPU是向后兼容的,因为新款CPU依然可以运行老版本的软件。Intel保证老版本CPU有的指令集新版本一定还保留着,这种只增加不删除的策略,保证了我们换CPU时,不需要更换很多软件。
2、Windows操作系统是向后兼容的,大部分针对Windows 7开发的软件依然可以很好的运行在Windows 10下。Windows通过保证系统API的稳定不变,只增加不删除的策略,保证了老系统上开发的软件可以很容易的在新系统上运行。
3、CD光盘是向前兼容的,CD光盘既可以被老旧的CD光驱读取,也可以被新的DVD光驱读取。
再了解一下android开发中的三个词
1、minSdkVersion 15
(最小sdk版本 等级为15)
系统会拒绝将应用(就是你写的代码编译后)安装到小于此api等级的设备上,如果不声明该属性,系统将默认api=1
2、targetSdkVersion 25
(目标sdk版本 等级为25)
应用是设计给哪个API级别的设备运行的,如果目标设备的API版本正好等于此数值,他会告诉Android平台:此程序在此版本已经经过充分测,没有问题。不必为此程序开启兼容性检查判断的工作了。也就是说,如果targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。 但是,这个设置仅仅是一个声明、一个通知,不会有太实质的作用。应用仍可在较低版本上运行,如果目标设备api级别高于targetSdkVersion,系统就可以通过启用兼容性行为来确保您的应用继续以您所期望的方式工作。
3、CompileSdkVersion 是你SDK的版本号
最后
- 如何选择sdk和设备的api等级
Android 应用一般向前兼容新版本的 Android 平台。
Android应用使用的api等级可以很好的支持新的安卓系统。应用应该能够在所有后期版本的 Android 平台上运行。
Android 应用不一定向后兼容比其编译时所针对的目标版本更久远的 Android 平台版本
一般而言,编译的应用所针对的目标版本应该是您的应用所能支持的最低平台版本。
(一句话就是说:如果你使用的sdk等级低于安卓系统的等级,问题不大,如果低了,可能会出问题。)
附上版本和api等级对照表
借了别人的图,请原谅我的懒,还不是为了给你节省时间