Android.bp入门指南之浅析Android.bp语法
前言
在前面的章节初始Android.bp里面我们对Android.bp有了一个基本的认识,知道了它是干啥的。算了吗,还是再介绍一遍它吗!Android.bp是用来替换Android.mk的配置文件,它使用Blueprint框架来解析。Blueprint是生成、解析Android.bp的工具,是Soong的一部分。Soong则是专为Android编译而设计的工具,Blueprint只是解析文件的形式,而Soong则解释内容的含义,最终转换成Ninja文件。Android.bp文件用类似JSON的简洁声明来描述需要构建的模块。介绍了一番是不是还是有点懵逼,没有关系,在这篇文章里面,我将介绍Android.bp文件的基本语法规则,然后附上实例加以说明。
注意:关于Android.bp的权威解释可以参见 android.bp权威文档,不过是全英文的。
重要的事情说三篇,Android.mk可以引用Android.bp中的模块,反之Android.bp不能引用Android.mk中的模块。
重要的事情说三篇,Android.mk可以引用Android.bp中的模块,反之Android.bp不能引用Android.mk中的模块。
重要的事情说三篇,Android.mk可以引用Android.bp中的模块,反之Android.bp不能引用Android.mk中的模块。
一. Android.bp语法初识
Android.bp是一门实战性的东西,光说不练没有啥用,说再多不如直接开练来得舒服。那就直接开始手撕实例了,让我们开战吗!
cc_library_shared {//编译成动态库,类似于Android.mk中的BUILD_SHARED_LIBRARY
name: "libbluetooth_jni",//编译出的模块的名称,类似于Android.mk中的LOCAL_MODULE
srcs: [ //源文件,类似于Android.mk中的LOCAL_SRC_FILES
"com_android_bluetooth_btservice_AdapterService.cpp",
"com_android_bluetooth_hfp.cpp",
"com_android_bluetooth_hfpclient.cpp",
"com_android_bluetooth_a2dp.cpp",
"com_android_bluetooth_a2dp_sink.cpp",
"com_android_bluetooth_avrcp.cpp",
"com_android_bluetooth_avrcp_controller.cpp",
"com_android_bluetooth_hid.cpp",
"com_android_bluetooth_hidd.cpp",
"com_android_bluetooth_hdp.cpp",
"com_android_bluetooth_pan.cpp",
&#