宏的添加和使用.docx

宏的添加和使用.docx

ID:59206694

大小:13.36 KB

页数:8页

时间:2020-09-10

宏的添加和使用.docx_第1页
宏的添加和使用.docx_第2页
宏的添加和使用.docx_第3页
宏的添加和使用.docx_第4页
宏的添加和使用.docx_第5页
资源描述:

《宏的添加和使用.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、宏控方案实现原理:平台代码以前是用overlay来实现不同项目的不同风格,这样做的弊端是当修改了主干代码,不能同步到每一个overlay分支上。现在采用宏控制的方法,在cc++javah代码中用宏来控制代码的分支,方便以后在不同项目中的配置,只需要打开和关闭宏开关即可实现差异化修改方案:首先修改lunch文件,将要用到的宏添加到lunch文件中,这里用740代码的msm8916_32来验证,当需要打开的宏请添加在MEIG_TRUE_740_JULI 后面,格式得是-DXXX,不需要打开的宏请添加在MEIG_FAL

2、SE_740_JULI 后面,格式同上;1.在配置文件(lunch文件)中添加代码:#add by tanfusheng @ for custom function start#这个路径是当前分支的路径,不同分支路径不一样MEIG_MK_PATH := device/qcom/msm8916_32#要打开的宏MEIG_TRUE_740_JULI +=                 -D FACTORYTEST                 -D FACTORYTEST2#不需要打开的宏MEIG_FALSE

3、_740_JULI +=                 -D NO_FACTORY_TEST                 -D NO_FACTORY_TEST2#以下这几行代码必须加上,用来将宏进行处理$(shell echo "$(MEIG_TRUE_740_JULI)" 

4、sed 's/-D /r/g' > meig_true_list.txt)$(shell echo "$(MEIG_FALSE_740_JULI)" 

5、sed 's/-D /r/g' > meig_false_list

6、.txt)$(shell build/meig_find.sh)    $(shell build/meig_function_java.sh)    include $(MEIG_MK_PATH)/meig_module_function.mk#rm $(MEIG_MK_PATH)/meig_module_function.mk#add by tanfusheng @ for custom function end    2.在Z:tanfusheng740LA.BR.1.2.4-04310-8x16.0

7、buildcorebinary.mk中添加代码:#add by tanfusheng @ for custom function startnormal_objects_cflags += $(MEIG_TRUE_740_JULI)#add by tanfusheng @ for custom function end3.在build/目录下添加文件meig_find.sh此文件主要用来将宏转化成在java文件中能识别的宏,也就是将宏全都写到一个文件中路径:frameworks/base/core/java

8、/android/os/ForgeManage.java#!/bin/bashFORGE_PATH="frameworks/base/core/java/android/os/MeigFunctionManage.java"sed -e '1d' meig_true_list.txt > meig_output.txtsed -e '1d' meig_false_list.txt > meig_output_false.txtecho "package android.os;" > $FORGE_PATHecho

9、 "public class MeigFunctionManage {" >> $FORGE_PATHwhile read linedo    echo "public static final String $line = "true";" >> $FORGE_PATHdone < meig_output.txtwhile read linedo    echo "public static final String $line = "false";" >> $FORGE_PATHdone < meig

10、_output_false.txtecho "}" >> $FORGE_PATH代码中用宏控制方法:1.在c,c++中用宏控制方法:直接用 控制,如果编译到这个地方出现乱码,则表示此宏打开,否则表示此宏关闭Z:tanfusheng740LA.BR.1.2.4-04310-8x16.0frameworksavmedialibstagefrightAudioP

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。