2013-07-15 9 views
5

私はライブラリを構築したいですが、いくつかのクラスを開発者に公開したくはありませんが、ライブラリコードに簡単に公開してテストしたいと思っています。ProGuard(または他の方法)を使用してライブラリJarのパブリッククラスを非表示にする方法は?

ProGuardを使用して特定の公開クラスを非表示にする方法はありますか(Android SDKで使用される@hide記法など)。

+0

「自分のコードに公開されました」ということは、あなたのライブラリや他の場所のコードを意味しますか? – njzk2

+0

私のライブラリのコードに公開 –

+0

なぜ彼らは 'public'ですか?ライブラリが複雑なので、複数のパッケージが必要ですか?スーパークラス/インターフェースで必要とされるので、 'public'ですか? – CommonsWare

答えて

0

obfuscatinの全ポイントは、外部の人々のためのメソッドを隠すが、ライブラリ内の参照が更新されます。一般的に、あなたはそれのように難読化されます

void myMethodWithAVeryExplicitName() { 
    // Do Stuff 
} 

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

があるでしょう:

void a() { 
    // Do Stuff 
} 

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

その後ProGuardのは、publicクラスを難読化または維持するためのオプション、特定のクラスを拡張するクラス、メンバーをたくさん持っています。..

0

多分ファサード(http://en.wikipedia.org/wiki/Facade_pattern)が役に立ちます。このパターンの目的は、あなたの問題と似ています。それは外の世界に還元され、それは図書館内のすべての鐘と笛を維持します。

関連する問題