簡體   English   中英

如何使用ProGuard(或任何其他方式)隱藏庫Jar中的公共類?

[英]How to hide public classes in library Jar using ProGuard (or any other way)?

我想構建一個庫,但我不希望某些類暴露給開發人員,但我確實希望它們能夠暴露給我的庫代碼並輕松地進行測試。

有沒有辦法使用ProGuard或任何其他方式隱藏特定的公共類(如Android SDK中使用的@hide表示法)?

obfuscatin的重點在於它隱藏了外部人員的方法,但更新了庫內的引用。 通常,你會有一個

void myMethodWithAVeryExplicitName() {
    // Do Stuff
}

void otherMethod() {
    // Call the first method
    myMethodWithAVeryExplicitName();
}

它將被混淆為:

void a() {
    // Do Stuff
}

void b() {
    // Call the first method
    a();
}

那么Proguard有很多選項來混淆或保持公共類,擴展特定類的類,成員......

也許門面( http://en.wikipedia.org/wiki/Facade_pattern )會有所幫助。 此模式的目的與您的問題類似。 它提供了一個減少外部世界,同時它保留了圖書館內的所有花里胡哨。

暫無
暫無

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

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