16 KiB
16 KiB
Android API概览
Android API(Application Programming Interface)是Android平台提供的编程接口集合,开发者可以使用这些API来构建Android应用。本文档提供Android API的全面概览。
目录
API分类
Android API按照功能和用途可以分为以下几大类:
1. 核心组件API
Android应用的四大核心组件及其相关API:
Activity API
- 用途:用户界面组件,代表应用中的一个屏幕
- 主要类:
Activity,AppCompatActivity - 核心方法:
onCreate(),onStart(),onResume(),onPause(),onStop(),onDestroy() - 相关文档:核心API - Activity
Service API
- 用途:后台服务组件,执行长时间运行的任务
- 主要类:
Service,IntentService,JobIntentService - 核心方法:
onCreate(),onStartCommand(),onBind(),onDestroy() - 相关文档:核心API - Service
BroadcastReceiver API
- 用途:广播接收器,接收系统或应用发送的广播消息
- 主要类:
BroadcastReceiver - 核心方法:
onReceive() - 相关文档:核心API - BroadcastReceiver
ContentProvider API
- 用途:内容提供者,在不同应用间共享数据
- 主要类:
ContentProvider,ContentResolver - 核心方法:
query(),insert(),update(),delete(),getType() - 相关文档:核心API - ContentProvider
2. UI组件API
View和ViewGroup
- 用途:构建用户界面的基础组件
- 主要类:
View,ViewGroup,TextView,Button,ImageView,RecyclerView - 包名:
android.view.*,android.widget.*
Fragment API
- 用途:模块化的UI片段
- 主要类:
Fragment,FragmentManager,FragmentTransaction - 核心方法:
onCreateView(),onViewCreated(),onActivityCreated() - 相关文档:核心API - Fragment
Material Design组件
- 用途:Material Design风格的UI组件
- 主要类:
MaterialButton,MaterialCardView,FloatingActionButton - 包名:
com.google.android.material.*
3. Jetpack API
Jetpack是Android官方提供的库集合,包含多个组件:
架构组件
- ViewModel:管理UI相关的数据
- LiveData:可观察的数据持有者
- Room:SQLite数据库抽象层
- WorkManager:后台任务管理
- Navigation:应用内导航
- 相关文档:Jetpack API
UI组件
- Jetpack Compose:声明式UI工具包
- ViewPager2:页面滑动组件
- 相关文档:Jetpack API
其他组件
- Data Binding:数据绑定库
- Lifecycle:生命周期感知组件
- Paging:分页加载数据
- 相关文档:Jetpack API
4. 系统服务API
系统服务
- ActivityManager:Activity管理服务
- WindowManager:窗口管理服务
- NotificationManager:通知管理服务
- LocationManager:位置管理服务
- TelephonyManager:电话管理服务
- 相关文档:系统API
系统功能
- 权限管理:运行时权限申请
- 文件系统:文件读写操作
- 网络通信:HTTP/HTTPS请求
- 传感器:设备传感器数据
- 相关文档:系统API
5. 数据存储API
SharedPreferences
- 用途:键值对数据存储
- 主要类:
SharedPreferences,SharedPreferences.Editor
SQLite数据库
- 用途:关系型数据库存储
- 主要类:
SQLiteDatabase,SQLiteOpenHelper - 推荐使用:Room(Jetpack组件)
文件存储
- 用途:文件读写操作
- 主要类:
File,FileInputStream,FileOutputStream
ContentProvider
- 用途:跨应用数据共享
- 相关文档:核心API - ContentProvider
6. 网络通信API
HTTP客户端
- HttpURLConnection:标准HTTP客户端
- OkHttp:第三方HTTP客户端(推荐)
- Retrofit:RESTful API客户端(推荐)
WebSocket
- 用途:实时双向通信
- 主要类:
WebSocket,WebSocketClient
7. 多媒体API
媒体播放
- MediaPlayer:音频/视频播放
- ExoPlayer:高级媒体播放器(推荐)
相机
- Camera API:相机操作(已废弃)
- CameraX:现代相机API(推荐)
图像处理
- Bitmap:位图操作
- Canvas:画布绘制
8. Intent和导航API
Intent API
- 用途:组件间通信和启动
- 主要类:
Intent,IntentFilter - 核心方法:
putExtra(),getExtra(),setAction(),setData() - 相关文档:核心API - Intent
导航
- Navigation Component:应用内导航(Jetpack)
- Deep Linking:深度链接
API版本
Android API按照Android版本进行版本控制,每个Android版本对应一个API级别(API Level)。
API级别说明
API级别是一个整数,唯一标识Android平台版本的框架API修订版。API级别用于:
- 指定应用支持的最低Android版本
- 指定应用目标编译的Android版本
- 判断API是否可用
Android版本与API级别对照表
| Android版本 | API级别 | 版本代号 | 发布时间 | 主要特性 |
|---|---|---|---|---|
| Android 15 | API 35 | Vanilla Ice Cream | 2024 | 部分媒体访问、通知权限增强 |
| Android 14 | API 34 | Upside Down Cake | 2023 | 部分媒体访问、通知权限 |
| Android 13 | API 33 | Tiramisu | 2022 | 通知权限、运行时权限细化 |
| Android 12L | API 32 | Snow Cone v2 | 2022 | 大屏设备优化 |
| Android 12 | API 31 | Snow Cone | 2021 | Material You、隐私面板 |
| Android 11 | API 30 | Red Velvet Cake | 2020 | 包可见性、分区存储 |
| Android 10 | API 29 | Quince Tart | 2019 | 分区存储、深色主题 |
| Android 9 | API 28 | Pie | 2018 | 自适应图标、通知渠道 |
| Android 8.1 | API 27 | Oreo | 2017 | 通知渠道、后台限制 |
| Android 8.0 | API 26 | Oreo | 2017 | 通知渠道、后台限制 |
| Android 7.1 | API 25 | Nougat | 2016 | 多窗口、通知增强 |
| Android 7.0 | API 24 | Nougat | 2016 | 多窗口、通知增强 |
| Android 6.0 | API 23 | Marshmallow | 2015 | 运行时权限、Doze模式 |
| Android 5.1 | API 22 | Lollipop | 2015 | Material Design |
| Android 5.0 | API 21 | Lollipop | 2014 | Material Design、ART运行时 |
版本兼容性
minSdkVersion
- 作用:指定应用支持的最低Android版本
- 设置:在
build.gradle中配置 - 示例:
minSdkVersion 21(支持Android 5.0及以上)
targetSdkVersion
- 作用:指定应用目标编译的Android版本
- 设置:在
build.gradle中配置 - 示例:
targetSdkVersion 34(目标Android 14)
compileSdkVersion
- 作用:指定编译时使用的SDK版本
- 设置:在
build.gradle中配置 - 示例:
compileSdkVersion 34(使用Android 14 SDK编译)
API版本检查
// 检查API级别
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// API 23 (Android 6.0) 及以上可用
// 例如:运行时权限
}
// 使用@RequiresApi注解
@RequiresApi(Build.VERSION_CODES.O)
private void useNotificationChannel() {
// 需要API 26 (Android 8.0) 及以上
}
版本特定API
不同Android版本引入了新的API和功能:
Android 6.0 (API 23)
- 运行时权限:
checkSelfPermission(),requestPermissions() - Doze模式:省电优化
Android 8.0 (API 26)
- 通知渠道:
NotificationChannel - 后台限制:后台服务限制
Android 10 (API 29)
- 分区存储:
Scoped Storage - 深色主题:系统级深色模式
Android 11 (API 30)
- 包可见性:
<queries>声明 - 分区存储:强制执行
Android 12 (API 31)
- Material You:动态颜色
- 隐私面板:权限使用透明化
Android 13 (API 33)
- 通知权限:运行时申请
- 运行时权限细化
Android 14 (API 34)
- 部分媒体访问:细化媒体权限
- 通知权限增强
API使用指南
1. 查找API文档
官方API参考
- 网址:https://developer.android.com/reference
- 内容:所有Android API的完整文档
- 搜索:可按类名、方法名搜索
Android Studio中的使用
- 快速文档:鼠标悬停在API上查看文档(Ctrl+Q / Cmd+J)
- 跳转到定义:Ctrl+点击 / Cmd+点击
- 查看使用示例:右键菜单选择"Find Usages"
2. 理解API文档结构
API文档通常包含以下部分:
类概述
- 类名:类的完整名称
- 包名:类所在的包
- 继承关系:类的继承层次
- 实现接口:类实现的接口
- 类描述:类的用途和功能说明
常量
- 常量列表:类中定义的常量
- 常量值:常量的具体值
- 常量说明:常量的用途
构造方法
- 构造方法列表:可用的构造方法
- 参数说明:构造方法的参数
- 使用示例:构造方法的使用示例
方法
- 方法签名:方法名、参数、返回值
- 方法描述:方法的功能说明
- 参数说明:每个参数的含义
- 返回值说明:返回值的含义
- 异常说明:可能抛出的异常
- 使用示例:方法的使用示例
相关API
- 相关类:相关的其他类
- 相关方法:相关的其他方法
3. API使用步骤
步骤1:导入包
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
步骤2:检查API可用性
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// 使用API 23及以上版本的功能
}
步骤3:调用API
// 创建Intent
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("key", "value");
// 启动Activity
startActivity(intent);
步骤4:处理异常
try {
// 使用可能抛出异常的API
File file = new File(path);
FileInputStream fis = new FileInputStream(file);
} catch (FileNotFoundException e) {
// 处理异常
e.printStackTrace();
}
4. 最佳实践
使用最新API
- 推荐:使用最新的稳定API版本
- 原因:新API通常性能更好、功能更强
- 注意:考虑向后兼容性
版本兼容性处理
// 使用Build.VERSION.SDK_INT检查版本
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// 使用Android 8.0及以上版本的API
NotificationChannel channel = new NotificationChannel(...);
} else {
// 使用旧版本API或替代方案
}
权限检查
// 使用API前检查权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
== PackageManager.PERMISSION_GRANTED) {
// 使用相机API
} else {
// 请求权限
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.CAMERA}, REQUEST_CODE);
}
空值检查
// 检查返回值是否为空
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
if (cursor != null) {
try {
// 使用cursor
while (cursor.moveToNext()) {
// 处理数据
}
} finally {
cursor.close();
}
}
资源释放
// 及时释放资源
@Override
protected void onDestroy() {
super.onDestroy();
if (receiver != null) {
unregisterReceiver(receiver);
}
if (cursor != null) {
cursor.close();
}
}
5. 常见问题
Q1: 如何知道某个API在哪个版本可用?
A: 查看API文档中的"Since"信息,或使用Build.VERSION.SDK_INT检查。
Q2: 如何处理API废弃?
A:
- 查看文档中的
@Deprecated注解 - 查看推荐的替代API
- 逐步迁移到新API
Q3: 如何查找API的使用示例?
A:
- 查看官方API文档中的示例代码
- 查看GitHub上的官方示例项目
- 使用Android Studio的"Find Usages"功能
Q4: 如何调试API调用问题?
A:
- 使用Log输出调试信息
- 使用Android Studio的调试器
- 查看异常堆栈信息
- 检查权限和配置
API参考链接
官方API文档
核心API文档
- Android API参考:https://developer.android.com/reference
- 核心组件API:https://developer.android.com/reference/android/app/package-summary
- UI组件API:https://developer.android.com/reference/android/widget/package-summary
Jetpack API文档
- Jetpack API参考:https://developer.android.com/jetpack/androidx/versions
- 架构组件:https://developer.android.com/topic/libraries/architecture
- Jetpack Compose:https://developer.android.com/jetpack/compose
系统API文档
- 系统服务API:https://developer.android.com/reference/android/app/package-summary
- 权限API:https://developer.android.com/reference/android/Manifest.permission
- 系统功能API:https://developer.android.com/reference/android/os/package-summary
版本特定文档
Android版本文档
- Android版本概览:https://developer.android.com/about/versions
- Android 14:https://developer.android.com/about/versions/14
- Android 13:https://developer.android.com/about/versions/13
- Android 12:https://developer.android.com/about/versions/12
- Android 11:https://developer.android.com/about/versions/11
- Android 10:https://developer.android.com/about/versions/10
API级别参考
- API级别表:https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels
- 版本代码常量:https://developer.android.com/reference/android/os/Build.VERSION_CODES
学习资源
官方指南
- Android开发者指南:https://developer.android.com/guide
- API使用指南:https://developer.android.com/guide/topics/manifest
- 最佳实践:https://developer.android.com/topic/performance/best-practices
代码示例
- 官方示例项目:https://github.com/android
- 代码实验室:https://developer.android.com/codelabs
- 架构示例:https://github.com/android/architecture-samples
视频教程
- Android Developers YouTube:https://www.youtube.com/user/androiddevelopers
- Google I/O:https://io.google/
- Android Dev Summit:https://developer.android.com/dev-summit
工具和资源
开发工具
- Android Studio:https://developer.android.com/studio
- SDK管理器:https://developer.android.com/studio/intro/update
- 命令行工具:https://developer.android.com/studio/command-line
社区资源
- Stack Overflow:https://stackoverflow.com/questions/tagged/android
- Reddit:https://www.reddit.com/r/androiddev/
- 官方博客:https://android-developers.googleblog.com/
快速参考
常用API快速链接
- Activity:https://developer.android.com/reference/android/app/Activity
- Service:https://developer.android.com/reference/android/app/Service
- BroadcastReceiver:https://developer.android.com/reference/android/content/BroadcastReceiver
- ContentProvider:https://developer.android.com/reference/android/content/ContentProvider
- Fragment:https://developer.android.com/reference/androidx/fragment/app/Fragment
- Intent:https://developer.android.com/reference/android/content/Intent
本地文档
- 核心API - Activity、Service、BroadcastReceiver、ContentProvider、Fragment、Intent
- Jetpack API - Jetpack组件API
- 系统API - 系统服务和功能API
总结
Android API提供了丰富的功能,帮助开发者构建功能强大的Android应用。使用API时需要注意:
- 版本兼容性:检查API的最低支持版本
- 权限管理:使用需要权限的API前先申请权限
- 资源管理:及时释放资源,避免内存泄漏
- 异常处理:正确处理可能出现的异常
- 最佳实践:遵循官方推荐的最佳实践
建议:
- 定期查看官方API文档获取最新信息
- 使用Android Studio的代码提示和文档功能
- 参考官方示例代码学习API使用
- 关注API的废弃和替代方案
最后更新:2024年