2011/11/23

Android.mk:LOCAL_MODULE_TAGSの指定


Android.mkを記載する際に指定するLOCAL_MODULE_TAGSについて。

LOCAL_MODULE_TAGSはシステム領域にアプリケーションをインストール(プリイン)
する際に必要なプロパティです。
指定できる値にはeng/user/userdebug/optional(デフォルト)があります。

ここで指定した値は、システムをビルドした際にプリインするかどうかの判断で
使用されます。

●engビルド(デバッグビルド)
特に指定は不要です。LOCAL_MODULE_TAGSの指定値に関係なく
全てインストールされます。
userビルドの時にインストール不要の場合はengを指定します。

●userビルド(商用ビルド)
明示的に値を指定する必要があります。
userまたはuserdebugの場合、プリイン対象となります。
optionalの場合はcore.mkのPRODUCT_PACKAGEにmodule名指定が必要となります。

engビルドの時は存在するのに、userビルドした際には存在しない!なんて状況が
あったりします。
動作の最終確認は、できればuserビルドでやりたいところです。
事実、userビルドかengビルドかを参照して動作(厳密な権限チェックをする/しない)
を切り替えるモジュールも存在します。

# Android3.0か4.0だかでLOCAL_MODULE_TAGSは指定必須になったような。。。