1. 基础组件 (Foundation)
1.1 AppCompat
-
作用:提供向后兼容的 Material Design 界面支持
-
典型使用:
kotlin// 使用 AppCompatActivity 替代常规 Activity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } }
1.2 Android KTX
-
作用 :为 Android 框架提供 Kotlin 扩展函数
-
示例:
kotlin// 简化 SharedPreferences 操作 val sharedPref = getSharedPreferences("my_prefs", Context.MODE_PRIVATE) sharedPref.edit { putString("key", "value") }
2. 架构组件 (Architecture)
2.1 ViewModel
-
作用:管理界面相关数据,处理配置变更
-
典型使用:
kotlinclass MyViewModel : ViewModel() { val liveData = MutableLiveData<String>() fun fetchData() { liveData.value = "New Data" } } // Activity/Fragment 中 private val viewModel by viewModels<MyViewModel>()
2.2 LiveData
-
作用:可观察的数据持有者,感知生命周期
-
示例:
kotlinviewModel.liveData.observe(this) { data -> textView.text = data }
2.3 Room
-
作用:SQLite 数据库抽象层
-
典型实现:
kotlin@Entity data class User( @PrimaryKey val uid: Int, @ColumnInfo val name: String ) @Dao interface UserDao { @Query("SELECT * FROM user") fun getAll(): LiveData<List<User>> @Insert fun insertAll(vararg users: User) } @Database(entities = [User::class], version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun userDao(): UserDao }
2.4 WorkManager
-
作用:管理后台任务
-
示例:
kotlinclass MyWorker(context: Context, params: WorkerParameters) : Worker(context, params) { override fun doWork(): Result { // 执行后台任务 return Result.success() } } // 安排工作 val workRequest = OneTimeWorkRequestBuilder<MyWorker>().build() WorkManager.getInstance(context).enqueue(workRequest)
3. 行为组件 (Behavior)
3.1 Navigation
-
作用:简化应用内导航
-
典型使用:
xml<!-- nav_graph.xml --> <navigation> <fragment android:id="@+id/firstFragment" android:name="com.example.FirstFragment" android:label="First"> <action android:id="@+id/action_to_second" app:destination="@id/secondFragment" /> </fragment> <fragment android:id="@+id/secondFragment" ... /> </navigation>
kotlin// 导航操作 findNavController().navigate(R.id.action_to_second)
3.2 Paging
-
作用:分页加载数据
-
典型实现:
kotlinclass MyPagingSource : PagingSource<Int, Item>() { override suspend fun load(params: LoadParams<Int>): LoadResult<Int, Item> { val page = params.key ?: 1 val items = repository.getItems(page) return LoadResult.Page( data = items, prevKey = if (page == 1) null else page - 1, nextKey = page + 1 ) } }
4. UI 组件
4.1 Compose
-
作用:声明式 UI 工具包
-
简单示例:
kotlin@Composable fun Greeting(name: String) { Text(text = "Hello $name!") }
4.2 Data Binding
-
作用:将 UI 组件绑定到数据源
-
示例:
xml<layout> <data> <variable name="user" type="com.example.User"/> </data> <TextView android:text="@{user.name}" ... /> </layout>
5. 其他重要组件
5.1 Hilt
-
作用:依赖注入库
-
典型使用:
kotlin@HiltAndroidApp class MyApplication : Application() @AndroidEntryPoint class MainActivity : AppCompatActivity() { @Inject lateinit var analytics: AnalyticsAdapter }
5.2 CameraX
-
作用:简化相机开发
-
基本实现:
kotlinval preview = Preview.Builder().build() val imageCapture = ImageCapture.Builder().build() CameraSelector.Builder() .requireLensFacing(CameraSelector.LENS_FACING_BACK) .build().also { selector -> CameraX.bindToLifecycle(this, selector, preview, imageCapture) }
Jetpack 组件选择建议
- 数据持久化:Room + Paging
- UI 开发:Compose + ViewModel + LiveData
- 后台任务:WorkManager
- 导航:Navigation 组件
- 依赖管理:Hilt
- 相机功能:CameraX
最新版本依赖示例 (2024年)
gradle
// build.gradle 常用依赖
dependencies {
// ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2"
// LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.2"
// Room
implementation "androidx.room:room-runtime:2.6.0"
kapt "androidx.room:room-compiler:2.6.0"
// Compose
implementation "androidx.compose.ui:ui:1.5.4"
implementation "androidx.compose.material:material:1.5.4"
// Navigation
implementation "androidx.navigation:navigation-compose:2.7.5"
// Hilt
implementation "com.google.dagger:hilt-android:2.48.1"
kapt "com.google.dagger:hilt-compiler:2.48.1"
// WorkManager
implementation "androidx.work:work-runtime-ktx:2.8.1"
}