学习记录
2021.8.19
1:协程的代码效率不一定比多线程高,因为协程内部就是多线程(?)
协程可以使异步的代码写成同步,便捷易懂。
传统方式弊端,异步线程请求服务器,取得数据利用handler发送数据给主线程
对于有suspend的函数,自动开启异步线程
main主线程{
suspend函数(自动切出去又切回来)
更新ui
}
2021.8.20
suspend函数内部得 手动开启协程
suspend的意义是什么
viewmodelScope {}默认主线程
suspend函数内部 withContext(Dispatcher....){}
主线程到IO线程——为协程的挂起 suspend
IO线程到主线程——为协程的恢复 resume
suspend起提醒作用,真正起挂起作用的是withContext里面的代码块
launch(Dispatchers.Main){
withContext(dispatchers.IO){}
withContext(dispatchers.IO){}
}
变成
launch(Dispatchers.Main){
func1()
func2()
}
suspend fun func1(){
withContext(dispatchers.IO){}
}
suspend fun func2(){
withContext(dispatchers.IO){}
}
协程就是线程的上层框架
Room的一个实体类在内部对应的就是一个数据库表,然后一个实体的实例就是表的一行
默认情况下,Room 使用类名作为数据库表名。如果您希望表具有不同的名称,请设置注释的 tableName
属性 @Entity
。同样,Room 默认使用字段名作为数据库中的列名。如果您希望列具有不同的名称,请将@ColumnInfo
注释添加 到该字段并设置该name
属性。以下示例演示了表和列的自定义名称:
官方文档,entity DAO Database
2021.8.21
compose和其他组件的结合使用?
设置Room entity字段id自动递增
- 定义数据库名字为常量
仓库模式 单例
设置主题颜色
仓库上面的viewmodel
2021.8.22
viewmodelscope{
}
报错 找不到依赖(解决)
添加更多的composable函数
2021.8.23
添加更多compose组件
报错 nullpointer fuck!
java.lang.NullPointerException应该是Compose之间传递参数之间的问题
找到解决问题,似乎是observeAsState的初始化的值的问题
https://www.cnblogs.com/--here--gold--you--want/p/15178229.html
2021.8.24
设置滚动时,悬浮按钮不可见。
找到lazyliststate的isScrollInProgress来判断是否正在滚动 设置出现动画和消失动画效果
设置card
navigation学习以及sealed class
2021.8.25
了解密封类和枚举类
把github compoise实例项目拉到本地
navigation
2021.8.26
添加message的逻辑
2021.8.28
研究composecookbook里面的button例子,自定义看不懂55555
左成云算法:位运算比算数运算快
今日要点:交换两个数0额外空间抖机灵写法
a = a^b b = a^b b = a^b 前提两个数不一样
把一个数从右往左第一个1保留,其他的位上的数字变为0
a = a & (~a + 1)
2021.8.29
- 数据状况
- 问题标准
根据这两点来优化算法策略。
对数期test,不依赖线上测试平台,写两套算法,一个稳,一个要测,再写一个测试数据生成器,再把两个结果比对
mid = L + (R - L) >> 2 右移比除2要快
递归行为时间复杂度估计 master公式
- N/b 为每一次递归中子问题的规模
- a为每一次递归中递归的次数
- O(N^d)为其他操作的算法时间复杂度
归并排序, 求解时间复杂度:
- master公式
- 理解法,每一层merge归并O(N), 然后有logN层,所以时间复杂度NlogN
归并排序, 每一层比较之后都会得到一个更大的有序数列,因此, 信息得以传递。
归并的时候,左组和右组的数相等,放左组,就是稳定,放右组就不稳定。
例题:求小和 (求小和时,两个数相等,要放右组的数)
荷兰国旗问题
展开到快速排序, 最差情况O(N^2)
进化版,参考中定在中间,参考有好和差,因此总的时间复杂度取期望O(NlogN)
两种快排的patition的方法,一个左成云版,一个书本版
2021.8.29
kotlin的各种特性的学习
2021.8.31
堆排序,heapInsert建堆和heapify恢复堆。时间复杂度NlogN,空间复杂度1
materialtheme 与 composition local
truth库,dsl的学习
2021.9.2
kotlin协程 很coder入手 dp
2021.9.3
扔物线课程 网络部分
动态规划学习
2021.9.6
这段时间就学习android jetpack compose吧