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的发行版。

阅读全文 »

之前需要用代码来代替一些繁琐重复的网页操作,自然想到用Python自动化这些工作。

然后找到了这篇文章。它用了Splinter,一个Selenium的包装。尝试之后发现意外地简单。

内容大同小异,说明几个坑。

阅读全文 »

虽然最终选择了GithubPages + Hexo,但之前使用Docker搭的Wordpress + HTTPS。搭完后才发现维护起来又累又贵,就把整个流程贴出来留给有缘人吧。

甩锅申明:出了问题我不知道怎么解决,请问万能的Stackoverflow吧😉

好处:

  1. 方便,命令几乎都是cd, ls和nano/vim。
  2. 快速,不需要LAMP或者LNMP漫长的安装/编译过程。新机器建站和删库跑路都很快。
  3. 干净,不污染其他文件夹,删除网站只需要一条Docker命令。
  4. https,Let’s Encrypt! 不仅是网站,还要加个绿色的小锁。
阅读全文 »