自 2025 年 3 月 27 日起,我們建議您使用 android-latest-release
而非 aosp-main
建構及貢獻 AOSP。詳情請參閱「Android 開放原始碼計畫變更」。
遞歸展開
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
不要在產品/板配置 makefile 中使用遞歸擴展。遞歸擴展是在生成文件中使用原始=
而不是:=
進行變量賦值。它會導致設置為其他變量值的變量在評估它們自己之前不評估這些其他變量。這是 Starlark 不支持的功能。
刪除它在很大程度上取決於它的使用方式的具體場景。大多數情況下,它涉及將變量分配移動到使用它們的位置之前。例如,替換:
MY_VAR_2 = foo
# Some stuff in between...
MY_VAR = $(MY_VAR_2)
MY_VAR_2 = bar
# $(MY_VAR) is bar here.
和:
MY_VAR_2 := foo
# Some stuff in between...
MY_VAR_2 := bar
MY_VAR := $(MY_VAR_2)
# $(MY_VAR) is bar here.
如果該變量之前沒有通過簡單擴展分配給使用+=
附加到變量,則使用遞歸擴展。如果您不確定變量之前是否已分配,可以將+=
替換為MY_VAR := $(strip $(MY_VAR) new_value)
。
即使在轉換為 Starlark 之前,刪除延遲擴展也可以加快對 Makefile 的評估。如果將變量設置為昂貴函數調用的結果,則該函數只會通過簡單擴展調用一次,但可能會通過遞歸擴展調用多次。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2022-06-06 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2022-06-06 (世界標準時間)。"],[],[]]