关于Android向前兼容和向后兼容问题的理解
最近在和别人交流的的时候涉及到Android开发向前兼容和向后兼容的问题一头雾水,于是乎定下心来好好研究了下,虽然所知也只是些皮毛,但是也总比啥也不知道的好。所以在此总结!
一、向前兼容
1、何谓向前兼容
google公司在不断的发步新的android版本,这不现在都到8.0了。那么自己刚刚发布到应用商店的app如何在android 8.0手机上正常运行呢,这就是所谓的向前兼容了。
2、如何实现向前兼容
这个其实比较简单,及通过targetSdkVersion设置来实现。在设置好该参数后,如果实际android版本号高于targetSdkVersion那么手机会按照targetSdkVersion设置的版本号来运行。当实际android版本号不高于targetSdkVersion时按照实际的手机版本号运行apk。
说到这里,也顺便谈谈compileSdkVersion和minSdkVersion这两个参数吧。compileSdkVersion不会被编译到apk中,也就不会改变apk的运行时的行为,仅仅是为IDE提供编译警告和错误的依据。minSdkVersion 就更好理解了,其代表了apk所能够支持的最低sdk版本号。
二、向后兼容
1、向后兼容含义
也来举个例子说明,我们知道Material Design是随android 5.0版本推出来的设计规范。那么我android 4.0的手机也想使用怎么玩,着就是向后兼容的问题了。
2、向后兼容的实现
android 向后兼容通常是通过支持库(support library)来实现的。比如appcompat-v4、appcompat-v7使得低版本手机可以支持Material Design。
支持库的原理是这样的,如果应用调用其中一个支持类的方法,则支持库的行为将取决于运行应用的 Android 版本。如果框架提供必要的功能,则支持库将通过调用框架执行任务。如果应用在旧版本的 Android 上运行,且框架未显示所需的功能,则支持库自身可能会尝试提供功能或什么都不做。无论是哪一种情形,应用通常都不需要检查其在哪一版本的 Android 上运行,而是通过支持库执行检查并选择适当的行为。通常情况下,名称以 …Compat(如 ActivityCompat)结束的类即是如此。
三、引用
1、http://chinagdg.org/2016/01/picking-your-compilesdkversion-minsdkversion-targetsdkversion/2、https://developer.android.com/topic/libraries/support-library/index.html?utm_campaign=adp_series_sdkversion_010616&utm_source=medium&utm_medium=blog#backward
更多相关文章
- 【android】使用android-resource-remover删除项目中无用的资源,
- Android(安卓)Metro风格的Launcher开发系列第一篇
- 原有Android项目集成RN入坑计(一)
- Android(安卓)悬浮窗权限各机型各系统适配大全
- android/c++ opencv 攻坚篇(一) ndk运行环境搭建
- android车载终端开发--------can 总线移植
- android sdk myeclipse8.6
- Android(安卓)studio真的很坑啊,智能还很远,麻烦倒是挺多
- android “设置”里的版本号