一、jetpack組件有哪些
Android Jetpack是一個集成Android應用程序組件的一站式解決方案。它使開發人員能夠專註於他們的應用程序的真正創新部分,而不會受到Android平台特定的限制。Jetpack組件可分為四個類別:
- 架構組件(Architecture Components)
- UI組件(UI Components)
- 行為組件(Behavior Components)
- 基礎組件(Foundation Components)
架構組件包括Room, LiveData, ViewModel和Data Binding。UI組件包括RecyclerView、Paging、Navigation等等。行為組件包括WorkManager和Notifications。基礎組件包括AppCompat、Multidex、Test、安全等等。
二、jetpack常用組件
1. Room
Room 是一個 SQLite 對象映射庫,讓您能夠在應用中使用資料庫,同時充分利用 LiveData、ViewModel 和協程等現代化庫。
@Entity
data class User(
@PrimaryKey val uid: Int,
@ColumnInfo(name = "first_name") val firstName: String?,
@ColumnInfo(name = "last_name") val lastName: String?
)
2. LiveData
LiveData是一個生命周期感知的可觀察數據存儲器類,可幫助您構建響應式,健壯和可測試的界面。LiveData經常與ViewModel一起使用,使數據更新後可以自動更新UI。
val mutableLiveData = MutableLiveData("Hello World")
mutableLiveData.observe(this, Observer { s -> text_view.text = s })
3. ViewModel
ViewModel是一個專門為UI層開發的類,通過保存數據的方式,解決了UI層重建,數據丟失的問題。ViewModel可以確保當配置更改、活動終止並重新創建時,數據會立即恢復。
class MyViewModel : ViewModel() {
private val users: MutableLiveData<List> by lazy {
MutableLiveData<List>().also {
loadUsers()
}
}
fun getUsers(): LiveData<List> {
return users
}
private fun loadUsers() {
// Do an asynchronous operation to fetch users.
}
}
4. Data Binding
數據綁定庫(Data Binding Library)可以讓您以聲明方式將可觀察對象綁定到界面元素。它的出現,讓每一個具有一定業務邏輯的界面都可以得到簡化,以減少代碼的編寫以及針對Eclipse, ADT 和 Android Studio 等不同工具,提供了最方便的開發環境的支持工具。
三、jetpack組件庫
Jetpack還有一些組件庫,比如Hilt, WorkManager, CameraX和Compose等等。
1. Hilt
Hilt是Android的依賴注入庫,用於定義應用程序中的類之間的依賴關係。它簡化了和Dagger2一樣的依賴注入過程,並簡化了注入實例的進程。
@InstallIn(SingletonComponent::class)
@Module
class MyModule {
@Provides
fun provideFoo(): Foo = Foo()
}
class Foo @Inject constructor()
2. WorkManager
WorkManager是一個API,它讓您能夠安排後台任務,即使應用已經退出或設備已經重啟。有了WorkManager,您可以針對應用使用情況定義靈活且輕量化的任務,並確保在設備單獨的線程上以可靠、一致的方式運行。
val uploadWorkRequest = OneTimeWorkRequestBuilder().build()
WorkManager
.getInstance(context)
.enqueue(uploadWorkRequest)
3. CameraX
CameraX是一組相機API,可讓您輕鬆訪問設備的攝像頭。它有著簡單易用的API,便於開發者使用。CameraX 支持多種設備,版本兼容,可讀性高。
val preview = Preview.Builder().build()
val analysisUseCase = ImageAnalysis.Builder().build()
val imageCapture = ImageCapture.Builder()
.setTargetRotation(previewView.display.rotation)
.build()
四、jetpack組件一共幾個
到目前為止,Jetpack包含80多個庫的組件。每個庫都是專為 Android 開發而設計的,涵蓋了各種開發過程中的各個方面。
五、jetpack組件支持mvvm架構
Jetpack設計之初便考慮到了MVVM框架,為了更好的實現MVVM架構,Jetpack中提供了ViewModel和LiveData這兩個主要組件。
六、android jetpack組件
Jetpack是Android支持庫的一部分,但和Androidx不同的是,Jetpack是為解決Android應用開發中常見的問題而設計的。Jetpack包含一組庫,涵蓋了Android應用程序開發過程中的各個方面。
七、jetpackui框架
Jetpack UI框架是Jetpack中UI類組件的集合,包括了一些高擴展的UI組件庫,比如Navigation,ViewPager2等等。
1. Navigation
Navigation是一個用於應用程序中不同屏幕之間導航的庫,處理了通用的Android導航困境。與傳統的Intent方式不同,Navigation組件將導航結構更好地組織在一個目標、動作和導航圖中。
2. ViewPager2
ViewPager2是以前ViewPager的升級版,有著更好的性能和便利性,特別是在視圖重新生成方面。和原來不同的是,ViewPager2使用RecyclerView作為背後的實現,使得通過RecyclerView.Adapter和RecyclerView.LayoutManager對它的控制更加透明。
class MyAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
private val colors: Array = fragment.resources.getIntArray(R.array.colors).toTypedArray()
override fun getItemCount(): Int = colors.size
override fun createFragment(position: Int): Fragment =
ColorFragment.newInstance(colors[position])
}
3. Compose
Jetpack Compose是一套全新的UI工具包,通過預覽何時將UI呈現到設備上的互動式實時預覽來簡化原生Android UI開發。與傳統的編程方式(如XML布局和Kotlin代碼)不同,Compose是一種聲明式的方式。
@Composable
fun MyApp() {
MaterialTheme {
Column {
Text("Hello")
Text("World")
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/232340.html