国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android之Android.bp文件格式語法(一百八十六)

這篇具有很好參考價值的文章主要介紹了Android之Android.bp文件格式語法(一百八十六)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

簡介: CSDN博客專家,專注Android/Linux系統(tǒng),分享多mic語音方案、音視頻、編解碼等技術(shù),與大家一起成長!

優(yōu)質(zhì)專欄:Audio工程師進階系列原創(chuàng)干貨持續(xù)更新中……】??
優(yōu)質(zhì)專欄:多媒體系統(tǒng)工程師系列原創(chuàng)干貨持續(xù)更新中……】??

人生格言: 人生從來沒有捷徑,只有行動才是治療恐懼和懶惰的唯一良藥.

更多原創(chuàng),歡迎關(guān)注:Android系統(tǒng)攻城獅

Android之Android.bp文件格式語法(一百八十六),Android系統(tǒng)調(diào)試系列,android14,Android.bp

1.前言

本篇目的:Android之Android.bp文件格語法。

2.Android.bp介紹

  • Android.bp(Build Configuration File)是Android編譯系統(tǒng)中的一種配置文件格式,用于定義模塊(Module)及其依賴關(guān)系,以及模塊的構(gòu)建配置選項。Android.bp文件是Android編譯系統(tǒng)中的核心部分,它替代了之前的Android.mk文件,提供了更加靈活和高效的模塊管理方式。
  • Android.bp文件的基本結(jié)構(gòu)如下:
  • 注釋:以“//”開頭的單行注釋,用于說明和描述模塊的屬性和配置。
  • 包名(Package):模塊所屬的包名,用于唯一標(biāo)識一個模塊。包名通常包含公司或組織域名的反向拼寫,例如:com.example.module。
  • 模塊名(Module):模塊的名稱,用于在包內(nèi)唯一標(biāo)識一個模塊。模塊名通常為小寫字母和下劃線的組合,例如:my_module。
  • 依賴(Dependencies):模塊依賴的其他模塊,用于指定模塊間的依賴關(guān)系。依賴可以分為兩種類型:硬件依賴(hard)和軟件依賴(soft)。硬件依賴表示模塊需要特定硬件才能正常運行,而軟件依賴表示模塊可以運行在任意硬件上。
  • 特性(Features):模塊提供的特性,用于描述模塊的功能和特性。特性可以包含多個鍵值對,例如:features { hardware = “x86”; system-image = “api-level-29”; }上述代碼表示該模塊支持x86架構(gòu),并使用api-level-29的系統(tǒng)鏡像。
  • 編譯配置(Compile Configuration):模塊的編譯配置選項,用于指定編譯時使用的工具鏈、編譯器選項等。編譯配置可以包含多個鍵值對,例如:cflags += “-Wall -Wextra”; include-dirs += “src/main/cpp”;上述代碼表示在編譯模塊時添加了額外的編譯警告,并包含了src/main/cpp目錄下的頭文件。
  • 源文件(Srcs and Headers):模塊的源文件和頭文件列表,用于指定模塊的編譯輸入。可以指定單個文件或使用通配符匹配多個文件,例如:srcs = [“main.cpp”, “src/main/cpp/my_file.cpp”]; headers = [“include/my_module.h”];上述代碼表示模塊的主要源文件為main.cpp和src/main/cpp/my_file.cpp,頭文件為include/my_module.h。
  • 編譯規(guī)則(Compilation Rules):模塊的編譯規(guī)則,用于指定如何編譯模塊的源文件。編譯規(guī)則可以包含多個鍵值對,例如:clang++ { target-os = [“android”, “l(fā)inux”]; target-arch = [“x86”, “arm64-v8a”]; }上述代碼表示模塊支持Android和Linux操作系統(tǒng),以及x86和arm64-v8a架構(gòu)。
  • 生成文件(Generated Files):模塊編譯過程中生成的文件,用于指定編譯輸出??梢灾付▎蝹€文件或使用通配符匹配多個文件,例如:generated-sources = “src/main/cpp/MyGenerator.java”;上述代碼表示編譯過程中生成的Java源文件為src/main/cpp/MyGenerator.java。
  • Android.bp文件通過描述模塊的依賴關(guān)系、特性、編譯配置等信息,為Android編譯系統(tǒng)提供了更加靈活和高效的模塊管理方式。使用Android.bp文件可以簡化模塊的編譯過程,提高編譯速度,并減少出錯率。隨著Android編譯系統(tǒng)的不斷演進,Android.bp文件格式也將不斷完善和優(yōu)化,以滿足日益復(fù)雜的Android應(yīng)用和系統(tǒng)構(gòu)建需求。

