Archive

「没事多回来看看,顺便打打鸡血」
2023

Android上的Deep-Link技术调研


Launcher进程启动过程剖析


回顾Java中经典的生产/消费者模型


Android系统启动流程剖析


AOSP在Mac上的编译实践(上)


效率编程之快捷键篇


Android系统中线程的创建过程


简单聊聊 ChatGPT


Android系统中关于/proc目录的点滴


把数组排成最小的数


2022

Gradle手札之Properties配置


Git用户手札


GitHub Actions实践之自动发布组件


关于发布Gradle插件到Maven开放仓库的碎碎念


记一次Kotlin DSL的糟糕体验


Gradle手札之组件发布迅疾如风


Android代码检查之自定义Lint


发布组件到GitHub Packages


关于博客更换评论系统的一场厮杀


Gradle手札之命令行接口一览


揭开 Kotlin 中的 companion object 的奥秘


行为型设计模式一览


Sublime Text在Mac上开机自启动问题


Gradle 组件依赖版本管理


如何维护一个全局 Context


常见排序算法整理


操作系统地址空间与内存分配


操作系统的启动过程


操作系统原理的基本概念和组成


Git emoji 提交规约


独立开发者需奉行的原则


2021

Git 默认编辑器替换


文章发布流程记录


关于 StateFlow 使用的一次车祸现场


Markdown 流程图绘制的二三事儿


关于如何避免低效学习的所思


2020

MotionLayout:打开动画新世界大门(partII)


一篇文章带你领略Android混淆的魅力


Flutter 开发小结 | Tips


Flutter 中“倒计时”的那些事儿


2019

MotionLayout:打开动画新世界大门(partI)


是时候让 Android Tools 属性拯救你了


带你领略 Kotlin 中的 “when”魔法


2018

Android中的 MVP:如何使 Presenter 层系统化?


当 Kotlin 中的监听器包含多个方法时,如何让它 “巧夺天工”?


Android Kotlin 快速开发之 Anko 魔法


带你领略 ConstraintLayout 1.1 的新功能