热修复原理学习(4)冷启动类加载原理
前面我们提到的热替换原理,根本是基于 native层方法的替换,所以当类的结构发生变化时,热部署模式就会搜到限制。但是冷部署能突破这种约束,可以更好的达到修复目的,再加上冷部署在稳定性上有独特的优势,因此可以作为热部署的有力补充而存在。1. 冷启动类加载原理1.1 冷启动实现方案概述冷启动重启生效,现在一般有两种实现方案:QQ空间Tinker原理为了解决Dalvi...
Android Studio 制作简易计算器
边学边写的代码。 如果是制作简易计算器的话是基本没有难点的。 步骤是先写好界面布局,将按钮的布局、字号颜色啥的做好,再就是设置监听器。 使用了NoTitleBar的主题 代码如下: activity_main里关于界面的代码:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://sc
修改elementui 里面input的placeholder字体颜色
代码:.el-input__inner::placeholder { color: #31E5F5;}/* 谷歌 */.el-input__inner::-webkit-input-placeholder { color: #31E5F5;}/* 火狐 */.el-input__inner:-moz-placeholder { color: #31E5F5;}/*ie*/.el-input__inner:-ms-input-placeholder { color:
Flutter 学习 容器类Widget
文章目录1. 概述2. 填充 Padding3. 装饰容器 DecoratedBox3.1 BoxDecration4. 变换 Transform4.1 平移4.2 旋转4.3 缩放4.4 RotatedBox5. Container容器6. Clip7 FittedBox8. 脚手架 Scaffold1. 概述容器类和布局类都是接收子Widget展示,他们有很多相同点,而它们的不同点是:布局Widget一般接收一个 Widget 数组,它们直接或间接继承自 MultiChildRenderObje
《重构》学习(4)常用的重构手法 上
文章目录3. 第一组重构3.1 提炼函数3.1.1 抽出无关局部变量的代码3.1.2 有局部变量的提炼3.1.3 对局部变量再赋值3.2 内联函数(Inline Function)3.2.1 使用内联函数的场景3.2.2 使用内联函数的步骤3.2.3 范例3.3 提炼变量3.3.1 使用场景3.3.2 步骤3.3.4 示例3.4 内联变量我这边学习直接跳过了《重构》第3、4、5章,原因是:第三章,代码坏味道比较公式化的原则,仅是记录,在开发中规避,养成习惯就好了第四章, 构筑测试体系我所在的公司
《重构》学习(5)常用的重构手法 下
系列文章目录1. 《重构》学习(1)拆分 statement 函数2. 《重构》学习(2)拆分逻辑与多态使用3. 《重构》学习(3)概述4. 《重构》学习(4)常用的重构手法 上文章目录系列文章目录3.7 变量改名3.8 引入参数对象(Introduce Parameter Object)3.8.1 为什么3.7 变量改名Rename Variable:这一节就无须多解释了,变量名称不要取有歧义的,也不要为了图便宜,而经常简写。例如把 name 简写成 nm, 把 company
Flutter学习 可滚动Widget 上
文章目录1. 可滚动组件介绍1.1 Scrollable1.2 Viewport1.3 Sliver1.4 可滚动组件的通用配置1.5 ScrollController1.6 子节点缓存1.7 Scrollbar2. SingleChildScrolView1. 可滚动组件介绍Flutter 中有两种布局模型:基于 RenderBox 的盒布局模型基于 RenderSliver 的按需加载列表布局Sliver 的作用是: 加载子组件并确定每一个子组件的布局和绘制信息,如果 Sliver 可以包
Flutter学习 可滚动Widget 中
文章目录5. AnimatedList5.1 实例代码6. GridView6.1 SliverGridDelegateWithFixedCrossAxisCount6.2 GridView.count6.3 SliverGridDelegateWithMaxCrossAxisExtent6.4 GridView.extent6.5 GridView.builder6.5.1 范例5. AnimatedListAnimatedList 和 ListView 功能差不多, 顾名思义,它在列表中插入节点或
Flutter学习 可滚动Widget 下
文章目录11 自定义 Sliver11.1 Sliver 布局协议11.2 Sliver 模型 和 盒模型11.3 SliverFlexibleHeader11 自定义 Sliver这里通过官方示例的两个 Sliver, 来说明 Sliver 布局协议和 自定义 Sliver 的具体过程11.1 Sliver 布局协议Viewport 将当前布局信息和配置信息通过 SliverConstraints 传递给 SliverSliver 确定自身的位置、绘制等信息,保存在geometry 中 ,这就
Flutter学习 功能型Widget
文章目录1. WillPopScope1.1 示例2. InheritedWidget2.1 didChangeDependencies2.2 深入了解 InheritedWidget1. WillPopScope是导航返回拦截的组件, 类似于 Android 中封装的 onBackPress 方法,来看看它的构造函数:class WillPopScope extends StatefulWidget { const WillPopScope({ Key? key, require
Flutter学习 文件操作与网络请求
文章目录1. 文件操作1.1 App 目录1.2 示例1. 文件操作Dart 有 io 库,包含了文件读写,所以可以通过该库可以操作 Dart VM 下的脚本 和 Flutter。和 Dart VM 相比, Flutter 一个比较重要的差异是文件系统路径不同, Dart VM 是运行在 PC 或 服务器操作系统下, 而 Flutter 是运行在 移动操作系统(Android 、 iOS)中,这会导致文件系统有一些差异。1.1 App 目录Android 和 iOS 的应用存储目录不同, Path
Kotlin 用函数编程
文章目录1. 函数式编程风格的意义1.1 数学中的函数1.1.1 偏函数1.1.2 多参数的函数1.1.3 柯里化函数1.1.4 偏应用函数1.2 Kotlin中的函数2. 柯里化函数内容:● 了解Kotlin函数本质● Lambda 表达式(Lambda学习)● 使用高阶函数、科里化函数● 正确的使用类型目标主要是为了弄清楚:● 使用函数式编程的意义是什么?● 为什么我要将函数作为参数传递?我定义一个接口,让他们来调用不就好了?我为什么要把函数作为一个值● Lambda看起来就是减少了写
Koltin 递归、尾递归和记忆化
文章目录1. 递归与尾递归1.1 尾递归(tail call)1.2 递归1.3 递归和尾递归的区别2. 尾递归消除2.1 尾调用消除学习秒表:了解 Kotlin 中的尾递归函数从 尾递归 了解 fold、foldRight、 reverse 等实现为什么用递归来代替for循环实现记忆化1. 递归与尾递归Kotlin 中很好的支持递归函数,使得递归可以被广泛使用, 但是稍微了解算法的人都知道, 递归函数一不小心就会爆栈,即随着递归次数的增加,内存不足以存储中间的计算步骤和中间结果,导致内存
Kotlin 用列表处理数据
文章目录1. Kotlin 有哪些可用的列表1.1 使用持久数据结构1.2 实现不可变的、持久的单链表1. Kotlin 有哪些可用的列表Kotlin 提供 可变、不可变列表。 在 Java 中也支持,但是得益于 Kotlin 的扩展函数特性, 列表拥有了大量增强性能的函数。可变列表像 Java 列表一样,可以通过添加、插入或者删除元素来改变列表, 这样一来,列表的早期版本将会丢失不可变列表又称只读列表,不能被修改的列表。 如果向其添加一个元素,则会创建一个添加了新元素的原始列表的副本。不可变
Kotlin 异常处理之 Option、Either、Result
文章目录1. 异常处理概述2. Option3. Either4. Result5. 小结1. 异常处理概述2. Option3. Either4. Result5. 小结
Kotlin Monad的学习
文章目录0. 前言1. 概述1.1 起源1.2 Monad 可以看成一种设计思想1.3 数学概念1.3 Monad 的模板代码2. arrow-kt 中的代码实例总结参考0. 前言在学习函数式编程时,函子(Funtor)、单子(Monad) 是非常难啃的骨头,它们来自于数学范畴论,又只在 Haskell 这种满是学术气息的语言上发展,本来阅读了几篇 Kotlin 上介绍该概念的文章,但是感觉吸收不够好,所以写这篇文章来学习和记录。此外,FP Kotlin 框架 arrow-kt 里面已经具象了这个概
Effective Kotlin 中文版
1. 这段时间做了什么前两个月,我买了一本 《Effective Java》 ,读了一半后发现,我现在使用的语言是 Kotlin,不是 Java!虽然它提供了很多有用的开发知识,但那都是基于 Java 的,我最终还是得将其“翻译” 到 Kotlin 语言上,属实难绷。于是,我就想:那有没有 《Effectvie Kotlin》 呢? 我搜了一下,发现确实有,但是它没有实体书,它甚至都没有中文版!如图我做了一个决定: 将其翻译成中文,并传播到社区,让更多的 Kotlin 中文社区开发者都能看到这本书!
10、 Flutter Widgets 之 DataTable表格数据
1.DataTable介绍数据表显示表格数据,需要设置行和列2.DataTable属性columns:DataColumn 行 sortColumnIndex:索引在行的位置 sortAscending = true:升序/降序 只有UI变化,排序需要自己实现 onSelectAll:全选回调,默认实现全选操作 dataRowHeight = kMinInteractiveDimension:数据内容每列高度 headingRowHeight = 56.0:头部每列高度 horizo
【前端实例代码】使用HTML CSS 和 JavaScript制作一个五星评价的功能!可动态好评+差评+留言功能!
【前端实例代码】使用HTML CSS 和 JavaScript制作一个五星评价的功能!可动态好评+差评+留言功能!
今日推荐
周排行