Android 自动化编译之 Github Actions

Actions 是 Github 2019年推出的自动化集成编译工具,在漫长的 Beta 等待后我也在去年获得了优先体验,当时也写了 actions-android-ci 的第一个版本,用来编译 CallerInfo 项目。

使用枚举管理不同渠道版本常量

工作中遇到了需要根据不同渠道配置不同广告 ID 需求,而且渠道很多,变动可能很频繁,如何才能高效配置管理呢?通过思考实践,我最终使用了枚举来管理不同渠道的广告 ID。

从零开始的 Go 爬虫框架编程实战 - 下篇

这是一篇讲解如何编写 Go 爬虫框架的编程实战系列长文,是一个爬虫框架程序从无到有的成长进化史。

从零开始的 Go 爬虫框架编程实战 - 中篇

这是一篇讲解如何编写 Go 爬虫框架的编程实战系列长文,是一个爬虫框架程序从无到有的成长进化史。

从零开始的 Go 爬虫框架编程实战 - 上篇

这是一篇讲解如何编写 Go 爬虫框架的编程实战系列长文,是一个爬虫框架程序从无到有的成长进化史。

Kotlin 代码样式指南

在学习完语言语法后,要学好和用好一门开发语言,代码风格和单元测试是最基础的两个内容。其中单元测试在每个语言中基本相同,而代码风格或代码样式则需要以每个语言的推荐风格为标准,保持统一和规范使用,这在团队协作和开源项目中非常重要。

如何管理多模块工程中的依赖?

如今,Android 应用程序的模块化已成为 Android 社区中的热门话题。每个模块的依赖性管理比以往任何时候都变得越来越重要。通过阅读本文,您将学会使用不同的方法来管理项目的依赖关系:使用根项目的 `ext` 块,或通过在模块中引用包含依赖关系的独立文件中的依赖,或使用 `buildSrc` 模块管理依赖。

Android 工程的 Vagrant Gitlab Runner

Gitlab runner 是一个优秀的持续集成工具,通过 runner 我们可以执行自动化编译、静态代码检查、单元测试、UI 测试,发布等操作,是高效快速迭代开发的必要工具。 GitLab Runner 独立运行于 Gitlab 实例,可以非常容易的扩展和安装。

Android 应用内存数据分析方法

内存优化是 Android 开发中一个非常重要的环节,如果不注意就可能出现内存泄漏,内存溢出,应用运行缓慢,效率低下等问题,严重影响用户体验。本文主要介绍 Android 应用内存的抓取和内存数据分析方法。

Android 外置 SD 卡写入权限问题

最近升级到 Android 9.0 后,发现文件管理器在写入外置 SD 卡时出现了写入失败的问题,定位到 File.canWrite() 方法,发现返回了 false。经过讨论追踪定位,发现是由于 Google 的一个更改导致的,这里的修改移除了 WRITE_MEDIA_STORAGE 相关权限,导致了外部 SD 卡存储不可写的问题。

MotionLayout 实现顶部栏拉伸效果

MotionLayout 是 google 新推出的 UI 组件,是 ConstraintLayout 2.0 库的一个大更新。它继承自 ConstraintLayout 可以方便的制作复杂动画界面,通过在 xml 中设置起始状态,关键帧,结束状态,快速实现界面动效或动画效果。

Java 语言 Glob 语法规则

Glob 是一种模式匹配,类似于正则表达式但是语法相对简单。Glob 语句是一个含有 *,?{}[] 这些特殊字符的字符串,并与目标字符串匹配。可以用来做文件路径匹配或文件查找。

Cleaner 应用工程及架构设计

Cleaner 是一个新开发的工具类应用,主要集成了内存、通知、应用、大文件、冗余文件、相册清理等功能。同时提供对外的数据提供者接口和 Deeplink 入口。

如何使用 Dagger 编写测试

使用像 Dagger 这样的依赖注入框架的一个好处是可以让你更容易编写测试代码。本文档探讨了测试使用 Dagger 构建的应用程序的一些策略。

Android 四大组件单元测试之 Receiver

和 Activity 测试类似,Receiver 测试相对比较简单,很容易得到 100% 的覆盖率

Android 四大组件单元测试之 Activity

Activity 测试相对比较简单,很容易得到 100% 的覆盖率

Android 开发人员自动化测试

编写测试的目的是为了验证程序是否正确执行、行为无误及是否稳定可用。同时,拥有充分测试代码的项目易于维护,便于交接、团队协作。

Mockito 单元测试实例

Mockito 是一款优秀的 Java 单元测试库,本文介绍如何使用 Mockito 来编写 Android 本地单元测试。