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

相关文章

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应