android版本兼容,高版本低版本兼容性-[Android_YangKe]

本文探讨了在Android开发中如何处理版本兼容性问题,包括指定最小和目标API级别,运行时检查系统版本,以及使用不同的风格和样式。建议在AndroidManifest.xml中设置minSdkVersion和targetSdkVersion,并利用Build类获取运行版本。同时,介绍了如何通过条件判断代码和主题应用确保跨版本兼容性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

 

在Android系统中版本兼容性比较差,不经过特殊处理 同一个APP很难保证在 各个版本间正常运行。对于有丰富编程经验的开发者来说,现在做出一个产品可能会很容易,技术也游刃有余,但是考虑到兼容性及适配我相信很多开发者还是很头疼的,所以今天在这里说一下我常用的解决方法,大家共同进步  也希望朋友们给我点建议及错误提醒,我相信通过不断的学习和努力,自己会像夏天里的竹子一样不仅长速快 一节仍比一节硬实(好的质量)--->程序员思维就是没有Bug      O(∩_∩)O~

 

 

 

官方原文--->特此声明需要翻墙---> http://developer.android.com/training/basics/supporting-devices/platforms.html

 

新的Android版本会为我们的app提供更灵活的API,但我们的app仍应支持旧版本的Android,直到更多的设备升级到新版本为止。这里将展示如何利用新的API同时仍支持旧版本Android。

 

 

 

 

  • *:Platform Versions 的控制面板会定期更新,通过统计访问Google Play Store的设备数量,来显示运行每个版本的安卓设备的分布。一般情况下,在更新app至最新Android版本时,我们最好先保证新版的app可以支持90%的设备使用。

 

* Note:为了能在几个Android版本中都能提供最好的特性和功能,应该在我们的app中使用 Android Support Library,它能使我*们的app能在旧平台上使用最近的几个平台的API。

 

 

 

 

**:指定最小和目标API级别

AndroidManifest.xml 文件描述了我们的程序可以支持哪种版本的设备.通过<uses-sdk>标签 使用minSdkVersion 、targetSdkVersion 元素(minSdkVersion表示较低版本,targetSdkVersion表示最高支持版本)。

For example :

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
    ...
</manifest>

 

 

 

随着新版本Android的发布,一些风格和行为可能会改变,为了能使app能利用这些变化,而且能适配不同风格的用户的设备,我们应该将targetSdkVersion的值尽量的设置与最新可用的Android版本匹配。

 


 

 

***:运行时检查系统版本

Android提供了一个独特的代码构建常量类Build为每个平台版本。通过它可以获得我们当前运行程序的版本号,使用它在您的应用程序构建条件,确保同一个APP可以在多版本系统上运行。

 

在我们自己开发应用过程中,常常使用如下的代码形式判断运行新API还是旧的API:

<span style="white-space:pre">											</span>// HONEYCOMB 代表 android 版本号的一个常量
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)    
    {	    
            // 包含新API的代码块
    }
    else
    {
            // 包含旧的API的代码块
    }

 

 

 

 

* Note:当解析XML资源时,Android会忽略当前设备不支持的XML属性。所以我们可以安全地使用较新版本的XML属性,而不 

* 需要担心旧版本Android遇到这些代码时会崩溃。例如如果我们设置targetSdkVersion="11",app会在Android 3.0或更高时默

* 认包含ActionBar。然后添加menu items到action bar时,我们需要在自己的menu XML资源中设置android:showAsAction="if     

* Room"。在跨版本的XML文件中这么做是安全的,因为旧版本的Android会简单地忽略showAsAction属性(就是这样,你并不需

* 要用到res/menu-v11/中单独版本的文件)。

 

 

 

 

 

 

 

****:使用不同的风格和样式为主题

 

使activity看起来像对话框:

		<activity android:theme="@android:style/Theme.Dialog">

使activity有一个透明背景:

		<activity android:theme="@android:style/Theme.Translucent">

/res/values/styles.xml中自定义主题:

		<activity android:theme="@style/CustomTheme">

统一整个 app 应用主题 我们可以在 AndroidManifest.xml 中添加android:theme属性:

		<application android:theme="@style/****.Theme">

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值