Android にて, アクセスキーのような情報を .env ファイルから読み込ませたい


Android の開発にて, .env ファイル等からアクセスキーのような鍵情報を読み込ませる方法はありますでしょうか？

iOS ですと, cocoapods-keys を使って, .env ファイルを用いて変数として読み込ませることができました。  
参考: <http://qiita.com/susieyy/items/4632e30068a826b936f6>

Android ではどのように鍵情報をプロジェクトから切り離して管理できるでしょうか？  
twitter の consumerKey, comsumerSecret 的なものを,
コード内にべた書きしたくないので質問させていただきました。よろしくお願いいたします。




既に回答があるので、私が述べるまでもないかもしれませんが、CI環境で自動ビルドを実行させるために実施している手法を補足いたします。  
なお、ビルドに使用する機密情報(鍵情報など)を組み込むパターンでかつ、Android studioでgradleを使用中の認識で回答いたします。

`build.gradle`へ以下のように`buildConfigField`を追加すると、`BuildConfig.KEY`で参照できるようになります。debug/releaseビルドに関係なく定義したい場合は`defaultConfig`へ記載するほうが良いです。

[code]

    android {
        buildTypes {
            debug {
                if (project.hasProperty('testvalue')) {
                    buildConfigField 'string', 'KEY', project.testvalue
                }
            }
            release {
                if (project.hasProperty('testvalue')) {
                    buildConfigField 'boolean', 'KEY', project.testvalue
                }
            }
        }
    }
    
[/code]

環境変数等は`build.gradle`と同じディレクトリに作成した`gradle.properties`へ定義することを想定します。

[code]

    testvalue="secretkey"
    
[/code]

`gradle.properties`はコミットしないように`.gitignore`へ記載する等、注意してください。

CI環境等を使っている場合は、対象ファイルを別途展開する等の操作を組み込んでおくと何かと便利です。




既に回答があるので、私が述べるまでもないかもしれませんが、CI環境で自動ビルドを実行させるために実施している手法を補足いたします。  
なお、ビルドに使用する機密情報(鍵情報など)を組み込むパターンでかつ、Android studioでgradleを使用中の認識で回答いたします。

`build.gradle`へ以下のように`buildConfigField`を追加すると、`BuildConfig.KEY`で参照できるようになります。debug/releaseビルドに関係なく定義したい場合は`defaultConfig`へ記載するほうが良いです。

[code]

    android {
        buildTypes {
            debug {
                if (project.hasProperty('testvalue')) {
                    buildConfigField 'string', 'KEY', project.testvalue
                }
            }
            release {
                if (project.hasProperty('testvalue')) {
                    buildConfigField 'boolean', 'KEY', project.testvalue
                }
            }
        }
    }
    
[/code]

環境変数等は`build.gradle`と同じディレクトリに作成した`gradle.properties`へ定義することを想定します。

[code]

    testvalue="secretkey"
    
[/code]

`gradle.properties`はコミットしないように`.gitignore`へ記載する等、注意してください。

CI環境等を使っている場合は、対象ファイルを別途展開する等の操作を組み込んでおくと何かと便利です。

