2020年8月26日新方案,乖乖穷举

2020年6月1日我发现还有问题!

2020年5月22日新方案又来了,希望能结束这个问题

2020年4月21日还有Bug,正在修。反正也没人看,估计也没坑到什么人

2020年1月27日憋出了新方案,似乎修好了

2019年11月4日现在的实现有Bug,正在研究

2019年10月18日更新AppCompat 1.1.0的使用说明

2019年8月18日更新增强版

网上搜怎么实现自动切换深色主题都没资料的,全是实现,只能自己想办法了。

最终解决的方案倒是很简单,不过走了很多、很多、很多、很多弯路。脑子不是很好使了我好菜啊。

阅读全文 »

2018年12月1日 更新Cyanea

不是给用户几个主题选择的多主题,而是可以让用户选择任意颜色,这让难度上了一档次,尤其是想用一种不那么侵入的方法实现的话。

从主题的实现来分,主要分依赖Android和自己动手。但这里按实现难度排序。

阅读全文 »

2019年2月10日 更新

发现一个更好的方案:不管是自己的项目还是Fork来的项目,直接到Jitpack里找到对应的commit,拉下来直接用。这样就省去了很多体力劳动。而且这个过程并不需要配置Gradle,源码都自带。【完】

任务很简单,最小程度影响当前项目的前提下,导入一个AAR第三方库。

要解决的问题在于

  1. 按导入.jar的方法导入.aar会失败
  2. 使用Android Studio自带的Improt Module中的导入AAR会创建一个新的Module,而我们只想声明一个依赖
阅读全文 »

2019年11月22日 本文已过时 请查看Android官方的Dependency Injection教程和Codelab 谁能想到dagger-android要凉凉了呢?

2018年5月20日更新了测试的更多思路

2018年5月19日更新了Dagger2测试的思路

现在是2018年5月,Dagger2的版本是2.16,Kotlin版本是1.2,IDE是Android Studio

过时的话就要话就要慎重地看。

Dagger2学起来是真心难受,现有的很多资料都已过世,误人子弟,而且和Kotlin结合在一起,会有很多很多坑和弯路。

Copy-pasting code makes it hard to refactor later on. As more and more developers copy-paste that block, fewer will know what it actually does.

本路线图指明的是:

从:对Dagger2只懂一点,不熟悉,只会到处复制粘贴。

到:熟悉Dagger2的使用方法,明白什么时候用interface,什么时候用abstract class,什么时候用@JvmStatic等等,能够看懂生成的代码,能分辨出Dagger2实现的好坏。

阅读全文 »

2018年5月18日更新:Moshi 1.6增加了Codegen的选项,可以取代Kotshi。原方案依旧可行。

之前用Gson序列化Kotlin的data class一直都没问题,但一天当data class中出现了默认参数时,问题就来了。

如果JSON中没有对应的Field,按道理Gson应该生成一个使用了默认参数的data class,但它没有,而且会无视Kotlin的不可null,直接生成一个null。

那换一个支持Kotlin的JSON库呗。这时Moshi就很厉害了,自带一个Kotlin的Adapter,用起来很舒服。但是在最后生成Release版本时,才发现安装包大了600+KB。原因是Moshi对Kotlin的支持使用了Kotlin的Reflection,这个就很占空间,虽然也有Kotlin Relection Lite这个轻量级版本,但目前并不支持。

所以,我在

阅读全文 »

之前不知在哪里看到Android开发者都应该了解一下Android Internal,就截了图记了下来。现在有时间了,就找了一些Android Internal的内容,记了些笔记。相应的资料也列在了各个章节末尾。

不是很全,不保证全对,不保证维护

基于Linux内核的Android

Android之所以享誉盛名,是因为在Linux内核基础上已改的面目全非。。就是为了适应手机那小内存、差CPU、续航是问题等的特点。Android不是一个Linux的发行版。

阅读全文 »