Android sdk版本以及兼容性问题

简介:
复制代码
Android:minSdkVersion —— 此属性决定你的应用能兼容的最低的系统版本,一盘情况是必须设置此属性。

android:targetSdkVersion —— 此属性说明你当前的应用是针对某一个系统版本开发设计的,也就是说在这个系统版本上运行是没有任何问题的。对于手机或其他终端设备会根据此属性值,决定是否显示一些特性和效果。当然对于开发者最直接的影响就是,你所用到的API都是基于此版本上的,高于此targetSdkVersion的API在使用的时候会有警告或者错误提示。

android:maxSdkVersion —— 此属性是决定你的应用能支持的版本最高是多少,超过此版本的系统将不能使用你的应用。



1、关于sdk向下兼容,意思是高版本兼容低版本,使用低版本sdk的应用可以正常运行在高版本sdk的手机上,而高版本的sdk应用不能运行在低版本的手机上?

2、那使用高版本的sdk开发的应用都是如何正常运行在低版本的手机上的呢?

1)在程序中判断sdk版本,然后写不同代码。 (见下三)

2)在应用项目中导入support-v4或v7包,使用新版本sdk特性。 (见下四)






三 、  为了应用APP有更好的兼容性,咱们可以利用高版本的SDK开发应用,并在程序运行时(Runtime)对应用所运行的平台判断,旧平台使用旧的API,而新平台可使用新的API,这样可以较好的提高软件兼容性。参考:http://blog.csdn.net/leichelle/article/details/7988561


Check System Version at Runtime(在软件运行时检查判断系统版本)
Android provides a unique code for each platform version in the Build constants class. Use these codes within your app to build conditions that ensure the code thatdepends on higher API levels is executed only when those APIs are available on the system.



private void setUpActionBar() {
    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {


         ActionBar actionBar = getActionBar();
         actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

android api向来是高版本兼容低版本。如api-8(android2.2)必会兼容api-4(android 1.6)

但是反之则不会,你使用2.2的平台版本build了一个apk,若想能在1.6上运行,则需要做向下兼容.
android support-xx是google官方的向下兼容包.
如名所示,会帮助构建程序向下兼容到1.6版本.不过也并非万能的,还是会受限制.
 google提供了Android SupportLibrary package系列的包来保证来高版本sdk开发的向下兼容性,即我们用4.x开发时,在1.6等版本上,可以使用高版本的有些特性,如fragement,ViewPager等,下面,简单说明下这几个版本间的区别:

   Android Supportv4: 这个包是为了照顾1.6及更高版本而设计的,这个包是使用最广泛的,eclipse新建工程时,都默认带有了。
   AndroidSupport v7: 这个包是为了考虑照顾2.1及以上版本而设计的,但不包含更低,故如果不考虑1.6,我们可以采用再加上这个包,另外注意,v7是要依赖v4这个包的,即,两个得同时被包含。
   AndroidSupport v13  :这个包的设计是为了android3.2及更高版本的,一般我们都不常用,平板开发中能用到。 
复制代码

 

本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/5732614.html,如需转载请自行联系原作者

相关文章
|
3月前
|
安全 开发工具 Android开发
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
几个Flutter常见诊断错误与解决Android toolchain - develop for Android devices X Unable to locate Android SDK
232 0
|
3月前
|
存储 算法 Android开发
AVB校验微观版本:android avb(Android Verified Boot)验证
AVB校验微观版本:android avb(Android Verified Boot)验证
210 0
|
26天前
|
运维 监控 Java
应用研发平台EMAS产品常见问题之安卓构建版本失败如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
监控 安全 Android开发
安卓发展历程和主要版本的简要介绍
安卓发展历程和主要版本的简要介绍
30 1
|
3月前
|
Android开发
Android的一丢丢版本常识
Android的一丢丢版本常识
30 0
|
3月前
|
开发工具 Android开发
Android获取SDK的版本信息
Android获取SDK的版本信息
38 0
|
4月前
|
编解码 Ubuntu Java
Android 编译Android7.0版本源码
Android 编译Android7.0版本源码
|
4月前
|
API Android开发 开发者
Android Studio Electric Eel | 2022.1.1 版本
Android Studio Electric Eel | 2022.1.1 版本
|
4月前
|
XML 数据库 数据安全/隐私保护
Android App规范处理中版本设置、发布模式、给数据集SQLite加密的讲解及使用(附源码 超详细必看)
Android App规范处理中版本设置、发布模式、给数据集SQLite加密的讲解及使用(附源码 超详细必看)
40 0
|
4月前
|
编解码 Java 开发工具
Android端接入视频生产 Java SDK
Android端接入视频生产 Java SDK
39 1