Android手持設備是指通常通過將其握在手中使用的Android設備實現,例如mp3播放器、手機或平板電腦。
如果Android設備實現滿足以下所有條件,則它們被歸類為手持設備,手持設備申請GMS認證需要獲得MADA協議。
深光標準技術提示:手提設備需擁有提供移動性的電源,例如電池。
二、手持設備過GMS的測試要求
必須至少有一個符合本文檔中描述的所有要求的Android兼容顯示器。
強烈建議為用戶提供更改顯示尺寸(屏幕密度)的功能。
必須支持圖形緩沖區的GPU組合,至少與任何內置顯示器的*高分辨率一樣大。
如果手持設備實現支持軟件屏幕旋轉,它們:
必須使可供第三方應用程序使用的邏輯屏幕的短邊至少為2英寸,長邊至少為2.7英寸。
如果手持設備不支持軟件屏幕旋轉,它們:
必須使可供第三方應用程序使用的邏輯屏幕的短邊至少為2.7英寸。
如果手持設備實現通過Configuration.isScreenHdr()聲明支持高動態范圍顯示,它們:須宣傳EGL_EXT_gl_colorspace_bt2020_pq、EGL_EXT_surface_SMPTE2086_metadata、EGL_EXT_surface_CTA861_3_metadata、VK_EXT_swapchain_colorspace和VK_EXT_hdr_metadata擴展的支持。
必須通過系統屬性graphics.gpu.profiler.support報告設備是否支持GPU分析功能。
如果手持設備實現通過系統屬性graphics.gpu.profiler.support聲明支持,它們:
必須將符合Perfetto文檔中定義的GPU計數器和GPU渲染階段架構的protobuf跟蹤報告為輸出。
必須在gpu計數器跟蹤數據包proto之后報告設備的GPU計數器的一致值。
必須在渲染階段跟蹤數據包proto之后報告設備的GPURenderStages的一致值。
必須報告由以下格式指定的GPU頻率跟蹤點:power/gpu_frequency。
必須包括對上游Android開源代碼實現的舊版應用程序兼容模式的支持。也就是說,設備實現不得更改激活兼容模式的觸發器或閾值,并且不得更改兼容模式本身的行為。
必須包括對第三方輸入法編輯器(IME)應用程序的支持。
必須在所有提供主屏幕的Android兼容顯示器上提供主屏幕功能。
必須在所有與Android兼容的顯示器上提供Back功能,并在至少一個與Android兼容的顯示器上提供Recents功能。
必須將返回功能(KEYCODE_BACK)的正常和長按事件發送到前臺應用程序。這些事件不得由系統使用,并且可以由Android設備外部觸發(例如,連接到Android設備的外部硬件鍵盤)。
必須支持觸摸屏輸入。
如果手持設備實現包括3軸加速度計,則它們:
必須能夠以至少100Hz的頻率報告事件。
如果手持設備實現包括GPS/GNSS接收器并通過android.hardware.location.gps功能標志向應用程序報告功能,則它們:
必須在發現GNSS測量結果后立即報告,即使尚未報告根據GPS/GNSS計算的位置。
必須報告GNSS偽距和偽距率,在確定位置后的開闊天空條件下,當靜止或以小于0.2米/秒平方的加速度移動時,足以計算位置在20米以內,速度在0.2米/秒以內,至少95%的時間。
如果手持設備實現包括3軸陀螺儀,它們:
必須能夠以至少100Hz的頻率報告事件。
必須能夠測量高達每秒1000度的方向變化。
可以進行語音呼叫并在getPhoneType中指示除PHONE_TYPE_NONE的任何值的手持設備實現:
手持設備實現:
建議支持具有6個自由度的姿勢傳感器。
應該包括對藍牙和藍牙LE的支持。
如果手持設備實現包括計量連接,則它們:
必須提供數據保護模式。
如果手持設備實現包括使用列出功能的邏輯相機設備,則它們:
默認情況下必須具有正常視野(FOV),并且必須在50到90度之間。
必須有至少4GB的非易失性存儲空間可用于應用程序私有數據(又名“/data”分區)。
當內核和用戶空間的可用內存少于1GB時,必須為ActivityManager.isLowRamDevice()返回“true”。
如果手持設備實現聲明僅支持32位ABI:
如果默認顯示使用高達qHD的幀緩沖分辨率(例如FWVGA),內核和用戶空間可用的內存必須至少為416MB。
如果默認顯示使用高達HD+的幀緩沖分辨率(例如HD、WSVGA),內核和用戶空間可用的內存必須至少為592MB。
如果默認顯示使用高達FHD的幀緩沖分辨率(例如WSXGA+),內核和用戶空間可用的內存必須至少為896MB。
如果默認顯示使用高達QHD的幀緩沖區分辨率(例如QWXGA),內核和用戶空間可用的內存必須至少為1344MB。
如果手持設備實現聲明支持32位和64位ABI:
如果默認顯示使用高達qHD的幀緩沖分辨率(例如FWVGA),內核和用戶空間可用的內存必須至少為816MB。
如果默認顯示使用高達HD+的幀緩沖分辨率(例如HD、WSVGA),內核和用戶空間可用的內存必須至少為944MB。
如果默認顯示器使用高達FHD的幀緩沖分辨率(例如WSXGA+),內核和用戶空間可用的內存必須至少為1280MB。
如果默認顯示使用高達QHD的幀緩沖分辨率(例如QWXGA),內核和用戶空間可用的內存必須至少為1824MB。
請注意,上面的“內核和用戶空間可用的內存”是指除了已經專用于硬件組件(如無線電、視頻等)的任何內存之外提供的內存空間,這些內存不受內核對設備實現的控制。
如果手持設備實現包括小于或等于1GB的內核和用戶空間可用內存,它們:
必須聲明功能標志android.hardware.ram.low。
必須有至少1.1GB的非易失性存儲空間用于存儲應用程序私有數據(又名“/data”分區)。
如果手持設備實現包括超過1GB的可用于內核和用戶空間的內存,它們:
必須有至少4GB的非易失性存儲空間可用于應用程序私有數據(又名“/data”分區)。
應該聲明功能標志android.hardware.ram.normal。
如果手持設備實現包括大于或等于2GB且小于4GB的內核和用戶空間可用內存,則它們:強烈建議僅支持32位用戶空間(應用程序和系統代碼)
如果手持設備實現包括少于2GB的可用于內核和用戶空間的內存,它們:必須僅支持32位ABI。
不得提供小于1GiB的應用程序共享存儲。
應包括支持外圍模式的USB端口。
如果手持設備實現包括支持外圍模式的USB端口,則它們:
必須實現AndroidOpenAccessory(AOA)API。
如果手持設備實現包括支持主機模式的USB端口,它們:
必須按照AndroidSDK文檔中的說明實現USB音頻類。
手持設備:
必須包括麥克風。
必須有音頻輸出并聲明android.hardware.audio.output。