Dorck's Blog

乾坤未定,你我皆是黑马。

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

Android 系统有着这么一个神奇的“文件“目录存放着 CPU 及设备所运行进程的相关数据,这对于我们从事 APM 应用性能监控有着莫大的帮助。当然这种监控应用及手机系统信息的方式并非无中生有,早在 Android Framework 中就已经涉及它的踪迹,比如 ANR 发生时,系统会去 dump 及上报打印相关 CPU、进程、线程等信息到 log 中。而这些信息是借助 ProcessCp...

把数组排成最小的数

本文是对于 常用排序算法合集 的扩展应用。 题目内容 把数组排成最小的数。要求如下: 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 附加说明: 0 < nums.length <= 100 输出结果可能非常大,所以你需要返回一个字符串而不是整数 拼接起来的数字可能会有前导 0,最后结果不需要...

Gradle手札之Properties配置

Gradle 很多构建属性可以通过 Properties 来设置。Properties 文件格式可由 java.util.Properties 解析,其中包含若干键值对,类似 Map<String,String> 格式数据来存储。 配置构建环境 根据官方介绍,Gradle 提供了多种方式和机制来配置 Gradle 自身或者特定项目的行为。常见的有以下几种方式,优先级分别从高到...

Git用户手札

Git 的由来 Git 的诞生有偶然性,也有历史的必然。一方面,随着 Linux 内核开源项目大量维护成本集中在提交补丁和保存归档的繁琐事务上(1991-2002年间); 另一方面,2005 年,Linux 内核项目使用的 BitKeeper 版本控制工具授权被收回。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于以往经验来开发出一款自己的...

GitHub Actions实践之自动发布组件

在关于发布Gradle插件到Maven开放仓库的碎碎念一文中简单介绍了如何发布一款 Gradle 插件到 Maven Central。虽说最终发布只需要本地执行 ./gradlew publishPlugins 命令即可快速发布完成,但每次发布都需要区分本地和远程仓库的环境差异,然后手动配置。举个最简单的例子:我不希望本地敏感信息上传到远程仓库中,所以,每次执行完发布操作还需要手动擦除敏感信...

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

早几年前发布过几个开源库到 Jcenter 上,有一段时间没关注 GitHub 也就逐渐淡忘了。最近几天刚好想起此事,也就打算迁移一下历史组件,顺便将前阵子搞的一个 Gradle 插件也发布一下,于是便有了这篇文章。以下仅记录发布涉及的主要步骤以及遇到的一些坑,前车之鉴,后车之师而已矣。 Library 发布 到 Maven Central 熟悉开源库发布的朋友应该都体验过 Maven ...

记一次Kotlin DSL的糟糕体验

昨天在用 Kotlin 写 Gradle 插件的时候遇到个奇怪的问题,折磨良久,最后才发现是 Kotlin Dsl 的坑。我们先来看下这段代码: 1 2 3 4 5 6 7 8 internal fun Project.javaSourceJarTask(packSource: Boolean): TaskProvider<*> = if (!pack...

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

大浪淘沙,随着 jcenter 的落幕,组件发布逐渐转向了 maven central 仓库。各种平台层出不穷,不论组件存储在何处,作为开发更加关注的是组件发布的效率,这也正是本文接下来想要阐述的主题。 发布Android组件 Android Gradle 早早地就更新换代到了 maven-publish 插件。一般情况下,我们发布一个普通的 Android 组件通常需要添加如下代码: ...

Android代码检查之自定义Lint

概述 Lint 是 Android studio 提供的一款静态代码检查工具,它可以帮助我们检查 Android 项目源文件是否有潜在的 bug,以及在正确性、安全性、性能、易用性、无障碍性和国际化方面是否需要优化改进。Lint 的好处不言而喻,它能够在编码阶段就帮我们提前发现代码中的“坏味道”,显著降低线上问题出现的概率;同时也能有效促进团队的开发规范的统一。 关于执行 lint ...

发布组件到GitHub Packages

使用过 Maven Central 的朋友应该都体会过组件发布流程的繁琐,于是乎心里萌生了一个想法:是否可以将组件发布到 GitHub 仓库呢?果断去 Google 了一下,果不其然,GitHub 提供了 GitHub Packages 可以让作为开发者组件发布的分发仓库。下面来看下如何具体实现本地 Library 发布到 GitHub Packages 以及在项目中下载依赖库。 G...