training_toc.cs revision 421435d2bede2788b74b07b1bab893fef98047c5
150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<ul id="nav"> 250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <div class="nav-section-header"> 650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <a href="<?cs var:toroot ?>training/index.html"> 722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Getting Started 850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </div> 1050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 117736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 1250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 1350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <div class="nav-section-header"> 1422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/firstapp/index.html" 1522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 1622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "After you've installed the Android SDK, start with this class 1722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main to learn the basics about Android app development." 1822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Building Your First App</a> 1950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </div> 20be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 21be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/firstapp/creating-project.html"> 2222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating an Android Project 23be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 24be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 25be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/firstapp/running-app.html"> 2622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Running Your Application 27be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 28be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 29be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/firstapp/building-ui.html"> 3022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Building a Simple User Interface 31be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 32be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 33be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/firstapp/starting-activity.html"> 3422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Starting Another Activity 35be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 36be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 37be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 38be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 39be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main 4050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 4122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 4222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/activity-lifecycle/index.html" 4322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 4422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How Android activities live and die and how to create 4522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main a seamless user experience by implementing lifecycle callback methods." 4622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Managing the Activity Lifecycle</a> 4722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 48be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 49be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/starting.html"> 5022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Starting an Activity 51be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 52be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 53be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/pausing.html"> 5422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Pausing and Resuming an Activity 55be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 56be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 57be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/stopping.html"> 5822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Stopping and Restarting an Activity 59be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 60be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 61be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/recreating.html"> 6222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Recreating an Activity 63be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 64be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 65be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 66be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 6750c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 6850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 6922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 7022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/supporting-devices/index.html" 7122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 7222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build your app with alternative resources that provide an 7322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main optimized user experience on multiple device form factors using a single APK." 7422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Supporting Different Devices</a> 7522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 76be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 77be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/languages.html"> 7822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Supporting Different Languages 79be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 80be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 81be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/screens.html"> 8222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Supporting Different Screens 83be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 84be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 85be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/platforms.html"> 8622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Supporting Different Platform Versions 87be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 88be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 89be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 90be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 9150c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 9250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 9322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 9422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/fragments/index.html" 9522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 9622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build a user interface for your app that is flexible enough 9722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main to present multiple UI components on large screens and a more constrained set of 9822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main UI components on smaller screens—essential for building a single APK for both 9922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main phones and tablets." 10022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Building a Dynamic UI with Fragments</a> 10122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 102421854e6e8fe3418d22ae444567a06b5f308c896Scott Main <ul> 103421854e6e8fe3418d22ae444567a06b5f308c896Scott Main <li><a href="<?cs var:toroot ?>training/basics/fragments/support-lib.html"> 10422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using the Support Library 105421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </a> 106421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 107421854e6e8fe3418d22ae444567a06b5f308c896Scott Main <li><a href="<?cs var:toroot ?>training/basics/fragments/creating.html"> 10822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating a Fragment 109421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </a> 110421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 111421854e6e8fe3418d22ae444567a06b5f308c896Scott Main <li><a href="<?cs var:toroot ?>training/basics/fragments/fragment-ui.html"> 11222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Building a Flexible UI 113421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </a> 114421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 115421854e6e8fe3418d22ae444567a06b5f308c896Scott Main <li><a href="<?cs var:toroot ?>training/basics/fragments/communicating.html"> 11622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Communicating with Other Fragments 117421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </a> 118421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 119421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </ul> 120421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 121be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main 12250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 12322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"><a href="<?cs var:toroot?>training/basics/data-storage/index.html" 12422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 12522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to save data on the device, whether it's temporary files, downloaded 12622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main app assets, user media, structured data, or something else." 12722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Saving Data</a> 12822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 12911f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main <ul> 13011f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main <li><a href="<?cs var:toroot ?>training/basics/data-storage/shared-preferences.html"> 13122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Saving Key-Value Sets 13211f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </a> 13311f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </li> 13411f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main <li><a href="<?cs var:toroot ?>training/basics/data-storage/files.html"> 13522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Saving Files 13611f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </a> 13711f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </li> 13811f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main <li><a href="<?cs var:toroot ?>training/basics/data-storage/databases.html"> 13922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Saving Data in SQL Databases 14011f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </a> 14111f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </li> 14211f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </ul> 14311f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </li> 14411f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main 14511f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main <li class="nav-section"> 14622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 14722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/intents/index.html" 14822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 14922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build a user experience that leverages other apps available 15022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main on the device to perform advanced user tasks, such as capture a photo or view 15122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main an address on a map." 15222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Interacting with Other Apps</a> 15322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 154be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 155be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/intents/sending.html"> 15622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Sending the User to Another App 157be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 158be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 159be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/intents/result.html"> 16022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Getting a Result from the Activity 161be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 162be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 163be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/intents/filters.html"> 16422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Allowing Other Apps to Start Your Activity 165be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 166be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 167be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 168be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 169be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main 17050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 17122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 17222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/sharing/index.html" 17322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 17422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to take your app interaction to the next level by sharing 17522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main information with other apps, receive information back, and provide a simple and 17622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main scalable way to perform Share actions with user content." 17722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Sharing Content</a> 17822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 179be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 18022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/sharing/send.html"> 18122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Sending Content to Other Apps 182be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 183be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 18422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/sharing/receive.html"> 18522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Receiving Content from Other Apps 186be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 187be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 18822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/sharing/shareaction.html"> 18922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Adding an Easy Share Action 190be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 191be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 192be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 193be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 19422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 195f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li><!-- end getting started --> 19622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 197c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main 198c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main 19950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 20022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 20122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 20222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-multimedia.html"> 20322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/>Multimedia 20422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 20522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 20622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 20722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 20822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 20922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 21022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/managing-audio/index.html" 21122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 21222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to respond to hardware audio key presses, request audio focus 21322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main when playing audio, and respond appropriately to changes in audio focus." 21422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Managing Audio Playback</a> 21522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 21650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <ul> 21722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/managing-audio/volume-playback.html"> 21822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Controlling Your App's Volume and Playback 21950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 22050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 22122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/managing-audio/audio-focus.html"> 22222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Managing Audio Focus 22350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 22450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 22522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/managing-audio/audio-output.html"> 22622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Dealing with Audio Output Hardware 22750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 22850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 22950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </ul> 23050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 23150c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 23250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 23322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 23422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/camera/index.html" 23522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 23622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to leverage existing camera apps on the user's device to capture 23722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main photos or control the camera hardware directly and build your own camera app." 23822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Capturing Photos</a> 23922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 24050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <ul> 24122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/camera/photobasics.html"> 24222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Taking Photos Simply 24350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 24450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 24522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/camera/videobasics.html"> 24622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Recording Videos Simply 24750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 24850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 24922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/camera/cameradirect.html"> 25022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Controlling the Camera 25150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 25250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 25350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </ul> 25450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 25522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 25622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 25722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End multimedia --> 25822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 25922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 260be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main 26122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 26222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 26322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-graphics.html"> 26422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/>Graphics & Animation 26522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 26622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 26722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 26822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 26950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 27022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 27122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/displaying-bitmaps/index.html" 27222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 27322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to load and process bitmaps while keeping your user interface 27422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main responsive and avoid exceeding memory limits." 27522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Displaying Bitmaps Efficiently</a> 27622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 27750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <ul> 27822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/load-bitmap.html"> 27922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Loading Large Bitmaps Efficiently 28050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 28150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 28222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/process-bitmap.html"> 28322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Processing Bitmaps Off the UI Thread 28422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 28522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 28622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/cache-bitmap.html"> 28722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Caching Bitmaps 288e38a6c50ea6f6c1238276154ca0631842b6ab06cAlexander Lucas </a> 289e38a6c50ea6f6c1238276154ca0631842b6ab06cAlexander Lucas </li> 29022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/display-bitmap.html"> 29122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Displaying Bitmaps in Your UI 29222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a></li> 29350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </ul> 29450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 29550c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 29650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 29722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 29822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot?>training/graphics/opengl/index.html" 29922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 30022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to create OpenGL graphics within the Android app framework 30122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main and respond to touch input." 30222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Displaying Graphics with OpenGL ES</a> 303ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </div> 3047736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 30522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/environment.html"> 30622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Building an OpenGL ES Environment 30722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 308ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </li> 30922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/shapes.html"> 31022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Defining Shapes 31122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 3127736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 31322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/draw.html"> 31422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Drawing Shapes 3157736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 3167736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 31722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/projection.html"> 31822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Applying Projection and Camera Views 3197736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 3207736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 32122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/motion.html"> 32222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Adding Motion 3237736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 3247736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 32522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/touch.html"> 32622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Responding to Touch Events 3277736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 3287736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 3297736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 3307736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 33122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 33222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"><a href="<?cs var:toroot ?>training/animation/index.html" 33322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 33422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to add transitional animations to your user interface."> 33522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Adding Animations 3363f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a></div> 3373f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <ul> 3383f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/crossfade.html"> 33922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Crossfading Two Views 3403f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 3413f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 3423f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/screen-slide.html"> 34322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using ViewPager for Screen Slide 3443f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 3453f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 3463f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/cardflip.html"> 34722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Displaying Card Flip Animations 3483f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 3493f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 3503f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/zoom.html"> 35122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Zooming a View 3523f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 3533f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 3543f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/layout.html"> 35522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Animating Layout Changes 3563f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 3573f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 3583f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </ul> 3593f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 36022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 36122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 36222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End graphics and animation --> 3637736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main 36422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 36522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 36622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 36722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-connectivity.html"> 36822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/> 36922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Connectivity & the Cloud 37022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 37122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 37222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 37322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 37422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 37550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 37622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 37722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/connect-devices-wirelessly/index.html" 37822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 37922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to find and connect to local devices using Network Service 38022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Discovery and Wi-Fi Direct in order to create peer-to-peer connections." 38122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Connecting Devices Wirelessly</a> 38222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 3837736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 38422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd.html"> 38522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using Network Service Discovery 3867736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 3877736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 38822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/wifi-direct.html"> 38922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Connecting with Wi-Fi Direct 3907736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 3917736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 39222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd-wifi-direct.html"> 39322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using Wi-Fi Direct for Service Discovery 3947736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 3957736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 3967736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 3977736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 39822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 39922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 40022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 40122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/network-ops/index.html" 40222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 40322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to create a network connection, monitor the connection for changes 40422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main in connectivity, and perform transactions with XML data." 40522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Performing Network Operations</a> 406ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </div> 4077736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 40822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/basics/network-ops/connecting.html"> 40922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Connecting to the Network 41022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 411ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </li> 41222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/basics/network-ops/managing.html"> 41322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Managing Network Usage 41422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 415ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </li> 41622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/basics/network-ops/xml.html"> 41722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Parsing XML Data 41822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 4197736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 4207736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 4217736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 42250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 42322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 42422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/efficient-downloads/index.html" 42522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 42622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to minimize your app's impact on the battery when performing downloads 42722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main and other network transactions." 42822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Transferring Data Without Draining the Battery</a> 42922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 43020f394df4db02c492d7920f4f366b777451c2067Reto Meier <ul> 43122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/efficient-downloads/efficient-network-access.html"> 43222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Optimizing Downloads for Efficient Network Access 43320f394df4db02c492d7920f4f366b777451c2067Reto Meier </a> 43420f394df4db02c492d7920f4f366b777451c2067Reto Meier </li> 43522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/efficient-downloads/regular_updates.html"> 43622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Minimizing the Effect of Regular Updates 43720f394df4db02c492d7920f4f366b777451c2067Reto Meier </a> 43820f394df4db02c492d7920f4f366b777451c2067Reto Meier </li> 43922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/efficient-downloads/redundant_redundant.html"> 44022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Redundant Downloads are Redundant 441773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </a> 442773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </li> 44322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/efficient-downloads/connectivity_patterns.html"> 44422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Modifying Patterns Based on the Connectivity Type 445773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </a> 446773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </li> 447773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </ul> 448773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </li> 449773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas 45050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 45122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 45222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/cloudsync/index.html" 45322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 45422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to sync and back up app and user data to remote web services in the 45522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main cloud and how to restore the data back to multiple devices." 45622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Syncing to the Cloud</a> 457957f716cf1686145ba4c06ca8669eaa2e22f54e8Robert Ly </div> 458055e3f25ba85d7aefcddaa0aa2bb0589719ec80cRobert Ly <ul> 45922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/cloudsync/backupapi.html"> 46022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using the Backup API 461055e3f25ba85d7aefcddaa0aa2bb0589719ec80cRobert Ly </a> 462055e3f25ba85d7aefcddaa0aa2bb0589719ec80cRobert Ly </li> 46322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/cloudsync/gcm.html"> 46422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Making the Most of Google Cloud Messaging 4657736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 4667736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 4677736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 4687736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 46922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 47022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 47122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End connectivity and cloud --> 47222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 47322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 474580f0146535e7daed83aef721f505270f7b040e1Scott Main 47522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 47622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 47722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-userinfo.html"> 47822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/> 47922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main User Info & Location 48022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 48122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 48222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 483421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li class="nav-section"> 484421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <div class="nav-section-header"> 485421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/index.html" 486421435d2bede2788b74b07b1bab893fef98047c5Joe Malin description= 487421435d2bede2788b74b07b1bab893fef98047c5Joe Malin "How to use Android's central address book, the Contacts Provider, to 488421435d2bede2788b74b07b1bab893fef98047c5Joe Malin display contacts and their details and modify contact information."> 489421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Accessing Contacts Data</a> 490421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </div> 491421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <ul> 492421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 493421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-names.html"> 494421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Retrieving a List of Contacts 495421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 496421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 497421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 498421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-details.html"> 499421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Retrieving Details for a Contact 500421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 501421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 502421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 503421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/modify-data.html"> 504421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Modifying Contacts Using Intents 505421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 506421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 507421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 508421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/display-contact-badge.html"> 509421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Displaying the Quick Contact Badge 510421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 511421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 512421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </ul> 513421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 51450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 51522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 51622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/id-auth/index.html" 51722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 51822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to remember the user by account, authenticate the user, acquire user permission 51922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main for the user's online data, and create custom accounts on the device." 52022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Remembering Users</a> 52122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 5222956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main <ul> 5232956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main <li><a href="<?cs var:toroot ?>training/id-auth/identify.html"> 52422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Remembering Your User 5252956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </a> 5262956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </li> 5272956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main <li><a href="<?cs var:toroot ?>training/id-auth/authenticate.html"> 52822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Authenticating to OAuth2 Services 5292956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </a> 5302956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </li> 5312956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main <li><a href="<?cs var:toroot ?>training/id-auth/custom_auth.html"> 53222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating a Custom Account Type 5332956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </a> 5342956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </li> 5352956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </ul> 5362956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </li> 537580f0146535e7daed83aef721f505270f7b040e1Scott Main 53850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 53922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 54022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/location/index.html" 54122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 54222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to add location-aware features to your app by aqcuiring the user's current 54322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main location." 54422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Making Your App Location Aware</a> 54522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 5467736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 54722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/basics/location/locationmanager.html"> 54822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using the Location Manager 5497736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 5507736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 55122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/basics/location/currentlocation.html"> 55222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Obtaining the Current Location 5537736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 5547736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 55522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/basics/location/geocoding.html"> 55622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Displaying a Location Address 5577736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 5587736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 5597736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 5607736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 56122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 56222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 56322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End privacy and location --> 56422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 56522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 56622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 56722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 56822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 56922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/best-ux.html"> 57022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Best Practices for</span><br/> 57122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main User Experience & UI 57222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 57322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 57422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 57550c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 57650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 57722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 57822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/design-navigation/index.html" 57922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 58022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to plan your app's screen hierarchy and forms of navigation so users can 58122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main effectively and intuitively traverse your app content using various navigation 58222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main patterns." 58322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Designing Effective Navigation</a> 58422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 5857736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 58622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/screen-planning.html"> 58722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Planning Screens and Their Relationships 5887736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 5897736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 59022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/multiple-sizes.html"> 59122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Planning for Multiple Touchscreen Sizes 5927736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 5937736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 59422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/descendant-lateral.html"> 59522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Providing Descendant and Lateral Navigation 59622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 59722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 59822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/ancestral-temporal.html"> 59922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Providing Ancestral and Temporal Navigation 60022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 60122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 60222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/wireframing.html"> 60322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Putting it All Together: Wireframing the Example App 6047736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 6057736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 6067736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 6077736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 60850c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 60950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 61022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 61122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/implementing-navigation/index.html" 61222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 61322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to implement various navigation patterns such as swipe views and up navigation." 61422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Implementing Effective Navigation</a> 61522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 6167736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 61722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/lateral.html"> 61822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Implementing Lateral Navigation 6197736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 6207736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 62122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/ancestral.html"> 62222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Implementing Ancestral Navigation 6237736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 6247736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 62522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/temporal.html"> 62622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Implementing Temporal Navigation 6277736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 6287736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 62922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/descendant.html"> 63022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Implementing Descendant Navigation 6317736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 6327736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 6337736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 6347736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 6350aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j 6360aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li class="nav-section"> 6370aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <div class="nav-section-header"> 6380aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/index.html" 6390aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j description= 640f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin "How to display messages called notifications outside of 6410aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j your application's UI." 6420aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j >Notifying the User</a> 6430aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </div> 6440aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <ul> 6450aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 6460aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/build-notification.html"> 6470aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Building a Notification 6480aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 6490aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 6500aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 6510aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/navigation.html"> 6520aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Preserving Navigation when Starting an Activity 6530aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 6540aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 6550aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 6560aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/managing.html"> 6570aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Updating Notifications 6580aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 6590aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 6600aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 6610aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/expanded.html"> 6620aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Using Big View Styles 6630aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 6640aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 6650aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 6660aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/display-progress.html"> 6670aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Displaying Progress in a Notification 6680aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 6690aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 6700aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </ul> 6710aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 6720aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j 6730aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li class="nav-section"> 6740aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <div class="nav-section-header"> 6750aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/search/index.html" 6760aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j description= 6770aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j "How to properly add a search interface to your app and create a searchable database." 6780aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j >Adding Search Functionality</a> 6790aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </div> 6800aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <ul> 6810aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li><a href="<?cs var:toroot ?>training/search/setup.html"> 6820aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Setting up the Search Interface 6830aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 6840aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 6850aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li><a href="<?cs var:toroot ?>training/search/search.html"> 6860aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Storing and Searching for Data 6870aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 6880aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 6890aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li><a href="<?cs var:toroot ?>training/search/backward-compat.html"> 6900aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Remaining Backward Compatible 6910aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 6920aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 6930aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </ul> 6940aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 69522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 69622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 69750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 69822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 69922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="/training/multiscreen/index.html" 70022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main zh-CN-lang="针对多种屏幕进行设计" 70122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="複数画面のデザイン" 70222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main es-lang="Cómo diseñar aplicaciones para varias pantallas" 70322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 70422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build a user interface that's flexible enough to 70522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main fit perfectly on any screen and how to create different interaction 70622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main patterns that are optimized for different screen sizes." 70722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Designing for Multiple Screens</a> 70822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 70938e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik <ul> 71022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/multiscreen/screensizes.html" 71122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main zh-CN-lang="支持各种屏幕尺寸" 71222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ko-lang="다양한 화면 크기 지원" 71322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="さまざまな画面サイズのサポート" 714f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo admitir varios tamaños de pantalla" 71522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Supporting Different Screen Sizes</a> 71638e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 71722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/multiscreen/screendensities.html" 71822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main zh-CN-lang="支持各种屏幕密度" 71922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="さまざまな画面密度のサポート" 720f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo admitir varias densidades de pantalla" 72122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Supporting Different Screen Densities</a> 72238e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 72322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/multiscreen/adaptui.html" 72422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main zh-CN-lang="实施自适应用户界面流程" 72522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="順応性のある UI フローの実装" 726f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo implementar interfaces de usuario adaptables" 72722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Implementing Adaptive UI Flows</a> 72838e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 72938e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </ul> 73038e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 73138e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik 73250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 73322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"><a href="<?cs var:toroot ?>training/tv/index.html" 73422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 73522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to optimize your app's user interface and user input for 73622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main the "ten foot experience" of a TV screen." 73722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Designing for TV</a> 73822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 7397736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 74022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/tv/optimizing-layouts-tv.html"> 74122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Optimizing Layouts for TV 74222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 74322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 74422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/tv/optimizing-navigation-tv.html"> 74522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Optimizing Navigation for TV 74622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 74722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 74822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/tv/unsupported-features-tv.html"> 74922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Handling Features Not Supported on TV 7507736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 7517736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 7527736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 7537736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 75422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 75550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 75622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 75722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/custom-views/index.html" 75822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 75922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build custom UI widgets that are interactive and smooth." 76022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Creating Custom Views</a> 76122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 762580f0146535e7daed83aef721f505270f7b040e1Scott Main <ul> 76322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/create-view.html"> 76422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating a Custom View Class 765580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 766580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 76722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/custom-drawing.html"> 76822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Implementing Custom Drawing 769580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 770580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 77122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/making-interactive.html"> 77222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Making the View Interactive 773580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 774580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 77522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/optimizing-view.html"> 77622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Optimizing the View 777580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 778580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 779580f0146535e7daed83aef721f505270f7b040e1Scott Main </ul> 78019266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 78119266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik 78250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 78322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 78422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/backward-compatible-ui/index.html" 78522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 78622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to use UI components and other APIs from the more recent versions of Android 78722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main while remaining compatible with older versions of the platform." 78822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Creating Backward-Compatible UIs</a> 78922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 79019266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik <ul> 79122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/abstracting.html"> 79222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Abstracting the New APIs 79319266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 79419266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 79522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/new-implementation.html"> 79622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Proxying to the New APIs 79719266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 79819266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 79922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/older-implementation.html"> 80022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating an Implementation with Older APIs 80119266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 80219266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 80322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/using-component.html"> 80422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using the Version-Aware Component 80519266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 80619266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 80719266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </ul> 80819266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 80922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 81050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 81122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 81222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/accessibility/index.html" 81322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 81422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to make your app accessible to users with vision 81522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main impairment or other physical disabilities." 81622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Implementing Accessibility</a> 817931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </div> 818931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi <ul> 81922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/accessibility/accessible-app.html"> 82022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Developing Accessible Applications 821931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </a> 822931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </li> 82322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/accessibility/service.html"> 82422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Developing Accessibility Services 825931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </a> 826931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </li> 827931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </ul> 828580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 82922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 83022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 83122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 83222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End best UX and UI --> 83322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 834c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main 835518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li class="nav-section"> 836518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <div class="nav-section-header"> 837c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <a href="<?cs var:toroot ?>training/best-user-input.html"> 838518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <span class="small">Best Practices for</span><br/> 839518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j User Input 840518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 841518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </div> 842518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <ul> 843518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j 844518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li class="nav-section"> 845518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <div class="nav-section-header"> 846518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <a href="<?cs var:toroot ?>training/gestures/index.html" 847518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j description= 848518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j "How to write apps that allow users to interact with the touch screen via touch gestures." 849518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j >Using Touch Gestures</a> 850518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </div> 851518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <ul> 852518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/detector.html"> 853518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Detecting Common Gestures 854518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 855518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 856518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/movement.html"> 857518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Tracking Movement 858518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 859518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 860518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/scroll.html"> 861518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Animating a Scroll Gesture 862518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 863518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 864518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/multi.html"> 865518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Handling Multi-Touch Gestures 866518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 867518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 868518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/scale.html"> 869518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Dragging and Scaling 870518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 871518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 872518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/viewgroup.html"> 873518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Managing Touch Events in a ViewGroup 874518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 875518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 876518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </ul> 877c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 878c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main 879c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li class="nav-section"> 880c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <div class="nav-section-header"> 881c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <a href="<?cs var:toroot ?>training/keyboard-input/index.html" 882c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main description= 883c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main "How to specify the appearance and behaviors of soft input methods (such 884c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main as on-screen keyboards) and how to optimize the experience with 885c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main hardware keyboards." 886c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main >Handling Keyboard Input</a> 887c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </div> 888c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <ul> 889c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/style.html"> 890c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Specifying the Input Method Type 891c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 892c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 893c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/visibility.html"> 894c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Handling Input Method Visibility 895c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 896c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 897c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/navigation.html"> 898c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Supporting Keyboard Navigation 899c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 900c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 901c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/commands.html"> 902c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Handling Keyboard Actions 903c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 904c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 905c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </ul> 906c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 907c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </ul> 908421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> <!-- end of User Input --> 90950c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 91022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 91122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 91222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/best-performance.html"> 91322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Best Practices for</span><br/> 91422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Performance 91522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 91622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 91722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 91822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 91922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 92033e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/perf-tips.html" 92122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 92222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to optimize your app's performance in various ways to improve its 92322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main responsiveness and battery efficiency." 92422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Performance Tips</a> 92522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 92622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 92750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 92822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 92922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/improving-layouts/index.html" 93022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 93122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to identify problems in your app's layout performance and improve the UI 93222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main responsiveness." 93322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Improving Layout Performance</a> 934153f8fe420506a7e1b7a8f6b4d07db798867746eScott Main </div> 935153f8fe420506a7e1b7a8f6b4d07db798867746eScott Main <ul> 93622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/improving-layouts/optimizing-layout.html"> 93722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Optimizing Layout Hierarchies 938153f8fe420506a7e1b7a8f6b4d07db798867746eScott Main </a> 939153f8fe420506a7e1b7a8f6b4d07db798867746eScott Main </li> 94022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/improving-layouts/reusing-layouts.html"> 94122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Re-using Layouts with <include/> 942153f8fe420506a7e1b7a8f6b4d07db798867746eScott Main </a> 943153f8fe420506a7e1b7a8f6b4d07db798867746eScott Main </li> 94422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/improving-layouts/loading-ondemand.html"> 94522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Loading Views On Demand 94622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 94722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 94822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/improving-layouts/smooth-scrolling.html"> 94922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Making ListView Scrolling Smooth 950153f8fe420506a7e1b7a8f6b4d07db798867746eScott Main </a> 951153f8fe420506a7e1b7a8f6b4d07db798867746eScott Main </li> 952ffad98c72e1ee9101065e19318c74ab4c735a477Scott Main </ul> 953153f8fe420506a7e1b7a8f6b4d07db798867746eScott Main </li> 9548ac78803f59fd4fbe9e2682632791bc255d38aceScott Main 955f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li class="nav-section"> 956f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <div class="nav-section-header"> 957f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <a href="<?cs var:toroot ?>training/run-background-service/index.html" 958f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin description= 959f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin "How to improve UI performance and responsiveness by sending work to a 9608ac78803f59fd4fbe9e2682632791bc255d38aceScott Main Service running in the background" 9618ac78803f59fd4fbe9e2682632791bc255d38aceScott Main >Running in a Background Service</a> 962f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </div> 963f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <ul> 964f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li><a href="<?cs var:toroot ?>training/run-background-service/create-service.html"> 965f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin Creating a Background Service 966f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </a> 967f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 968f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li><a href="<?cs var:toroot ?>training/run-background-service/send-request.html"> 969f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin Sending Work Requests to the Background Service 970f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </a> 971f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 972f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li><a href="<?cs var:toroot ?>training/run-background-service/report-status.html"> 973f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin Reporting Work Status 974f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </a> 975f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 976f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </ul> 977f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 9788ac78803f59fd4fbe9e2682632791bc255d38aceScott Main 9798ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <li class="nav-section"> 9808ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <div class="nav-section-header"> 9818ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <a href="<?cs var:toroot ?>training/load-data-background/index.html" 9828ac78803f59fd4fbe9e2682632791bc255d38aceScott Main description="How to use CursorLoader to query data without 9838ac78803f59fd4fbe9e2682632791bc255d38aceScott Main affecting UI responsiveness." 9848ac78803f59fd4fbe9e2682632791bc255d38aceScott Main >Loading Data in the Background</a> 9858ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </div> 9868ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <ul> 9878ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <li><a href="<?cs var:toroot ?>training/load-data-background/setup-loader.html"> 9888ac78803f59fd4fbe9e2682632791bc255d38aceScott Main Running a Query with a CursorLoader</a> 9898ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </li> 9908ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <li><a href="<?cs var:toroot ?>training/load-data-background/handle-results.html"> 9918ac78803f59fd4fbe9e2682632791bc255d38aceScott Main Handling the Results</a> 9928ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </li> 9938ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </ul> 9948ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </li> 99522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 99650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 99722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 99822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="/training/monitoring-device-state/index.html" 99922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main zh-CN-lang="优化电池使用时间" 100022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="電池消費量の最適化" 100122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main es-lang="Cómo optimizar la duración de la batería" 100222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 100322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to minimize the amount of power your app requires by adapting to current 100422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main power conditions and performing power-hungry tasks at proper intervals." 100522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Optimizing Battery Life</a> 100622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 1007df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas <ul> 100822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/monitoring-device-state/battery-monitoring.html" 100922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main zh-CN-lang="监控电池电量和充电状态" 101022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="電池残量と充電状態の監視" 1011f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo controlar el nivel de batería y el estado de carga" 101222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Monitoring the Battery Level and Charging State</a> 1013df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 101422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/monitoring-device-state/docking-monitoring.html" 101522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main zh-CN-lang="确定和监控基座对接状态和类型" 101622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="ホルダーの装着状態とタイプの特定と監視" 1017f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo determinar y controlar el tipo de conector y el estado de la conexión" 101822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Determining and Monitoring the Docking State and Type</a> 101922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 102022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/monitoring-device-state/connectivity-monitoring.html" 102122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main zh-CN-lang="确定和监控网络连接状态" 102222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="接続状態の特定と監視" 1023f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo determinar y controlar el estado de la conectividad" 102422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Determining and Monitoring the Connectivity Status</a> 102522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 102622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/monitoring-device-state/manifest-receivers.html" 102722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main zh-CN-lang="根据需要操作广播接收器" 102822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="オンデマンドでのブロードキャスト レシーバ操作" 1029f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo manipular los receptores de emisión bajo demanda" 103022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Manipulating Broadcast Receivers On Demand</a> 1031df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 1032df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </ul> 1033df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 10348dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li class="nav-section"> 10358dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <div class="nav-section-header"> 10368dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <a href="<?cs var:toroot ?>training/multiple-threads/index.html" 10378dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin description= 10388dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin "How to improve the performance and scalability of long-running operations by 10398dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin dispatching work to multiple threads."> 10408dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Sending Operations to Multiple Threads</a> 10418dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </div> 10428dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <ul> 10438dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/define-runnable.html"> 10448dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Specifying the Code to Run on a Thread 10458dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 10468dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 10478dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/create-threadpool.html"> 10488dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Creating a Manager for Multiple Threads 10498dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 10508dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 10518dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/run-code.html"> 10528dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Running Code on a Thread Pool Thread 10538dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 10548dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 10558dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/communicate-ui.html"> 10568dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Communicating with the UI Thread 10578dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 10588dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 1059df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </ul> 1060df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 106122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 106222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 106333e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/perf-anr.html" 106422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 106522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to keep your app responsive to user interaction so the UI does not lock-up and 106622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main display an "Application Not Responding" dialog." 106722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Keeping Your App Responsive</a> 106822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 106922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 107022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 107133e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/perf-jni.html" 107222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 107322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to efficiently use the Java Native Interface with the Android NDK." 107422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >JNI Tips</a> 107522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 1076d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty <li> 1077d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty <a href="<?cs var:toroot ?>training/articles/smp.html" 1078d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty description= 1079d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty "Tips for coding Android apps on symmetric multiprocessor systems." 1080d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty >SMP Primer for Android</a> 1081d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty </li> 108222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 108322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> <!-- end of Performance --> 108422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 108522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 1086df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas 108722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 108822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 108922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/best-security.html"> 109022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Best Practices for</span><br/> 109122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Security & Privacy 109222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 109322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 109422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 1095773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas 109622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 109733e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/security-tips.html" 109822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 109922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to perform various tasks and keep your app's data and your user's data secure." 110022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Security Tips</a> 110122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 110200158363b47d916d159d2f3a0e1152783fd66a9cScott Main 110300158363b47d916d159d2f3a0e1152783fd66a9cScott Main <li> 110400158363b47d916d159d2f3a0e1152783fd66a9cScott Main <a href="<?cs var:toroot ?>training/articles/security-ssl.html" 110500158363b47d916d159d2f3a0e1152783fd66a9cScott Main description= 110600158363b47d916d159d2f3a0e1152783fd66a9cScott Main "How to ensure that your app is secure when performing network transactions." 110700158363b47d916d159d2f3a0e1152783fd66a9cScott Main >Security with HTTPS and SSL</a> 110800158363b47d916d159d2f3a0e1152783fd66a9cScott Main </li> 110922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 111050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 111122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 111222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/enterprise/index.html" 111322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 111422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to implement device management policies for enterprise-oriented apps." 111522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Developing for Enterprise</a> 111622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 111750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <ul> 111822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/enterprise/device-management-policy.html"> 111922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Enhancing Security with Device Management Policies 112050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 112150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 1122e577d72a3be20e589437271f0e5ca474fab38124Roman Nurik </ul> 1123e577d72a3be20e589437271f0e5ca474fab38124Roman Nurik </li> 112422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 112522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 112622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End security and user info --> 11274c4a47f42101a57ab8ff05a8e035d97582c3368aScott Main 112850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 112922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 113022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 113122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/distribute.html"> 113222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Using Google Play to</span><br/> 113322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Distribute & Monetize 113422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 113522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 113622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 1137768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li class="nav-section"> 1138768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <div class="nav-section-header"><a href="<?cs var:toroot ?>training/in-app-billing/index.html" 1139768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong description="How to sell in-app products from your application using In-app Billing."> 1140768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong Selling In-app Products 1141768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a></div> 1142768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <ul> 1143768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/preparing-iab-app.html"> 1144768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Preparing Your App</span> 1145768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 1146768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 1147768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/list-iab-products.html"> 1148768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Establishing Products for Sale</span> 1149768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 1150768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 1151768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/purchase-iab-products.html"> 1152768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Purchasing Products</span> 1153768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 1154768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 1155768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/test-iab-app.html"> 1156768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Testing Your App</span> 1157768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 1158768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 1159768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </ul> 1160768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 116122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 1162969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas <li class="nav-section"> 116322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 116422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/multiple-apks/index.html" 116522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 116622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to publish your app on Google Play with separate APKs that target 116722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main different devices, while using a single app listing." 116822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Maintaining Multiple APKs</a> 116922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 1170969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas <ul> 117122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/api.html"> 117222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs for Different API Levels 1173969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </a> 1174969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 117522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/screensize.html"> 117622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs for Different Screen Sizes 1177969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </a> 1178969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 117922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/texture.html"> 118022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs for Different GL Textures 118122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 118222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 118322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/multiple.html"> 118422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs with 2+ Dimensions 1185969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </a> 1186969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 1187969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </ul> 1188969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 118950c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin <li class="nav-section"> 119022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 119122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/monetization/index.html" 119222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 119322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to implement monetization strategies for your app without compromising 119422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main the user experience." 119522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Monetizing Your App</a> 119622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 119750c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin <ul> 119822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/monetization/ads-and-ux.html"> 119922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Advertising without Compromising User Experience 120050c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin </a> 120150c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin </li> 120250c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin </ul> 120350c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin </li> 120422558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty </ul> 120522558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty </li> 120622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End best Publishing --> 120722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 120850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main</ul><!-- nav --> 120922558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty<script type="text/javascript"> 121022558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty<!-- 121122558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty buildToggleLists(); 121222558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty changeNavLang(getLangPref()); 121322558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty//--> 121422558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty</script> 1215