0
点赞
收藏
分享

微信扫一扫

Android.mk和Android.bp

一、编译不同类型的模块

1.编译成Java库

Android.mk
include $(BUILD_JAVA_LIBRARY)

Android.bp
java_library {

}

2.编译成Java静态库

Android.mk
include $(BUILD_STATIC_JAVA_LIBRARY)

Android.bp
java_library_static {

}

3.编译成App应用

Android.mk
include $(BUILD_PACKAGE)

Android.bp
android_app {

}

4.编译成Native动态库

Android.mk
include $(BUILD_SHARED_LIBRARY)

Android.bp
cc_library_shared {

}

5.编译成 Native 静态库

Android.mk
include $(BUILD_STATIC_LIBRARY)

Android.bp
cc_library_static {

}

6.编译成 Native 执行程序

Android.mk
include $(BUILD_EXECUTABLE)

Android.bp
cc_binary {

}

7.编译成头文件库

Android.mk
include $(BUILD_HEADER_LIBRARY)

Android.bp
cc_library_headers {

}

二、文件路径

1.本地头文件路径

Android.mk
LOCAL_C_INCLUDES :=

Android.bp
local_include_dirs: ["xxx", ""]

2.导出的头文件路径

Android.mk
LOCAL_EXPORT_C_INCLUDE_DIRS := 

Android.bp
export_include_dirs: ["xxx", ""]

3.资源文件路径

Android.mk
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/
LOCAL_ASSET_DIR := $(LOCAL_PATH)/

Android.bp
resource_dirs: ["xxx", ""]

三、库依赖

1.依赖的静态库

Android.mk
LOCAL_STATIC_LIBRARIES := 

Android.bp
static_libs: ["xxx", "xxx", ""]

2.依赖的动态库

Android.mk
LOCAL_SHARED_LIBRARIES := 

Android.bp
shared_libs: ["xxx", "xxx", ""]

3.依赖的头文件库

Android.mk
LOCAL_JAVA_LIBRARIES := 

Android.bp
header_libs: ["xxx", "xxx", ""]

4.依赖的Java库

Android.mk
LOCAL_STATIC_JAVA_LIBRARIES :=

Android.bp
static_libs: ["xxx", "xxx", ""]

四、安装到不同分区中

1.安装到vendor中

Android.mk
LOCAL_VENDOR_MODULE := true
  or
LOCAL_PROPRIETARY_MODULE := true

Android.bp
proprietary: true
  or
vendor: true

2.安装到product中

Android.mk
LOCAL_PRODUCT_MODULE := true

Android.bp
product_specific: true

3.安装到odm中

Android.mk
LOCAL_ODM_MODULE := true

Android.bp
device_specific: true

五、编译参数

1.C flags

Android.mk
LOCAL_CFLAGS := 

Android.bp
cflags: ["xxx", "xxx", ""]

2.Cpp flags

Android.mk
LOCAL_CPPFLAGS := 

Android.bp
cppflags: ["xxx", "xxx", ""]

3.Java flags

Android.mk
LOCAL_JAVACFLAGS := 

Android.bp
javacflags: ["xxx", "xxx", ""]

举报

相关推荐

0 条评论