android 兼容API的检查

2024-09-06 08:08
文章标签 android api 检查 兼容

本文主要是介绍android 兼容API的检查,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

读之前可以了解一下api levels的知识:
Android中文翻译组的:Android开发者指南(10) —— Android API Levels



一,使用高版本API要注意的问题


在项目开发中:由于经验和其他条件的制约,如没有查看API出现的版本,对过时API没有作兼容等等。

可能出现下面的问题:


当你的代码使用一个高版本的API

应用运行于  低于API能够使用的版本手机 时,应用会闪退。


下面是一个例子:


如:

View的

public void setBackground (Drawable background)
Added in  API level 16

Set the background to a given Drawable, or remove the background. If the background has padding, this View's padding is set to the background's padding. However, when a background is removed, this View's padding isn't touched. If setting the padding is desired, please use setPadding(int, int, int, int).

Parameters
background The Drawable to use as the background, or null to remove the background
出现在API16

对应的过时方法是:

public void setBackgroundDrawable (Drawable background)
Added in  API level 1

This method was deprecated in API level 16.
use setBackground(Drawable) instead

安装在低于API16的手机上时,在应用调用这个API相关的功能时,会闪退。

下面是出现的条件,要同时满足:


1.仅仅使用setBackground (Drawable background),没有对API版本的兼容处理

2.项目配置的最低版本小于16(如果>=16,应用不能安装在低于API16的手机上)


二,发现使用高版本API的简单方法


1.修改AndroidManifest.xml中:
 
<use-sdk android:minSdkVersion="10" />
 
不要设置android:targetSdkVersion

 android:minSdkVersion="10":其中10是API兼容的最低版本

 
2.修改项目的SDK版本为低版本(android.jar的版本) 


就可以看到错误的地方(使用了高于SDK版本的API的位置)


注意:一般,只要使用第2点的方法,就可以发现是否用了高版本的API。

如果第2点,不能发现,请同时使用上面的2个方法

如果你使用上面的方法,项目中并没有报错,说明你的项目没有使用高版本API(反射除外)。


3.兼容API方法

1.使用API时,要看一下,API要求的sdk版本

(如果,觉得麻烦,就在写完代码后,用上面的方法,查看是否使用了过高版本API)


注意点:当出现过时的api时,要注意compatiability(兼容性) 
用Build.VERSION.SDK_INT来判断使用新的api和旧的api

(旧的和新的都要使用,或直接使用过时的API)


 对于一些过时的API,一般都有相应的高版本的API来替代,性能可能更好。

可以根据不同的手机版本,来使用相应的API

如:

if(Build.VERSION.SDK_INT > 15)
{

   //使用新的API

setBackground (Drawable background)

}else{

   //使用旧的API

setBackgroundDrawable (Drawable background)

}


有时,高版本的API对应的低版本API,并不好找

可以尝试:

1.查看高版本API的源码,内部是怎么实现,可能内部就是使用的低版本的API,明白实现的机制,自己来实现。.

2. 百度 ,google(google最好用英文来搜索)


如果有错误的地方,请提出,谢谢。



转载自: http://blog.csdn.net/yangqingqo/article/details/37054585


这篇关于android 兼容API的检查的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141474

相关文章

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

使用Go调用第三方API的方法详解

《使用Go调用第三方API的方法详解》在现代应用开发中,调用第三方API是非常常见的场景,比如获取天气预报、翻译文本、发送短信等,Go作为一门高效并发的编程语言,拥有强大的标准库和丰富的第三方库,可以... 目录引言一、准备工作二、案例1:调用天气查询 API1. 注册并获取 API Key2. 代码实现3

MySQL使用EXISTS检查记录是否存在的详细过程

《MySQL使用EXISTS检查记录是否存在的详细过程》EXISTS是SQL中用于检查子查询是否返回至少一条记录的运算符,它通常用于测试是否存在满足特定条件的记录,从而在主查询中进行相应操作,本文给大... 目录基本语法示例数据库和表结构1. 使用 EXISTS 在 SELECT 语句中2. 使用 EXIS

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按