## 3.7\. Runtime Compatibility
Device implementations:
* [C-0-1] MUST support the full Dalvik Executable (DEX) format
and [Dalvik bytecode specification and semantics](https://android.googlesource.com/platform/dalvik/).
* [C-0-2] MUST configure Dalvik runtimes to allocate memory in
accordance with the upstream Android platform, and as specified by
the following table. (See [section 7.1.1](#7_1_1_screen_configuration) for
screen size and screen density definitions.)
* SHOULD use Android RunTime (ART), the reference upstream
implementation of the Dalvik Executable Format, and the reference
implementation’s package management system.
* SHOULD run fuzz tests under various modes of execution
and target architectures to assure the stability of the runtime. Refer to
[JFuzz](https://android.googlesource.com/platform/art/+/master/tools/dexfuzz/)
and [DexFuzz](https://android.googlesource.com/platform/art/+/master/tools/dexfuzz/)
in the Android Open Source Project website.
Note that memory values specified below are considered minimum values and
device implementations MAY allocate more memory per application.
<table>
<tr>
<th>Screen Layout</th>
<th>Screen Density</th>
<th>Minimum Application Memory</th>
</tr>
<tr>
<td rowspan="12">Android Watch</td>
<td>120 dpi (ldpi)</td>
<td rowspan="3">32MB</td>
</tr>
<tr>
<td>160 dpi (mdpi)</td>
</tr>
<tr>
<td>213 dpi (tvdpi)</td>
</tr>
<tr>
<td>240 dpi (hdpi)</td>
<td rowspan="2">36MB</td>
</tr>
<tr>
<td>280 dpi (280dpi)</td>
</tr>
<tr>
<td>320 dpi (xhdpi)</td>
<td rowspan="2">48MB</td>
</tr>
<tr>
<td>360 dpi (360dpi)</td>
</tr>
<tr>
<td>400 dpi (400dpi)</td>
<td>56MB</td>
</tr>
<tr>
<td>420 dpi (420dpi)</td>
<td>64MB</td>
</tr>
<tr>
<td>480 dpi (xxhdpi)</td>
<td>88MB</td>
</tr>
<tr>
<td>560 dpi (560dpi)</td>
<td>112MB</td>
</tr>
<tr>
<td>640 dpi (xxxhdpi)</td>
<td>154MB</td>
</tr>
<tr>
<td rowspan="12">small/normal</td>
<td>120 dpi (ldpi)</td>
<td rowspan="2">32MB</td>
</tr>
<tr>
<td>160 dpi (mdpi)</td>
</tr>
<tr>
<td>213 dpi (tvdpi)</td>
<td rowspan="3">48MB</td>
</tr>
<tr>
<td>240 dpi (hdpi)</td>
</tr>
<tr>
<td>280 dpi (280dpi)</td>
</tr>
<tr>
<td>320 dpi (xhdpi)</td>
<td rowspan="2">80MB</td>
</tr>
<tr>
<td>360 dpi (360dpi)</td>
</tr>
<tr>
<td>400 dpi (400dpi)</td>
<td>96MB</td>
</tr>
<tr>
<td>420 dpi (420dpi)</td>
<td>112MB</td>
</tr>
<tr>
<td>480 dpi (xxhdpi)</td>
<td>128MB</td>
</tr>
<tr>
<td>560 dpi (560dpi)</td>
<td>192MB</td>
</tr>
<tr>
<td>640 dpi (xxxhdpi)</td>
<td>256MB</td>
</tr>
<tr>
<td rowspan="12">large</td>
<td>120 dpi (ldpi)</td>
<td>32MB</td>
</tr>
<tr>
<td>160 dpi (mdpi)</td>
<td>48MB</td>
</tr>
<tr>
<td>213 dpi (tvdpi)</td>
<td rowspan="2">80MB</td>
</tr>
<tr>
<td>240 dpi (hdpi)</td>
</tr>
<tr>
<td>280 dpi (280dpi)</td>
<td>96MB</td>
</tr>
<tr>
<td>320 dpi (xhdpi)</td>
<td>128MB</td>
</tr>
<tr>
<td>360 dpi (360dpi)</td>
<td>160MB</td>
</tr>
<tr>
<td>400 dpi (400dpi)</td>
<td>192MB</td>
</tr>
<tr>
<td>420 dpi (420dpi)</td>
<td>228MB</td>
</tr>
<tr>
<td>480 dpi (xxhdpi)</td>
<td>256MB</td>
</tr>
<tr>
<td>560 dpi (560dpi)</td>
<td>384MB</td>
</tr>
<tr>
<td>640 dpi (xxxhdpi)</td>
<td>512MB</td>
</tr>
<tr>
<td rowspan="12">xlarge</td>
<td>120 dpi (ldpi)</td>
<td>48MB</td>
</tr>
<tr>
<td>160 dpi (mdpi)</td>
<td>80MB</td>
</tr>
<tr>
<td>213 dpi (tvdpi)</td>
<td rowspan="2">96MB</td>
</tr>
<tr>
<td>240 dpi (hdpi)</td>
</tr>
<tr>
<td>280 dpi (280dpi)</td>
<td>144MB</td>
</tr>
<tr>
<td>320 dpi (xhdpi)</td>
<td>192MB</td>
</tr>
<tr>
<td>360 dpi (360dpi)</td>
<td>240MB</td>
</tr>
<tr>
<td>400 dpi (400dpi)</td>
<td>288MB</td>
</tr>
<tr>
<td>420 dpi (420dpi)</td>
<td>336MB</td>
</tr>
<tr>
<td>480 dpi (xxhdpi)</td>
<td>384MB</td>
</tr>
<tr>
<td>560 dpi (560dpi)</td>
<td>576MB</td>
</tr>
<tr>
<td>640 dpi (xxxhdpi)</td>
<td>768MB</td>
</tr>
</table>