Memory Advice API 總覽

Memory Advice API 是一項實驗性的原生 API,可協助 Android 應用程式保持在記憶體用量安全限制內。為了達到這個目標,API 會預估使用中的記憶體資源數量,然後在超過特定門檻時通知應用程式。API 也能直接向應用程式回報預估的記憶體用量百分比。

此 API 提供的估計資訊可協助判斷應用程式何時應調整記憶體用量,或找出應用程式日後版本可改善的地方。調整內容包括任何會改變記憶體用量的項目,例如降低視覺和音訊資產的細緻程度和品質。

預估記憶體資源包含 Malloc 配置的原生堆積記憶體,以及 OpenGL ES 和 Vulkan Graphics API 分配的圖形記憶體,讓 Memory Advice API 非常適合用於遊戲和大量使用圖像的應用程式。

預估值是依據以下項目計算得出:

  • API 收集的裝置指標
  • 裝置的機器學習資料
  • 裝置測試

在 API 層級,Memory Advice API 會定義一組記憶體建議狀態,並使用一組函式將這些狀態傳遞給應用程式。

開始使用 開始在 Unity 遊戲環境使用

發布情況

Memory Advice API 是 Android Game Development Kit (AGDK) 的一部分,會透過下列管道發布:

遊戲使用的 Memory Advice API 版本必須是建構環境的建議版本。如果使用 Android Studio,建議採用 Jetpack 版本。若是 Android Game Development Extension (AGDE),建議採用 AGDK 下載頁面上的版本。

功能

本節說明 Memory Advice API 功能。

記憶體狀態

此 API 會向應用程式回報下列記憶體狀態:

  • MEMORYADVICE_STATE_OK
  • MEMORYADVICE_STATE_APPROACHING_LIMIT
  • MEMORYADVICE_STATE_CRITICAL

詳情請參閱「memoryadvice_memorystate」參考頁面。

回報記憶體狀態

此 API 支援透過輪詢或回呼機制回報記憶體狀態:

  • 輪詢
    應用程式可隨時呼叫 API,擷取記憶體狀態。

  • 回呼
    應用程式可使用 Memory Advice API 註冊回呼函式。應用程式會指定回呼的呼叫頻率。在應用程式記憶體狀況接近安全限制或極低的情況下,此 API 會根據頻率決定何時執行回呼。如果記憶體狀況屬於安全範圍,則不會叫用回呼。系統會從回呼本身的執行緒執行回呼,而不是從應用程式的執行緒執行。

費用和呼叫頻率注意事項

Memory Advice API 會使用運算時間產生記憶體狀態。此費用因裝置而異,但每次呼叫通常會介於 1 毫秒至 3 毫秒。在決定記憶體狀態的輪詢頻率或回呼頻率時,建議您考量此費用。

相關規定

裝置需求

  • Android 4.4 (API 級別 19) 以上版本。

應用程式相關規定

  • 這個 API 僅支援原生應用程式 (主要以 C/C++ 撰寫的應用程式)。

  • 這個 API 僅支援實體裝置,不支援模擬器。

NDK 版本要求

Memory Advice API 版本支援最熱門的 NDK 版本,請參閱版本資訊瞭解支援的 NDK 清單。

其他資源

問題和意見回饋

Memory Advice API 目前為 Beta 版,歡迎您提供意見回饋。如有任何建議或在使用此 API 時遇到問題,請在 IssueTracker 中建立問題