50e990c64f
Change-Id: Idc55a0b368c1d2c1e7d4999601b739dd57f08eb3
148 lines
7.8 KiB
Plaintext
148 lines
7.8 KiB
Plaintext
page.title=Strategies for Android 1.5
|
|
parent.title=Supporting Multiple Screens
|
|
parent.link=screens_support.html
|
|
|
|
@jd:body
|
|
|
|
<div id="qv-wrapper">
|
|
<div id="qv">
|
|
|
|
<h2>Quickview</h2>
|
|
<ul>
|
|
<li>Apps developed for Android 1.5 and below support only the baseline screen
|
|
configuration, by default</li>
|
|
<li>There are some simple steps you should take to enable support for multiple screens in
|
|
an application designed for Android 1.5</li>
|
|
</ul>
|
|
|
|
<h2>In this document</h2>
|
|
<ol>
|
|
<li><a href="#strategies">Adding Multiple Screens Support</a></li>
|
|
</ol>
|
|
|
|
<h2>See also</h2>
|
|
<ol>
|
|
<li><a
|
|
href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a></li>
|
|
</ol>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<p>All applications written for Android 1.5 or earlier, by default, support only the
|
|
baseline HVGA screen used on the T-Mobile G1 and similar devices, which is <em>normal</em> screen
|
|
size and medium density (<em>mdpi</em>). Android 1.6 introduced support for different screen
|
|
configurations and added APIs that allow applications to control how they operate on different
|
|
screens, using alternative resources for different screen configurations.</p>
|
|
|
|
<p>If your manifest file includes the <a
|
|
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code <uses-sdk>}</a> element,
|
|
with the <a
|
|
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code android:minSdkVersion}</a>
|
|
attribute set to {@code "3"} or lower, and does <em>not</em> include the <a
|
|
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
|
|
android:targetSdkVersion}</a> set to {@code "4"} or higher, then this document is for you. By
|
|
default, an application written for Android 1.5 or below that does not set the <a
|
|
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
|
|
android:targetSdkVersion}</a> set to {@code "4"} or higher runs in <a
|
|
href="screen-compat-mode.html">screen compatibility mode</a> when on a device with a screen larger than
|
|
the
|
|
<em>normal</em> screen size (basically, the system displays the application in a small window
|
|
that is roughly the size of the normal screen size).</p>
|
|
|
|
<p>This document describes how to get your application out of <a
|
|
href="screen-compat-mode.html">screen compatibility
|
|
mode</a> and instead support multiple screens, but also maintain compatibility with Android 1.5 and
|
|
below.</p>
|
|
|
|
<p class="note"><strong>Note:</strong> Before you begin, you should first decide whether it's even
|
|
necessary to support Android 1.5. To see the relative number of devices that are still running
|
|
Android 1.5, see the <a
|
|
href="http://developer.android.com/about/dashboards/index.html">Platform Versions
|
|
Dashboard</a>.</p>
|
|
|
|
|
|
|
|
|
|
<h2 id="strategies">Adding Multiple Screens Support</h2>
|
|
|
|
<p>If you have already developed and published an Android application based on
|
|
Android 1.5 or earlier platform version, and want to maintain compatibility with Android 1.5, you
|
|
need to make some changes to your application in order for it to properly run on newer devices with
|
|
different screen configurations. You should be able to make these changes to your application such
|
|
that you can distribute a single {@code .apk} to all devices.</p>
|
|
|
|
<p>The recommended strategy is to develop your application against Android 1.6 (because it's the
|
|
lowest version that includes support for multiple screens) and test your application on each
|
|
platform version your application supports (especially the minimum platform, such as Android 1.5).
|
|
Here's how to do that:</p>
|
|
|
|
<ol>
|
|
<li>Maintain compatibility with existing devices by leaving your application's <a
|
|
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code android:minSdkVersion}</a>
|
|
attribute as it is. You <em>do not</em> need to increment the value of the attribute to support new
|
|
devices and multiple screens. </li>
|
|
<li>Extend compatibility for Android 1.6 (and higher) devices by adding <a
|
|
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
|
|
android:targetSdkVersion}</a> to the <a
|
|
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code <uses-sdk>}</a> element.
|
|
Set the value of <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
|
|
android:targetSdkVersion}</a> to <code>"4"</code>. This allows your application to "inherit" the
|
|
platform's multiple screens support, even though it is technically using an earlier version of the
|
|
API.
|
|
<p>Adding this attribute will cause an error in the compiler, because the attribute is unknown to
|
|
Android 1.5. You'll fix this next.</p></li>
|
|
<li>Change your application's build properties, such that it compiles against the Android 1.6 (API
|
|
Level 4) library, rather than against the Android 1.5 (or earlier) library. You must do this in
|
|
order for your application to successfully compile when using the new manifest attributes. Older
|
|
versions of the platform simply ignore the attributes they don't know, so your application still
|
|
runs fine on them, as long as you don't use APIs in your application code from Android 1.6. </li>
|
|
</ol>
|
|
|
|
<p>Your application is now prepared to run on multiple screens, while maintaining support for
|
|
Android 1.5 or lower.</p>
|
|
|
|
<p>Here's how you should begin testing your application:</p>
|
|
|
|
<ol>
|
|
<li>Set up AVDs for testing your application on Android 1.6 and some new versions. Create AVDs
|
|
that use the screen sizes and densities that you want to support. When you create the AVDs, make
|
|
sure to select the Android 1.6 or higher platform as the system image to use. For more information,
|
|
see <a href="{@docRoot}guide/practices/screens_support.html#testing">How to Test Your Application on
|
|
Multiple Screens</a>.</li>
|
|
<li>Set up AVDs for testing your application on older versions of the platform, as low as the
|
|
version declared by your <a
|
|
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code android:minSdkVersion}</a>.
|
|
You need AVDs running the older platforms you are targeting, so that you can ensure there are
|
|
no functional regressions.</li>
|
|
<li>Compile your application against the Android 1.6 library and run it on the AVDs you created.
|
|
Observe the way your application looks and runs, and test all of the user interactions.</li>
|
|
<li>Debug any display or functional issues. For issues that you resolve in
|
|
your application code, <span style="color:red">make certain not to use any APIs
|
|
introduced later than the version declared by your <a
|
|
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code
|
|
android:minSdkVersion}</a></span>. If you
|
|
are in doubt, refer to SDK reference documentation and look for the API Level specifier for the API
|
|
you want to use. Using newer APIs not supported by your minimum version will mean that your
|
|
application will no longer be compatible with devices running on that version.</li>
|
|
</ol>
|
|
|
|
<p>In particular, remember to test your application on an AVD that emulates a small-screen device.
|
|
Users of devices with QVGA resolution at low density may want to download your application, so you
|
|
should understand how your application will look and function on a small-screen device. In some
|
|
cases, the reduced screen area and density mean that you need to make tradeoffs in design on those
|
|
devices.</p>
|
|
|
|
<p>Also give extra attention to testing your application on an AVD that emulates an <em>xlarge</em>
|
|
screen. Devices with extra large screens are tablet-sized or larger, so you should pay close
|
|
attention to how usable your application is on such screens. You might want to design new layouts
|
|
specifically for extra large screens, to address usability aspects such as the location and size of
|
|
buttons in your UI. To test your application on an extra large screen, create an AVD targeted to
|
|
Android 3.0 and use the WXGA emulator skin.</p>
|
|
|
|
<p>Once you've completed the procedures above, you should follow the recommendations in <a
|
|
href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a> to add
|
|
complete support for different screen configurations.</p>
|
|
|