You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Proguard是否支持指定混淆类名?可通过配置文件或映射文件实现吗?

Proguard指定混淆后类名称的配置方法

当然可以!Proguard完全支持手动指定类混淆后的名称,有两种常用的配置方式,我给你详细拆解下:

1. 直接在Proguard配置文件(比如proguard.flag)里配置

你可以直接在规则文件中使用-renameclass选项来指定单个类的混淆后名称,语法很简单:

-renameclass com.myclasses.MyClass -> com.priv.mc

如果需要批量把某个包下的类重命名到新的包路径,可以用-repackageclasses选项,比如把所有类都移到com.priv包下:

-repackageclasses com.priv

不过这个是批量操作,没法给每个类单独指定不同的目标名称,适合统一调整包结构的场景。

2. 通过自定义映射文件(比如mymap.map)配置

如果你有一堆类需要指定不同的混淆后名称,写在配置文件里太繁琐,就可以用自定义映射文件。首先你要按照Proguard的映射格式创建mymap.map,比如:

# 类的映射,注意结尾要加冒号
com.myclasses.MyClass -> com.priv.mc:
# 如果还要指定类内方法的混淆名,也可以接着写
com.myclasses.MyOtherClass -> com.priv.moc:
    void calculate() -> calc

然后在proguard.flag里添加-applymapping选项来加载这个映射文件:

-applymapping mymap.map

这里要注意:映射文件的格式必须和Proguard自动生成的mapping.txt完全一致,否则会解析失败;而且你指定的混淆后名称不能和其他类的名称冲突,不然Proguard会抛出错误。

一些额外提醒

  • 如果你同时使用了-applymapping和自动混淆规则,自定义映射里的规则会优先生效。
  • Android项目里通常用proguard-rules.pro作为配置文件,但本质和proguard.flag是一样的,配置语法通用。

内容的提问来源于stack exchange,提问作者kunkers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:44:41