2016-06-26 11 views
1

私はアプリで消費されるライブラリを持っています。このモジュールにはインタフェースとヘルパークラスがあります。モジュール/ライブラリの難読化

モジュール全体を難読化できますが、これらのインターフェイスやヘルパークラスにアクセスするにはどうすればよいですか?

私はこの試みた:その後、私は自分自身がProGuardの中にすべての私のクラスに--keepを行うに持った

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

を。私がプロのガードに追加できる何かがあるので、私はそれらのインターフェイス/ヘルパークラスをすべて保持し、それでもそれを難読化することができますか?

答えて

0

ライブラリのパブリックAPIのみを難読化しないようにするには、このパブリックAPIを指定する必要があります。ライブラリにはさまざまなアプローチがあります。

  1. パブリックAPIと実際の実装を別々のパッケージにします。 com.example.libraryにはパブリックAPIが含まれていますが、com.example.library.internalには実際の実装が隠されています。

  2. プライベート実際の実装パッケージを作る

ルールは次のようになりProGuardの:これは一緒に彼らのpublicまたはprotectedメソッド/フィールド内で唯一の公共のクラスを維持します

-keep public class com.example.library.* { public protected *; } 

com.example.libraryパッケージ