ããSystemPropertiesä¸Settings.System
ãã
ãã1 ä½¿ç¨ SystemProperties.get
ããå¦æå±æ§å称以âro.âå¼å¤´ï¼é£ä¹è¿ä¸ªå±æ§è¢«è§ä¸ºåªè¯»å±æ§ãä¸æ¦è®¾ç½®ï¼å±æ§å¼ä¸è½æ¹åã
ããå¦æå±æ§å称以âpersist.âå¼å¤´ï¼å½è®¾ç½®è¿ä¸ªå±æ§æ¶ï¼å
¶å¼ä¹å°åå
¥/data/propertyã
ãã
ããå¨c++ä¸å°±æ¯å¯¹åºJAVAç两个å½æ°å°±æ¯property_setï¼ property_get,å
¶å®JAVAæ¯éè¿JNIè°ç¨è¿ä¸¤ä¸ªå½æ°çã
ããJAVA代ç å¦ä¸ï¼
ããimport android.os.SystemProperties;
ããSystemProperties.set("persist.sys.language", zone.getID());
ããString lang= SystemProperties.get("persist.sys.language");
ããè·åæ¹æ³ï¼
ããboolean fastfoodenable = SystemProperties.getBoolean("persist.sys.fastfoodenable", false);
ãã设置æ¹æ³ï¼
ããSystemProperties.set("persist.sys.fastfoodenable", "true");
ãã
ããC
ãã#include <cutils/properties.h>
ããproperty_set("persist.sys.language", "zh");
ããproperty_get("persist.sys.language", propLang, "en");
ããå¨adb shellå¯ä»¥éè¿ä»¥ä¸çå½å读ååä¿®æ¹
ãã#getprop persist.sys.language
ãã#setprop persist.sys.language zh
ãã
ããå建ä¸ä¿®æ¹androidå±æ§ç¨Systemproperties.set(name, value)ï¼è·åandroidå±æ§ç¨Systemproperties.get(name)ï¼éè¦æ³¨æçæ¯androidå±æ§çå称æ¯æä¸å®çæ ¼å¼è¦æ±çï¼å¦ä¸ï¼ åç¼å¿
é¡»ç¨system\core\init\property_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çè¯æ³æå
³
ãã
ãã
ãã
ãã2 ä½¿ç¨ Settings.System.putInt
ããè¿ç§æ¹å¼ä¼ä¿ååéå°Settings æ°æ®åºä¸ï¼
é£è¡æ¨¡å¼ççå¼å
³å°±æ¯ç¨è¿ç§æ¹å¼å®ç°çã
ããé¦å
éè¦å®ä¹ä¸ä¸ªç³»ç»å±æ§å¼
ããè·¯å¾ï¼frameworks/base/core/java/android/provider/Settings.java
ããpublic static final String VIVIEN_FASTFOOD= "hungry";
ãã1ï¼è·åæ¹æ³å¦ä¸ï¼
ãã@Override
ããpublic void onResume()
ãã{
ããsuper.onResume();
ããif(Settings.System.getInt(getContentResolver(), Settings.System.VIVIEN_FASTFOOD,0)==1)
ãã{
ããmYesORNo.setChecked(true);
ãã}
ããelse
ããmYesORNo.setChecked(false);
ãã}
ãã2ï¼è®¾ç½®
ããif (mYesORNo.isChecked()) {
ããSettings.System.putInt(getContentResolver(),
ããSettings.System.VIVIEN_FASTFOOD, 1);
ãã} else {
ããSettings.System.putInt(getContentResolver(),
ããSettings.System.VIVIEN_FASTFOOD, 0);
ãã}
ãã
ããéè¦import android.provider.Settings;
ããandroidæºç å¼åä¸ï¼å¸¸å¸¸è¦ç¨å°ä¸äºå
¨å±æ å¿æè
说åéï¼è¿æ¶åæ们å¯ä»¥ç»
androidç³»ç»æ·»å èªå·±æ³è¦çå±æ§ã
ãã1.Settings.system
ããè¿ç§ç³»ç»å±æ§æ们ç»å¸¸ç¨å°ï¼ä¾å¦é£è¡æ¨¡å¼çå¼å¯åå
³éï¼æ们就æ¯å»æ¹åSettings.system.AIRPLANE_MODE_ON çå¼ã
ããä¸é¢å°±ä»ç»ä¸æ们ææ ·å»å®ä¹ä¸ä¸ªç³»ç»å±æ§ãä¾å¦è¦æ·»å ä¸ä¸ªå±æ§å为âSILVAN_LIUâ
ããè·¯å¾ï¼frameworks/base/core/java/android/provider/Settings.java
ãã
ãã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) åSettings.System.getInt(getContentResolver(), Settings.System.SILVAN_LIU,0)å»å¾å°å设å®SILVAN_LIUçå±æ§å¼ã
ãã
ãã2.SystemProperties
ããå建ä¸ä¿®æ¹androidå±æ§ç¨Systemproperties.set(name, value)ï¼è·åandroidå±æ§ç¨Systemproperties.get(name)ï¼éè¦æ³¨æçæ¯androidå±æ§çå称æ¯æä¸å®çæ ¼å¼è¦æ±çï¼å¦ä¸ï¼ åç¼å¿
é¡»ç¨system\core\init\property_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çè¯æ³æå
³ã
ãã
ãã以ä¸æ¯æå®é
项ç®ä¸è¿ç¨å°çå°æ¹ï¼å¯è½è®¤è¯çä¸å¤æ·±å»ï¼è¿é继ç»æ¸ç´¢ã
转载