android build/core/main.mk 简单的使用方法

             android build/core/main.mk 简单使用
             
在开发时,突然有个需求需要在编译rom时,通过makefile编译脚本,区分是否是新功能和原生功能,我次了,这可怎么办,于是参考各种网上的makefile脚本语法,于是做了简单的实现;

下面我们做个demo采用系统默认的壁纸做个例子,通过make编译,进行区分;
1.build/core/下新生成一个属于自己name_feature.mk文件;

//路径
.build/core
//生成一个自己的mk
name_feature.mk

2.打开main.mk文件,加入你新生成的mk文件;

+#add new feature
+include $(BUILD_SYSTEM)/name_feature.mk

# Set up various standard variables based on configuration
# and host information.
include $(BUILD_SYSTEM)/config.mk

3.以上两个步骤做完,下面我们来看name_feature.mk实现
makefile会收集ADDITIONAL_BUILD_PROPERTIES中的属性,追加到build.prop中,在这不多做解释了,有兴趣可网上搜一下;

#add new feature
//如果相同则(条件为真)执行反之执行else
ifeq ($(strip $(ANDROID_FEATURE_NAME_VALUSE)),true)
ADDITIONAL_BUILD_PROPERTIES += ro.andorid_default_wallpaper=true
else
ADDITIONAL_BUILD_PROPERTIES += ro.andorid_default_wallpaper=false
endif

4.下面我们来看java代码如何来增加的;
路径:frameworks/base/core/java/android/app/WallpaperManager.java

 private InputStream openDefaultWallpaperRes(Context context, @SetWallpaperFlags int which) {
            ...
            //这一步是增加的代码..
                if (SystemProperties.getBoolean("ro.andorid_default_wallpaper", false)) {
                    is = context.getResources().openRawResource(
                            com.android.internal.R.drawable.feature_default_wallpaper);
                } else {
                //系统默认
                    is = context.getResources().openRawResource(
                            com.android.internal.R.drawable.default_wallpaper);
                }
            ...
            return is;
        }

以上就算完成了吗,不是在进行整编的时候还需要加一些属性,一般我们会直接进行make -j4这样默认是false,我们增加的功能是不会引入的,接下来我们看;

//在整编代码时,加上这句就ok了,反之不加
make -j8 ANDROID_FEATURE_NAME_VALUSE=true

以上就ok了
理解makefile和main.mk
http://blog.youkuaiyun.com/xiao_yuanjl/article/details/78864287

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值