從零開始做網(wǎng)站數(shù)據(jù)庫精準(zhǔn)客戶運營推廣
要避免在使用 ProGuard 或 R8 進(jìn)行代碼混淆時混淆特定類名和方法名的同時讓方法內(nèi)容被混淆,你需要在 ProGuard 配置文件中使用 -keepclassmembers
或 -keep
規(guī)則。這些規(guī)則允許你指定保留類名和方法名的同時允許方法內(nèi)部代碼被混淆以減小體積和提高安全性。
以下是 ProGuard 配置規(guī)則的示例,用于保留某個類的類名和方法名,但允許方法體被混淆:
# 保留類名和方法名,但不保護(hù)方法的內(nèi)部實現(xiàn)
-keepclassmembers class com.example.MyClass {public <methods>;
}# 或者,如果你想保留所有的方法(包括私有的)
-keepclassmembers class com.example.MyClass {<methods>;
}# 如果想保持特定方法名不混淆
-keepclassmembers class com.example.MyClass {public void myMethod(...);
}
-keepclassmembers
用于保留指定類的成員,但允許類本身的名字被混淆;如果類名也需要不被混淆,可以使用 -keep
替代。
# 保留類名、成員變量名和方法名,但不保護(hù)方法的內(nèi)部實現(xiàn)
-keep class com.example.MyClass {public <fields>;public <methods>;
}
以上配置確保了 MyClass
這個完整的類名不會被混淆,所有的公共成員變量和方法名也保持原樣,但它們的內(nèi)部實現(xiàn)可以被混淆。
請按照你的實際需求調(diào)整上面規(guī)則中的類名和方法名。此外,你需要確保規(guī)則覆蓋了所有你希望避免混淆的情況。