本篇記錄一下如何寫 Android.bp,並附上基本範例與原本的 Android.mk 對照。
基本範例
以下就以AOSP上的sdcard模組來做作為範例,完整路徑在system/core/sdcard/Android.bp
下。
1 | cc_binary { |
cc_binary
:表示編譯成執行檔srcs
:原始檔name
:模組名稱,也是執行檔名稱cflags
:編譯參數shared_libs
:連結的動態函式庫
可以跟原先的 Android.mk 對照看就大概了解了,原本的 Android.mk 如下:1
2
3
4
5
6
7
8
9
10
11
12LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := sdcard.cpp fuse.cpp
LOCAL_MODULE := sdcard
LOCAL_CFLAGS := -Wall -Wno-unused-parameter -Werror
LOCAL_SHARED_LIBRARIES := libbase libcutils libminijail libpackagelistparser
LOCAL_SANITIZE := integer
include $(BUILD_EXECUTABLE)
LOCAL_SRC_FILES
對應到 srcs
LOCAL_MODULE
對應到 cc_binary
LOCAL_CFLAGS
對應到 cflags
LOCAL_SHARED_LIBRARIES
對應到 shared_libs
BUILD_EXECUTABLE
對應到 cc_binary
參考
[1] Android编译系统中的Android.bp、Blueprint与Soong · 零壹軒·笔记
https://note.qidong.name/2017/08/android-blueprint/