android.mk大家都很熟悉了,就是android下编译模块的配置文件,可以理解为android makefile。从android N之后,我们发现好多模块下面没有了android.mk文件,多了一个android.bp文件。这个是google在android N之后新的编译配置文件。
在实际项目中,我们需要把android.mk转换为android.bp,还好sdk中给我提供了androidmk工具,可以直接把android.mk转换为android.bp.
源码在:build/soong/androidmk
我们在out下面找下androidmk工具,如果没有可以执行命令:m -j blueprint_tools
然后在在out/soong/host/linux-x86/bin/androidmk生成工具
androidmk android.mk > android.bp
这样即可把android.mk转换为android.bp文件了
有了这个工具我们很容易的修改android.bp
比如我们想把某个动态链接的bin改为静态链接,则可如下修改:
cc_binary { name: "updater", srcs: ["updater.cpp"], local_include_dirs: [ "..", "include", ], cflags: [ "-Wno-unused-parameter", "-Werror", ], share_libs: ["libupdater"], }
把里面的动态库链接改为静态链接:share_libs改为static_libs,然后增加:static_executable: true,
cc_binary { name: "updater", srcs: ["updater.cpp"], local_include_dirs: [ "..", "include", ], cflags: [ "-Wno-unused-parameter", "-Werror", ], static_libs: ["libupdater"], static_executable: true, }
然后即可编译出静态链接的bin文件