首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ViewBinding 与 Kotlin 委托双剑合璧

那么,所有 XML 布局文件都生成 Java 类,会不会导致包体积瞬间增大?不会的, 未使用的类会在混淆时被压缩。 ---- 2....答:Activity 实例和 Activity 视图的生命周期是同步的,而 Fragment 实例和 Fragment 视图的生命周期并不是完全同步的,因此需要在 Fragment 视图销毁时,手动回收绑定类对象...视图生命周期 期望 binding 属性声明为非空不可变变量 ReadOnlyProperty 3.1 ViewBinding + Kotlin 委托 1.0 我们现在较复杂的 Fragment...总结 ViewBinding 是一个轻量级的视图绑定方案,Android Gradle 插件会为每个 XML 布局文件创建一个绑定类。...Binding 视图绑定[10] —— 官方文档 View Binding 与 Kotlin 委托属性的巧妙结合,告别垃圾代码!

1.7K20

AndroidStudio 开发基础知识【翻译完成】

十一、安卓视图绑定概述 十二、了解安卓应用和活动生命周期 十三、处理安卓活动状态变化 十四、安卓活动状态变化示例 十五、保存和恢复安卓活动的状态 十六、了解安卓视图、视图组和布局 十七、AndroidStudio...数据库概述 六十六、安卓 Room 持久化库 六十七、安卓表格布局和表格行教程 六十八、安卓 Room 数据库和仓库教程 六十九、使用安卓存储访问框架访问云存储 七十、安卓存储访问框架示例 七十一、使用视频视图和媒体控制器类在安卓系统上播放视频...的面向对象编程基础 十七、Kotlin 继承与子类化简介 十八、安卓视图绑定概述 十九、了解安卓应用和活动生命周期 二十、处理安卓活动状态变化 二十一、安卓活动状态变化示例 二十二、保存和恢复安卓活动的状态...、AndroidStudio 中应用更改的使用指南 三十三、安卓事件处理概述及示例 三十四、安卓触控和多点触控事件处理 三十五、使用安卓手势检测器类检测常见手势 三十六、在安卓上实现自定义手势识别 三十七...六十、安卓显式意图——一个成功的例子 六十一、安卓隐式意图——一个成功的例子 六十二、安卓广播意图和广播接收器 六十三、Kotlin 协程简介 六十四、安卓 Kotlin 协程示例 六十五、安卓服务概述

