An Android Handheld device refers to an Android device implementation that is typically used by holding it in the hand, such as an mp3 player, phone, or tablet.
Android device implementations are classified as a Handheld if they meet all the following criteria:
The additional requirements in the rest of this section are specific to Android Handheld device implementations.
Screen Size (Section 7.1.1.1)
Handheld device implementations:
Screen Density (Section 7.1.1.3)
Handheld device implementations:
Legacy Application Compatibility Mode (Section 7.1.5)
Handheld device implementations:
Keyboard (Section 7.2.1)
Handheld device implementations:
Navigation Keys (Section 7.2.3)
Handheld device implementations:
[H-0-1] MUST provide the Home, Recents, and Back functions.
[H-0-2] MUST send both the normal and long press event of the the Back function (KEYCODE_BACK
) to the foreground application.
Touchscreen Input (Section 7.2.4)
Handheld device implementations:
Accelerometer (Section 7.3.1)
Handheld device implementations:
If Handheld device implementations include a 3-axis accelerometer, they:
Gyroscope (Section 7.3.4)
If Handheld device implementations include a gyroscope, they:
Proximity Sensor (Section 7.3.8 )
Handheld device implementations that can make a voice call and indicate any value other than PHONE_TYPE_NONE
in getPhoneType
:
Pose Sensor (Section 7.3.12)
Handheld device implementations:
Bluetooth (Section 7.4.3)
Handheld device implementations:
Data Saver (Section 7.4.7)
If Handheld device implementations include a metered connection, they:
Minimum Memory and Storage (Section 7.6.1)
If Handheld device implementations declare support of only a 32-bit ABI:
[H-1-1] The memory available to the kernel and userspace MUST be at least 416MB if the default display uses framebuffer resolutions up to qHD (e.g. FWVGA).
[H-2-1] The memory available to the kernel and userspace MUST be at least 592MB if the default display uses framebuffer resolutions up to HD+ (e.g. HD, WSVGA).
[H-3-1] The memory available to the kernel and userspace MUST be at least 896MB if the default display uses framebuffer resolutions up to FHD (e.g. WSXGA+).
[H-4-1] The memory available to the kernel and userspace MUST be at least 1344MB if the default display uses framebuffer resolutions up to QHD (e.g. QWXGA).
If Handheld device implementations declare support of 32-bit and 64-bit ABIs:
[H-5-1] The memory available to the kernel and userspace MUST be at least 816MB if the default display uses framebuffer resolutions up to qHD (e.g. FWVGA).
[H-6-1] The memory available to the kernel and userspace MUST be at least 944MB if the default display uses framebuffer resolutions up to HD+ (e.g. HD, WSVGA).
[H-7-1] The memory available to the kernel and userspace MUST be at least 1280MB if the default display uses framebuffer resolutions up to FHD (e.g. WSXGA+).
[H-8-1] The memory available to the kernel and userspace MUST be at least 1824MB if the default display uses framebuffer resolutions up to QHD (e.g. QWXGA).
Note that the "memory available to the kernel and userspace" above refers to the memory space provided in addition to any memory already dedicated to hardware components such as radio, video, and so on that are not under the kernel’s control on device implementations.
If Handheld device implementations include less than or equal to 1GB of memory available to the kernel and userspace, they:
android.hardware.ram.low
.If Handheld device implementations include more than 1GB of memory available to the kernel and userspace, they:
android.hardware.ram.normal
.Application Shared Storage (Section 7.6.2)
Handheld device implementations:
USB peripheral mode (Section 7.7.1)
Handheld device implementations:
If handheld device implementations include a USB port supporting peripheral mode, they:
Microphone (Section 7.8.1)
Handheld device implementations:
Audio Output (Section 7.8.2)
Handheld device implementations:
android.hardware.audio.output
.Virtual Reality Mode (Section 7.9.1)
If Handheld device implementations include support for the VR mode, they:
android.software.vr.mode
feature.*If device implementations declare android.software.vr.mode
feature, they:
android.service.vr.VrListenerService
that can be enabled by VR applications via android.app.Activity#setVrModeEnabled
.*Virtual Reality High Performance (Section 7.9.2)
If Handheld device implementations are capable of meeting all the requirements to declare the android.hardware.vr.high_performance
feature flag, they:
android.hardware.vr.high_performance
feature flag.*Audio Encoding (Section 5.1.1)
Handheld device implementations MUST support the following audio encoding:
Audio Decoding (Section 5.1.2)
Handheld device implementations MUST support the following audio decoding:
Video Encoding (Section 5.2)
Handheld device implementations MUST support the following video encoding and make it available to third-party applications:
Video Decoding (Section 5.3)
Handheld device implementations MUST support the following video decoding:
WebView Compatibility (Section 3.4.1)
Handheld device implementations:
android.webkit.Webview
API.Browser Compatibility (Section 3.4.2)
Handheld device implementations:
Launcher (Section 3.8.1)
Handheld device implementations:
[H-SR] Are STRONGLY RECOMMENDED to implement a default launcher that supports in-app pinning of shortcuts and widgets.
[H-SR] Are STRONGLY RECOMMENDED to implement a default launcher that provides quick access to the additional shortcuts provided by third-party apps through the ShortcutManager API.
[H-SR] Are STRONGLY RECOMMENDED to include a default launcher app that shows badges for the app icons.
Widgets (Section 3.8.2)
Handheld device implementations:
Notifications (Section 3.8.3)
Handheld device implementations:
Notification
and NotificationManager
API classes.Search (Section 3.8.4)
Handheld device implementations:
Lock Screen Media Control (Section 3.8.10)
If Android Handheld device implementations support a lock screen,they:
Device administration (Section 3.9)
If Handheld device implementations support a secure lock screen, they:
Accessibility (Section 3.10)
Handheld device implementations:
[H-SR] MUST support third-party accessibility services.
[H-SR] Are STRONGLY RECOMMENDED to preload accessibility services on the device comparable with or exceeding functionality of the Switch Access and TalkBack (for languages supported by the preloaded Text-to-speech engine) accessibility services as provided in the talkback open source project.
Text-to-Speech (Section 3.11)
Handheld device implementations:
[H-0-1] MUST support installation of third-party TTS engines.
[H-SR] Are STRONGLY RECOMMENDED to include a TTS engine supporting the languages available on the device.
Quick Settings (Section 3.13)
Handheld device implementations:
Companion Device Pairing (Section 3.15)
If Android handheld device implementations declare FEATURE_BLUETOOTH
or FEATURE_WIFI
support, they:
User Experience Consistency (Section 8.1)
For handheld device implementations:
File I/O Access Performance (Section 8.2)
Handheld device implementations:
Power-Saving Modes (Section 8.3)
For handheld device implementations:
Power Consumption Accounting (Sections 8.4)
Handheld device implementations:
uid_cputime
kernel module implementation.adb shell dumpsys batterystats
shell command to the app developer.If Handheld device implementations include a screen or video output, they:
android.intent.action.POWER_USAGE_SUMMARY
intent and display a settings menu that shows this power usage.Permissions (Sections 9.1)
Handheld device implementations:
android.permission.PACKAGE_USAGE_STATS
permission and provide a user-accessible mechanism to grant or revoke access to such apps in response to the android.settings.ACTION_USAGE_ACCESS_SETTINGS
intent.