Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android framework開發全局系統屬性設置與獲取

Android framework開發全局系統屬性設置與獲取

編輯:關於Android編程

Android命令行/c語言/java設置獲取系統屬性的方法

Java中設置和獲取SystemProperty屬性:

SystemProperties.getInt("persist.sys.boot_music_control", 0)

SystemProperties.set("persist.sys.boot_music_control", ""+value);



C++中獲取Java層中設置的屬性值:

           char boot_music_control[PROPERTY_VALUE_MAX];
            if (property_get("persist.sys.boot_music_control", boot_music_control, 0) != 0) {
                mediastatus = mediaplayer->setDataSource(pBackupSoundFileName, NULL);
            }



1 命令行(shell) properties設置和獲取接口
2 c/c++語言 properties設置和獲取接口
3 Java語言 properties設置和獲取的接口


Android提供了一套系統參數設置和獲取的方法,這些參數可以在android系統中靜態或動態的設定和獲取,使用SystemProperty類(該類只有在framework或系統級應用中使用),代碼中大量存在:SystemProperties.set()/SystemProperties.get();通過這兩個接口可以對系統的屬性進行讀取/設置,顧名思義系統屬性,肯定對整個系統全局共享。通常程序的執行以進程為單位各自相互獨立,如何實現全局共享呢?

System Properties(SystemProperty詳細介紹及原理)是怎麼一回事,又是如何實現的呢?

屬性系統是android的一個重要特性。它作為一個服務運行,管理系統配置和狀態。所有這些配置和狀態都是屬性。

每個屬性是一個鍵值對(key/value pair),其類型都是字符串。

這些屬性可能是有些資源的使用狀態,進程的執行狀態,系統的特有屬性……
命令行(shell) properties設置和獲取接口

getprop “key”

setprop "key" "value"

c/c++語言 properties設置和獲取接口

代碼定義在:


system/core/libcutils/properties.c
 
#define PROPERTY_KEY_MAX   32
#define PROPERTY_VALUE_MAX  92
 
int property_get(const char *key, char*value, const char *default_value);
int property_set(const char *key, constchar *value);
int property_list(void (*propfn)(const char *key, constchar *value, void*cookie), void *cookie);   


使用:

#include "cutils/properties.h"
 
char prop[PROPERTY_VALUE_MAX] = "000";
if(property_get("prop_name", prop, NULL) != 0) {
    ...
}


說明:

property_get返回值為get到的屬性值的字符串長度.
prop_name為屬性名.
prop為存放屬性值字符串的地方.

Java語言 properties設置和獲取的接口

frameworks/base/core/java/android/os/SystemProperties.java


public static final int PROP_NAME_MAX = 31;
public static final int PROP_VALUE_MAX = 91;
public static String get(String key) ;
public static String get(String key, String def) ;
public static int getInt(String key,int def) ;
public static long getLong(String key,long def) ;
public static boolean getBoolean(String key, boolean def) ;
public static void set(String key, String val) ;
public static void addChangeCallback(Runnable callback) ;



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved