本頁面是提供 Fuchsia 包裹的教戰手冊 (從這裡稱為「套件」) 到 Fuchsia API 介面 和 Fuchsia IDK。
步驟如下:
必要條件
如要將套件納入 Fuchsia SDK 中,則必須先建立套件
「partner
」或「public
」類別中。(若需更多資訊,請參閱
將 API 升級為合作夥伴類別)。
建立套件 API 介面
系統會透過填入
sdk_fuchsia_package()
目標:expected_files_present
和 expected_files_exact
。
您可以使用這兩個參數來強制執行下列動作:
expected_files_present
:套件檔案存在於 SDK 套件的 資訊清單。expected_files_exact
:套件檔案存在於 SDK 套件的 資訊清單及其內容雜湊與來源中檢查的內容雜湊相符。
套件檔案可包含套件 contents 中的任何項目、 其中包括:
- 「
meta/
」中的檔案 - 基本套件中的檔案
探索套件內容
在套件的資訊清單檔案中,提供組成套件的項目清單
(通常命名為 package_manifest.json
)
請參閱下方的資訊清單檔案範例:
{
"version": "1",
"repository": "fuchsia.com",
"package": {
"name": "example_package",
"version": "0"
},
"blobs": [
{
"source_path": "path/to/meta.far",
"path": "meta/",
"merkle": "CONTENT_HASH",
"size": 0
},
{
"source_path": "path/to/bin/example",
"path": "bin/example",
"merkle": "CONTENT_HASH",
"size": 0
},
{
"source_path": "path/to/shared/bar.so",
"path": "lib/bar.so",
"merkle": "CONTENT_HASH",
"size": 0
}
]
}
在上述範例中,meta.far
以外的可能 API 介面項目位於
blobs/path
實體,包括:
bin/example
lib/far.so
ffx package far list
指令可讓您探索 meta.far
的內容。
例如:
$ ffx package far list path/to/meta.far
+-------------------------------+
| path |
+===============================+
| meta/contents |
+-------------------------------+
| meta/fuchsia.abi/abi-revision |
+-------------------------------+
| meta/component_name.cm |
+-------------------------------+
總體而言,這個範例中可能的 API 介面項目 (包括 meta.far
) 包括:
bin/example
lib/far.so
meta/contents
meta/fuchsia.abi/abi-revision
meta/component_name.cm
提供 SDK 中的 API
如要提供套件給 Fuchsia API 介面,請遵循以下指南:
準備向 API 委員會成員申請程式碼審查。
這位成員可能會要求調整您的 API 介面 (請參閱 SDK 套件的程式碼範例審查)。
為 SDK 套件建立
sdk_fuchsia_package
目標 (範例)。這很可能會住在以下的
fuchsia_package
目標旁邊 已匯出。請留意宣告的 API 介面,由
expected_files_exact
和expected_files_present
參數分別位於sdk_fuchsia_package
目標。(請參閱「建立套件 API 介面」)。
將
sdk_fuchsia_package
目標新增至//sdk/BUILD.gn
檔案中的sdk_molecule
(「core_packages」) 目標 (範例)。如要建構 IDK 目標 (預期無法檢查黃金檔案檢查作業), 執行下列指令:
fx build final_fuchsia_idk
按照列印的操作說明複製產生的
content_checklist.json
檔案複製到黃金檔案位置確認產生的
content_checklist.json
檔案涵蓋所需的檔案 API 介面 (範例)。如果不同,請調整
expected_files_exact
和expected_files_present
參數 並重複上一個建構步驟修正任何其他 SDK 資訊清單相關變更 (包括更新) 後,建立 IDK 目標
//sdk/manifests/fuchsia_idk.manifest
檔案)。fx build final_fuchsia_idk
(選用) 輸入 SDK 版本目錄,並預覽 SDK 套件資訊清單。
從建構目錄 (例如
out/default
) 執行下列操作:將目錄變更為
sdk/archive
,例如:cd sdk/archive
執行下列指令:
mkdir output && tar zxvf fuchsia_idk.tar.gz -C output && cd output
您可以在以下網址找到指定目標 x64 的套裝套件資訊清單:
packages/{PACKAGE_DISTRIBUTION_NAME}/x64/release/package_manifest.json