2017-02-26 8 views
1

BuildConfigクラスに静的な最終変数を作成するbuildTypesで 'buildConfigField'メソッドを使用できます。また、xmlファイルにリソースを追加すると、アンドロイドはデフォルトでR.javaファイルにID定数を作成します。私はこれの背後にある実装を理解したい。

build.gradleファイル内にアンドロイドプロジェクトのメソッドを作成して、jsonファイルを読み込んでクラスとそれに関連するstatic finalメンバー変数を作成します。このように作成されますbuild.gradleからコンパイル時設定クラスを作成する方法

{ 
    "Config": [ 
    { 
     "name": "usernameType", 
     "type": "String", 
     "value": "text" 
    } 
    ] 
} 

public static final Class Config { 

    public static final Item username = new Item("<item_type>","<item_name>","<item_value>"); 

    public class Item { 
    public String name, type, value; 
    public Item(String name, String type, String value){ 
     this.name=name; 
     this.type=type; 
     this.value; 
    } 

} 

私はどのように私は基本的にコンパイル時に設定ファイルを作成します。これは、このアイデアを実装することができます任意のアイデアを持っていません。

答えて

1

JSONで読み取ることができるGradleタスクを定義するGradleプラグインを作成し、次にJavaPoetを使用してJavaファイルを書き出すことができます。

あなたがして羽目になる:...

  • のGradle DefaultTaskオブジェクト右スポットにAndroidのビルドプロセスに自分自身を添付する方法を知っていると作成

    • のGradle Pluginオブジェクト...

    • JavaPoetを読み込んでJavaPoetを使用して、JavaPoetを使用するいくつかのプレーンな(Java以外の)Javaコード

    This sample projectmy bookからthis chapterで十分な説明と、Gradleのプラグインを設定するための基本を示しています。 This sample projectは私のJSONとJavaがあなたとは多少異なりますが、あなたが欲しいものはほとんどあります。私の本からはthis chapterで詳しく説明されています。

    原則として、Gradleでこれを行うことができますが、これを取り除くために必要なコード量は、通常はbuild.gradle個のスクリプトに表示されている数値を超えています。

  • 関連する問題