training_toc.cs revision 2e1c7b7495f2317ba30ae809b4964fdafcf504ce
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"> 42d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main <a href="<?cs var:toroot ?>training/basics/actionbar/index.html" 43d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main description= 44d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main "The action bar is one of the most important design elements you can implement for your 45d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Mainapp's activities. Although first introduced with API level 11, you can use the Support Library to 46d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Maininclude the action bar on devices running Android 2.1 or higher." 47d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main >Adding the Action Bar</a> 48d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main </div> 49d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main <ul> 50d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main <li><a href="<?cs var:toroot ?>training/basics/actionbar/setting-up.html"> 51d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main Setting Up the Action Bar 52d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main </a> 53d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main </li> 54d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main <li><a href="<?cs var:toroot ?>training/basics/actionbar/adding-buttons.html"> 55d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main Adding Action Buttons 56d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main </a> 57d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main </li> 58d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main <li><a href="<?cs var:toroot ?>training/basics/actionbar/styling.html"> 59d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main Styling the Action Bar 60d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main </a> 61d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main </li> 62d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main <li><a href="<?cs var:toroot ?>training/basics/actionbar/overlaying.html"> 63d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main Overlaying the Action Bar 64d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main </a> 65d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main </li> 66d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main </ul> 67d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main </li> 68d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main 69d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main <li class="nav-section"> 70d041301adb8e6681d2f0dfd90fb5ad89c6232b6dScott Main <div class="nav-section-header"> 71f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <a href="<?cs var:toroot ?>training/basics/supporting-devices/index.html" 7222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 73f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main "How to build your app with alternative resources that provide an 74f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main optimized user experience on multiple device form factors using a single APK." 75f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main >Supporting Different Devices</a> 7622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 77be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 78f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/languages.html"> 79f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Supporting Different Languages 80be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 81be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 82f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/screens.html"> 83f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Supporting Different Screens 84be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 85be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 86f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/platforms.html"> 87f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Supporting Different Platform Versions 88be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 89be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 90be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 91be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 9250c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 9350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 9422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 95f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <a href="<?cs var:toroot ?>training/basics/activity-lifecycle/index.html" 9622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 97f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main "How Android activities live and die and how to create 98f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main a seamless user experience by implementing lifecycle callback methods." 99f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main >Managing the Activity Lifecycle</a> 10022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 101be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 102f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/starting.html"> 103f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Starting an Activity 104be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 105be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 106f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/pausing.html"> 107f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Pausing and Resuming an Activity 108be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 109be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 110f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/stopping.html"> 111f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Stopping and Restarting an Activity 112f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main </a> 113f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main </li> 114f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/recreating.html"> 115f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Recreating an Activity 116be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 117be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 118be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 119be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 12050c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 12150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 12222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 12322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/fragments/index.html" 12422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 12522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build a user interface for your app that is flexible enough 12622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main to present multiple UI components on large screens and a more constrained set of 12722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main UI components on smaller screens—essential for building a single APK for both 12822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main phones and tablets." 12922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Building a Dynamic UI with Fragments</a> 13022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 131421854e6e8fe3418d22ae444567a06b5f308c896Scott Main <ul> 132421854e6e8fe3418d22ae444567a06b5f308c896Scott Main <li><a href="<?cs var:toroot ?>training/basics/fragments/creating.html"> 13322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating a Fragment 134421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </a> 135421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 136421854e6e8fe3418d22ae444567a06b5f308c896Scott Main <li><a href="<?cs var:toroot ?>training/basics/fragments/fragment-ui.html"> 13722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Building a Flexible UI 138421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </a> 139421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 140421854e6e8fe3418d22ae444567a06b5f308c896Scott Main <li><a href="<?cs var:toroot ?>training/basics/fragments/communicating.html"> 14122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Communicating with Other Fragments 142421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </a> 143421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 144421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </ul> 145421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 146be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main 14750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 14822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"><a href="<?cs var:toroot?>training/basics/data-storage/index.html" 14922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 15022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to save data on the device, whether it's temporary files, downloaded 15122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main app assets, user media, structured data, or something else." 15222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Saving Data</a> 15322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 15411f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main <ul> 15511f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main <li><a href="<?cs var:toroot ?>training/basics/data-storage/shared-preferences.html"> 15622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Saving Key-Value Sets 15711f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </a> 15811f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </li> 15911f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main <li><a href="<?cs var:toroot ?>training/basics/data-storage/files.html"> 16022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Saving Files 16111f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </a> 16211f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </li> 16311f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main <li><a href="<?cs var:toroot ?>training/basics/data-storage/databases.html"> 16422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Saving Data in SQL Databases 16511f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </a> 16611f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </li> 16711f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </ul> 16811f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </li> 16911f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main 17011f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main <li class="nav-section"> 17122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 17222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/intents/index.html" 17322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 17422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build a user experience that leverages other apps available 17522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main on the device to perform advanced user tasks, such as capture a photo or view 17622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main an address on a map." 17722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Interacting with Other Apps</a> 17822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 179be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 180be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/intents/sending.html"> 18122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Sending the User to Another App 182be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 183be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 184be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/intents/result.html"> 18522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Getting a Result from the Activity 186be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 187be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 188be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/intents/filters.html"> 18922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Allowing Other Apps to Start Your Activity 190be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 191be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 192be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 193be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 194be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main 19550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 19622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 19722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/sharing/index.html" 19822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 19922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to take your app interaction to the next level by sharing 20022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main information with other apps, receive information back, and provide a simple and 20122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main scalable way to perform Share actions with user content." 20222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Sharing Content</a> 20322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 204be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 20522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/sharing/send.html"> 20622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Sending Content to Other Apps 207be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 208be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 20922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/sharing/receive.html"> 21022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Receiving Content from Other Apps 211be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 212be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 21322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/sharing/shareaction.html"> 21422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Adding an Easy Share Action 215be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 216be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 217be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 218be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 21922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 220f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li><!-- end getting started --> 2213ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 2223ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 2233ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 22450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 22522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 22622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 22722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-multimedia.html"> 22822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/>Multimedia 22922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 23022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 23122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 2323ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 23322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 23422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 23522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/managing-audio/index.html" 23622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 23722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to respond to hardware audio key presses, request audio focus 23822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main when playing audio, and respond appropriately to changes in audio focus." 23922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Managing Audio Playback</a> 24022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 24150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <ul> 24222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/managing-audio/volume-playback.html"> 24322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Controlling Your App's Volume and Playback 24450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 24550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 24622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/managing-audio/audio-focus.html"> 24722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Managing Audio Focus 24850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 24950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 25022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/managing-audio/audio-output.html"> 25122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Dealing with Audio Output Hardware 25250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 25350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 25450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </ul> 25550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 25650c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 25750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 25822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 25922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/camera/index.html" 26022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 26122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to leverage existing camera apps on the user's device to capture 26222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main photos or control the camera hardware directly and build your own camera app." 26322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Capturing Photos</a> 26422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 26550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <ul> 26622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/camera/photobasics.html"> 26722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Taking Photos Simply 26850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 26950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 27022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/camera/videobasics.html"> 27122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Recording Videos Simply 27250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 27350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 27422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/camera/cameradirect.html"> 27522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Controlling the Camera 27650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 27750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 27850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </ul> 27950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 28022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 28122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 28222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End multimedia --> 2833ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 2843ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 285be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main 28622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 28722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 28822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-graphics.html"> 28922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/>Graphics & Animation 29022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 29122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 29222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 2933ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 29450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 29522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 29622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/displaying-bitmaps/index.html" 29722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 29822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to load and process bitmaps while keeping your user interface 29922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main responsive and avoid exceeding memory limits." 30022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Displaying Bitmaps Efficiently</a> 30122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 30250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <ul> 30322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/load-bitmap.html"> 30422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Loading Large Bitmaps Efficiently 30550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 30650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 30722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/process-bitmap.html"> 30822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Processing Bitmaps Off the UI Thread 30922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 31022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 31122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/cache-bitmap.html"> 31222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Caching Bitmaps 313e38a6c50ea6f6c1238276154ca0631842b6ab06cAlexander Lucas </a> 314e38a6c50ea6f6c1238276154ca0631842b6ab06cAlexander Lucas </li> 3157571542c9d54fa3501e3ce9d50d3625e22f39e81kmccormick <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/manage-memory.html"> 3167571542c9d54fa3501e3ce9d50d3625e22f39e81kmccormick Managing Bitmap Memory 3177571542c9d54fa3501e3ce9d50d3625e22f39e81kmccormick </a> 3187571542c9d54fa3501e3ce9d50d3625e22f39e81kmccormick </li> 31922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/display-bitmap.html"> 32022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Displaying Bitmaps in Your UI 32122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a></li> 32250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </ul> 32350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 32450c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 32550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 32622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 32722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot?>training/graphics/opengl/index.html" 32822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 32922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to create OpenGL graphics within the Android app framework 33022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main and respond to touch input." 33122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Displaying Graphics with OpenGL ES</a> 332ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </div> 3337736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 33422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/environment.html"> 33522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Building an OpenGL ES Environment 33622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 337ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </li> 33822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/shapes.html"> 33922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Defining Shapes 34022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 3417736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 34222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/draw.html"> 34322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Drawing Shapes 3447736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 3457736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 34622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/projection.html"> 34722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Applying Projection and Camera Views 3487736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 3497736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 35022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/motion.html"> 35122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Adding Motion 3527736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 3537736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 35422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/touch.html"> 35522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Responding to Touch Events 3567736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 3577736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 3587736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 3597736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 36022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 36122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"><a href="<?cs var:toroot ?>training/animation/index.html" 36222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 36322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to add transitional animations to your user interface."> 36422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Adding Animations 3653f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a></div> 3663f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <ul> 3673f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/crossfade.html"> 36822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Crossfading Two Views 3693f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 3703f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 3713f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/screen-slide.html"> 37222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using ViewPager for Screen Slide 3733f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 3743f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 3753f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/cardflip.html"> 37622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Displaying Card Flip Animations 3773f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 3783f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 3793f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/zoom.html"> 38022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Zooming a View 3813f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 3823f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 3833f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/layout.html"> 38422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Animating Layout Changes 3853f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 3863f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 3873f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </ul> 3883f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 38922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 39022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 39122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End graphics and animation --> 3923ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 39322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 39422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 39522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 39622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-connectivity.html"> 39722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/> 39822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Connectivity & the Cloud 39922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 40022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 40122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 40222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 40350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 40422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 40522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/connect-devices-wirelessly/index.html" 40622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 40722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to find and connect to local devices using Network Service 408f5e0970c471d8bb3775febe4d1fb422a337c462cScott Main Discovery and how to create peer-to-peer connections with Wi-Fi." 40922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Connecting Devices Wirelessly</a> 41022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 4117736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 41222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd.html"> 41322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using Network Service Discovery 4147736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 4157736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 41622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/wifi-direct.html"> 417f5e0970c471d8bb3775febe4d1fb422a337c462cScott Main Creating P2P Connections with Wi-Fi 4187736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 4197736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 42022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd-wifi-direct.html"> 4212d006d2fb2d053392324769971c3a10d8ad93ac4Scott Main Using Wi-Fi P2P for Service Discovery 4227736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 4237736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 4247736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 4257736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 4262e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin <li class="nav-section"> 4272e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin <div class="nav-section-header"> 4282e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin <a href="<?cs var:toroot ?>training/beam-files/index.html" 4292e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin description= 4302e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin "How to transfer files between devices using the NFC Android Beam feature." 4312e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin >Sharing Files with NFC</a> 4322e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin </div> 4332e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin <ul> 4342e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin <li> 4352e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin <a href="<?cs var:toroot ?>training/beam-files/send-files.html" 4362e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin >Sending Files to Another Device</a> 4372e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin </li> 4382e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin <li><a href="<?cs var:toroot ?>training/beam-files/receive-files.html" 4392e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin >Receiving Files from Another Device</a></li> 4402e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin </ul> 4412e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin </li> 44222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 44322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 44422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/network-ops/index.html" 44522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 44622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to create a network connection, monitor the connection for changes 44722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main in connectivity, and perform transactions with XML data." 44822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Performing Network Operations</a> 449ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </div> 4507736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 45122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/basics/network-ops/connecting.html"> 45222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Connecting to the Network 45322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 454ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </li> 45522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/basics/network-ops/managing.html"> 45622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Managing Network Usage 45722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 458ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </li> 45922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/basics/network-ops/xml.html"> 46022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Parsing XML Data 46122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 4627736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 4637736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 4647736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 46550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 46622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 46722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/efficient-downloads/index.html" 46822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 46922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to minimize your app's impact on the battery when performing downloads 47022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main and other network transactions." 47122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Transferring Data Without Draining the Battery</a> 47222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 47320f394df4db02c492d7920f4f366b777451c2067Reto Meier <ul> 47422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/efficient-downloads/efficient-network-access.html"> 47522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Optimizing Downloads for Efficient Network Access 47620f394df4db02c492d7920f4f366b777451c2067Reto Meier </a> 47720f394df4db02c492d7920f4f366b777451c2067Reto Meier </li> 47822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/efficient-downloads/regular_updates.html"> 47922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Minimizing the Effect of Regular Updates 48020f394df4db02c492d7920f4f366b777451c2067Reto Meier </a> 48120f394df4db02c492d7920f4f366b777451c2067Reto Meier </li> 48222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/efficient-downloads/redundant_redundant.html"> 48322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Redundant Downloads are Redundant 484773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </a> 485773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </li> 48622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/efficient-downloads/connectivity_patterns.html"> 48722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Modifying Patterns Based on the Connectivity Type 488773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </a> 489773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </li> 490773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </ul> 491773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </li> 492773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas 49350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 49422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 49522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/cloudsync/index.html" 49622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 49722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to sync and back up app and user data to remote web services in the 49822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main cloud and how to restore the data back to multiple devices." 49922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Syncing to the Cloud</a> 500957f716cf1686145ba4c06ca8669eaa2e22f54e8Robert Ly </div> 501055e3f25ba85d7aefcddaa0aa2bb0589719ec80cRobert Ly <ul> 50222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/cloudsync/backupapi.html"> 50322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using the Backup API 504055e3f25ba85d7aefcddaa0aa2bb0589719ec80cRobert Ly </a> 505055e3f25ba85d7aefcddaa0aa2bb0589719ec80cRobert Ly </li> 50622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/cloudsync/gcm.html"> 50722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Making the Most of Google Cloud Messaging 5087736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 5097736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 5107736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 51171baac13580dd6f16bf5308eb1571bcb014676fckmccormick <li><a href="<?cs var:toroot ?>training/cloudsave/conflict-res.html" 51271baac13580dd6f16bf5308eb1571bcb014676fckmccormick description= 51371baac13580dd6f16bf5308eb1571bcb014676fckmccormick "How to design a robust conflict resolution strategy for apps that save data to the cloud." 51471baac13580dd6f16bf5308eb1571bcb014676fckmccormick >Resolving Cloud Save Conflicts 51571baac13580dd6f16bf5308eb1571bcb014676fckmccormick </a> 5162e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin </li> 5177736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 518e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li class="nav-section"> 519e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <div class="nav-section-header"> 520e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/index.html" 521e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin description="How to transfer data between the cloud and the device using the Android 522e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin sync adapter framework" 523e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin >Transferring Data Using Sync Adapters</a> 524e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </div> 525e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <ul> 526e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li> 527e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/creating-authenticator.html"> 528e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin Creating a Stub Authenticator 529e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </a> 530e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 531e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li> 532e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/creating-stub-provider.html"> 533e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin Creating a Stub Content Provider 534e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </a> 535e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 536e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li> 537e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/creating-sync-adapter.html"> 538e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin Creating a Sync Adapter 539e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </a> 540e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 541e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li> 542e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/running-sync-adapter.html"> 543e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin Running a Sync Adapter 544e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </a> 545e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 546e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </ul> 547e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 548e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin 54922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 55022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 55122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End connectivity and cloud --> 5523ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 5533ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 554580f0146535e7daed83aef721f505270f7b040e1Scott Main 55522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 55622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 55722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-userinfo.html"> 55822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/> 55922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main User Info & Location 56022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 56122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 56222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 563421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li class="nav-section"> 564421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <div class="nav-section-header"> 565421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/index.html" 566421435d2bede2788b74b07b1bab893fef98047c5Joe Malin description= 567421435d2bede2788b74b07b1bab893fef98047c5Joe Malin "How to use Android's central address book, the Contacts Provider, to 568421435d2bede2788b74b07b1bab893fef98047c5Joe Malin display contacts and their details and modify contact information."> 569421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Accessing Contacts Data</a> 570421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </div> 571421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <ul> 572421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 573421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-names.html"> 574421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Retrieving a List of Contacts 575421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 576421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 577421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 578421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-details.html"> 579421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Retrieving Details for a Contact 580421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 581421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 582421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 583421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/modify-data.html"> 584421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Modifying Contacts Using Intents 585421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 586421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 587421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 588421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/display-contact-badge.html"> 589421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Displaying the Quick Contact Badge 590421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 5912956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </li> 5922956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </ul> 5932956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </li> 594580f0146535e7daed83aef721f505270f7b040e1Scott Main 59550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 59622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 5973ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin <a href="<?cs var:toroot ?>training/location/index.html" 5983ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin description="How to add location-aware features to your app by getting the user's current location."> 5993ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin Making Your App Location-Aware 6003ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin </a> 60122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 6027736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 6033ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin <li> 6043ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin <a href="<?cs var:toroot ?>training/location/retrieve-current.html"> 6053ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin Retrieving the Current Location 6063ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin </a> 6073ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin </li> 6083ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin <li> 6093ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin <a href="<?cs var:toroot ?>training/location/receive-location-updates.html"> 6103ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin Receiving Location Updates 6113ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin </a> 6123ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin </li> 6133ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin <li> 6143ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin <a href="<?cs var:toroot ?>training/location/display-address.html"> 6153ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin Displaying a Location Address 6167736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 6177736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 6183ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin <li><a href="<?cs var:toroot ?>training/location/geofencing.html"> 6193ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin Creating and Monitoring Geofences 6207736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 6217736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 6223ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin <li><a href="<?cs var:toroot ?>training/location/activity-recognition.html"> 6233ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin Recognizing the User's Current Activity 6247736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 6257736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 62672fdbc88bb52b68238b938563c0394b1e93e2343Joe Malin <li><a href="<?cs var:toroot ?>training/location/location-testing.html"> 62772fdbc88bb52b68238b938563c0394b1e93e2343Joe Malin Testing Using Mock Locations 62872fdbc88bb52b68238b938563c0394b1e93e2343Joe Malin </a> 62972fdbc88bb52b68238b938563c0394b1e93e2343Joe Malin </li> 6307736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 6317736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 63222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 63322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 63422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End privacy and location --> 6353ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 6363ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 63722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 63822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 63922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 64022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/best-ux.html"> 64122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Best Practices for</span><br/> 64222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main User Experience & UI 64322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 64422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 64522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 64650c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 64750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 64822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 64922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/design-navigation/index.html" 65022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 65122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to plan your app's screen hierarchy and forms of navigation so users can 65222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main effectively and intuitively traverse your app content using various navigation 65322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main patterns." 65422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Designing Effective Navigation</a> 65522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 6567736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 65722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/screen-planning.html"> 65822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Planning Screens and Their Relationships 6597736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 6607736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 66122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/multiple-sizes.html"> 66222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Planning for Multiple Touchscreen Sizes 6637736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 6647736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 66522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/descendant-lateral.html"> 66622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Providing Descendant and Lateral Navigation 66722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 66822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 66922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/ancestral-temporal.html"> 67022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Providing Ancestral and Temporal Navigation 67122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 67222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 67322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/wireframing.html"> 67422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Putting it All Together: Wireframing the Example App 6757736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 6767736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 6777736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 6787736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 67950c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 68050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 68122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 68222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/implementing-navigation/index.html" 68322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 6847c8405513675c47205a68c0644f6046eebefc5a3Scott Main "How to implement various navigation patterns such as swipe views, 6857c8405513675c47205a68c0644f6046eebefc5a3Scott Main a navigation drawer, and up navigation." 68622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Implementing Effective Navigation</a> 68722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 6887736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 68922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/lateral.html"> 6907c8405513675c47205a68c0644f6046eebefc5a3Scott Main Creating Swipe Views with Tabs 6917c8405513675c47205a68c0644f6046eebefc5a3Scott Main </a> 6927c8405513675c47205a68c0644f6046eebefc5a3Scott Main </li> 6937c8405513675c47205a68c0644f6046eebefc5a3Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/nav-drawer.html"> 6947c8405513675c47205a68c0644f6046eebefc5a3Scott Main Creating a Navigation Drawer 6957736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 6967736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 69722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/ancestral.html"> 6987c8405513675c47205a68c0644f6046eebefc5a3Scott Main Providing Up Navigation 6997736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 7007736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 70122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/temporal.html"> 7027c8405513675c47205a68c0644f6046eebefc5a3Scott Main Providing Proper Back Navigation 7037736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 7047736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 70522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/descendant.html"> 70622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Implementing Descendant Navigation 7077736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 7087736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 7097736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 7107736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 7110aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j 7120aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li class="nav-section"> 7130aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <div class="nav-section-header"> 7140aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/index.html" 7150aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j description= 716f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin "How to display messages called notifications outside of 7170aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j your application's UI." 7180aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j >Notifying the User</a> 7190aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </div> 7200aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <ul> 7210aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 7220aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/build-notification.html"> 7230aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Building a Notification 7240aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 7250aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 7260aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 7270aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/navigation.html"> 7280aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Preserving Navigation when Starting an Activity 7290aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 7300aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 7310aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 7320aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/managing.html"> 7330aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Updating Notifications 7340aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 7350aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 7360aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 7370aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/expanded.html"> 7380aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Using Big View Styles 7390aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 7400aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 7410aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 7420aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/display-progress.html"> 7430aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Displaying Progress in a Notification 7440aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 7450aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 7460aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </ul> 7470aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 7480aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j 7490aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li class="nav-section"> 7500aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <div class="nav-section-header"> 7510aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/search/index.html" 7520aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j description= 7530aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j "How to properly add a search interface to your app and create a searchable database." 7540aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j >Adding Search Functionality</a> 7550aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </div> 7560aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <ul> 7570aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li><a href="<?cs var:toroot ?>training/search/setup.html"> 7580aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Setting up the Search Interface 7590aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 7600aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 7610aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li><a href="<?cs var:toroot ?>training/search/search.html"> 7620aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Storing and Searching for Data 7630aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 7640aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 7650aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li><a href="<?cs var:toroot ?>training/search/backward-compat.html"> 7660aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Remaining Backward Compatible 7670aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 7680aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 7690aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </ul> 7700aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 7713ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 7723ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 77350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 77422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 77522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="/training/multiscreen/index.html" 776b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="针对多种屏幕进行设计" 77722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="複数画面のデザイン" 77822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main es-lang="Cómo diseñar aplicaciones para varias pantallas" 77922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 78022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build a user interface that's flexible enough to 78122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main fit perfectly on any screen and how to create different interaction 78222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main patterns that are optimized for different screen sizes." 78322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Designing for Multiple Screens</a> 78422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 78538e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik <ul> 78622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/multiscreen/screensizes.html" 787b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="支持各种屏幕尺寸" 78822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ko-lang="다양한 화면 크기 지원" 78922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="さまざまな画面サイズのサポート" 790f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo admitir varios tamaños de pantalla" 79122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Supporting Different Screen Sizes</a> 79238e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 79322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/multiscreen/screendensities.html" 794b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="支持各种屏幕密度" 79522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="さまざまな画面密度のサポート" 796f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo admitir varias densidades de pantalla" 79722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Supporting Different Screen Densities</a> 79838e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 79922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/multiscreen/adaptui.html" 800b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="实施自适应用户界面流程" 80122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="順応性のある UI フローの実装" 802f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo implementar interfaces de usuario adaptables" 80322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Implementing Adaptive UI Flows</a> 80438e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 80538e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </ul> 80638e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 80738e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik 80850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 80922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"><a href="<?cs var:toroot ?>training/tv/index.html" 81022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 81122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to optimize your app's user interface and user input for 81222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main the "ten foot experience" of a TV screen." 81322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Designing for TV</a> 81422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 8157736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 81622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/tv/optimizing-layouts-tv.html"> 81722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Optimizing Layouts for TV 81822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 81922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 82022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/tv/optimizing-navigation-tv.html"> 82122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Optimizing Navigation for TV 82222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 82322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 82422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/tv/unsupported-features-tv.html"> 82522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Handling Features Not Supported on TV 8267736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 8277736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 8287736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 8297736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 8303ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 83150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 83222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 83322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/custom-views/index.html" 83422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 83522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build custom UI widgets that are interactive and smooth." 83622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Creating Custom Views</a> 83722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 838580f0146535e7daed83aef721f505270f7b040e1Scott Main <ul> 83922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/create-view.html"> 84022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating a Custom View Class 841580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 842580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 84322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/custom-drawing.html"> 84422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Implementing Custom Drawing 845580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 846580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 84722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/making-interactive.html"> 84822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Making the View Interactive 849580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 850580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 85122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/optimizing-view.html"> 85222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Optimizing the View 853580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 854580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 855580f0146535e7daed83aef721f505270f7b040e1Scott Main </ul> 85619266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 85719266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik 85850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 85922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 86022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/backward-compatible-ui/index.html" 86122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 86222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to use UI components and other APIs from the more recent versions of Android 86322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main while remaining compatible with older versions of the platform." 86422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Creating Backward-Compatible UIs</a> 86522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 86619266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik <ul> 86722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/abstracting.html"> 86822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Abstracting the New APIs 86919266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 87019266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 87122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/new-implementation.html"> 87222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Proxying to the New APIs 87319266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 87419266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 87522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/older-implementation.html"> 87622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating an Implementation with Older APIs 87719266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 87819266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 87922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/using-component.html"> 88022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using the Version-Aware Component 88119266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 88219266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 88319266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </ul> 88419266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 8853ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 88650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 88722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 88822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/accessibility/index.html" 88922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 89022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to make your app accessible to users with vision 89122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main impairment or other physical disabilities." 89222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Implementing Accessibility</a> 893931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </div> 894931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi <ul> 89522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/accessibility/accessible-app.html"> 89622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Developing Accessible Applications 897931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </a> 898931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </li> 89922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/accessibility/service.html"> 90022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Developing Accessibility Services 901931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </a> 902931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </li> 903931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </ul> 904580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 9053ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 90622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 90722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 90822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End best UX and UI --> 9093ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 910c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main 911518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li class="nav-section"> 912518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <div class="nav-section-header"> 913c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <a href="<?cs var:toroot ?>training/best-user-input.html"> 914518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <span class="small">Best Practices for</span><br/> 915518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j User Input 916518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 917518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </div> 918518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <ul> 9193ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 920518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li class="nav-section"> 921518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <div class="nav-section-header"> 922518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <a href="<?cs var:toroot ?>training/gestures/index.html" 923518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j description= 924518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j "How to write apps that allow users to interact with the touch screen via touch gestures." 925518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j >Using Touch Gestures</a> 926518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </div> 927518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <ul> 928518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/detector.html"> 929518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Detecting Common Gestures 930518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 931518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 932518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/movement.html"> 933518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Tracking Movement 934518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 935518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 936518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/scroll.html"> 937518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Animating a Scroll Gesture 938518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 939518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 940518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/multi.html"> 941518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Handling Multi-Touch Gestures 942518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 943518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 944518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/scale.html"> 945518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Dragging and Scaling 946518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 947518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 948518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/viewgroup.html"> 949518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Managing Touch Events in a ViewGroup 950518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 951518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 952518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </ul> 953c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 9543ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 955c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li class="nav-section"> 956c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <div class="nav-section-header"> 957c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <a href="<?cs var:toroot ?>training/keyboard-input/index.html" 958c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main description= 959c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main "How to specify the appearance and behaviors of soft input methods (such 960c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main as on-screen keyboards) and how to optimize the experience with 961c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main hardware keyboards." 962c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main >Handling Keyboard Input</a> 963c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </div> 964c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <ul> 965c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/style.html"> 966c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Specifying the Input Method Type 967c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 968c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 969c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/visibility.html"> 970c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Handling Input Method Visibility 971c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 972c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 973c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/navigation.html"> 974c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Supporting Keyboard Navigation 975c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 976c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 977c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/commands.html"> 978c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Handling Keyboard Actions 979c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 980c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 981c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </ul> 982c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 983c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </ul> 984421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> <!-- end of User Input --> 98550c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 98622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 98722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 9887bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/best-background.html"> 98922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Best Practices for</span><br/> 9907bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Background Jobs 99122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 99222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 99322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 9943ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 995f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li class="nav-section"> 996f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <div class="nav-section-header"> 997f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <a href="<?cs var:toroot ?>training/run-background-service/index.html" 998f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin description= 999f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin "How to improve UI performance and responsiveness by sending work to a 10008ac78803f59fd4fbe9e2682632791bc255d38aceScott Main Service running in the background" 10018ac78803f59fd4fbe9e2682632791bc255d38aceScott Main >Running in a Background Service</a> 1002f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </div> 1003f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <ul> 1004f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li><a href="<?cs var:toroot ?>training/run-background-service/create-service.html"> 1005f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin Creating a Background Service 1006f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </a> 1007f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 1008f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li><a href="<?cs var:toroot ?>training/run-background-service/send-request.html"> 1009f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin Sending Work Requests to the Background Service 1010f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </a> 1011f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 1012f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li><a href="<?cs var:toroot ?>training/run-background-service/report-status.html"> 1013f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin Reporting Work Status 1014f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </a> 1015f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 1016f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </ul> 1017f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 10188ac78803f59fd4fbe9e2682632791bc255d38aceScott Main 10198ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <li class="nav-section"> 10208ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <div class="nav-section-header"> 10218ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <a href="<?cs var:toroot ?>training/load-data-background/index.html" 10228ac78803f59fd4fbe9e2682632791bc255d38aceScott Main description="How to use CursorLoader to query data without 10238ac78803f59fd4fbe9e2682632791bc255d38aceScott Main affecting UI responsiveness." 10248ac78803f59fd4fbe9e2682632791bc255d38aceScott Main >Loading Data in the Background</a> 10258ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </div> 10268ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <ul> 10278ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <li><a href="<?cs var:toroot ?>training/load-data-background/setup-loader.html"> 10288ac78803f59fd4fbe9e2682632791bc255d38aceScott Main Running a Query with a CursorLoader</a> 10298ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </li> 10308ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <li><a href="<?cs var:toroot ?>training/load-data-background/handle-results.html"> 10318ac78803f59fd4fbe9e2682632791bc255d38aceScott Main Handling the Results</a> 10328ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </li> 10338ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </ul> 10348ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </li> 10353ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 10367bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li class="nav-section"> 10377bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <div class="nav-section-header"> 10387bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/scheduling/index.html" 10397bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick description="How to use repeating alarms and wake locks 10407bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick to run background jobs." 10417bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick >Managing Device Awake State</a> 10427bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </div> 10437bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <ul> 10447bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/scheduling/wakelock.html"> 10457bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Keeping the Device Awake</a> 10467bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 10477bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/scheduling/alarms.html"> 10487bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Scheduling Repeating Alarms</a> 10497bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 10507bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </ul> 10517bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 10527bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </ul> 10537bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> <!-- end of Background Jobs --> 10547bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick 10557bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li class="nav-section"> 10567bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <div class="nav-section-header"> 10577bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/best-performance.html"> 10587bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <span class="small">Best Practices for</span><br/> 10597bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Performance 10607bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 10617bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </div> 10627bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <ul> 10637bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick 10647bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li> 10657bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/articles/perf-tips.html" 10667bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick description= 10677bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick "How to optimize your app's performance in various ways to improve its 10687bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick responsiveness and battery efficiency." 10697bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick >Performance Tips</a> 10707bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 10717bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick 10727bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li class="nav-section"> 10737bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <div class="nav-section-header"> 10747bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/improving-layouts/index.html" 10757bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick description= 10767bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick "How to identify problems in your app's layout performance and improve the UI 10777bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick responsiveness." 10787bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick >Improving Layout Performance</a> 10797bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </div> 10807bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <ul> 10817bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/improving-layouts/optimizing-layout.html"> 10827bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Optimizing Layout Hierarchies 10837bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 10847bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 10857bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/improving-layouts/reusing-layouts.html"> 10867bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Re-using Layouts with <include/> 10877bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 10887bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 10897bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/improving-layouts/loading-ondemand.html"> 10907bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Loading Views On Demand 10917bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 10927bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 10937bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/improving-layouts/smooth-scrolling.html"> 10947bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Making ListView Scrolling Smooth 10957bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 10967bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 10977bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </ul> 10987bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 10997bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick 110050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 110122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 110222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="/training/monitoring-device-state/index.html" 1103b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="优化电池使用时间" 110422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="電池消費量の最適化" 110522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main es-lang="Cómo optimizar la duración de la batería" 110622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 110722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to minimize the amount of power your app requires by adapting to current 110822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main power conditions and performing power-hungry tasks at proper intervals." 110922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Optimizing Battery Life</a> 111022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 1111df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas <ul> 111222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/monitoring-device-state/battery-monitoring.html" 1113b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="监控电池电量和充电状态" 111422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="電池残量と充電状態の監視" 1115f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo controlar el nivel de batería y el estado de carga" 111622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Monitoring the Battery Level and Charging State</a> 1117df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 111822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/monitoring-device-state/docking-monitoring.html" 1119b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="确定和监控基座对接状态和类型" 112022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="ホルダーの装着状態とタイプの特定と監視" 1121f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo determinar y controlar el tipo de conector y el estado de la conexión" 112222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Determining and Monitoring the Docking State and Type</a> 112322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 112422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/monitoring-device-state/connectivity-monitoring.html" 1125b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="确定和监控网络连接状态" 112622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="接続状態の特定と監視" 1127f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo determinar y controlar el estado de la conectividad" 112822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Determining and Monitoring the Connectivity Status</a> 112922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 113022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="/training/monitoring-device-state/manifest-receivers.html" 1131b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="根据需要操作广播接收器" 113222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="オンデマンドでのブロードキャスト レシーバ操作" 1133f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo manipular los receptores de emisión bajo demanda" 113422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Manipulating Broadcast Receivers On Demand</a> 1135df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 1136df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </ul> 1137df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 11388dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li class="nav-section"> 11398dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <div class="nav-section-header"> 11408dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <a href="<?cs var:toroot ?>training/multiple-threads/index.html" 11418dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin description= 11428dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin "How to improve the performance and scalability of long-running operations by 11438dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin dispatching work to multiple threads."> 11448dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Sending Operations to Multiple Threads</a> 11458dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </div> 11468dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <ul> 11478dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/define-runnable.html"> 11488dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Specifying the Code to Run on a Thread 11498dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 11508dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 11518dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/create-threadpool.html"> 11528dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Creating a Manager for Multiple Threads 11538dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 11548dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 11558dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/run-code.html"> 11568dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Running Code on a Thread Pool Thread 11578dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 11588dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 11598dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/communicate-ui.html"> 11608dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Communicating with the UI Thread 11618dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 11628dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 1163df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </ul> 1164df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 11653ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 116622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 116733e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/perf-anr.html" 116822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 116922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to keep your app responsive to user interaction so the UI does not lock-up and 117022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main display an "Application Not Responding" dialog." 117122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Keeping Your App Responsive</a> 117222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 11733ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 117422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 117533e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/perf-jni.html" 117622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 117722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to efficiently use the Java Native Interface with the Android NDK." 117822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >JNI Tips</a> 117922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 1180d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty <li> 1181d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty <a href="<?cs var:toroot ?>training/articles/smp.html" 1182d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty description= 1183d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty "Tips for coding Android apps on symmetric multiprocessor systems." 1184d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty >SMP Primer for Android</a> 1185d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty </li> 118622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 118722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> <!-- end of Performance --> 11883ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 11893ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 1190df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas 119122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 119222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 119322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/best-security.html"> 119422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Best Practices for</span><br/> 119522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Security & Privacy 119622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 119722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 119822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 119922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 120033e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/security-tips.html" 120122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 120222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to perform various tasks and keep your app's data and your user's data secure." 120322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Security Tips</a> 120422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 120500158363b47d916d159d2f3a0e1152783fd66a9cScott Main 120600158363b47d916d159d2f3a0e1152783fd66a9cScott Main <li> 120700158363b47d916d159d2f3a0e1152783fd66a9cScott Main <a href="<?cs var:toroot ?>training/articles/security-ssl.html" 120800158363b47d916d159d2f3a0e1152783fd66a9cScott Main description= 120900158363b47d916d159d2f3a0e1152783fd66a9cScott Main "How to ensure that your app is secure when performing network transactions." 121000158363b47d916d159d2f3a0e1152783fd66a9cScott Main >Security with HTTPS and SSL</a> 121100158363b47d916d159d2f3a0e1152783fd66a9cScott Main </li> 12123ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 121350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 121422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 121522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/enterprise/index.html" 121622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 121722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to implement device management policies for enterprise-oriented apps." 121822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Developing for Enterprise</a> 121922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 122050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <ul> 122122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/enterprise/device-management-policy.html"> 122222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Enhancing Security with Device Management Policies 122350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 122450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 1225e577d72a3be20e589437271f0e5ca474fab38124Roman Nurik </ul> 1226e577d72a3be20e589437271f0e5ca474fab38124Roman Nurik </li> 122722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 122822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 122922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End security and user info --> 12304c4a47f42101a57ab8ff05a8e035d97582c3368aScott Main 12312ef3952d8e62b71baca176b3e17315a37facd34aquddusc <li class="nav-section"> 12322ef3952d8e62b71baca176b3e17315a37facd34aquddusc <div class="nav-section-header"> 12332ef3952d8e62b71baca176b3e17315a37facd34aquddusc <a href="<?cs var:toroot ?>training/testing.html"> 12342ef3952d8e62b71baca176b3e17315a37facd34aquddusc <span class="small">Best Practices for</span><br/> 12352ef3952d8e62b71baca176b3e17315a37facd34aquddusc Testing 12362ef3952d8e62b71baca176b3e17315a37facd34aquddusc </a> 12372ef3952d8e62b71baca176b3e17315a37facd34aquddusc </div> 12382ef3952d8e62b71baca176b3e17315a37facd34aquddusc <ul> 12392ef3952d8e62b71baca176b3e17315a37facd34aquddusc <li class="nav-section"> 12402ef3952d8e62b71baca176b3e17315a37facd34aquddusc <div class="nav-section-header"><a href="<?cs var:toroot ?>training/activity-testing/index.html" 12412ef3952d8e62b71baca176b3e17315a37facd34aquddusc description="How to test Activities in your Android applications."> 12422ef3952d8e62b71baca176b3e17315a37facd34aquddusc Testing Your Activity 12432ef3952d8e62b71baca176b3e17315a37facd34aquddusc </a></div> 12442ef3952d8e62b71baca176b3e17315a37facd34aquddusc <ul> 12452ef3952d8e62b71baca176b3e17315a37facd34aquddusc <li><a href="<?cs var:toroot ?>training/activity-testing/preparing-activity-testing.html"> 12462ef3952d8e62b71baca176b3e17315a37facd34aquddusc <span class="en">Setting Up Your Test Environment</span> 12472ef3952d8e62b71baca176b3e17315a37facd34aquddusc </a> 12482ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 12492ef3952d8e62b71baca176b3e17315a37facd34aquddusc <li><a href="<?cs var:toroot ?>training/activity-testing/activity-basic-testing.html"> 12502ef3952d8e62b71baca176b3e17315a37facd34aquddusc <span class="en">Creating and Running a Test Case</span> 12512ef3952d8e62b71baca176b3e17315a37facd34aquddusc </a> 12522ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 12532ef3952d8e62b71baca176b3e17315a37facd34aquddusc <li><a href="<?cs var:toroot ?>training/activity-testing/activity-ui-testing.html"> 12542ef3952d8e62b71baca176b3e17315a37facd34aquddusc <span class="en">Testing UI Components</span> 12552ef3952d8e62b71baca176b3e17315a37facd34aquddusc </a> 12562ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 12572ef3952d8e62b71baca176b3e17315a37facd34aquddusc <li><a href="<?cs var:toroot ?>training/activity-testing/activity-unit-testing.html"> 12582ef3952d8e62b71baca176b3e17315a37facd34aquddusc <span class="en">Creating Unit Tests</span> 12592ef3952d8e62b71baca176b3e17315a37facd34aquddusc </a> 12602ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 12612ef3952d8e62b71baca176b3e17315a37facd34aquddusc <li><a href="<?cs var:toroot ?>training/activity-testing/activity-functional-testing.html"> 12622ef3952d8e62b71baca176b3e17315a37facd34aquddusc <span class="en">Creating Functional Tests</span> 12632ef3952d8e62b71baca176b3e17315a37facd34aquddusc </a> 12642ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 12652ef3952d8e62b71baca176b3e17315a37facd34aquddusc </ul> 12662ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 12672ef3952d8e62b71baca176b3e17315a37facd34aquddusc </ul> 12682ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 12692ef3952d8e62b71baca176b3e17315a37facd34aquddusc <!-- End best Testing --> 127050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 127122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 127222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 127322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/distribute.html"> 127422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Using Google Play to</span><br/> 127522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Distribute & Monetize 127622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 127722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 127822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 1279768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li class="nav-section"> 1280768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <div class="nav-section-header"><a href="<?cs var:toroot ?>training/in-app-billing/index.html" 1281768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong description="How to sell in-app products from your application using In-app Billing."> 1282768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong Selling In-app Products 1283768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a></div> 1284768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <ul> 1285768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/preparing-iab-app.html"> 1286768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Preparing Your App</span> 1287768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 1288768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 1289768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/list-iab-products.html"> 1290768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Establishing Products for Sale</span> 1291768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 1292768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 1293768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/purchase-iab-products.html"> 1294768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Purchasing Products</span> 1295768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 1296768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 1297768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/test-iab-app.html"> 1298768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Testing Your App</span> 1299768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 1300768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 1301768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </ul> 1302768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 13033ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 1304969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas <li class="nav-section"> 130522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 130622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/multiple-apks/index.html" 130722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 130822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to publish your app on Google Play with separate APKs that target 130922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main different devices, while using a single app listing." 131022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Maintaining Multiple APKs</a> 131122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 1312969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas <ul> 131322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/api.html"> 131422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs for Different API Levels 1315969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </a> 1316969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 131722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/screensize.html"> 131822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs for Different Screen Sizes 1319969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </a> 1320969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 132122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/texture.html"> 132222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs for Different GL Textures 132322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 132422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 132522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/multiple.html"> 132622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs with 2+ Dimensions 1327969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </a> 1328969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 1329969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </ul> 1330969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 133150c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin <li class="nav-section"> 133222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 133322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/monetization/index.html" 133422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 133522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to implement monetization strategies for your app without compromising 133622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main the user experience." 133722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Monetizing Your App</a> 133822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 133950c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin <ul> 134022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/monetization/ads-and-ux.html"> 134122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Advertising without Compromising User Experience 134250c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin </a> 134350c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin </li> 134450c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin </ul> 134550c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin </li> 134622558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty </ul> 134722558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty </li> 134822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End best Publishing --> 134922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 135050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main</ul><!-- nav --> 135122558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty<script type="text/javascript"> 135222558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty<!-- 135322558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty buildToggleLists(); 135422558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty changeNavLang(getLangPref()); 135522558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty//--> 135622558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty</script> 1357