androidにシステム属性を追加する:Settings.SystemとSystemProperties
1529 ワード
Androidソースコードの開発では、グローバルフラグや変数がよく使われています.この場合、androidシステムに自分の望む属性を追加することができます.
1.Settings.system
このシステムの属性はよく使われています.例えば、飛行モードのオンとオフは、Settingsを変えることです.system.AIRPLANE_MODE_ONの値.
次に、システム属性を定義する方法について説明します.たとえば、「SILVAN_LIU」という属性を追加します.
パス:frameworks/base/core/java/android/provider/Settings.java
[java] view plain copy print ?
public static final String SILVAN_LIU = "silvan_liu"; public static final String[] SETTINGS_TO_BACKUP ={
~ +SILVAN_LIU
~ }
Settings.System.getInt(getContentResolver(), Settings.System.SILVAN_LIU,0
)SILVANを入手して設定するLIUの属性値.
2.SystemProperties
Android属性用Systempropertiesを作成して変更する.set(name,value),android属性用Systempropertiesを取得する.get(name)、android属性の名前には一定のフォーマット要件があります.接頭辞はsystemcoreinitproperty_を使用する必要があります.service.cで定義された接頭辞は、システム属性設定を行うプログラムにもsystemまたはroot権限が必要です
propertyを追加する場合は、たとえばsilvan_liu
パス:system/core/rootdir/int.rc
on post-fs-dataディレクトリの下
setprop persist.sys.silvan_liu 1//persist.Sys接頭辞名;1が初期値
PS:接頭辞名の権限が異なるので、ここでは一つ一つ説明しません.また、on post-fs-dataディレクトリの下にロードする理由もあります.これはint.rcの構文と関係があります.
以上は私の実際のプロジェクトで運用したところで、認識が足りないかもしれませんが、引き続き模索しなければなりません.
1.Settings.system
このシステムの属性はよく使われています.例えば、飛行モードのオンとオフは、Settingsを変えることです.system.AIRPLANE_MODE_ONの値.
次に、システム属性を定義する方法について説明します.たとえば、「SILVAN_LIU」という属性を追加します.
パス:frameworks/base/core/java/android/provider/Settings.java
[java] view plain copy print ?
public static final String SILVAN_LIU = "silvan_liu";
~
~
public static final String SILVAN_LIU = "silvan_liu";
public static final String[] SETTINGS_TO_BACKUP ={
~
+SILVAN_LIU
~
}
を追加するとSystem.getInt(getContentResolver(), Settings.System.SILVAN_LIU,0)とSettings.System.getInt(getContentResolver(), Settings.System.SILVAN_LIU,0
)SILVANを入手して設定するLIUの属性値.
2.SystemProperties
Android属性用Systempropertiesを作成して変更する.set(name,value),android属性用Systempropertiesを取得する.get(name)、android属性の名前には一定のフォーマット要件があります.接頭辞はsystemcoreinitproperty_を使用する必要があります.service.cで定義された接頭辞は、システム属性設定を行うプログラムにもsystemまたはroot権限が必要です
propertyを追加する場合は、たとえばsilvan_liu
パス:system/core/rootdir/int.rc
on post-fs-dataディレクトリの下
setprop persist.sys.silvan_liu 1//persist.Sys接頭辞名;1が初期値
PS:接頭辞名の権限が異なるので、ここでは一つ一つ説明しません.また、on post-fs-dataディレクトリの下にロードする理由もあります.これはint.rcの構文と関係があります.
以上は私の実際のプロジェクトで運用したところで、認識が足りないかもしれませんが、引き続き模索しなければなりません.