2017-05-22 5 views
0

私はアンドロイドアプリをいくつかのモジュールに分けています。はAndroidモジュールの依存度を高めるapkのサイズ

旅行アプリですが、別のクライアントになります。

すべてのお客様は、ホテルや車の画面、色、画像のみを変更する必要があります。

私はライブラリモジュールとしてアプリケーションのすべての部分を作っています。例えば

アプリケーションモジュール

コンフィグモジュール>>ベースURLのような、色、FacebookやTwitter秘密鍵など

ユーティリティモジュール>>通知ヘルパー、ボレーヘルパー

のような

ホテルモジュール、カーモジュールなど

ユーティリティモジュールでは、configモジュールと多くのモジュールからdrawableが必要ですdep configモジュールの最後に

いくつかのモジュールを構成モジュールに依存させると、私はapkを生成するときにapkサイズが冗長構成モジュールを持つか、それとも別の方法で目標を達成できますか? enter image description here

答えて

1

おそらく、gradleでビルドバリアントを使用できます。

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants

https://developer.android.com/studio/build/build-variants.html

だからあなたの世界的なアーキテクチャは、通常のフォルダにあり、貴様のファイルが一致したフォルダ内にあります。

例:

app 
| - src 
    | - main 
    | | - java 
    |  | - com.xxxx.yy 
    |   | your code 
    | 
    | — car 
    | | - java 
    | | | - com.xxxx.yy 
    | |  | specificClass.java 
    | | - res 
    |  | - drawable 
    |   | - main.png 
    | 
    | - hotel 
     | - java 
     | | - com.xxxx.yy 
     |  | specificClass.java 
     | - res 
      | - drawable 
       | - main.png 

その後、あなたのコードであなたのmain.pngのIMGを呼び出すことができます。ビルド時に、carまたはhotelのフレーバーでコンパイルすると、アプリに正しい画像が表示されます。

たとえば、string.xmlと同じ働きをするか、javaクラスを使用します。

メインフォルダ内のグローバルコードを分解し、特定のコードを一致するフォルダに配置してください。

+1

私はgradleを使ってアプリの「ブランディング」を処理していますが、この方法をお勧めします。この答えを完成させるために、私は簡単な例を提供します。 – zgc7009

+0

私はドキュメントをチェックしましたが、ドキュメント内に異なるapkのバリエーションがあることがわかりました。「Gradleは合計12個のビルドを作成します」 – amorenew

+0

@ zgc7009ブランドのみではなく、フライトレイアウトや車のスクリーンロジックを変更する必要があるかもしれません – amorenew

関連する問題