日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android getprop 分辨率,Android getprop 读取的属性哪里来的?

發(fā)布時間:2025/1/21 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android getprop 分辨率,Android getprop 读取的属性哪里来的? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Android getprop 和 setprop 可以對系統(tǒng)屬性進行讀取和設置。

通過串口執(zhí)行以下 geyprop 打印出來的屬性讓你一目了然。

屬性出來了,但是在哪里設置的呢,這里有兩個地方:一個是配置文件讀取的,一個是系統(tǒng)動態(tài)獲取的

1、在android源碼目錄下的: system/core/init/property_service.c 文件中的函數(shù)

static void load_properties_from_file(const char *fn)

上面函數(shù)作用是加載配置文件 fn 里面的系統(tǒng)屬性。

查看該函數(shù)被調(diào)用的地方,可知道配置文件由以下幾個:

#define PROP_PATH_RAMDISK_DEFAULT "/default.prop"

#define PROP_PATH_SYSTEM_BUILD "/system/build.prop"

#define PROP_PATH_SYSTEM_DEFAULT "/system/default.prop"

#define PROP_PATH_LOCAL_OVERRIDE "/data/local.prop"

其中配置文件 :system/build.prop 是在android 源碼中的: build/tools/buildinfo.sh 文件中生成的,要修改的話 查看一下該文件的生成方式,應該不成問題。

出去了上面的四個配置文件外,在 init.rc. 文件中也可以手動的調(diào)用來增加屬性:

eg : setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208

2、系統(tǒng)開機后動態(tài)獲取系統(tǒng)屬性

a、在文件 system/core/init/init.c 中有函數(shù):

1

2

3

4

5

6

7

8

9

void notify_service_state(const char *name, const char *state)

{

char pname[PROP_NAME_MAX];

int len = strlen(name);

if ((len + 10) > PROP_NAME_MAX)

return;

snprintf(pname, sizeof(pname), "init.svc.%s", name);

property_set(pname, state);

}

其可以自動生成前綴為 init.svc. 的系統(tǒng)屬性,通過查看該函數(shù)調(diào)用位置:

void service_start(struct service *svc, const char *dynamic_args)

static void service_stop_or_reset(struct service *svc, int how)

static int wait_for_one_process(int block)

應該是根據(jù)系統(tǒng)服務進程獲取到的系統(tǒng)屬性,比如:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

[init.svc.adbd]: [running]

[init.svc.bootanim]: [stopped]

[init.svc.console]: [running]

[init.svc.debuggerd]: [running]

[init.svc.dhcpcd_eth0]: [stopped]

[init.svc.drm]: [running]

[init.svc.ifdown_eth0]: [stopped]

[init.svc.ifup_eth0]: [stopped]

[init.svc.initrdscript]: [stopped]

[init.svc.installd]: [running]

[init.svc.keystore]: [running]

[init.svc.kt_debug]: [stopped]

[init.svc.mali]: [stopped]

[init.svc.mdnsd]: [running]

標識該進程的運行狀態(tài)的。

b、待以后查看之后再更新。

android系統(tǒng)啟動時屬性(getprop得到的屬性)寫入過程

在init.c文件main函數(shù)中會調(diào)用start_property_service(),而它分別調(diào)用load_properties_from_file函數(shù)讀取PROP_PATH_SYSTEM_BUILD(/system/build.prop)、PROP_PATH_SYSTEM_DEFAULT(/system/default.prop)和PROP_PATH_LOCAL_OVERRIDE(/data/local.prop)存放系統(tǒng)屬性的文件并設置到系統(tǒng)屬性。

編譯時由build/tool/buildinfo.sh文件寫到文件build.prop,修改系統(tǒng)默認屬性一般是改build/tool/buildinfo.sh文件

參考文檔:

http://carywei.iteye.com/blog/889482

http://www.blogjava.net/anymobile/articles/301989.html

總結

以上是生活随笔為你收集整理的android getprop 分辨率,Android getprop 读取的属性哪里来的?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。