私はライブラリを構築したいですが、いくつかのクラスを開発者に公開したくはありませんが、ライブラリコードに簡単に公開してテストしたいと思っています。ProGuard(または他の方法)を使用してライブラリJarのパブリッククラスを非表示にする方法は?
ProGuardを使用して特定の公開クラスを非表示にする方法はありますか(Android SDKで使用される@hide記法など)。
私はライブラリを構築したいですが、いくつかのクラスを開発者に公開したくはありませんが、ライブラリコードに簡単に公開してテストしたいと思っています。ProGuard(または他の方法)を使用してライブラリJarのパブリッククラスを非表示にする方法は?
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のは、publicクラスを難読化または維持するためのオプション、特定のクラスを拡張するクラス、メンバーをたくさん持っています。..
多分ファサード(http://en.wikipedia.org/wiki/Facade_pattern)が役に立ちます。このパターンの目的は、あなたの問題と似ています。それは外の世界に還元され、それは図書館内のすべての鐘と笛を維持します。
「自分のコードに公開されました」ということは、あなたのライブラリや他の場所のコードを意味しますか? – njzk2
私のライブラリのコードに公開 –
なぜ彼らは 'public'ですか?ライブラリが複雑なので、複数のパッケージが必要ですか?スーパークラス/インターフェースで必要とされるので、 'public'ですか? – CommonsWare