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

  • ~
  • }
  • 	 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の構文と関係があります.
    以上は私の実際のプロジェクトで運用したところで、認識が足りないかもしれませんが、引き続き模索しなければなりません.