joy keeps flowin’ - 什么都想写点
不要给View加context类型参数
工作的这几年,看见过很多次这种写法,很不爽,想吐槽。 明明View里就有个Context的变量,还要画蛇添足,再加个参数保存Context,这个Context很大概率是Activity。 恐怕是忘了传入View里的这个Context就是Activity本人吧。
Ubuntu编译AOSP
起因 # 网上有这么多相似的文章,还要再写这个的原因有两个: 纸上得来终觉浅。从去年就尝试按着网上的文章编译,总也不能通过,各种各样的问题; 记录一下过程,避免踩相同的坑,也好给其他的朋友一点参考。 准备 # 环境 # 先后尝试过用Windows、Mac编译,推荐直接用Linux,不管是不是Ubuntu。
Mac上制作Window启动盘
周二早上想看硬件有哪些,记得Windows电脑上有个AIDE,费了一顿劲找着,点了电脑直接蓝屏了,再进发现UEFI干没了😅。刚好手头又没有pe启动盘,倒是有U盘和Mac电脑,记录下用Mac制作Windows启动盘的过程。
理解Kotlin协程
记下自己的一点浅薄的理解,想要更深入学习的朋友推荐阅读霍老的破解 Kotlin 协程 使用 # 1 2 3 4 5 6 7 8 9 10 11 12 public fun CoroutineScope.launch( context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> Unit ): Job { val newContext = newCoroutineContext(context) val coroutine = if (start.isLazy) LazyStandaloneCoroutine(newContext, block) else StandaloneCoroutine(newContext, active = true) coroutine.start(start, coroutine, block) return coroutine } 启动时包含三个参数: 协程上下文 启动模式 执行方法 协程上下文 # CoroutineContext中定义了get、plus、minusKey方法。类似list。
FreshRSS api配置
不喜欢新闻客户端里带有政治倾向和无关紧要的娱乐新闻,诸如某某明星跌倒之类。日常都用rss阅读,可以阅读我常看的内容,FreshRSS又是可以自己部署的非常好用的服务,理所当然的用上了。 最近组了一台主机,重新安装FreshRSS之后总是也在reeder(iOS平台RSS阅读软件)上配置不了,记录一下。
Jetpack系列之ViewModel
ViewModel和架构MVVM中的VM(ViewModel)同名,但并不是一个东西,架构中的ViewModel是和View双向绑定的,这里的ViewModel只能做到利用LiveData更新。 为什么用ViewModel呢?一是把网络请求和数据库读取的逻辑从Activity中放到了ViweModel,分担了一部分Activity的压力;另一个原因是可以在Activity或Fragment重建时保存数据,不会丢失。今天探讨的时第二个问题。
旅行的意义
我总是想弄清楚各种意义,仿佛没有意义的事物就不应该存在。时常看到有人分享各地的标志性建筑、食物或是服饰等等,单独拿出来分享的还是少数,更多的还是与某些东西合影的照片。即使去旅行的时间非常短,但一定会有那么两三个带标志性的,标志性物品和某个城市、某个地区、某种文化划上了等号。
Jetpack系列之Lifecycle
Android中又越来越多组件依赖Lifecycle,从来不好奇Lifecycle是什么东西,又是怎么起作用的吗?我很好奇。 LifecycleOwner # 通常的用法往往是从LifecyclerOwner中拿到Lifecycle对象,之后add Oberver或者remove Observer。
Jetpack系列之LiveData
Jetpack中最不陌生的大概就是LiveData了,LiveData的两个特点:和lifecycleOwner绑定且监听数据变化。用过的哪个不说好? 流程 # 常用的LiveData的形式大概是这样的:
Android屏幕适配和最小宽度
凡事总要问为什么。为什么需要屏幕适配? 众所周知,Android是一个较开发的系统,允许各家厂商定制修改AOSP,选用不同规格的硬件,包括CPU、内存、电池、传感器等等等等。当然屏幕也在其中。也因此,大家手上的手机屏幕大不相同,体现在屏幕的尺寸、分辨率上。