android build/core/main.mk 简单的使用方法
2017-12-21 15:18
477 查看
android build/core/main.mk 简单使用
在开发时,突然有个需求需要在编译rom时,通过makefile编译脚本,区分是否是新功能和原生功能,我次了,这可怎么办,于是参考各种网上的makefile脚本语法,于是做了简单的实现;
下面我们做个demo采用系统默认的壁纸做个例子,通过make编译,进行区分;
1.build/core/下新生成一个属于自己name_feature.mk文件;
2.打开main.mk文件,加入你新生成的mk文件;
3.以上两个步骤做完,下面我们来看name_feature.mk实现
makefile会收集ADDITIONAL_BUILD_PROPERTIES中的属性,追加到build.prop中,在这不多做解释了,有兴趣可网上搜一下;
4.下面我们来看java代码如何来增加的;
路径:frameworks/base/core/java/android/app/WallpaperManager.java
以上就算完成了吗,不是在进行整编的时候还需要加一些属性,一般我们会直接进行make -j4这样默认是false,我们增加的功能是不会引入的,接下来我们看;
以上就ok了
理解makefile和main.mk
http://blog.csdn.net/xiao_yuanjl/article/details/78864287
在开发时,突然有个需求需要在编译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.csdn.net/xiao_yuanjl/article/details/78864287
相关文章推荐
- build/core/main.mk:129: *** stop。 停止。『 android make后报JDK报错的解决方法』
- 修改 build/core/main.mk 后,用jdk 1.6编译android2.2
- Android build(2) -- 走读build/core/main.mk
- android 学习笔记(八)android底层学习8.1 学习makefile 走读build/core/main.mk
- Android源码编译 build/core/base_rules.mk 报错解决方法
- build/core/main.mk:77: You are attempting to build on a 32-bit system. Only 64-bit build environment
- Android SDK 1.5-core-library build error问题解决方法  -  棒槌网@Android开发论坛 - Powere
- android.net.wifi的简单使用方法
- Android_视频播放的简单使用方法
- Android最简单的图片裁剪方法,非使用系统裁切功能
- 编译android内核和文件系统,已经安装jdk,提示build/core/config.mk:268: *** Error: could not find jdk tools.jar
- Android定时器的简单使用方法
- 编译android内核和文件系统,已经安装jdk,提示build/core/config.mk:268: *** Error: could not find jdk tools.jar
- Android开发中使用Eclipse创建工程后提示The project cannot be built until build path errors are resolved问题的解决方法
- Android MediaPlayer使用方法简单介绍
- Android使用OpenCV和FFMpeg的简单方法-开源项目javacv的使用
- Android MediaPlayer使用方法简单介绍
- 深入分析Android (build/core/*.mk脚本)
- APIDemo学习笔记——Android上几种简单的Animation使用方法(一)
- Android MediaPlayer使用方法简单介绍