参考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看起来更简略,可是学习的意义是加快开发么,但是目前手机源码好像还没怎么用到,学习的迫切性看起来不怎么强。

 

 

更多相关文章

  1. Android(安卓)Build 系统
  2. 【转】android编译系统的makefile文件Android.mk写法
  3. Android(安卓)实现简单的插件化模块化.
  4. Xamarin 2.0编译报错缺少Google Maps Library
  5. Android编译系统中的Android.bp、Blueprint与Soong
  6. Android(安卓)下拉框第三方控件 NiceSpinner
  7. Android(安卓)GPS架构分析
  8. Android(安卓)无线启动过程分析 无线启动过程分析
  9. android Camera模块分析

随机推荐

  1. 0701作业markdown常用语法的使用和演示
  2. Markdown&emmet的基础语法
  3. 0701 Markdown语法/emmet语法
  4. MarkDown常用语法、Emmet常用语法
  5. mackdown语法练习
  6. markdown使用和emmet语法
  7. markdown语法
  8. markdown的常用语法
  9. markdown常用语法 ,emmet常用语法
  10. 跟着大牛学PHP--Markdown语法基础