3.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android Studio 4.0重磅发布:全新的 Motion 编辑器及众多更新都在这里!

    在当前这个充满不确定性的时期,来自世界各地的无数开发人员依旧在想方设法继续做自己最擅长的工作——为 Android 创建出色的应用,这让我们感动不已。...在 Motion 编辑器中创建、编辑和预览动画 升级的 Layout Inspector 想要调查特定属性的值的源头?或者想通过嵌套视图的实时 3D 表示,更轻松地检查视图层次?...线程活动的并排分析更轻松 为了更轻松地进行并排分析,你现在可以在 Thread Activity(线程活动)时间轴中查看所有线程活动(包括方法、函数和事件),并使用新的导航快捷方式轻松移动数据(例如使用...该编辑器还与你的 Android 项目集成,为所有类、方法和字段提供完整的符号补全,还有快速导航和重构。...(例如数据绑定和视图绑定)及构建功能(例如自动生成的 BuildConfig 类)的内置支持。

    4.7K30

    Android Studio 4.0 重磅发布!Android 11 Bata 版来了!

    作者 | Adarsh Fernando 译者 | 王强 回复“666”,获取一份技术人专属大礼包 来自:前端之巅 在当前这个充满不确定性的时期,来自世界各地的无数开发人员依旧在想方设法继续做自己最擅长的工作...部署到运行 API 29 或更高版本的设备还能获得其他特性,例如动态布局层次结构(随视图更改而更新)、详细的视图属性(还可以帮助你确定资源值是如何解析的)以及正在运行的应用 UI 的 3D 模型。...线程活动的并排分析更轻松 为了更轻松地进行并排分析,你现在可以在 Thread Activity(线程活动)时间轴中查看所有线程活动(包括方法、函数和事件),并使用新的导航快捷方式轻松移动数据(例如使用...该编辑器还与你的 Android 项目集成,为所有类、方法和字段提供完整的符号补全,还有快速导航和重构。...(例如数据绑定和视图绑定)及构建功能(例如自动生成的 BuildConfig 类)的内置支持。

    2.6K20

    Android Studio 4.0 正式版发布

    即便在如今这个变幻莫测的时势里,我们依然看到来自世界各地开发者们的佳作——那就是 Android 上一个又一个精彩的应用。...如果您的应用是部署到 API 等级 29 或以上的设备,则可以使用到更丰富的功能,比如随着视图变化动态更新的布局层次结构、帮助您更好了解资源取值解析的详细视图属性信息、以及可以展示运行时 UI 结构的实时...在 Android Studio 4.0 中,CPU 活动记录从分析器的主时间轴中分离出来,并成组展现,以便于分析。...编辑器还与您的 Android 项目集成,为所有的类、方法和字段提供完整的符号补全,并提供快速导航和重构功能。...新的构建功能开关选项 Android Gradle 插件内置了对现代代码库 (如数据绑定和视图绑定) 和构建功能 (如自动生成 BuildConfig 类) 的支持。

    3.4K31

    大数据开发:Spring 5的新特性

    Spring 5 Framework 基于一种反应式基础而构建,而且是完全异步和非阻塞的。只需少量的线程,新的事件循环执行模型就可以垂直扩展。 该框架采用反应式流来提供在反应式组件中传播负压的机制。...负压是一个确保来自多个生产者的数据不会让使用者不堪重负的概念。...这些模型都通过同一种反应式基础来运行,后者调整非阻塞 HTTP 来适应反应式流 API。 6. 对Kotlin的支持 Spring 5.0对Kotlin的支持如下。...• 使用Kotlin1.1.50或更高版本时,可以支持Null安全的API。 • 支持带有可选参数和默认值的Kotlin不可变类。 • 支持使用Kotlin DSL定义函数式Bean。...•@EnabledIf:如果提供的SpEL表达式或属性占位符的计算结果为true,则表示已启用带注释的测试类或测试方法。

    1.5K20

    将构建配置从 Groovy 迁移到 KTS

    Kotlin DSL的出现感觉是为了我们量身定做的,因为采用 Kotlin 编写的代码可读性更高,并且 Kotlin 提供了更好的编译时检查和 IDE 支持。...KTS:是指 Kotlin 脚本,这是 Gradle 在构建配置文件中使用的一种 Kotlin 语言形式。Kotlin 脚本是可从命令行运行的 Kotlin 代码。...Project Structure 编辑器不会展开在 buildSrc 文件夹中定义的用于库名称或版本的常量。 KTS 文件目前在项目视图中不提供文本提示。...如果插件来自插件门户中不存在的 buildScript 依赖项,那么这些插件在 Kotlin 中就必须使用 apply 才能应用。...编译器发现目录后,Gradle会自动编译并测试此代码,并将其放入构建脚本的类路径中。

    1.7K20

    将构建配置从 Groovy 迁移到 KTS

    Kotlin DSL的出现感觉是为了我们量身定做的,因为采用 Kotlin 编写的代码可读性更高,并且 Kotlin 提供了更好的编译时检查和 IDE 支持。...KTS:是指 Kotlin 脚本,这是 Gradle 在构建配置文件中使用的一种 Kotlin 语言形式。Kotlin 脚本是可从命令行运行的 Kotlin 代码。...Project Structure 编辑器不会展开在 buildSrc 文件夹中定义的用于库名称或版本的常量。 KTS 文件目前在项目视图中不提供文本提示。...如果插件来自插件门户中不存在的 buildScript 依赖项,那么这些插件在 Kotlin 中就必须使用 apply 才能应用。...编译器发现目录后,Gradle会自动编译并测试此代码,并将其放入构建脚本的类路径中。

    3.6K00

    《Kotlin 程序设计》第九章 Kotlin与Java混合调用

    在 Java 中调用 Kotlin 代码 4.1 static 方法 上文已经提到过,在 Kotlin 中没有 static 关键字,那么如果在 Java 代码中想要通过类名调用一个 Kotlin 类的方法...// access flags 0x31 public final class com/easy/kotlin/HelloWorldKt { // access flags 0x19 public...我们也可以通过注解@file:JvmName("MyExample")来自定义这个类名。这样当前文件中的所有包级别函数, 将被放到一个自动生成的文件名为 MyExample 的类中。...因为Java中的任何应用都可以为null,但是在Kotlin中是默认不可为null的,这使得Kotlin对来自Java的对象要求严格空安全是不现实的。...我们需要在编写Java代码时加上@NotNull注解,这个很熟悉吧,在介绍空安全机制的时候说过Kotlin在实现默认非null属性就是这么实现的。

    1.6K50

    Kotlin入门(23)适配器的进阶表达

    前面在介绍列表视图和网格视图时,它们的适配器代码都存在视图持有者ViewHolder,因为Android对列表类视图提供了回收机制,如果某些列表项在屏幕上看不到了,则系统会自动回收相应的视图对象。...现在由Kotlin实现循环视图的适配器类,综合前面两小节提到的优化技术,加上视图持有者的自动重用,适配器代码又得到了进一步的精简。...下面便是个循环视图的网格适配器,它实现了类似淘宝主页的网格频道栏目,具体的Kotlin代码如下所示: //把公共属性和公共方法剥离到基类RecyclerBaseAdapter, //此处仅需实现getItemCount...其中的缘由是Anko库仅仅实现了Activity活动页面的控件自动获取,并未实现适配器内部的自动获取。...依照三个要素的三种处理对策,进而提炼出来了循环适配器的通用类RecyclerCommonAdapter,详细的Kotlin代码示例如下: //循环视图通用适配器 //将具体业务中会变化的三类要素抽取出来

    1.8K41

    Kotlin入门教程——目录索引

    入门(4)声明与操作数组 Kotlin入门(5)字符串及其格式化 Kotlin入门(16)容器的遍历方式 第三章 控制语句 Kotlin入门(6)条件分支的实现 Kotlin入门(7)循环语句的操作...Kotlin入门(8)空值的判断与处理 Kotlin入门(17)等式判断的情况 第四章    函数运用 Kotlin入门(9)函数的基本用法 Kotlin入门(10)七十二变的输入参数 Kotlin入门...(11)江湖绝技之特殊函数 Kotlin入门(18)利用单例对象获取时间 第五章    类和对象 Kotlin入门(12)类的概貌与构造 Kotlin入门(13)类成员的众生相 Kotlin入门(14...)继承的那些事儿 Kotlin入门(15)独门秘笈之特殊类 第六章    界面布局 Kotlin入门(19)Android的基础布局 Kotlin入门(20)几种常见的对话框 Kotlin入门(21)...活动页面的跳转处理 Kotlin入门(22)适配器的简单优化 Kotlin入门(23)适配器的进阶表达 Kotlin入门(24)如何自定义视图 第七章    数据存储 Kotlin入门(25)共享参数模板

    1.5K30

    【读书笔记】《Kotlin in Action》学习笔记(上)

    另外,我的读书笔记是在一本网上下载的 PDF 书:《 Kotlin in Action 》上做的,质量不怎么好,不过后来通过 mobilehub 的微信赠书活动有幸免费获得了一本中文版 《 Kotlin...二、笔记 1、 Kotlin中的“内部的类”默认为“非内部类” 也就是说,写在某个父类内部的子类是不能直接访问这个父类的属性和方法的,有别于 Java 中的内部类!...中的数据类不会自动处理非首要构造函数中的属性 有时候我们在使用 data class 的时候也需要使用其他方法或者其他计算出来的属性(比如类似 swift 中的 computed property 之类...),这个时候这个属性就没必要定义在 primary constructor 构造函数中,而是定义在类里面( secondary constructor ),这时候 Kotlin 中的数据类只会自动计算定义在...当然,我们也可以采用和 Java 一样的方式:使用 object 实现 SAM 接口,但是这样做的话,可能会在每次调用函数的时候都会创建一个新的 object 实例。参考下面的代码,来自官方的例子。

    79520

    Kotlin 的 IDE 插件 2021.1 发布: 性能的提升以及更好的重构支持

    在变量视图中直接计算自定义 getter 的值 研究表明,想要提升 Kotlin 的整体开发体验,就需要极大的优化 Kotlin 的调试体验,我们也已经启动了一系列优化改善计划来做到这一点。...例如在下面的代码中,IDE 自动添加了()类型: 当您应用了 IDE 的提示以后,您将得到以下代码: 使用类图来检查 Kotlin 的代码结构 新版发布以后,您可以使用 UML 类图来检查...想要构建一个类图,只需要在 Project 视图中右键选择 Diagrams | Show Diagram… | Kotlin Classes。...其他 IDE 相关的优化提升 由于 Kotlin 插件和 IntelliJ 平台的代码迁移到了同一个代码库并且同步发布,您将同样可以体验到来自以下其他方面的 Kotlin 开发体验的提升: 通过 Gradle...特别感谢由来自 Kotlin 社区的 Benny Huo 为本篇博文提供中文译文。

    2.2K30

    Kotlin入门(19)Android的基础布局

    Kolin支持调用dip方法将dip数值转换为px数值,倘若由Java编码则需开发者自己实现一个像素转换的工具类; 因为dip方法来自于Kotlin扩展的Anko库,所以需要在Activity代码头部加上下面一行导入语句...举个例子,让某视图位于指定视图上方,且与上级视图的左侧对齐,则调用addRule方法的Kotlin代码如下所示:     rl_params.addRule(RelativeLayout.ABOVE,...,因此Kotlin利用Anko库将相对位置进行了简化,具体办法是引入扩展函数实现相对位置的设定,譬如above方法代表位于指定视图上方,alignParentLeft方法代表与上级视图的左侧对齐。...于是原来的Kotlin代码简化如下:     rl_params.above(指定视图的资源ID)     rl_params.alignParentLeft() 因为这几个新方法来自于Anko库,所以要在代码头部加上下面一行导入语句...Anko库的相对位置    RelativeLayout类的相对位置 leftOf    LEFT_OF sameTop    ALIGN_TOP above    ABOVE sameLeft

    2K10

    生命周期感知 Lifecycle

    例如,如果回调在保存活动状态后运行 Fragment 事务,那么它将触发崩溃,因此我们永远都不想调用该回调。 为了简化此用例,Lifecycle 类允许其他对象查询当前状态。...如果想要创建 LifecycleOwner 的自定义类,则可以使用 LifecycleOwner 类,但是需要将事件转发到该类中,如以下代码示例所示: Kotlin class MyActivity :...尝试编写数据驱动的 UI ,其中 UI 控制器的职责是在数据更改时更新视图,或者将用户操作通知给 ViewModel 。 将数据业务逻辑放在 ViewModel 类。...但并不是说让 ViewModel 类去获取数据,相反的应该让其他合适的组件去获取数据,ViewModel 类只是把结果提供给 UI 控制器。 使用数据绑定库维护视图和 UI 控制器的整洁。...这将创建一个可能较长的时间间隔,在该时间间隔中,即使无法修改其 UI 状态,观察者仍认为生命周期处于活动状态。

    1.2K20

    spring5新特性

    ---- Kotlin 和 Spring WebFlux Kotlin 是一种来自 JetBrains 的面向对象的语言,它支持函数式编程。它的主要优势之一是与Java 有非常高的互操作性。...1.1.4+ 时,还添加了对 Kotlin 的不可变类的支持(通过带默认值的可选参数),以及对完全支持null 的 API 的支持。...Spring 5 中更新了模型-视图-控制器框架,以兼容 WebFlux和最新版的Jackson 2.9 和 Protobuf 3.0,甚至包括对新的 Java EE 8JSON-Binding API...包级别上的清理工作仍在继续:Spring 5 不再支持beans.factory.access、jdbc.support.nativejdbc、mock.staticmock(来自spring-aspects...标有来自 javax 包的注解的组件会添加到索引中,任何带 @Index 注解的类或接口都会添加到索引中。Spring的传统类路径扫描方式没有删除,而是保留为一种后备选择。

    1.3K30

    APK体积优化有感

    这是我参与「掘金日新计划 · 6 月更文挑战」的第5天,点击查看活动详情 本文是阅读字节APK优化文章后的思考和总结 Class阶段优化 思路感觉和编译原理差不多,有些优化前端编译器本身就可以支持。...ps:就是借鉴了编译器的做法 冗余代码消除 赋值 JVM在类加载阶段会确保全局,static变量赋默认值,如果定义的时候已经进行赋默认值那么这个赋值是冗余的,所以要消除这种赋值 确认目标: Filed是当前类的变量...指令 2.过滤不是当前类的变量,指令中可以看到File的全路径名,通过对比当前class。...kotlin提出inline可能最主要的问题是基于Lambda无法实现像Java那样运行时替换的方法,只能创建匿名类实现,嵌套过多的Lambda又会导致性能降低创建过多无用实例对象,可能是被迫提出的inline...常量字段消除 编译原理里面也有这项优化技术,javac会自动消除final常量调用处替换,但是kotlin中有例外 对于Kotlin,未声明为const的变量不会进行消除(即使他被定义为final)

    64830
    领券