转自:https://blog.youkuaiyun.com/csdn66_2016/article/details/80258627
https://www.jianshu.com/p/f239e919352a
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文件