Androidsdk版本以及兼容性问题
Android:minSdkVersion —— 此属性决定你的应⽤能兼容的最低的系统版本,⼀盘情况是必须设置此属性。
android:targetSdkVersion —— 此属性说明你当前的应⽤是针对某⼀个系统版本开发设计的,也就是说在这个系统版本上运⾏是没有任何问题的。对于⼿机或其他终端设备会根据此属性值,决定是否显⽰⼀些特性和效果。当然对于开发者最直接的影android:maxSdkVersion —— 此属性是决定你的应⽤能⽀持的版本最⾼是多少,超过此版本的系统将不能使⽤你的应⽤。
1、关于sdk向下兼容,意思是⾼版本兼容低版本,使⽤低版本sdk的应⽤可以正常运⾏在⾼版本sdk的⼿机上,⽽⾼版本的sdk应⽤不能运⾏在低版本的⼿机上?
2、那使⽤⾼版本的sdk开发的应⽤都是如何正常运⾏在低版本的⼿机上的呢?
1)在程序中判断sdk版本,然后写不同代码。(见下三)
2)在应⽤项⽬中导⼊support-v4或v7包,使⽤新版本sdk特性。(见下四)
三、为了应⽤APP有更好的兼容性,咱们可以利⽤⾼版本的SDK开发应⽤,并在程序运⾏时(Runtime)
对应⽤所运⾏的平台判断,旧平台使⽤旧的API,⽽新平台可使⽤新的API,这样可以较好的提⾼软件兼容性。参考:blog.csdn/leich 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
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版本.不过也并⾮万能的,还是会受限制.android软件
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及更⾼版本的,⼀般我们都不常⽤,平板开发中能⽤到。