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>
