(一百八十九)Android(安卓)Jetpack 学习(三)—— Android(安卓)KTX
参考https://developer.android.google.cn/kotlin/ktx.html#ktx
Android KTX
Android KTX 是一组 Kotlin 扩展程序,属于 Android Jetpack 系列。它优化了供 Kotlin 使用的 Jetpack 和 Android 平台 API。Android KTX 旨在让您利用 Kotlin 语言功能(例如扩展函数/属性、lambda、命名参数和参数默认值),以更简洁、更愉悦、更惯用的方式使用 Kotlin 进行 Android 开发。Android KTX 不会向现有的 Android API 添加任何新功能。
要详细了解 Android KTX,请观看我们的 DevBytes 视频。
使用入门
要开始使用 Android KTX,请将以下代码添加到项目的 build.gradle
文件中:
repositories { google() }
Android KTX 划分为不同的模块。每个模块都包含一个或多个软件包。
使用模块时,请在应用的 build.gradle
文件中为每个 Android KTX 工件添加一个依赖项。请记住在工件后面附上版本号。例如,如果您使用 core-ktx 模块,则完整的依赖项将如下所示:
dependencies { implementation 'androidx.core:core-ktx:1.0.0' }
模块
Android KTX 由以下 Maven 软件工件组成。要获取 API 参考文档,请点击特定软件包名称并查看扩展函数摘要。请注意,版本号可能会改变。要确保您使用的是最新版本,请查看 Google Maven 代码库。
模块(工件) | 版本 | 软件包 |
---|---|---|
androidx.core:core-ktx | 1.0.0 | 查看下面的所有核心软件包。 |
androidx.fragment:fragment-ktx | 1.0.0 | androidx.fragment.app |
androidx.palette:palette-ktx | 1.0.0 | androidx.palette.graphics |
androidx.sqlite:sqlite-ktx | 2.0.0 | androidx.sqlite.db |
androidx.collection:collection-ktx | 1.0.0 | androidx.collection |
androidx.lifecycle:lifecycle-viewmodel-ktx | 2.0.0 | androidx.lifecycle |
androidx.lifecycle:lifecycle-reactivestreams-ktx | 2.0.0 | androidx.lifecycle |
android.arch.navigation:navigation-common-ktx | 1.0.0-alpha06 | androidx.navigation |
android.arch.navigation:navigation-fragment-ktx | 1.0.0-alpha06 | androidx.navigation.fragment |
android.arch.navigation:navigation-runtime-ktx | 1.0.0-alpha06 | androidx.navigation |
android.arch.navigation:navigation-testing-ktx | 1.0.0-alpha06 | androidx.navigation.testing |
android.arch.navigation:navigation-ui-ktx | 1.0.0-alpha06 | androidx.navigation.ui |
android.arch.work:work-runtime-ktx | 1.0.0-alpha10 | androidx.work.ktx |
核心模块包括以下软件包:
- androidx.core.animation
- androidx.core.content
- androidx.core.graphics
- androidx.core.graphics.drawable
- androidx.core.net
- androidx.core.os
- androidx.core.preference
- androidx.core.text
- androidx.core.transition
- androidx.core.util
- androidx.core.view
- androidx.core.widget
这些软件包emmm怎么获取呢。。。
示例
Android KTX 用在 Sunflower 演示应用中。
以下示例演示了一些 Android KTX 扩展函数。它们按模块(工件)名称分组。有关扩展函数的完整列表,请查看完整的软件包参考文档。
使用kotlin+android ktx
androidx.core:core-ktx
Kotlin + Android KTX
sharedPreferences.edit { putBoolean("key", value) }
Kotlin + Android KTX
view.doOnPreDraw { actionToBeTriggered() }对比
androidx.core:core-ktx
Kotlin
sharedPreferences.edit() .putBoolean("key", value) .apply()
Kotlin
view.viewTreeObserver.addOnPreDrawListener( object : ViewTreeObserver.OnPreDrawListener { override fun onPreDraw(): Boolean { viewTreeObserver.removeOnPreDrawListener(this) actionToBeTriggered() return true } } )
androidx.sqlite:sqlite-ktx
Kotlin + Android KTX
db.transaction { // insert data }
Kotlin
db.beginTransaction() try { // insert data db.setTransactionSuccessful() } finally { db.endTransaction() }
androidx.fragment:fragment-ktx
Kotlin + Android KTX
supportFragmentManager.transaction(allowStateLoss = true) { replace(R.id.my_fragment_container, myFragment, FRAGMENT_TAG) }
Kotlin
supportFragmentManager .beginTransaction() .replace(R.id.my_fragment_container, myFragment, FRAGMENT_TAG) .commitAllowingStateLoss()
可以看到用Kotlin + Android KTX与Kotlin 相比省了很多所谓的样板代码
总结:
kotlin看起来很简略,kotlin+android ktx看起来更简略,可是学习的意义是加快开发么,但是目前手机源码好像还没怎么用到,学习的迫切性看起来不怎么强。
更多相关文章
- Android(安卓)Build 系统
- 【转】android编译系统的makefile文件Android.mk写法
- Android(安卓)实现简单的插件化模块化.
- Xamarin 2.0编译报错缺少Google Maps Library
- Android编译系统中的Android.bp、Blueprint与Soong
- Android(安卓)下拉框第三方控件 NiceSpinner
- Android(安卓)GPS架构分析
- Android(安卓)无线启动过程分析 无线启动过程分析
- android Camera模块分析