3.Android.bp文件格式模塊

Android.bp 文件很簡單。它們不包含任何條件語句,也不包含控制流語句;
所有復(fù)雜問題都由用 Go 編寫的構(gòu)建邏輯處理。
Android.bp 文件的語法和語義都盡可能與 Bazel BUILD 文件類似。

<1>.模塊

Android.bp 文件中的模塊以模塊類型開頭,后跟一組 name: “value”, 格式的屬性:

cc_binary {
    name: "gzip",
    srcs: ["src/test/minigzip.c"],
    shared_libs: ["libz"],
    stl: "none",
}

每個模塊都必須具有 name 屬性,并且相應(yīng)值在所有 name 文件中必須是唯一的,僅有兩個例外情況是命名空間和預(yù)構(gòu)建模塊中的 Android.bp 屬性值,這兩個值可能會重復(fù)。

srcs 屬性以字符串列表的形式指定用于構(gòu)建模塊的源文件。您可以使用模塊引用語法 “:” 來引用生成源文件的其他模塊的輸出,如 genrule 或 filegroup。

<2>.類型

變量和屬性是強類型,變量根據(jù)第一項賦值動態(tài)變化,屬性由模塊類型靜態(tài)設(shè)置。支持的類型為:

布爾值(true 或 false)
整數(shù) (int)
字符串 ("string")
字符串列表 (["string1", "string2"])
映射 ({key1: "value1", key2: ["value2"]})
映射可以包含任何類型的值,包括嵌套映射。列表和映射可能在最后一個值后面有終止逗號。

<3>.Glob

接受文件列表的屬性(例如 srcs)也可以采用 glob 模式。
glob 模式可以包含普通的 UNIX 通配符 *,例如 *.java。glob 模式還可以包含單個 ** 通配符作為路徑元素,與零個或多個路徑元素匹配。
例如,java/**/*.java 同時匹配 java/Main.java 和 java/com/android/Main.java 模式。

<4>.變量

Android.bp 文件可能包含頂級變量賦值:

gzip_srcs = ["src/test/minigzip.c"],
cc_binary {
    name: "gzip",
    srcs: gzip_srcs,
    shared_libs: ["libz"],
    stl: "none",
}

變量的作用域限定在聲明它們的文件的其余部分,以及所有子 Blueprint 文件。變量是不可變的,但有一個例外情況:可以使用 += 賦值將變量附加到別處,但只能在引用它們之前附加。

<5>.注釋

Android.bp 文件可以包含 C 樣式的多行 /* */ 注釋以及 C++ 樣式的單行 // 注釋。

<6>.運算符

可以使用 + 運算符附加字符串、字符串列表和映射。
可以使用 + 運算符對整數(shù)求和。附加映射會生成兩個映射中鍵的并集,并附加在兩個映射中都存在的所有鍵的值。

<7>.條件語句

Soong 不支持 Android.bp 文件中的條件語句。但是,編譯規(guī)則中需要條件語句的復(fù)雜問題將在 Go(在這種語言中,您可以使用高級語言功能,并且可以跟蹤條件語句引入的隱式依賴項)中處理。大多數(shù)條件語句都會轉(zhuǎn)換為映射屬性,其中選擇了映射中的某個值并將其附加到頂級屬性。

要支持特定于架構(gòu)的文件,請使用以下命令:

cc_library {
    ...
    srcs: ["generic.cpp"],
    arch: {
        arm: {
            srcs: ["arm.cpp"],
        },
        x86: {
            srcs: ["x86.cpp"],
        },
    },
}

<8>.格式設(shè)置工具

Soong 包含一個針對 Blueprint 文件的規(guī)范格式設(shè)置工具,類似于 gofmt。如需以遞歸方式重新設(shè)置當(dāng)前目錄中所有 Android.bp 文件的格式,運行以下命令:

# bpfmt -w .

規(guī)范格式包括縮進四個空格、多元素列表的每個元素后面有換行符,以及列表和映射末尾有英文逗號。文章來源地址http://www.zghlxwxcb.cn/news/detail-837067.html

到了這里,關(guān)于Android之Android.bp文件格式語法(一百八十六)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Android14之Selinux報錯:unknown type qemu_device at token (一百八十三)

    Android14之Selinux報錯:unknown type qemu_device at token (一百八十三)

    簡介: CSDN博客專家,專注Android/Linux系統(tǒng),分享多mic語音方案、音視頻、編解碼等技術(shù),與大家一起成長! 優(yōu)質(zhì)專欄: Audio工程師進階系列 【 原創(chuàng)干貨持續(xù)更新中…… 】?? 優(yōu)質(zhì)專欄: 多媒體系統(tǒng)工程師系列 【 原創(chuàng)干貨持續(xù)更新中…… 】?? 人生格言: 人生從來沒有捷徑

    2024年03月13日
    瀏覽(59)
  • Android14之a(chǎn)db remount報錯:Cannot use remount when a checkpoint is in progress(一百八十四)

    Android14之a(chǎn)db remount報錯:Cannot use remount when a checkpoint is in progress(一百八十四)

    簡介: CSDN博客專家,專注Android/Linux系統(tǒng),分享多mic語音方案、音視頻、編解碼等技術(shù),與大家一起成長! 優(yōu)質(zhì)專欄: Audio工程師進階系列 【 原創(chuàng)干貨持續(xù)更新中…… 】?? 優(yōu)質(zhì)專欄: 多媒體系統(tǒng)工程師系列 【 原創(chuàng)干貨持續(xù)更新中…… 】?? 人生格言: 人生從來沒有捷徑

    2024年04月28日
    瀏覽(28)
  • C++之類之間訪問函數(shù)指針(一百八十一)

    C++之類之間訪問函數(shù)指針(一百八十一)

    簡介: CSDN博客專家,專注Android/Linux系統(tǒng),分享多mic語音方案、音視頻、編解碼等技術(shù),與大家一起成長! 優(yōu)質(zhì)專欄: Audio工程師進階系列 【 原創(chuàng)干貨持續(xù)更新中…… 】?? 人生格言: 人生從來沒有捷徑,只有行動才是治療恐懼和懶惰的唯一良藥. 更多原創(chuàng),歡迎關(guān)注:An

    2024年02月12日
    瀏覽(24)
  • 高通sm7250與765G芯片是什么關(guān)系?(一百八十一)

    高通sm7250與765G芯片是什么關(guān)系?(一百八十一)

    簡介: CSDN博客專家,專注Android/Linux系統(tǒng),分享多mic語音方案、音視頻、編解碼等技術(shù),與大家一起成長! 優(yōu)質(zhì)專欄: Audio工程師進階系列 【 原創(chuàng)干貨持續(xù)更新中…… 】?? 優(yōu)質(zhì)專欄: 多媒體系統(tǒng)工程師系列 【 原創(chuàng)干貨持續(xù)更新中…… 】?? 人生格言: 人生從來沒有捷徑

    2024年01月18日
    瀏覽(31)
  • XUbuntu22.04之解決藍牙鼠標(biāo)不停掉線問題(追兇過程)(一百八十五)

    XUbuntu22.04之解決藍牙鼠標(biāo)不停掉線問題(追兇過程)(一百八十五)

    簡介: CSDN博客專家,專注Android/Linux系統(tǒng),分享多mic語音方案、音視頻、編解碼等技術(shù),與大家一起成長! 優(yōu)質(zhì)專欄: Audio工程師進階系列 【 原創(chuàng)干貨持續(xù)更新中…… 】?? 人生格言: 人生從來沒有捷徑,只有行動才是治療恐懼和懶惰的唯一良藥. 更多原創(chuàng),歡迎關(guān)注:An

    2024年02月16日
    瀏覽(27)
  • 一百八十九、ClickHouse——在海豚調(diào)度器中執(zhí)行ClickHouse建庫建表語句

    一百八十九、ClickHouse——在海豚調(diào)度器中執(zhí)行ClickHouse建庫建表語句

    由于Hive處理好的結(jié)果數(shù)據(jù)要同步到ClickHouse中,因此需要在在海豚調(diào)度器中執(zhí)行ClickHouse的ADS層的建庫建表語句 1、直接在海豚中創(chuàng)建執(zhí)行SQL文件腳本的工作流 (1)第一步,在資源中心上傳ADS層的建庫建表SQL文件 (2)第二步,在項目里建工作流,添加運行SQL文件的腳本 #! /b

    2024年02月07日
    瀏覽(29)
  • XUbuntu22.04之Linux剪切板和selection primary區(qū)域(一百八十七)

    XUbuntu22.04之Linux剪切板和selection primary區(qū)域(一百八十七)

    簡介: CSDN博客專家,專注Android/Linux系統(tǒng),分享多mic語音方案、音視頻、編解碼等技術(shù),與大家一起成長! 優(yōu)質(zhì)專欄: Audio工程師進階系列 【 原創(chuàng)干貨持續(xù)更新中…… 】?? 人生格言: 人生從來沒有捷徑,只有行動才是治療恐懼和懶惰的唯一良藥. 更多原創(chuàng),歡迎關(guān)注:An

    2024年02月15日
    瀏覽(31)
  • 一百八十八、Hive——HiveSQL查詢表中的日期是星期幾(親測,附截圖)

    一百八十八、Hive——HiveSQL查詢表中的日期是星期幾(親測,附截圖)

    指標(biāo)需要查詢以工作日和周末維度的數(shù)據(jù)統(tǒng)計,因此需要根據(jù)數(shù)據(jù)的日期判斷這一天屬于星期幾,周一到周五為工作日,周六到周日為周末 今天是2023年9月26日,周二! 2023-05-02為任意一天的周二,不是選周一或者周日,這個可以自行驗證!

    2024年02月07日
    瀏覽(29)
  • 一百八十二、大數(shù)據(jù)離線數(shù)倉完整流程——步驟一、用Kettle從Kafka、MySQL等數(shù)據(jù)源采集數(shù)據(jù)然后寫入HDFS

    一百八十二、大數(shù)據(jù)離線數(shù)倉完整流程——步驟一、用Kettle從Kafka、MySQL等數(shù)據(jù)源采集數(shù)據(jù)然后寫入HDFS

    經(jīng)過6個月的奮斗,項目的離線數(shù)倉部分終于可以上線了,因此整理一下離線數(shù)倉的整個流程,既是大家提供一個案例經(jīng)驗,也是對自己近半年的工作進行一個總結(jié)。 項目行業(yè)屬于交通行業(yè),因此數(shù)據(jù)具有很多交通行業(yè)的特征,比如轉(zhuǎn)向比數(shù)據(jù)就是統(tǒng)計車輛左轉(zhuǎn)、右轉(zhuǎn)、直行

    2024年02月07日
    瀏覽(20)
  • 一百八十七、大數(shù)據(jù)離線數(shù)倉完整流程——步驟六、在ClickHouse的ADS層建表并用Kettle同步Hive中DWS層的結(jié)果數(shù)據(jù)

    一百八十七、大數(shù)據(jù)離線數(shù)倉完整流程——步驟六、在ClickHouse的ADS層建表并用Kettle同步Hive中DWS層的結(jié)果數(shù)據(jù)

    經(jīng)過6個月的奮斗,項目的離線數(shù)倉部分終于可以上線了,因此整理一下離線數(shù)倉的整個流程,既是大家提供一個案例經(jīng)驗,也是對自己近半年的工作進行一個總結(jié)。 1、ClickHouse的ADS層建庫建表語句 --如果不存在則創(chuàng)建hurys_dc_ads數(shù)據(jù)庫 create database if not exists hurys_dc_ads; --使用

    2024年02月07日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包