簡體   English   中英

如何在android studio中混淆包名稱

[英]How to obfuscate package name in android studio

我使用以下代碼成功混淆了類名和方法

buildTypes {
    release {
        shrinkResources false
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}

在應用級build.gradle文件中

-dontwarn mypackage.**
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
-dontwarn

proguard-rules.pro

但我的問題是包名沒有被混淆。

那我怎樣才能達到它,請幫忙。

謝謝

在 Pro-Guard 中,包名可以通過各種方式進行混淆,混淆程度和緊湊程度越來越高。 例如,考慮以下類:

mycompany.myapplication.MyMain 
mycompany.myapplication.Foo
mycompany.myapplication.Bar 
mycompany.myapplication.extra.FirstExtra 
mycompany.myapplication.extra.SecondExtra 
mycompany.util.FirstUtil mycompany.util.SecondUtil

讓我們假設類名 mycompany.myapplication.MyMain 是配置保留的主要應用程序類。 除了 Main 之外的所有其他類名都可以被混淆。

默認情況下,包含無法重命名的類的包也不會重命名,並保留包層次結構。 這會導致混淆的類名,如下所示:

mycompany.myapplication.MyMain 
mycompany.myapplication.a 
mycompany.myapplication.b 
mycompany.myapplication.a.a 
mycompany.myapplication.a.b 
mycompany.a.a 
mycompany.a.b

-flattenpackagehierarchy 選項通過扁平化混淆包的包層次結構來進一步混淆包名稱:

-flattenpackagehierarchy 'myobfuscated'

或者, -repackageclasses 選項通過將混淆的類組合到單個包中來混淆整個包:

-repackageclasses 'myobfuscated'

混淆后的類名如下所示:

mycompany.myapplication.MyMain 
mycompany.myapplication.a 
mycompany.myapplication.b 
myobfuscated.a 
myobfuscated.b 
myobfuscated.c 
myobfuscated.d

另外指定 -allowaccessmodification 選項允許擴大類和類成員的訪問權限,打開重新打包所有混淆類的機會:

-repackageclasses 'myobfuscated' 
-allowaccessmodification

混淆后的類名如下所示:

mycompany.myapplication.MyMain 
myobfuscated.a 
myobfuscated.b 
myobfuscated.c 
myobfuscated.d 
myobfuscated.e 
myobfuscated.f 

指定的目標包始終可以是根包。 例如:

-repackageclasses '' 
-allowaccessmodification

混淆后的類名是最短的名稱:

mycompany.myapplication.MyMain 
a 
b 
c 
d 
e 
f

請注意,並非所有代碼都可以接受所有級別的包名稱混淆。 值得注意的是,您可能必須考慮到您的應用程序可能包含必須調整的資源文件。

在 Android Studio 中混淆代碼請訪問這篇文章

或者將您的代碼導入NetBeans並使用其內置功能來編譯、預驗證、混淆和打包代碼)))。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM