Android的支持库整理

Android 支持库(Support Libraries)是一个集合,包含了多个不同的库,每个库都支持特定的 Android 版本和功能。随着时间的发展和技术的进步,这些库也在不断演变。以下是 Android 支持库的主要分类及其用途:

  1. Compatibility Libraries (兼容性库)

    • v4 (support-v4):提供了核心兼容性功能,如 Fragment、ViewPager 等,使得开发者可以在低版本 Android 上使用较新的 API 功能。
    • v7 (appcompat-v7, recyclerview-v7, cardview-v7, 等):提供了更高级的 UI 组件和行为,如 Material Design 组件(Toolbar、CardView)、RecyclerView 等。
  2. Material Components Library (材料组件库)

    • material (material-components):包含了 Material Design 组件,如 BottomNavigationView、FloatingActionButton 等。
  3. Jetpack Libraries (Jetpack 库)

    • Lifecycle (lifecycle):用于管理应用的生命周期,包括 ViewModel、LiveData 等。
    • Navigation (navigation):用于实现应用内的导航逻辑。
    • Paging (paging):用于高效加载和显示大量数据。
    • Room (room):提供了持久层解决方案,包括 SQLite 数据库的封装。
    • Data Binding (databinding):允许在布局文件中绑定数据源。
    • WorkManager (workmanager):用于执行后台任务。
    • Hilt (hilt):提供了依赖注入解决方案。
    • ViewModel (viewmodel):用于存储 UI 相关数据。
    • Fragment (fragment):提供了更灵活的 Fragment 管理。
    • Recyclerview (recyclerview):用于高效滚动列表。
    • CardView (cardview):提供了卡片式视图。
    • ConstraintLayout (constraintlayout):提供了强大的布局约束。
    • Media3 (media3):提供了媒体播放功能。
    • CameraX (camerax):提供了相机 API。
    • Dagger (dagger):提供了依赖注入框架。
    • Room Persistence Library (room-persistence-library):提供了 SQLite 数据库封装。
    • Paging Library (paging-library):提供了分页加载数据的能力。
    • Navigation Component (navigation-component):用于处理应用内的导航逻辑。
    • Security Component (security-component):提供了加密和安全相关功能。
  4. Testing Libraries (测试库)

    • Espresso (espresso):用于 UI 测试。
    • JUnit (junit):用于单元测试。
    • Mockito (mockito):用于模拟对象。
  5. Other Libraries (其他库)

    • Gson (gson):用于 JSON 序列化和反序列化。
    • Retrofit (retrofit):用于网络请求。
    • OkHttp (okhttp):提供了 HTTP 客户端。
    • Glide (glide):用于图片加载和缓存。
    • Picasso (picasso):用于图片加载和缓存。
    • ButterKnife (butterknife):提供了视图绑定。

请注意,随着 AndroidX 的引入,这些库中的许多已经被迁移到 AndroidX 命名空间下,并且得到了持续的更新和支持。例如,v4v7 支持库的功能现在都被包含在 AndroidX 中。因此,如果你正在开发新项目或更新现有项目,应该使用 AndroidX 的库。

以上列出的库并非全部,但涵盖了 Android 开发中最常用的库。随着时间的推移,可能会有新的库加入,而旧的库也可能会被淘汰。Google 会持续更新这些库以提供更好的支持和新功能。