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 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)
Handheld device implementations:
ActivityManager.isLowRamDevice()
when there is less than 1GB of memory available to the kernel and userspace.If Handheld device implementations are 32-bit:
[H-1-1] The memory available to the kernel and userspace MUST be at least 512MB if any of the following densities are used:
[H-2-1] The memory available to the kernel and userspace MUST be at least 608MB if any of the following densities are used:
[H-3-1] The memory available to the kernel and userspace MUST be at least 896MB if any of the following densities are used:
[H-4-1] The memory available to the kernel and userspace MUST
be at least 1344MB if any of the following densities are used: * 560dpi or higher on small/normal screens* * 400dpi or higher on large screens * xhdpi or higher on extra large screens
If Handheld device implementations are 64-bit:
[H-5-1] The memory available to the kernel and userspace MUST be at least 816MB if any of the following densities are used:
[H-6-1] The memory available to the kernel and userspace MUST be at least 944MB if any of the following densities are used:
[H-7-1] The memory available to the kernel and userspace MUST be at least 1280MB if any of the following densities are used:
[H-8-1] The memory available to the kernel and userspace MUST be at least 1824MB if any of the following densities are used:
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.
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-0-1] 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.