效能注意事項

為了打造引人入勝的 AR 使用者體驗,支援 AR 的應用程式必須能發揮良好效能。

請確保應用程式符合以下條件:

  • 對使用者輸入內容做出反應,包括觸控手勢和裝置動作。
  • 以合理且一致的影格速率轉譯。使用者通常較喜歡採用一致且低於影格速率的一致畫面更新率。
  • 可以大幅降低電池耗電量、讓使用者在一天當中使用裝置處理其他工作,或是延長 AR 體驗的互動時間。
  • 建構引人入勝的 AR 體驗,讓 AR 產生的內容相對於環境顯示,並且巧妙地融入環境環境。

效能最佳做法

如要打造更引人入勝的 AR 體驗,請在設計時參考下列最佳做法。

使用錨點提升追蹤成效

雖然您可以使用世界空間座標放置 3D 內容,但必須盡可能使用錨點。即使基礎世界空間座標有所變動,ARCore 也能夠確保錨點根據世界各地的穩定顯示,即使 ARCore 更新其解讀情況,錨點也會隨著時間推移。

未附加至錨點的虛擬物件有時會看起來像是跳躍,而且相對於環境看起來不會穩定。這可能會降低使用者對於 AR 體驗的吸引力。

考量裝置專屬的效能特性

ARCore 支援的裝置支援多種硬體和效能特性。裝置效能可能因下列因素而異:

  • 裝置 CPU/GPU、時脈速度
  • 可用記憶體和頻寬
  • 相機/IMU 感應器品質
  • 其他硬體差異
  • 作業系統和裝置驅動程式

建議您針對使用者將使用的裝置,在不同類別的裝置上測試應用程式。

在不使用時停用 CPU 大量功能

啟用某些 ARCore 功能可增加 CPU 使用率。如果您的 AR 體驗不需要這些功能,請考慮停用這些功能。這樣可讓應用程式使用更多 CPU 週期,並改善熱效能和電池續航力。

目前,當目前工作階段啟用 Instant Placement 和/或 Augmented Images 時,ARCore CPU 使用率就會增加。請按照下列指南來提升 CPU 使用率:

  • 建立完整追蹤後,應停用 Instant Placement。您可以在工作階段設定中停用這項功能。

  • 每當 AR 體驗不需要這項功能時,請停用「Augmented Images」。如要停用擴增圖片功能,請在工作階段設定中設定 null 或空白的擴增圖片資料庫。

監控裝置溫度

在開發和品質確保測試期間,您可以使用 Android 的熱能 API 監控及追蹤應用程式在裝置上的效能。

請務必使用應用程式的「正式版」版本,而非應用程式的「開發」或「qa」版本,因為該版本可能有不同的執行階段效能特性。

找出 ARCore CPU 飢餓

ARCore 工作階段啟用時,應用程式必須與 ARCore 共用有限的行動 CPU 和 GPU 資源。受 CPU 限制的應用程式可以與動作追蹤所需的 CPU 資源競爭。

如要驗證 ARCore 的同時本地化和對應 (SLAM) 是否能正常執行,請確認 Android 裝置記錄中是否「沒有」顯示「VIO 頻率偏低」訊息:

adb logcat | grep 'VIO frequency low'

避免 ARCore CPU 過精簡

ARCore 工作階段啟用時,應用程式必須與 ARCore 共用有限的行動 CPU 和 GPU 資源裝置。受 CPU 限制的應用程式可以與動作追蹤所需的 CPU 資源競爭。

預先建立擴增圖片資料庫

在開發階段,請盡可能預先建立擴增圖片資料庫。 如果您必須在執行階段建立擴增圖片資料庫,或以動態方式將圖片新增至現有的資料庫,請務必在背景執行緒中加入圖片,以免封鎖主 UI 執行緒。

限制要求的攝影機串流數量

使用 Java 共用相機時,應用程式可以要求額外的 CPU 或 GPU 圖片串流。