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

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

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

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

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

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

)在应用项目中导入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-(android2.)必会兼容api-(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.,我们可以采用再加上这个包,另外注意,v7是要依赖v4这个包的,即,两个得同时被包含。
AndroidSupport v13 :这个包的设计是为了android3.2及更高版本的,一般我们都不常用,平板开发中能用到。

Android sdk版本以及兼容性问题的更多相关文章

  1. 本地缺Android SDK版本20,Unable to resolve target 'android-20'

    解决方案一 本地缺Android SDK版本20,Unable to resolve target 'android-20' 通过SDK Manager安装一个Android 20. 解决方案二: L ...

  2. Android SDK版本和ADT版本

    Android SDK版本和ADT版本   Android早期的版本号有点“混乱”,比如Android 2.2对应的ADT版本为ADT-0.9.9而Android 2.3对应的的ADT版本则突然“跃迁 ...

  3. android ------ 实现高德定位并获取相应信息 ( 最新版高德SDK 和 Android SDK版本)

    Android开发项目时常常会遇到定位这个功能, 很久以前写过一篇了,官方也更新了一些东西,我也更新下 以前使用的是jar包 导入来实现高德定位 老版本 链接:https://www.cnblogs. ...

  4. 在Android Studio和Android Eclipse 更改现有项目里的SDK版本

    一,在Eclipse下改项目里的SDK的版本方法有几种,都比较简单:1.右键单击项目--->properties---->Resource----->Android在Project ...

  5. Android系统版本、Platform版本、SDK版本、gradle修改

    虽然之前分析了gradle,但是在eclipse导入Android studio的时候,各个版本出现的问题还是很模糊,下面对各种版本进行一下说明: 参考资料: https://developer.an ...

  6. Eclipse 中打不开android sdk managerf

    今天配置android sdk 的时候,出现了android sdk 打不开的情况.无论直接点击 sdk manager.exe 还是从eclipse启动,都不起作用,双重启(重启eclipse和ad ...

  7. Android SDK目录及版本号区别

    来自:http://www.2cto.com/kf/201604/496917.html 今天又有人问Tools,Build-Tools,Platform-tools有什么区别,是干嘛的? 现在对SD ...

  8. Appium移动自动化测试之安装Android SDK和JDK

    安装好Appium后,我们来继续安装Android SDK和JDK,JDK的安装以及环境变量配置这边就不再多说了,毕竟都是从事自动化的,这个应该是so easy.闲言少续,我们来操作Android S ...

  9. Eclipse集成环境中Android SDK下载及更新失败解决方案

    由于公司新项目比较忙,有好长一段时间没碰Android开发咯! 近期闲来在网上下了个开源的应用想拿来自己学习下其中的源码及整体设计,当我把下下来的项目导入Eclipse中时,报如下警告: 原因是我本地 ...

随机推荐

  1. POJ 3088

    已知n,求n中取k(k<=n)个数组成的m(m<=n)个的集合的排列数. 于是,可以枚举选出k个数及枚举m个集合.这个很明显是二类斯特林数.而集合有序,则乘上m! #include < ...

  2. window8.1 CenterOS 双系统

    window8.1 CenterOS 双系统 学习了: http://blog.csdn.net/ac_hell/article/details/53436890 https://jingyan.ba ...

  3. 2)Win10-UWA开发 API參考 - 1

    孙广东  2015.8.23 大多数 Windows 执行时 API 如今适用于 Windows Phone 应用商店应用以及 Windows 应用商店应用,这意味着当你创建同一时候面向 Window ...

  4. JVM的重排序

    重排序一般是编译器或执行时环境为了优化程序性能而採取的对指令进行又一次排序执行的一种手段.重排序分为两类:编译期重排序和执行期重排序,分别相应编译时和执行时环境. 在并发程序中,程序猿会特别关注不同进 ...

  5. m_Orchestrate learning system---十七、页面美观的关键是什么

    m_Orchestrate learning system---十七.页面美观的关键是什么 一.总结 一句话总结:图片用好看的 1.项目板块化? 就是一个个模块,能复用的话很快的 页面由这一个个模块拼 ...

  6. php设计模式适配器模式

    php设计模式适配器模式 简介 适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的.一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起. 其实就是通过一个转换类,这个转 ...

  7. DB-MySQL:MySQL 运算符

    ylbtech-DB-MySQL:MySQL 运算符 MySQL 运算符 本章节我们主要介绍 MySQL 的运算符及运算符的优先级. MySQL 主要有以下几种运算符: 算术运算符 比较运算符 逻辑运 ...

  8. jquery的clone()引发的问题,下拉框点击没有反应

    此段代码是对某块元素的移位:上移.下移.对比修改前后的两段代码: 修改前: //点击移位 function move(obj,posi){ var al=$(obj).parent('li').par ...

  9. JS异步操作之promise发送短信验证码.html

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta cont ...

  10. 大神js总结

    http://www.cnblogs.com/tylerdonet/p/5543813.html http://www.codesec.net/list/8/