本篇文章主要讲的是,kotlin 协程在 ktx 上的扩展 lifecycle 扩展 对于 lifecycle 的扩展,已经在 以前的文章中讲过了 主要的依赖 implementation "androidx.lifecycle...:lifecycle-runtime-ktx:2.2.0" viewModel 扩展 对于 viewModel 的扩展,已经在 以前的文章中讲过了 主要的依赖 implementation 'androidx.lifecycle...:lifecycle-viewmodel-ktx:2.3.1' liveData 扩展 主要的依赖 implementation 'androidx.lifecycle:lifecycle-livedata-ktx
属性覆盖基本方式 II . 属性覆盖的四种情况 III . 常量 ( val ) / 变量 ( var ) 属性覆盖 IV . 子类初始化时考虑覆盖属性的使用 I ....属性覆盖 : 属性覆盖与方法覆盖的方式基本相同 ; ① 属性覆盖前提 : 在父类中使用 open 修饰的属性 , 可以在子类中被覆盖 ; ② 属性覆盖方式 : 在子类中使用 override 修饰被覆盖的属性...属性覆盖的四种情况 ---- 1 . 子类的覆盖属性的要求 : 子类中覆盖的属性有特定的要求 , 不能是延迟加载属性 , 下面列举几种常见的方式 ; 2 ...., 父类的方法可以修改添加 , 但是不能删除 ; IV ....初始化过程中的覆盖属性 : 这里加入对覆盖属性的考虑 , 父类初始化过程中 , 子类覆盖的属性还没有初始化 , 父类的 open 属性可能在子类初始化过程中被修改 ; 5 .
Day 7:解构声明 Android KTX 使用解构来分配颜色的组件值。您可以在您的类中使用解构,或者扩展现有的类来添加解构。...Day 14:在没有迭代器的情况下迭代类型 迭代器用在了有趣的地方!Android KTX 将迭代器添加到 viewGroup 和 sparseArray。...第三周学习小结: 本周主要讨论一些基本的 Kotlin 特性,如运算符重载,内联,运算符重载,懒加载,以及非常强大的 inLine,并展示了使用 Android KTX 处理内容值,捆绑包和回调时如何编写更简洁的代码...Day 26:延期方法 没有更多的 Util 类。通过使用扩展功能扩展类的功能。把您要扩展的类的名字放在您添加的方法的名字前面。...Day 29:更简单的 Spans 功能强大但很难使用 - 这就是 Spans API 感觉的文本样式。 Android KTX 为一些最常见的 span 添加了扩展功能,并使 API 更易于使用。
Kotlin 能够扩展一个类的新功能而无需继承该类或者使用像装饰者这样的设计模式。 这通过叫做 扩展 的特殊声明完成。 例如,你可以为一个你不能修改的、来自第三方库中的类编写一个新的函数。...这个新增的函数就像那个原始类本来就有的函数一样,可以用普通的方法调用。 这种机制称为 扩展函数 。此外,也有 扩展属性 , 允许你为一个已经存在的类添加新的属性。...在 Android Studio 中,我们可以查看 kotlin 文件的字节码,然后再 Decompile 为 Java 代码。上面我们为 Person 扩展函数转为Java代码后如下。...由于扩展没有实际的将成员插入类中,因此对扩展属性来说幕后字段是无效的。这就是为什么扩展属性不能有初始化器。他们的行为只能由显式提供的 getters/setters 定义。...总结 在 Java 中,我们要扩展一个类时,常常是继承该类或者用装饰者模式类似的设计模式来实现,Kotlin 扩展函数和扩展属性为这种需求提供了一种新思路,并且也可以作为 Utils 类的另外一种选择
本文会介绍目前可用的 KTX API 并深入其中去分析它们是如何实现的。...-ktx 软件包会包含 Kotlin 的扩展: // 获取最新 Lifecycle 库的版本信息 // https://developer.android.google.cn/jetpack/androidx...Android 平台 API 的 Kotlin 扩展,导入 core-ktx 软件包即可。...core-ktx 为来自 Android 平台的 API 提供了常用的 Kotlin 功能。.../ktx 一旦您开始使用 -ktx 扩展,您的代码将会从简洁、易读和 Kotlin 习惯用语的特性中受益。
本文会介绍目前可用的 KTX API 并深入其中去分析它们是如何实现的。 如果您比较喜欢观看视频,可以 点击这里。...可发现性 为了提高 ktx 功能的可发现性,作为最佳实践,当某个 ktx 库可用时,总是导入并使用它。由于 -ktx 传递依赖非 ktx 软件包,您不需要添加其他软件包。...-ktx 软件包会包含 Kotlin 的扩展: // 获取最新 Lifecycle 库的版本信息 // https://developer.android.google.cn/jetpack/androidx...Android 平台 API 的 Kotlin 扩展,导入 core-ktx 软件包即可。...平台 API — core-ktx core-ktx 为来自 Android 平台的 API 提供了常用的 Kotlin 功能。
,放到即将添加的函数前面。...类添加了自己的方法。...不管String类是用Java、Kotlin,或者像Groovy的其他JVM语言编写的,只要它会编译为Java类,就可以为这个类添加自己的扩展。 在这个扩展函数中,可以像其他成员函数一样用this。...3.3.4不可重写的扩展函数 扩展函数并不是类的一部分,它是声明在类之外的。扩展函数并不存在重写,因为Kotlin会把它们当做静态函数对待。...3.3.5扩展属性 val String.lastChar: Char get() = get(this.length - 1) 和扩展函数一样,扩展属性也像接收者的一个普通成员属性一样。
前天,Google 发布了 Android KTX 预览版,Android KTX 是一组扩展程序,它能使 Android 上的 Kotlin 代码更简洁,从而提高开发者的编程体验。...那么,相比于通用的Kotlin,Android KTX究竟做了哪些方面的优化呢,下面通过一些示例来简单对比下。...示例 字符串转换为 URI 通常情况下为 Uri.parse(uriString),但是 Android KTX 会为字符串添加一个扩展函数,使字符串更加自然地转换为 URI。...Android集成 要在你的 Android Kotlin 项目中开始使用 Android KTX,需要在应用模块 build.gradle的脚本文件中添加以下配置脚本: repositories {...的自动完成列表中,选择扩展程序会将必要的导入语句添加到你的文件中。
在本次开发者大会的首日,会议将从Google Play、Android即时应用、Android KTX,Android Kotlin开发和入门,以及 Android、Android apps for Chrome...本文就Android KTX相关的知识做相关的讲解,可以看到Google对Kotlin的重视程度也越来越高。...URI 通常情况下为 Uri.parse(uriString),但是 Android KTX 会为字符串添加一个扩展函数,使字符串更加自然地转换为 URI。...build.gradle的脚本文件中添加以下配置脚本。...在上面的Android KTX中,主要是使用了Kotlin 的几个特性,下面就这些特性进行简单的说明。
在 Android 中,一般是不建议直接使用 GlobalScope 的。那么,在 Android 中应该如何正确使用协程呢?再细分一点,如何直接在 Activity 中使用呢?...如何配合 ViewModel 、LiveData 、LifeCycle 等使用呢?我会通过简单的示例代码来阐述 Android 上的协程使用,你也可以跟着动手敲一敲。...然而 Kotlin 就是要让你做同样的事,写更少的代码,于是 viewmodel-ktx 来了。看到 ktx ,你就应该明白它是来简化你的代码的。...viewModelScope 是 ViewModel 的一个扩展属性,定义如下: val ViewModel.viewModelScope: CoroutineScope get() {...给每个 LifeCycle 对象通过扩展属性定义了协程作用域 lifecycleScope 。
, 必须指明该属性是谁的 , 如 : project.compileSdkVersion , 说明该属性是定义在 Project 中的, 也就是我们自己使用 ext 扩展的属性 , 否则就会触发上述...* 说明该属性是定义在 Project 中的, 也就是我们自己使用 ext 扩展的属性 * 否则就会触发上述 this -> owner -> delegate 顺序查找机制..."k-stdlib" : "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version", "ktx"...android 扩展配置 ; 1、设置编译版本和编译工具版本 /** * 这里注意闭包中的属性查找策略 * 在闭包中访问属性...: "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version", "ktx" : "androidx.core
支持 Java 和 Kotlin onSaveInstanceState 带来的挑战 ViewModel 一发布,执行 onSaveInstanceState 的相关的逻辑时要如何操作 ViewModel...那段是 Java 代码,而接下来的是 Kotlin 代码: 第一步: 添加依赖 SaveStateHandle 目前在一个独立的模块中,您需要在依赖中添加: def lifecycle_version...在 Activity 或 Fragment 的 onCreate 方法中,将 ViewModelProvider 的调用修改为: //下面的 Kotlin 扩展需要依赖以下或更新新版本的 ktx 库:...或 onActivityCreated 方法中执行 // 这个Kotlin扩展需要依赖最KTX库:androidx.fragment:fragment-ktx:1.1.0 val sharedViewModel...viewModelScope 是一个 ViewModel 的 Kotlin 扩展属性。正如前面所说,它能在 ViewModel 销毁时 (onCleared() 方法调用时) 退出。
WorkManager 是一个 Android Jetpack 扩展库,它可以让您轻松规划那些可延后、异步但又需要可靠运行的任务。...目前为止 WorkManager 系列已经讨论过: Android Jetpack WorkManager | Android 中文教学视频 在这篇文章中,我们将讨论: 在 Kotlin 中如何使用 WorkManager... Kotlin 编写的并使用了 KTX 库 (Kotlin Extensions)。...KTX 版的 WorkManager 提供了更简洁且惯用的 Kotlin 扩展函数。...如 WorkManager 发布日志 中描述的那样,只需要在 build.gradle 文件中添加 androidx.work:work-runtime-ktx 依赖项,即可使用 KTX 版的 WorkManager
我们来看看同样的类用 Kotlin 如何编写: // Kotlin 语言,同样的类代码 class User( var firstName: String?...,我们可以直接把 howMany 这个方法添加至 String 类: // 扩展方法 fun String.howMany(char: Char): Int { var count = 0...我们为 Android 开发者提供了 Android KTX、Android Studio 的支持以及大量的学习资源等。...Android KTX 自从两年前 Android 平台开始支持 Kotlin 后,我们一直在努力解决 Kotlin 的兼容性问题并丰富其功能,更进一步为大家带来了许多工具来进一步提高开发效率,比如 Android...它是一组适用于 Android 开发的 Kotlin 扩展功能,对多种常用的 Android 开发流程提供简化的封装 API。 适用于动画、图形、文本等诸多领域。
在近期完成的一系列 Modern Android Development (简称 MAD Skills) 的视频和文章中,我们重点关注了 Kotlin 和 Jetpack。...我们介绍了多种不同的方法,让 Android 代码更具表现力、更简洁、更安全以及更易于使用 Kotlin 运行异步代码。...优先使用 KTX 库 在本视频中,我们探讨了如何通过 Jetpack KTX 扩展 使 Android 和 Jetpack 编码变得轻松、愉悦且符合 Kotlin 习惯。...这一集涵盖了一些最重要的库: core-ktx,它为来自 Android 平台的 API 提供了常用 Kotlin 功能,另外还有一些 Jetpack KTX 库,让我们在使用 LiveData 和 ViewModel...上手使用 Room Kotlin API 本视频打开了 Room 的大门,一探如何在 Kotlin 中创建 Room 表和数据库,以及如何使用 Flow 实现插入和使用可观察的查询等一次性挂起操作。
需要额外补充PHP如何扩展?你并不需要再次安装PHP。同phpize我们可以在原PHP安装扩展直接的基础上,。 这次编译只不过单独编译PHP的扩展库。...接下来将编译好的扩展库 加入到如今运行的php中,不正确如今运行的php又一次编译,所以没有一点的影响。 以下我们演示安装xsl的扩展(不一定经常使用。...仅做为一个范例) 做法一: 1.找到当前运行的php版本号的源码文件夹,如php-5.2.3。 进入xsl扩展库文件夹。...$make #make成功运行后,生成的扩展库文件在当前文件夹的 modules子文件夹下, 如/home/php-5.3.3/ext/curl/modules/xsl.so 4.配置php.ini...文件 #将编译好的扩展库文件拷贝到PHP的扩展文件夹下,可通过查看phpinfo信息。。
文章目录 一、定义在根目录 build.gradle 中的扩展属性 二、扩展属性示例 Android Plugin DSL Reference 参考文档 : Android Studio 构建配置官方文档...Android 工程根目录下的 build.gradle 构建脚本中 , 则所有的 Module 模块下的 build.gradle 都可以获取到该扩展属性值 ; 在 Module 下的 build.gradle...中可以使用 rootProject.扩展属性名 来访问定义在根目录中 build.gradle 中定义的扩展属性值 ; 二、扩展属性示例 ---- 在根目录下的 build.gradle 中定义扩展属性...: // 定义扩展属性 , 其中的变量对所有子项目可见 ext { hello1 = 'Hello World1!'...:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.6.0' implementation
在 build.gradle 文件中,确保已经添加了 navigation 库的依赖项。...在 AndroidManifest.xml 文件中,请确保您已经添加了必要的权限和 meta-data 配置。...例如,在您的 节点中,您需要添加以下权限和 meta-data: <uses-library android:name="org.apache.http.legacy" android...请尝试更新您的 Android Studio,并重新导入您的项目。...' id 'org.jetbrains.kotlin.android' } android { namespace 'kim.hsl.nav' compileSdk 32
,写了几个demo,发现都没有问题,跳转和传值都是正常的,这里我也是直接从groovy转换成versions-catelog的依赖方式,由于之前升级过,所以这次很顺利,几分钟就完成了,直接上代码:1.添加统一依赖...", version.ref = "agp" }org-jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref...= "org-jetbrains-kotlin-kapt"}[bundles]2.添加lib-common组件配置:@Suppress("DSL_SCOPE_VIOLATION")plugins {...libs.plugins.org.jetbrains.kotlin.kapt)}dependencies { implementation(libs.core.ktx) implementation...:如果添加了统一的catelog配置方式后导入依赖它会自动提示,不需要开发者手动导入,这点我感觉很爽,用起来简直不要太安逸了,感兴趣的同学可以自行尝试,这里就简单举例.图片图片16.总结:其实本文的目的不是在于如何使用
领取专属 10元无门槛券
手把手带您无忧上云