参考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 实现简单的插件化模块化.
  2. Android 基于4G模块 GPS定位
  3. android Camera模块分析
  4. 检测android机器是否有GPS模块
  5. Android Phone模块 三
  6. Android 编译C模块
  7. Android 应用的自动升级、更新模块的实现
  8. Android 开发使用 Gradle 配置构建库模块的工作方式

随机推荐

  1. 【初用Android Studio】快捷键之代码提示
  2. Jollen 的 Android 教學,#17: 樣式設計(St
  3. Android(安卓)开发艺术探索笔记之八 --
  4. <application android:debuggable="false
  5. 单板机上Android通过Modbus RTU操控外设
  6. android的selector-背景选择器
  7. 被谷歌控制的 Android(安卓)不是好 Andro
  8. 史上最全的Java&Android面试题搜集整理
  9. Android 模块通信—— EventBus
  10. android中scaleType详解