Android属性工作原理解析

本文介绍了Android属性的工作原理,包括default.prop和build.prop的生成过程,重点关注device.mk和ADDITIONAL_BUILD_PROPERTIES的作用。同时,讲解了属性文件内容的含义,如只读属性(ro.)、可修改服务(init.rc)、持久化属性(persist.)和网络属性(net.)。并提到了System Property的读取和修改方法。
摘要由CSDN通过智能技术生成
Android属性方便了android系统进行定制,也有利于android上层应用可以方便操作。
一. android属性文件生成原理。
根据android属性值读取顺序/default.prop,/system/build.prop,/system/default.prop,/data/local.prop。
文件也会生成在不同的位置。default.prop生成在root目录下。其他在对应的/system。/data目录下。

default.prop与build.prop都是通过编译目录的build/core/Makefile文件生成的。下面就对这两个文件内容来源分析一下。

//src begin
# -----------------------------------------------------------------
# default.prop
INSTALLED_DEFAULT_PROP_TARGET := $(TARGET_ROOT_OUT)/default.prop
ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DEFAULT_PROP_TARGET)
ADDITIONAL_DEFAULT_PROPERTIES := \
    $(call collapse-pairs, $(ADDITIONAL_DEFAULT_PROPERTIES))
ADDITIONAL_DEFAULT_PROPERTIES += \
    $(call collapse-pairs, $(PRODUCT_DEFAULT_PROPERTY_OVERRIDES))
ADDITIONAL_DEFAULT_PROPERTIES := $(call uniq-pairs-by-first-component, \
    $(ADDITIONAL_DEFAULT_PROPERTIES),=)

$(INSTALLED_DEFAULT_PROP_TARGET):
        @echo Target buildinfo: $@
        @mkdir -p $(dir $@)
        $(hide) echo "#" > $@; \
                echo "# ADDITIONAL_DEFAULT_PROPERTIES" >> $@; \
                echo "#" >> $@;
        $(hide) $(foreach line,$(ADDITIONAL_DEFAULT_PROPERTIES), \
                echo "$(line)" >> $@;)
        build/tools/post_process_props.py $@
//src end
PRODUCT_DEFAULT_PROPERTY_OVERRIDES在mk文件中定义,并赋值。这个一般比较少看到赋值。一般没用。
ADDITIONAL_DEFAULT_PROPERTIES一般在对应产品的device.mk和/core/main.mk文件中定义,赋值。

device.mk:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值