- ランタイムの競合の防止:リンカーの不一致やアプリのクラッシュの原因となる可能性のある、システム提供のバイナリがバンドルされていないことを確認します。
- パッケージサイズの削減:冗長なシステムバイナリが排除され、VPKGが無駄のない状態に保たれていることを確認します。
- プラットフォーム互換性の確保:アプリがプラットフォームテスト済みの正しいバイナリバージョンを使用していることを保証します。
- Amazonアプリストアの要件への準拠:Amazonアプリストアへの申請前に必要な検証を実行します。
しくみ
厳密なABIチェックは、ビルドプロセス中に以下の2つの重要な要件を検証することでバイナリ互換性を確保します。ルール1:システムABIバイナリをバンドルしない
Vegaの公式ABIリストに記載されているバイナリはシステムによって提供されます。パッケージでは、これらのバイナリをバンドルしないようにする必要があります。 代わりに必要な手順: システムバイナリに動的にリンクします。これらのバイナリは、どのVegaデバイスでも実行時に利用できます。ルール2:すべてのバイナリ依存関係を満たす
パッケージ内のすべてのバイナリ依存関係は、次のいずれかの形で解決される必要があります。- VPKG内にバンドルされている
- Vegaの公式ABIリストに含まれている
パッケージの検証
デフォルトでは、vega exec vpt validateは厳密なABIチェックを実行して、パッケージがAmazonアプリストアの申請要件を満たしているかどうかを確認します。 プロンプトで、次のように入力します。Vegaの公式ABIリスト
以下のシステムライブラリはVega OSによって提供されるため、パッケージにはバンドルしないようにする必要があります。標準Cライブラリ:
- libc.so.6
- libdl.so.2
- libm.so.6
- libpthread.so.0
- librt.so.1
- libutil.so.1
プラットフォーム固有のライブラリ:
- libapmf.so
- libkeplerscript.so
動的リンカー:
- ld-linux-*
一般的なワークフロー
Amazonアプリストアへの申請前
Amazonアプリストアにアプリを申請する前に、必ず厳密なABIチェックを実行します。 プロンプトで、次のように入力します。CI/CDとの統合
ABI検証を継続的インテグレーションパイプラインに統合すると、互換性の問題を早期に検出できます。 プロンプトで、次のように入力します。関連トピック
- アプリの管理・通信ツール
- VegaアプリパッケージでのVPTの使用
- Loggingctlを使用したシステムログの管理
- Vega CLI
- Vega StudioパフォーマンスCLI
- Vega Studioのコマンド

