🌐 网络与通信
| 库名称 | 核心特点 | 典型场景 |
|---|---|---|
| Retrofit | 类型安全的REST客户端,基于注解声明API,支持协程和RxJava。 | 网络请求首选,与RESTful API交互。 |
| OkHttp | 高性能HTTP客户端,支持HTTP/2、连接池和拦截器,常作为Retrofit底层。 | 精细控制网络请求,或作为Retrofit的底层引擎。 |
| Volley | Google官方出品,自动调度请求,适合高频但数据量小的场景。 | 轻量级网络请求,如频繁获取JSON或小图片。 |
🖼️ 图片与多媒体
| 库名称 | 核心特点 | 典型场景 |
|---|---|---|
| Glide | 功能强大,内存优化极佳,支持GIF/WebP,是Google推荐使用的库。 | 绝大多数图片加载场景,尤其在列表中表现优异。 |
| Coil | Kotlin优先,基于协程,API简洁,对Jetpack Compose支持友好。 | 纯Kotlin项目,或使用Compose构建UI的新项目。 |
| Picasso | Square出品,API极简,包体积小。 | 图片加载需求简单的轻量级项目。 |
| Fresco | Facebook出品,将图片存于Android堆外内存,减少OOM,但使用自定义View。 | 对内存管理有极致要求,或需兼容大量低端机型的应用。 |
🎬 动画领域
| 库名称 | 核心特点 | 典型场景 |
|---|---|---|
| PAG | 腾讯自研,高性能C++渲染引擎,支持AE全特性(粒子、3D等),文件体积小,解码快,支持动态替换素材。 | 直播礼物、视频编辑、复杂全屏特效等表现力要求高、性能敏感的场景。 |
| Lottie | Airbnb出品,社区生态庞大,基于JSON的矢量动画,使用最为广泛。 | 点赞、加载等轻量级UI动画,适合设计师与开发者协作顺畅的场景。 |
| SVGA | Bilibili开源的位图序列帧方案,兼容性好,实现简单。 | 中轻量级礼物动画,对表现力要求中等的场景。 |
🗄️ 数据存储与数据库
| 库名称 | 核心特点 | 典型场景 |
|---|---|---|
| Room | Google官方ORM库,基于SQLite,编译时验证SQL,与Jetpack组件深度集成。 | 本地结构化数据的默认选择,适合需要复杂查询的场景。 |
| GreenDAO | 高性能ORM库,速度优于大多数同类库,但配置相对复杂。 | 对数据库读写性能有较高要求,且能接受一定的配置复杂度。 |
| Realm | 移动端NoSQL数据库,对象直接存储,读写性能极高,支持跨平台。 | 对读写性能有极致要求,或需要iOS/Android数据模型复用的项目。 |
| DataStore | Jetpack组件,使用协程,是SharedPreferences的官方替代方案,支持键值对和结构化数据。 | 替代SharedPreferences存储简单配置。 |
💉 依赖注入 (DI)
| 库名称 | 核心特点 | 典型场景 |
|---|---|---|
| Hilt | Google基于Dagger封装的DI框架,与Jetpack组件无缝集成,但有一定学习曲线。 | 新项目或中大型项目的首选,能简化复杂的依赖管理。 |
| Koin | 纯Kotlin DSL实现的轻量级DI框架,无代码生成,学习成本低。 | 中小型项目或希望快速实现DI的场景。 |
🔄 异步处理与响应式编程
| 库名称 | 核心特点 | 典型场景 |
|---|---|---|
| Kotlin Coroutines & Flow | 官方推荐的异步编程方案,轻量级协程,Flow是协程中的响应式流。 | 新项目的异步处理首选,用于取代传统的回调或RxJava。 |
| RxJava / RxAndroid | 基于观察者模式的响应式编程库,操作符丰富,适合复杂事件流处理。 | 已有RxJava生态的老项目,或逻辑特别复杂的事件流场景。 |
🧩 UI组件与工具
| 库名称 | 核心特点 | 典型场景 |
|---|---|---|
| SmartRefreshLayout | 功能强大的下拉刷新框架,支持多种Header和Footer,可高度定制。 | 需要丰富下拉刷新和上拉加载体验的场景。 |
| MPAndroidChart | 功能最强大的Android图表库,支持几乎所有图表类型。 | 应用内需要展示数据图表。 |
| MagicIndicator | 可扩展性强的ViewPager指示器框架。 | 需要为ViewPager定制复杂的Tab指示器。 |
🛠️ 工具与调试
| 库名称 | 核心特点 | 典型场景 |
|---|---|---|
| Gson | Google出品的JSON序列化/反序列化库,使用广泛。 | JSON解析的常见选择。 |
| Moshi | Square出品,对Kotlin(特别是其空安全特性)支持更好。 | 纯Kotlin项目,希望更好地处理JSON和Kotlin空安全。 |
| Timber | 可扩展的日志API,抽象了日志实现,便于统一管理和切换。 | 需要灵活管理项目日志,能方便地在调试和生产环境间切换。 |
| Chucker | 可拦截并查看应用所有网络请求和响应的调试工具。 | 开发阶段调试网络接口,分析请求/响应数据。 |
🎯 其他常用分类
| 领域 | 代表库 | 说明 |
|---|---|---|
| 权限申请 | PermissionX, AndPermission | 简化Android 6.0+运行时权限的申请与处理流程。 |
| 事件总线 | EventBus | 简化组件间通信,通过发布/订阅模式解耦。 |
| 路由框架 | ARouter | 用于组件化开发中的页面跳转和模块间通信。 |
| JSON解析 | Gson, Moshi, Fastjson | Fastjson由阿里出品,以高性能著称。 |
| 屏幕适配 | AndroidAutoSize | 头条适配方案,通过修改density值实现不同屏幕的适配。 |
📝 日志框架对比与隐私安全警示
| 库 | 特点与定位 | 适用场景 |
|---|---|---|
| Timber | JakeWharton出品,极简的日志框架抽象层。本身不提供文件输出功能,但提供了一个可扩展的Tree体系,让你可以自由定制日志的输出位置(控制台、文件、云端)。 |
追求高度定制和灵活性的项目,开发者需要按需实现自己的日志处理逻辑。 |
| Logger |
功能完备、开箱即用。提供美观的控制台输出(支持JSON/XML格式化),并内置了将日志写入磁盘的DiskLogAdapter,使用简单。 |
中小型项目,希望快速集成一个功能齐全、能同时打印漂亮日志和保存文件的方案。 |
| XLog | 极其灵活、配置丰富。可以自定义边框、线程信息、调用栈深度等,并且对文件输出的文件名、备份、清理策略都提供了详细的配置接口。 | 对日志格式和文件管理有苛刻要求的大型项目,需要精细控制日志输出的方方面面。 |
| ALog |
高性能日志库,采用mmap内存映射技术实现“零拷贝”写入,相比传统I/O性能提升显著,且自带压缩加密功能,即使应用崩溃日志也不易丢失。 |
对日志写入性能要求极高,或需要加密存储敏感日志信息的场景。 |
💡 选型思路参考
- 关注官方动向:Google官方维护或推荐的库(如Retrofit, Glide, Room, Hilt等)通常是长期稳定且最优的选择。
- 技术栈匹配:如果项目是纯Kotlin+协程,优先选择Coil、Ktor Client、Koin或Hilt、DataStore、Flow等Kotlin优先的库,开发体验会更顺畅。
- 性能并非唯一:开发效率、文档完善度、社区活跃度同样重要。“Retrofit + Glide + Room”这套组合能覆盖大部分项目需求且久经考验。