[Android] カスタムApplication の整備
Android のAPI にApplication というクラスがあります。 このクラスは、アプリの起動から終了までの一連のアプリ状態を司っています。
その性質から、例えば下記の用途で利用されています。
- アプリ実行期間中に1つだけ作ったインスタンスの保持
- 開発作業に役立つ設定の追加
- 利用しているライブラリの初期化処理の実行
このようによく使われているApplication クラスですが、 Android Studio でプロジェクト新規作成しただけでは生成されません。 なので以降の文書で、追加方法などを解説していきます。
目次
- Application クラスの追加手順
- 応用例
- ビルドフレーバー毎に調整を加えたApplication クラスを設定したい
- 参考文献
Application クラスの追加手順
- Application を拡張したクラスを新規作成する
import android.app.Application // (省略) class ??? : Application() { // (省略) }
- AndroidManifest に、追加したApplication クラスの指定を追加する
<?xml version="1.0" encoding="utf-8"?> <manifest (省略)> <!-- 省略 --> <application android:name="???" (省略)> <!-- 省略 --> </application> <!-- 省略 --> </manifest>
応用例
ビルドフレーバー毎に調整を加えたApplication クラスを設定したい
例えばdebug ビルドのみWebView デバッグを有効にしたいなど、 ビルドフレーバー毎に調整を加えたいケースがあります。
その場合は下記の手順を踏んでください。
- 先の手順で用意したApplication クラスを継承可能にする
// (省略) open class ??? : Application() { // (省略) }
- 対象のビルドフレーバーに、一つ前のクラスを拡張したクラスを新規作成する
// (省略) class !!! : ???() { // (省略) }
- 対象のビルドフレーバーのAndroidManifest に、追加したApplication クラスの指定を追加する
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:tools="http://schemas.android.com/tools" (省略)> <!-- 省略 --> <application android:name="!!!" (省略) tools:replace="android:name" /> <!-- 省略 --> </application> <!-- 省略 --> </manifest>