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! 不仅是网站,还要加个绿色的小锁。
阅读全文 »