news 2026/7/8 2:01:04

Dexcount Gradle Plugin:给 APK 方法数做体检的 Gradle 插件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Dexcount Gradle Plugin:给 APK 方法数做体检的 Gradle 插件

文章目录

  • Dexcount Gradle Plugin:给 APK 方法数做体检的 Gradle 插件
    • 1、 这玩意儿是干嘛的
    • 2、 为什么要用它
    • 3、 怎么接入
    • 4、 适合哪些场景
    • 5、 一点背景

Dexcount Gradle Plugin:给 APK 方法数做体检的 Gradle 插件

Dexcount Gradle Plugin 在 GitHub 上已经拿到 3,075 Star 了。

KeepSafe 开源了这个 Gradle 插件,专门干一件事:统计 APK、AAR 或 Java 模块里的方法引用数量。配合 Android开发的日常构建流程,用它来盯住方法数的增长,别一不小心撞上 65,536 的天花板,到那时候要么割肉删方法,要么开 multidex,都是麻烦事。

1、 这玩意儿是干嘛的

就一件事:构建时报告 APK 里有多少方法引用。

Android 早期有个硬限制,单个 dex 文件最多 65,536 个方法引用。虽然现在 multidex 已经是常规操作,但方法数膨胀本身仍然是性能问题。方法数多,冷启动慢,包体大,dex 布局也乱。

Dexcount 在每次构建后吐一份报告,按包名分组列出方法数。哪个 package 涨得快、哪个第三方库吃方法吃得凶,一眼就能看出来。

2、 为什么要用它

做过大型 Android 项目的人都碰到过这种场景:业务跑得好好的,某天构建突然报Cannot fit requested classes in a single dex file

排查半天才发现新引入的 SDK 一下子塞进来几万个方法。要早点看到方法数曲线,根本不会让事情走到这一步。

Dexcount 把方法数这件事可视化出来了。结合 CI 跑的话,每次提 PR 都能看到方法数变化,是涨了 50 个还是涨了 5,000 个,代码 review 时心里有数。

3、 怎么接入

插件在 Gradle Plugin Portal 上,ID 是com.getkeepsafe.dexcount,Maven Central 上的坐标是com.getkeepsafe.dexcount:dexcount-gradle-plugin:4.0.0

环境要求:Java 11 以上、Gradle 7.0 以上、Android Gradle Plugin 7.0.0 以上。自己编译插件源码的话需要 Java 17。

根目录的build.gradle里加上 plugin:

plugins{id"com.getkeepsafe.dexcount"version"4.0.0"}

跑一次assembleDebug,构建结束后会在build/outputs/dexcount下生成报告,有 txt、csv、html 三种格式,挑自己顺手的看。

4、 适合哪些场景

  • 中大型 Android 项目,方法数已经接近 65,536,需要持续监控增长趋势
  • 团队里多人协作,想在 PR 阶段就把方法数暴涨的问题拦下来
  • 引入新第三方库之前,先评估它对 dex 容量的占用
  • 老项目准备拆 dex 或开 multidex 之前,做一次完整的方法数普查

5、 一点背景

com.android.dexdeps这部分 Java 代码来自 Android 源码树,灵感来自 Mihail Parparita 的dex-method-counts项目。本质上就是把那个老牌命令行工具搬进了 Gradle 生态,跟现代 Android 构建流程贴合得更紧。

版权上归 Keepsafe Software, Inc,从 2015 年维护到现在,4.0.0 是当前主线版本。

上归 Keepsafe Software, Inc,从 2015 年维护到现在,4.0.0 是当前主线版本。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 2:00:03

Qt——银行家算法的分

1.研究一个银行家如何将总数一定的资金,安全地借给若干个顾客,使顾客既能满足对资金的需求,也使银行家可以收回自己的全部资金,不至于破产一些限制条件:每次顾客在借款前必须提前说明所需资金总额每次借钱都是以一个单…

作者头像 李华
网站建设 2026/7/8 1:59:48

数据分析转大模型:从 Demo 走到可维护方案

聊《数据分析转大模型:从 Demo 走到可维护方案》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。 摘要 先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做&#…

作者头像 李华
网站建设 2026/7/8 1:52:57

Okbiye|AI 自动搭好演示文稿框架,不用从零手搓 PPT 高效赶汇报

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPTAI PPT制作 - Okbiye智能写作https://www.okbiye.com/ppt 一、人工做 PPT 多重难题,挤占学习与工作核心时间 不管是在校学生的课程答辩、毕业汇报,还是职场人的月度述职、项目路…

作者头像 李华
网站建设 2026/7/8 1:50:53

WEB作业九&作业十

改成了restful风格界面,进行了分页:查询功能:

作者头像 李华
网站建设 2026/7/8 1:48:08

新手什么时候该打断 Codex,什么时候该继续让它往下做

大家好呀,我是 Lazy熊。 很多人刚开始用 Codex,最容易拿不准的一件事就是: 现在到底该不该打断它。 有时候你看它已经开始分析了, 不知道要不要继续等。 有时候你又隐约感觉它已经开始偏了, 但又怕自己打断太早。…

作者头像 李华