关于android:aosp-编译时加入外部模块-externa

50次阅读

共计 1253 个字符,预计需要花费 4 分钟才能阅读完成。

原文 https://balalals.cn/archives/…

aosp 我的项目自身自带了很多内部模块,所谓的内部模块就是一些命令或者库,个别放在 external 目录下有的模块编译时会带上有的默认不带,不带上也能够刷机胜利后通过mm 编译进去而后 adb push 进去,然而这样做会很麻烦。为了除去这种不必要的麻烦,最好在整体编译的时候加进去。
aosp中想要编译货色,批改一些属性其实批改多处都能达到目标,我所讲的可能也是其中的一种 ,因为aosp 的编译体系太大,他会从不同的文件夹中提取编译阐明最初合成再编译,批改哪里须要本人斟酌,要多察看多实际能力了解当中的意思。
模块中有的模块上面会有 Android.mk 这个是Android 的编译形容文件,相似于 CMakelist.txt 给编译程序看的,还有的模块上面没有这个文件然而会有一个Android.bp 文件,这个文件其实就是Android.mk 的升级版,两者能实现的性能雷同然而bp 文件的可读性会好很多,也是官网推崇的形式。
回归正题,对于编译的货色个别都会在build 目录下, 没错确实在这上面找到
build/target/product/core_minimal.mk 文件找到PRODUCT_PACKAGES

PRODUCT_PACKAGES += \
    BackupRestoreConfirmation \
    CompanionDeviceManager \
    CtsShimPrebuilt \
    CtsShimPrivPrebuilt \
    DownloadProvider \
    ExtShared \
    ExtServices \
    HTMLViewer \
    MediaProvider \
    PackageInstaller \
    SettingsProvider \
    Shell \
    StatementService \
    WallpaperBackup \
    android.hidl.base-V1.0-java \
    android.hidl.manager-V1.0-java \

意思都懒得解释猜都能猜出来,在开端加上要想退出的模块名,比方我想要 tinyalsa 模块退出进去

    sensorservice \
    telephony-common \
    uiautomator \
    uncrypt \
    voip-common \
    webview \
    webview_zygote \
    tinyalsa \

就实现了退出,全量编译刷机,tinymix tinyplay tinycap 等命令就存在了,认真看这个文件,文件开端

$(call inherit-product, $(SRC_TARGET_DIR)/product/runtime_libart.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/base.mk)

这两句话的意思应该是蕴含目录下这两个文件进来合并,再关上这两个文件同样开端也会有蕴含其余文件,其实咱们的PRODUCT_PACKAGES 语句写哪里都行只有能蕴含进来,这就是方才我说的批改多处中央都会失效的问题。

正文完
 0