最新 Android 热门开源项目公布,androidframework 开发书籍
LeakCanary 会自动检测 debug build 中的内存泄露,并显示提示。无需修改代码,也不会影响正式发布版本。
GitHub 仓库:square/leakcanary
Material Dialogs
美观、可扩展的 Material Design 风格对话框。

Material Dialogs 采用模块化架构,核心模块(core)包含了核心功能和基本功能,文本输入框、文件选择器、色彩选择器、时间日期选择器、弹出表单等功能作为扩展模块提供,可单独引入。支持 AndroidX 生命周期组件。
GitHub 仓库:afollestad/material-dialogs
CalendarView
基于 RecyclerView 的日历库。

这个库借鉴了 iOS 的?JTAppleCalendar,提供了比较齐全的日历视图所需特性,支持定制样式。
GitHub 仓库:kizitonwose/CalendarView
Kyrie
VectorDrawable?和?AnimatedVectorDrawable?的超集。

VectorDrawable?提供了像素密度无关性——在任意设备上随意缩放而不损失画质。AnimatedVectorDrawable?在其基础上添加了动画特性。然而,它们有三大缺陷:
无法暂停和继续。
无法在运行时动态创建。
相比 web 上的 SVG,它们仅仅支持少量特性。
Kyrie 提供了?KyrieDrawable?类,支持?VectorDrawable?和?AnimatedVectorDrawable?的所有特性,同时改进了上述缺陷。
GitHub 仓库:alexjlockwood/kyrie
Assent
面向 Kotlin 和 AndroidX,让 Android 的运行时权限控制易于开发。
fun saveImage(bitmap: Bitmap) = runWithPermissions(WRITE_EXTERNAL_STORAGE) {
上面的例子展示了 Assent 提供的简洁紧凑的基于回调的 API。(当然,你还是需要在?AndroidManifest.xml?里声明权限的,否则 Android 总会拒绝相应权限。)
GitHub 仓库:afollestad/assent
ktlint
开箱即用的 Kotlin linter:
零配置。采用官方风格(kotlinlang.org?和?Android Kotlin 风格指南)。
内置格式化功能,类似 Go 语言的?gofmt。
单一可执行 jar 文件,内置所有依赖(当然,你还是需要自备 jvm 的)。
可搭配 maven、gradle、GNU Emacs、Vim 使用。

注意「零配置」的意思是并不提供多种风格选项让你选择,但是你仍然可以通过自行编写规则来自定义 linter 的行为。另外,ktlint 也会遵循?.editorconfig?中的设置。
ktlint 也可搭配 IntelliJ IDEA 使用。不过通常没有这个必要,可以直接使用 IDEA 内置的代码格式化功能(效果和 ktlint 一致)。暂时也没有 vscode 插件,不过可以通过?sonarlint?曲线使用。
mockk
Kotlin 的 mock 测试库,不仅支持常规的单元测试,还支持在真机或模拟器上运行的 instrumented 测试。

mockk 提供了全面、强大的特性,可以 mock 类、对象、私有函数、协程等多种结构(Android P 之前的版本 instrumented 测试有少数特性不支持)。
官网:mockk.io
评论