page.title=Maintaining Multiple APKs
page.tags="support"

trainingnavtop=true
startpage=true

@jd:body


<div id="tb-wrapper">
<div id="tb">

<!-- Required platform, tools, add-ons, devices, knowledge, etc. -->
<h2>Dependencies and prerequisites</h2>

<ul>
  <li>Android 1.0 and higher</li>
  <li>You must have an <a href="http://play.google.com/apps/publish">Google Play</a> publisher
account</li>
</ul>

<!-- related docs (NOT javadocs) -->
<h2>You should also read</h2>
<ul>
  <li><a href="http://developer.android.com/google/play/publishing/multiple-apks.html">Multiple APK
Support</a></li>
</ul>

</div>
</div>

<p>Multiple APK support is a feature of Google Play that allows you to publish multiple APKs
under the same application listing.  Each APK is a complete instance of your application, optimized
to target specific device configurations.  Each APK can target a specific set of GL
textures, API levels, screen sizes, or some combination thereof.</p>

<p>This class shows you how to write your multiple APK application using any one of these
configuration variables.  Each lesson covers basics about how to organize your codebase and target
the right devices, as well as the smart way to avoid pitfalls such as unnecessary redundancy across
your codebase, and making mistakes in your manifest that could render an APK invisible to all
devices on Google Play.  By going through any of these lessons, you'll know how to develop
multiple APKs the smart way, make sure they're targeting the devices you want them to,
and know how to catch mistakes <em>before</em> your app goes live.</p>



<h2>Lessons</h2>

<dl>
  <dt><b><a href="api.html">Creating Multiple APKs for Different API Levels</a></b></dt>
    <dd>Learn how to target different versions of the Android platform using multiple APKs.  Also
learn how to organize your codebase, what to do with your manifest, and how to investigate your APK
configuration using the <code>aapt</code> tool before pushing live.</dd>

  <dt><b><a href="screensize.html">Creating Multiple APKs for Different Screen Sizes</a></b></dt>
    <dd>Learn how to target Android devices by screen size using multiple APKs.  Also learn how to
organize your codebase, what to do with your manifest, and how to investigate your APK configuration
using the <code>aapt</code> tool before pushing live.</dd>

  <dt><b><a href="texture.html">Creating Multiple APKs for Different GL Textures</a></b></dt>
        <dd>Learn how to target Android devices based on their support for GL texture.  Also learn
how to organize your codebase, what to do with your manifest, and how to investigate your APK
configuration using the <code>aapt</code> tool before pushing live.</dd>

  <dt><b><a href="multiple.html">Creating Multiple APKs with 2+ Dimensions</a></b></dt>
        <dd>Learn how to target different Android devices based on more than one configuration
variable (screen size, API version, GL texture).  Examples in the lesson target using a combination
of API level and screen size.  Also learn how to organize your codebase, what to do with your
manifest, and how to investigate your APK configuration using the <code>aapt</code> tool before
pushing live.</dd>
</dl>
