150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main<ul id="nav"> 250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <div class="nav-section-header"> 450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <a href="<?cs var:toroot ?>training/index.html"> 522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Getting Started 650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </div> 850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 97736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 1050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 1150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <div class="nav-section-header"> 1222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/firstapp/index.html" 1322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 1422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "After you've installed the Android SDK, start with this class 1522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main to learn the basics about Android app development." 1622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Building Your First App</a> 1750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </div> 18be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 19be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/firstapp/creating-project.html"> 2022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating an Android Project 21be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 22be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 23be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/firstapp/running-app.html"> 2422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Running Your Application 25be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 26be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 27be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/firstapp/building-ui.html"> 2822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Building a Simple User Interface 29be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 30be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 31be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <li><a href="<?cs var:toroot ?>training/basics/firstapp/starting-activity.html"> 3222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Starting Another Activity 33be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 34be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 35be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 36be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 37be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main 3850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 3922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 40f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <a href="<?cs var:toroot ?>training/basics/supporting-devices/index.html" 4122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 42f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main "How to build your app with alternative resources that provide an 43f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main optimized user experience on multiple device form factors using a single APK." 44f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main >Supporting Different Devices</a> 4522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 46be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 47f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/languages.html"> 48f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Supporting Different Languages 49be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 50be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 51f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/screens.html"> 52f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Supporting Different Screens 53be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 54be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 55f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/platforms.html"> 56f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Supporting Different Platform Versions 57be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 58be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 59be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 60be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 6150c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 6250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 6322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 64f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main <a href="<?cs var:toroot ?>training/basics/activity-lifecycle/index.html" 65c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ja-lang="アクティビティのライフサイクル 管理" 66c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ko-lang="액티비티 수명 주기 관리하기" 67c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman pt-br-lang="Como gerenciar o ciclo de vida da atividade" 68c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ru-lang="Управление жизненным циклом операций" 69c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-cn-lang="管理活动生命周期" 70c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-tw-lang="管理應用行為顯示生命週期" 7122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 72f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main "How Android activities live and die and how to create 73f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main a seamless user experience by implementing lifecycle callback methods." 74f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main >Managing the Activity Lifecycle</a> 7522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 76be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 77c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/starting.html" 78c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ja-lang="アクティビティを開始する" 79c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ko-lang="액티비티 시작하기" 80c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman pt-br-lang="Iniciando uma atividade" 81c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ru-lang="Запуск операции" 82c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-cn-lang="开始活动" 83c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-tw-lang="啟動應用行為顯示"> 84f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Starting an Activity 85be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 86be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 873d93b9e15106f174a573fcaf169fbb90ac133b8dsmain@google.com <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/pausing.html"> 88f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Pausing and Resuming an Activity 89be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 90be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 91c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/stopping.html" 92c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ja-lang="アクティビティの一時停止と再開" 93c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ko-lang="액티비티 일시정지 및 재개하기" 94c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman pt-br-lang="Pausando e reiniciando uma atividade" 95c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ru-lang="Приостановка и возобновление операции" 96c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-cn-lang="暂停和继续活动" 97c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-tw-lang="暫停並繼續應用行為顯示"> 98f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Stopping and Restarting an Activity 99f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main </a> 100f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main </li> 101c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/recreating.html" 102c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ja-lang="アクティビティを再作成する" 103c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ko-lang="액티비티 재생성하기" 104c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman pt-br-lang="Recriando uma atividade" 105c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ru-lang="Воссоздание операции" 106c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-cn-lang="重新创建活动" 107c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-tw-lang="重新建立應用行為顯示"> 108f151391b72b5ab667ea0681de5bd2fbe0d94d8a9Scott Main Recreating an Activity 109be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 110be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 111be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 112be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 11350c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 11450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 11522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 11622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/fragments/index.html" 11722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 11822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build a user interface for your app that is flexible enough 11922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main to present multiple UI components on large screens and a more constrained set of 12022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main UI components on smaller screens—essential for building a single APK for both 12122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main phones and tablets." 12222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Building a Dynamic UI with Fragments</a> 12322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 124421854e6e8fe3418d22ae444567a06b5f308c896Scott Main <ul> 125421854e6e8fe3418d22ae444567a06b5f308c896Scott Main <li><a href="<?cs var:toroot ?>training/basics/fragments/creating.html"> 12622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating a Fragment 127421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </a> 128421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 129a79acc0315d33080527b9fb48ba063fb4104de37Dirk Dougherty <li><a href="<?cs var:toroot ?>training/basics/fragments/fragment-ui.html" zh-cn-lang="构建灵活的界面"> 13022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Building a Flexible UI 131421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </a> 132421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 133421854e6e8fe3418d22ae444567a06b5f308c896Scott Main <li><a href="<?cs var:toroot ?>training/basics/fragments/communicating.html"> 13422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Communicating with Other Fragments 135421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </a> 136421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 137421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </ul> 138421854e6e8fe3418d22ae444567a06b5f308c896Scott Main </li> 139be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main 14050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 14122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"><a href="<?cs var:toroot?>training/basics/data-storage/index.html" 142c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ja-lang="データの保存" 143c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ko-lang="데이터 저장하기" 144c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman pt-br-lang="Salvando dados" 145c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ru-lang="Сохранение данных" 146c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-cn-lang="保存数据" 147c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-tw-lang="儲存資料" 14822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 14922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to save data on the device, whether it's temporary files, downloaded 15022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main app assets, user media, structured data, or something else." 15122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Saving Data</a> 15222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 15311f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main <ul> 154c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman <li><a href="<?cs var:toroot ?>training/basics/data-storage/shared-preferences.html" 155c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ja-lang="キー値セットを保存する" 156c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ko-lang="키-값 세트 저장하기" 157c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman pt-br-lang="Salvando conjuntos de valor-chave" 158c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ru-lang="Сохранение наборов "\"ключ-значение\"" 159c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-cn-lang="保存键值集" 160c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-tw-lang="儲存索引鍵值組"> 16122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Saving Key-Value Sets 16211f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </a> 16311f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </li> 164c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman <li><a href="<?cs var:toroot ?>training/basics/data-storage/files.html" 165c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ja-lang="ファイルを保存する" 166c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ko-lang="파일 저장하기" 167c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman pt-br-lang="Salvando arquivos" 168c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ru-lang="Сохранение файлов" 169c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-cn-lang="保存文件" 170c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-tw-lang="儲存檔案"> 17122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Saving Files 17211f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </a> 17311f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </li> 174c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman <li><a href="<?cs var:toroot ?>training/basics/data-storage/databases.html" 175c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ja-lang="SQL データベースにデータを保存する" 176c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ko-lang="SQL 데이터베이스에 데이터 저장하기" 177c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman pt-br-lang="Salvando dados em bancos de dados do SQL" 178c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ru-lang="Сохранение данных в базах данных SQL" 179c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-cn-lang="在 SQL 数据库中保存数据" 180c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-tw-lang="在 SQL 資料庫中儲存資料"> 18122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Saving Data in SQL Databases 18211f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </a> 18311f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </li> 18411f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </ul> 18511f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main </li> 18611f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main 18711f03b4b694f506ed5dcb7c12a9984b653f93b42Scott Main <li class="nav-section"> 18822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 18922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/intents/index.html" 190c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ja-lang="他のアプリとの相互操作" 191c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ko-lang="액티비티 수명 주기 관리하기" 192c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman pt-br-lang="Interagindo com outros aplicativos" 193c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ru-lang="Взаимодействие с другими приложениями" 194c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-cn-lang="与其他应用交互" 195c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-tw-lang="與其他應用程式互動" 19622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 19722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build a user experience that leverages other apps available 19822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main on the device to perform advanced user tasks, such as capture a photo or view 19922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main an address on a map." 20022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Interacting with Other Apps</a> 20122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 202be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 203c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman <li><a href="<?cs var:toroot ?>training/basics/intents/sending.html" 204c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ja-lang="別のアプリにユーザーを送る" 205c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ko-lang="다른 앱으로 사용자 보내기" 206c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman pt-br-lang="Enviando o usuário para outro aplicativo" 207c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ru-lang="Направление пользователя в другое приложение" 208c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-cn-lang="向另一个应用发送用户" 209c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-tw-lang="將使用者傳送至其他應用程式"> 21022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Sending the User to Another App 211be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 212be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 213c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman <li><a href="<?cs var:toroot ?>training/basics/intents/result.html" 214c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ja-lang="アクティビティから結果を取得する" 215c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ko-lang="액티비티로부터 결과 가져오기" 216c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman pt-br-lang="Obtendo resultados de uma atividade" 217c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ru-lang="Получение результата операции" 218c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-cn-lang="获取活动的结果" 219c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-tw-lang="從應用行為顯示取得結果"> 22022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Getting a Result from the Activity 221be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 222be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 223c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman <li><a href="<?cs var:toroot ?>training/basics/intents/filters.html" 224c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ja-lang="他のアプリからのアクティビティの開始を許可する" 225c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ko-lang="다른 앱이 자신의 액티비티를 시작하도록 허용하기" 226c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman pt-br-lang="Permitindo que outros aplicativos iniciem sua atividade" 227c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman ru-lang="Разрешение другим приложениям на запуск вашей операции" 228c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-cn-lang="允许其他应用开始您的活动" 229c921ee10a3c6e057637f6fc84e174146aa582b32David Friedman zh-tw-lang="允許其他應用程式啟動您的應用行為顯示"> 23022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Allowing Other Apps to Start Your Activity 231be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </a> 232be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 233be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 234be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </li> 235c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong <li class="nav-section"> 236c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong <div class="nav-section-header"> 237c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong <a href="<?cs var:toroot ?>training/permissions/index.html" 238c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong description= 239c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong "How to declare that your app needs access to features and 240c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong resources outside of its 'sandbox', and how to request those 241c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong privileges at runtime." 242c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong >Working with System Permissions</a> 243c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong </div> 244c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong <ul> 245c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong <li><a href="<?cs var:toroot ?>training/permissions/declaring.html"> 246c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong Declaring Permissions 247c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong </a> 248c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong </li> 249c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong <li><a href="<?cs var:toroot ?>training/permissions/requesting.html"> 250c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong Requesting Permissions at Run Time 251c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong </a> 252c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong </li> 253c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong <li><a href="<?cs var:toroot ?>training/permissions/best-practices.html"> 254c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong Best Practices for Runtime Permissions 255c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong </a> 256c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong </li> 257c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong </ul> 258c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong </li> 259be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main 26045edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </ul> 26145edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li><!-- end getting started --> 26245edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li class="nav-section"> 26322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 26445edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <a href="<?cs var:toroot ?>training/building-content-sharing.html"> 26545edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <span class="small">Building Apps with</span><br/>Content Sharing 26645edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </a> 26722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 268be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main <ul> 26945edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li class="nav-section"> 27045edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <div class="nav-section-header"> 27145edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <a href="<?cs var:toroot ?>training/sharing/index.html" 27245edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin description= 27345edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin "How to take your app interaction to the next level by sharing 27445edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin information with other apps, receive information back, and provide a simple and 27545edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin scalable way to perform Share actions with user content." 27645edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin >Sharing Simple Data</a> 27745edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </div> 27845edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <ul> 27945edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li> 28045edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <a href="<?cs var:toroot ?>training/sharing/send.html"> 28145edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin Sending Simple Data to Other Apps 28245edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </a> 28345edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li> 28445edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li> 28545edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <a href="<?cs var:toroot ?>training/sharing/receive.html"> 28645edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin Receiving Simple Data from Other Apps 28745edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </a> 28845edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li> 28945edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li> 29045edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <a href="<?cs var:toroot ?>training/sharing/shareaction.html"> 29145edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin Adding an Easy Share Action 29245edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </a> 29345edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li> 29445edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </ul> 29545edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li> 29645edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li class="nav-section"> 29745edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <div class="nav-section-header"> 29845edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <a href="<?cs var:toroot?>training/secure-file-sharing/index.html" 29945edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin description= 30045edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin "How to provide secure access to a file associated with your app using a content 30145edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin URI and temporary access permissions." 30245edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin >Sharing Files</a> 30345edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </div> 30445edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <ul> 30545edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li> 30645edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <a href="<?cs var:toroot ?>training/secure-file-sharing/setup-sharing.html"> 30745edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin Setting Up File Sharing 30845edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </a> 30945edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li> 31045edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li> 31145edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <a href="<?cs var:toroot ?>training/secure-file-sharing/share-file.html"> 31245edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin Sharing a File 31345edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </a> 31445edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li> 31545edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li> 31645edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <a href="<?cs var:toroot ?>training/secure-file-sharing/request-file.html"> 31745edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin Requesting a Shared File 31845edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </a> 31945edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li> 32045edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li> 32145edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <a href="<?cs var:toroot ?>training/secure-file-sharing/retrieve-info.html"> 32245edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin Retrieving File Information 32345edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </a> 32445edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li> 32545edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </ul> 32645edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li> 32745edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li class="nav-section"> 32845edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <div class="nav-section-header"> 32945edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <a href="<?cs var:toroot ?>training/beam-files/index.html" 33045edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin description= 33145edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin "How to transfer files between devices using the NFC Android Beam feature." 33245edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin >Sharing Files with NFC</a> 33345edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </div> 33445edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <ul> 33545edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li> 33645edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <a href="<?cs var:toroot ?>training/beam-files/send-files.html" 33745edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin >Sending Files to Another Device</a> 33845edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li> 33945edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin <li><a href="<?cs var:toroot ?>training/beam-files/receive-files.html" 34045edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin >Receiving Files from Another Device</a></li> 34145edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </ul> 34245edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li> 343be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main </ul> 34445edbb701ac44891aa07a403a55ee2393da9b25fJoe Malin </li> 3453ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 3463ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 34750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 34822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 34922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 35022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-multimedia.html"> 35122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/>Multimedia 35222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 35322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 35422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 3553ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 35622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 35722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 35822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/managing-audio/index.html" 35922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 36022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to respond to hardware audio key presses, request audio focus 36122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main when playing audio, and respond appropriately to changes in audio focus." 36222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Managing Audio Playback</a> 36322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 36450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <ul> 36522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/managing-audio/volume-playback.html"> 36622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Controlling Your App's Volume and Playback 36750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 36850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 36922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/managing-audio/audio-focus.html"> 37022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Managing Audio Focus 37150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 37250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 37322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/managing-audio/audio-output.html"> 37422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Dealing with Audio Output Hardware 37550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 37650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 37750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </ul> 37850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 37950c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 38050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 38122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 38222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/camera/index.html" 38322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 38422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to leverage existing camera apps on the user's device to capture 38522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main photos or control the camera hardware directly and build your own camera app." 38622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Capturing Photos</a> 38722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 38850e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <ul> 38922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/camera/photobasics.html"> 39022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Taking Photos Simply 39150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 39250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 39322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/camera/videobasics.html"> 39422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Recording Videos Simply 39550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 39650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 39722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/camera/cameradirect.html"> 39822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Controlling the Camera 39950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 40050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 40150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </ul> 40250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 40384fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez 40484fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez <li class="nav-section"> 40584fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez <div class="nav-section-header"> 40684fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez <a href="<?cs var:toroot ?>training/printing/index.html" 40784fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez description= 40884fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez "How to print photos, HTML documents, and custom documents from your app." 40984fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez >Printing Content</a> 41084fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez </div> 41184fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez <ul> 41284fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez <li><a href="<?cs var:toroot ?>training/printing/photos.html"> 41384fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez Photos 41484fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez </a> 41584fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez </li> 41684fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez <li><a href="<?cs var:toroot ?>training/printing/html-docs.html"> 41784fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez HTML Documents 41884fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez </a> 41984fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez </li> 42084fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez <li><a href="<?cs var:toroot ?>training/printing/custom-docs.html"> 42184fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez Custom Documents 42284fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez </a> 42384fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez </li> 42484fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez </ul> 42584fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez </li> 42684fe617c5b3e90b961091af24ef26b9fadc8c70cJoe Fernandez 42722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 42822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 42922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End multimedia --> 4303ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 4313ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 432be2f4edd2ca2b4ba9bbed7262719064ca55b54ffScott Main 43322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 43422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 43522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-graphics.html"> 43622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/>Graphics & Animation 43722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 43822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 43922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 4403ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 44150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 44222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 44322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/displaying-bitmaps/index.html" 44422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 44522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to load and process bitmaps while keeping your user interface 44622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main responsive and avoid exceeding memory limits." 44722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Displaying Bitmaps Efficiently</a> 44822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 44950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <ul> 45022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/load-bitmap.html"> 45122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Loading Large Bitmaps Efficiently 45250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </a> 45350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 45422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/process-bitmap.html"> 45522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Processing Bitmaps Off the UI Thread 45622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 45722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 45822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/cache-bitmap.html"> 45922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Caching Bitmaps 460e38a6c50ea6f6c1238276154ca0631842b6ab06cAlexander Lucas </a> 461e38a6c50ea6f6c1238276154ca0631842b6ab06cAlexander Lucas </li> 4627571542c9d54fa3501e3ce9d50d3625e22f39e81kmccormick <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/manage-memory.html"> 4637571542c9d54fa3501e3ce9d50d3625e22f39e81kmccormick Managing Bitmap Memory 4647571542c9d54fa3501e3ce9d50d3625e22f39e81kmccormick </a> 4657571542c9d54fa3501e3ce9d50d3625e22f39e81kmccormick </li> 46622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/display-bitmap.html"> 46722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Displaying Bitmaps in Your UI 46822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a></li> 46950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </ul> 47050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main </li> 47150c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 47250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 47322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 47422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot?>training/graphics/opengl/index.html" 47522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 47622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to create OpenGL graphics within the Android app framework 47722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main and respond to touch input." 47822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Displaying Graphics with OpenGL ES</a> 479ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </div> 4807736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 48122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/environment.html"> 48222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Building an OpenGL ES Environment 48322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 484ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </li> 48522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/shapes.html"> 48622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Defining Shapes 48722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 4887736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 48922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/draw.html"> 49022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Drawing Shapes 4917736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 4927736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 49322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/projection.html"> 49422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Applying Projection and Camera Views 4957736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 4967736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 49722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/motion.html"> 49822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Adding Motion 4997736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 5007736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 50122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/graphics/opengl/touch.html"> 50222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Responding to Touch Events 5037736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 5047736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 5057736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 5067736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 507de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera 508de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera <li class="nav-section"> 509de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera <div class="nav-section-header"> 510de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera <a href="<?cs var:toroot?>training/transitions/index.html" 511de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera description= 512de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera "How to animate state changes in a view hierarchy using transitions." 513de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera >Animating Views Using Scenes and Transitions</a> 514de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera </div> 515de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera <ul> 516de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera <li><a href="<?cs var:toroot ?>training/transitions/overview.html"> 517de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera The Transitions Framework 518de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera </a> 519de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera </li> 520de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera <li><a href="<?cs var:toroot ?>training/transitions/scenes.html"> 521de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera Creating a Scene 522de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera </a> 523de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera </li> 524de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera <li><a href="<?cs var:toroot ?>training/transitions/transitions.html"> 525de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera Applying a Transition 526de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera </a> 527de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera </li> 528de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera <li><a href="<?cs var:toroot ?>training/transitions/custom-transitions.html"> 529de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera Creating Custom Transitions 530de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera </a> 531de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera </li> 532de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera 533de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera </ul> 534de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera </li> 535de113066d80c3f19979eb531484af73f64640de9Ricardo Cervera 53622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 53722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"><a href="<?cs var:toroot ?>training/animation/index.html" 53822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 53922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to add transitional animations to your user interface."> 54022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Adding Animations 5413f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a></div> 5423f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <ul> 5433f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/crossfade.html"> 54422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Crossfading Two Views 5453f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 5463f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 5473f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/screen-slide.html"> 54822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using ViewPager for Screen Slide 5493f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 5503f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 5513f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/cardflip.html"> 55222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Displaying Card Flip Animations 5533f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 5543f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 5553f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/zoom.html"> 55622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Zooming a View 5573f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 5583f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 5593f532126028378204e263a33b08a95b3cd9c7b83Robert Ly <li><a href="<?cs var:toroot ?>training/animation/layout.html"> 56022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Animating Layout Changes 5613f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </a> 5623f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 5633f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </ul> 5643f532126028378204e263a33b08a95b3cd9c7b83Robert Ly </li> 56522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 56622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 56722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End graphics and animation --> 5683ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 56922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 57022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 57122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 57222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-connectivity.html"> 57322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/> 57422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Connectivity & the Cloud 57522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 57622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 57722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 57822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 57950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 58022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 58122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/connect-devices-wirelessly/index.html" 58222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 58322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to find and connect to local devices using Network Service 584f5e0970c471d8bb3775febe4d1fb422a337c462cScott Main Discovery and how to create peer-to-peer connections with Wi-Fi." 58522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Connecting Devices Wirelessly</a> 58622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 5877736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 58822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd.html"> 58922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using Network Service Discovery 5907736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 5917736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 59222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/wifi-direct.html"> 593f5e0970c471d8bb3775febe4d1fb422a337c462cScott Main Creating P2P Connections with Wi-Fi 5947736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 5957736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 59622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd-wifi-direct.html"> 5972d006d2fb2d053392324769971c3a10d8ad93ac4Scott Main Using Wi-Fi P2P for Service Discovery 5987736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 5997736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 6007736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 6017736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 60222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 60322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 60422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/basics/network-ops/index.html" 60522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 60622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to create a network connection, monitor the connection for changes 60722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main in connectivity, and perform transactions with XML data." 60822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Performing Network Operations</a> 609ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </div> 6107736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 61122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/basics/network-ops/connecting.html"> 61222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Connecting to the Network 61322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 614ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </li> 61522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/basics/network-ops/managing.html"> 61622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Managing Network Usage 61722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 618ddab47b78ca5dff3b9ca8f79c2af8de0292a8fa4Scott Main </li> 61922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/basics/network-ops/xml.html"> 62022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Parsing XML Data 62122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 6227736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 6237736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 6247736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 62550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 62622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 62722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/efficient-downloads/index.html" 62822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 62922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to minimize your app's impact on the battery when performing downloads 63022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main and other network transactions." 63122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Transferring Data Without Draining the Battery</a> 63222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 63320f394df4db02c492d7920f4f366b777451c2067Reto Meier <ul> 63422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/efficient-downloads/efficient-network-access.html"> 63522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Optimizing Downloads for Efficient Network Access 63620f394df4db02c492d7920f4f366b777451c2067Reto Meier </a> 63720f394df4db02c492d7920f4f366b777451c2067Reto Meier </li> 63822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/efficient-downloads/regular_updates.html"> 63922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Minimizing the Effect of Regular Updates 64020f394df4db02c492d7920f4f366b777451c2067Reto Meier </a> 64120f394df4db02c492d7920f4f366b777451c2067Reto Meier </li> 64222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/efficient-downloads/redundant_redundant.html"> 64322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Redundant Downloads are Redundant 644773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </a> 645773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </li> 64622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/efficient-downloads/connectivity_patterns.html"> 64722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Modifying Patterns Based on the Connectivity Type 648773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </a> 649773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </li> 650773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </ul> 651773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas </li> 65250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 65371baac13580dd6f16bf5308eb1571bcb014676fckmccormick <li><a href="<?cs var:toroot ?>training/cloudsave/conflict-res.html" 65471baac13580dd6f16bf5308eb1571bcb014676fckmccormick description= 65571baac13580dd6f16bf5308eb1571bcb014676fckmccormick "How to design a robust conflict resolution strategy for apps that save data to the cloud." 65671baac13580dd6f16bf5308eb1571bcb014676fckmccormick >Resolving Cloud Save Conflicts 65771baac13580dd6f16bf5308eb1571bcb014676fckmccormick </a> 6582e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin </li> 6597736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 660e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li class="nav-section"> 661e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <div class="nav-section-header"> 662e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/index.html" 663e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin description="How to transfer data between the cloud and the device using the Android 664e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin sync adapter framework" 665e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin >Transferring Data Using Sync Adapters</a> 666e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </div> 667e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <ul> 668e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li> 669e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/creating-authenticator.html"> 670e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin Creating a Stub Authenticator 671e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </a> 672e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 673e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li> 674e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/creating-stub-provider.html"> 675e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin Creating a Stub Content Provider 676e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </a> 677e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 678e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li> 679e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/creating-sync-adapter.html"> 680e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin Creating a Sync Adapter 681e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </a> 682e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 683e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li> 684e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/running-sync-adapter.html"> 685e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin Running a Sync Adapter 686e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </a> 687e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 688e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </ul> 689e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 6901a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <li class="nav-section"> 6911a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <div class="nav-section-header"> 6921a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <a href="<?cs var:toroot ?>training/volley/index.html" 6931a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick description="How to perform fast, scalable UI operations over the network using Volley" 6941a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick >Transmitting Network Data Using Volley</a> 6951a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </div> 6961a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <ul> 6971a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <li> 6981a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <a href="<?cs var:toroot ?>training/volley/simple.html"> 6991a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick Sending a Simple Request 7001a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </a> 7011a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </li> 7021a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <li> 7031a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <a href="<?cs var:toroot ?>training/volley/requestqueue.html"> 7041a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick Setting Up a RequestQueue 7051a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </a> 7061a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </li> 7071a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <li> 7081a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <a href="<?cs var:toroot ?>training/volley/request.html"> 7091a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick Making a Standard Request 7101a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </a> 7111a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </li> 7121a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <li> 7131a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <a href="<?cs var:toroot ?>training/volley/request-custom.html"> 7141a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick Implementing a Custom Request 7151a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </a> 7161a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </li> 7171a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </ul> 7181a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </li> 71922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 72022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 72122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End connectivity and cloud --> 7223ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 7233ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 7246b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li class="nav-section"> 7256b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <div class="nav-section-header"> 7266b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/building-location.html"> 7276b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <span class="small">Building Apps with</span><br/> 7286b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Location & Maps 7296b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7306b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </div> 7316b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <ul> 7326b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li class="nav-section"> 7336b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <div class="nav-section-header"> 7346b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/location/index.html" 7356b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez description="How to add location-aware features to your app by getting the user's current location."> 7366b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Making Your App Location-Aware 7376b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7386b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </div> 7396b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <ul> 7406b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li> 7416b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/location/retrieve-current.html"> 7426b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Getting the Last Known Location 7436b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7446b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7456b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li> 746825261e0168413bd94c0308470b1566868f42872William French <a href="<?cs var:toroot ?>training/location/change-location-settings.html"> 747825261e0168413bd94c0308470b1566868f42872William French Changing Location Settings 748825261e0168413bd94c0308470b1566868f42872William French </a> 749825261e0168413bd94c0308470b1566868f42872William French </li> 750825261e0168413bd94c0308470b1566868f42872William French <li> 7516b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/location/receive-location-updates.html"> 7526b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Receiving Location Updates 7536b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7546b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7556b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li> 7566b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/location/display-address.html"> 7576b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Displaying a Location Address 7586b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7596b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7606b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li><a href="<?cs var:toroot ?>training/location/geofencing.html"> 7616b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Creating and Monitoring Geofences 7626b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7636b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7646b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </ul> 7656b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7666b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li class="nav-section"> 7676b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/maps/index.html" 7686b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez description="How to add maps and mapping information to your app."> 7696b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Adding Maps 7706b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7716b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7726b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </ul> 7736b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7746b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <!-- End location and maps --> 7756b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez 776580f0146535e7daed83aef721f505270f7b040e1Scott Main 77722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 77822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 77922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-userinfo.html"> 78022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/> 78173ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman User Info & Sign-In 78222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 78322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 78422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 785421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li class="nav-section"> 786421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <div class="nav-section-header"> 787421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/index.html" 788421435d2bede2788b74b07b1bab893fef98047c5Joe Malin description= 789421435d2bede2788b74b07b1bab893fef98047c5Joe Malin "How to use Android's central address book, the Contacts Provider, to 790421435d2bede2788b74b07b1bab893fef98047c5Joe Malin display contacts and their details and modify contact information."> 791421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Accessing Contacts Data</a> 792421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </div> 793421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <ul> 794421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 795421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-names.html"> 796421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Retrieving a List of Contacts 797421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 798421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 799421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 800421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-details.html"> 801421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Retrieving Details for a Contact 802421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 803421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 804421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 805421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/modify-data.html"> 806421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Modifying Contacts Using Intents 807421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 808421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 809421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 810421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/display-contact-badge.html"> 811421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Displaying the Quick Contact Badge 812421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 8132956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </li> 8142956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </ul> 8152956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </li> 81650e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 8176b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/sign-in/index.html" 8186b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez description="How to add user sign-in functionality to your app."> 8196b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Adding Sign-In 8206b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 8217736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 82222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 82322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 8246b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <!-- End user info and sign-in --> 8253ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 8263ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 8272728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li class="nav-section"> 8282728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <div class="nav-section-header"> 8292728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/building-wearables.html"> 8302728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <span class="small">Building Apps for</span><br/> 8312728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly Wearables 8322728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </a> 8332728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </div> 8342728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <ul> 8352728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li class="nav-section"> 8362728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <div class="nav-section-header"> 8372728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/notifications/index.html" 8382728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly description="How to build handheld notifications that are synced to 8392728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly and look great on wearables." 8402728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly >Adding Wearable Features to Notifications</a> 8412728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </div> 8422728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <ul> 8432728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8442728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/notifications/creating.html">Creating a Notification</a> 8452728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8462728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8472728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/notifications/voice-input.html">Receiving Voice Input in a Notification</a> 8482728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8492728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8502728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/notifications/pages.html">Adding Pages to a Notification</a> 8512728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8522728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8532728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/notifications/stacks.html">Stacking Notifications</a> 8542728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8552728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </ul> 8562728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8572728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly 8582728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li class="nav-section"> 8592728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <div class="nav-section-header"> 8602728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/apps/index.html" 8612728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly description="How to build apps that run directly on wearables." 8622728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly >Creating Wearable Apps</a> 8632728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </div> 8642728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <ul> 8652728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8662728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/apps/creating.html">Creating and Running a Wearable App</a> 8672728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8682728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8692728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/apps/layouts.html">Creating Custom Layouts</a> 8702728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8712728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8728f8e87be3cbd30496b8ec66c6e8aee83d1cfdc56Luan Nguyen <a href="<?cs var:toroot ?>training/wearables/apps/always-on.html">Keeping Your App Visible</a> 8738f8e87be3cbd30496b8ec66c6e8aee83d1cfdc56Luan Nguyen </li> 8748f8e87be3cbd30496b8ec66c6e8aee83d1cfdc56Luan Nguyen <li> 8752728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/apps/voice.html">Adding Voice Capabilities</a> 8762728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8772728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8782728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/apps/packaging.html">Packaging Wearable Apps</a> 8792728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8802728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8812728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/apps/bt-debugging.html">Debugging over Bluetooth</a> 8822728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8832728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </ul> 8842728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8852728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly 8862728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li class="nav-section"> 8872728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <div class="nav-section-header"> 888bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/index.html" 889bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera description="How to create custom user interfaces for wearable apps." 890bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera >Creating Custom UIs</a> 891bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </div> 892bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <ul> 893bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li> 894bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/layouts.html">Defining Layouts</a> 895bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 896bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li> 897bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/cards.html">Creating Cards</a> 898bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 899bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li> 900bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/lists.html">Creating Lists</a> 901bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 902bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li> 903bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/2d-picker.html">Creating a 2D Picker</a> 904bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 905bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li> 906bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/confirm.html">Showing Confirmations</a> 907bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 908bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li> 909bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/exit.html">Exiting Full-Screen Activities</a> 910bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 911bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </ul> 912bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 913bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera 914bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li class="nav-section"> 915bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <div class="nav-section-header"> 9162728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/data-layer/index.html" 9172728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly description="How to sync data between handhelds and wearables." 9182728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly >Sending and Syncing Data</a> 9192728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </div> 9202728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <ul> 9212728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 9222728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/data-layer/accessing.html">Accessing the Wearable Data Layer</a> 9232728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9242728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 9252728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/data-layer/data-items.html">Syncing Data Items</a> 9262728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9272728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 9282728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/data-layer/assets.html">Transferring Assets</a> 9292728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9302728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 9312728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/data-layer/messages.html">Sending and Receiving Messages</a> 9322728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9332728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 9342728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/data-layer/events.html">Handling Data Layer Events</a> 9352728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9362728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </ul> 9372728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9387db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera 9397db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li class="nav-section"> 9407db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <div class="nav-section-header"> 9417db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/index.html" 942ad69082b501dc9d885e8cd612e65a04cb47575deRicardo Cervera description="How to create watch faces for wearables." 943ad69082b501dc9d885e8cd612e65a04cb47575deRicardo Cervera >Creating Watch Faces</a> 9447db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </div> 9457db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <ul> 9467db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 9477db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/designing.html">Designing Watch Faces</a> 9487db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9497db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 9507db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/service.html">Building a Watch Face Service</a> 9517db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9527db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 9537db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/drawing.html">Drawing Watch Faces</a> 9547db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9557db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 9567db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/information.html">Showing Information in Watch Faces</a> 9577db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9587db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 959e6705bf25d00048ee7b9cc4b6bf9699c17d53306David Friedman <a href="<?cs var:toroot ?>training/wearables/watch-faces/interacting.html">Creating Interactive Watch Faces</a> 960e6705bf25d00048ee7b9cc4b6bf9699c17d53306David Friedman </li> 961e6705bf25d00048ee7b9cc4b6bf9699c17d53306David Friedman <li> 9627db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/configuration.html">Providing Configuration Activities</a> 9637db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9647db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 9657db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/issues.html">Addressing Common Issues</a> 9667db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9677db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 9687db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/performance.html">Optimizing Performance and Battery Life</a> 9697db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9707db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </ul> 9717db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9727db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera 9735aad2c9fb0e04403406411ba3e21bd3965e50df5Luan Nguyen <li> 9745aad2c9fb0e04403406411ba3e21bd3965e50df5Luan Nguyen <a href="<?cs var:toroot ?>training/articles/wear-location-detection.html" 9755aad2c9fb0e04403406411ba3e21bd3965e50df5Luan Nguyen description= 9765aad2c9fb0e04403406411ba3e21bd3965e50df5Luan Nguyen "How to detect location data on Android Wear devices." 9775aad2c9fb0e04403406411ba3e21bd3965e50df5Luan Nguyen >Detecting Location</a> 9785aad2c9fb0e04403406411ba3e21bd3965e50df5Luan Nguyen </li> 9799125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman 9809125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman <li> 9819125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman <a href="<?cs var:toroot ?>training/articles/wear-permissions.html" 9829125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman description= 9839125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman "How to request permissions on Android Wear devices." 9849125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman >Requesting Permissions</a> 9859125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman </li> 9869125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman 9879125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman <li> 9889125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman <a href="<?cs var:toroot ?>training/wearables/wearable-sounds.html" 9899125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman description= 9909125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman "How to use the speaker on Android Wear devices." 9919125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman >Using the Speaker</a> 9929125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman </li> 9939125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman 9942728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </ul> 9952728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9962728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <!-- End Building for wearables --> 99722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 998414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera 999d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <!-- Start: Building for TV --> 1000d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <li class="nav-section"> 1001d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <div class="nav-section-header"> 1002d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <a href="<?cs var:toroot ?>training/tv/index.html"> 1003d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <span class="small">Building Apps for</span><br/> 1004d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez TV 1005d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </a> 1006d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </div> 1007d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <ul> 1008d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez 1009d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <li class="nav-section"> 1010d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <div class="nav-section-header"> 1011e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez 1012d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <a href="<?cs var:toroot ?>training/tv/start/index.html" 1013827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="TV アプリのビルド" 1014d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez description="How to start building TV apps or extend your existing app to run on TV 1015d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez devices."> 1016d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez Building TV Apps</a> 1017d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </div> 1018d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <ul> 1019d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <li> 1020827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/start/start.html" 1021827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="TV アプリのビルドを開始する"> 1022d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez Getting Started with TV Apps</a> 1023d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </li> 1024d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <li> 1025827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/start/hardware.html" 1026827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="TV ハードウェアを処理する"> 1027d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez Handling TV Hardware</a> 1028d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </li> 1029d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <li> 1030827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/start/layouts.html" 1031827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="TV 向けレイアウトをビルドする"> 1032d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez Building TV Layouts</a> 1033d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </li> 1034d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <li> 1035827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/start/navigation.html" 1036827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="TV 用のナビゲーションを作成する"> 1037d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez Creating TV Navigation</a> 1038d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </li> 1039d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </ul> 1040d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </li> 1041d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez 1042f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez <li class="nav-section"> 1043f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez <div class="nav-section-header"> 1044f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez <a href="<?cs var:toroot ?>training/tv/playback/index.html" 104576db15a8c9a644bdff854763a922e1e3fd525e9cJoe Fernandez ja-lang="TV 再生アプリのビルド" 1046f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez description="How to build apps that provide media catalogs and play content."> 1047f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez Building TV Playback Apps</a> 1048f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez </div> 1049f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez <ul> 1050f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez <li> 1051827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/playback/browse.html" 1052827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="カタログ ブラウザを作成する"> 1053f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez Creating a Catalog Browser</a> 1054f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez </li> 1055f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez <li> 1056da0c5de5faccd7ceca419f0178a2d4a51732e3c7Scott Rowe <a href="<?cs var:toroot ?>training/tv/playback/card.html"> 1057da0c5de5faccd7ceca419f0178a2d4a51732e3c7Scott Rowe Providing a Card View</a> 1058da0c5de5faccd7ceca419f0178a2d4a51732e3c7Scott Rowe </li> 1059da0c5de5faccd7ceca419f0178a2d4a51732e3c7Scott Rowe <li> 1060827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/playback/details.html" 1061827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="詳細ビューをビルドする"> 1062f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez Building a Details View</a> 1063f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez </li> 10646bd081ca8a555fd71fbe856374b8efe68ede6144Scott Rowe <li> 1065827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/playback/now-playing.html" 1066827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="再生中カードを表示する"> 10676bd081ca8a555fd71fbe856374b8efe68ede6144Scott Rowe Displaying a Now Playing Card</a> 10686bd081ca8a555fd71fbe856374b8efe68ede6144Scott Rowe </li> 1069bfc8636dfca82470fb67720a4ac09cd5e58f2422Daniel Yu <li> 1070eefe46cd5a57e24df0cb5cd6fd195e7dcd806581Daniel Yu <a href="<?cs var:toroot ?>training/tv/playback/guided-step.html"> 1071eefe46cd5a57e24df0cb5cd6fd195e7dcd806581Daniel Yu Adding a Guided Step</a> 1072eefe46cd5a57e24df0cb5cd6fd195e7dcd806581Daniel Yu </li> 1073eefe46cd5a57e24df0cb5cd6fd195e7dcd806581Daniel Yu <li> 1074bfc8636dfca82470fb67720a4ac09cd5e58f2422Daniel Yu <a href="<?cs var:toroot ?>training/tv/playback/options.html"> 1075bfc8636dfca82470fb67720a4ac09cd5e58f2422Daniel Yu Enabling Background Playback</a> 1076bfc8636dfca82470fb67720a4ac09cd5e58f2422Daniel Yu </li> 1077f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez </ul> 1078f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez </li> 1079f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez 1080e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <li class="nav-section"> 1081e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <div class="nav-section-header"> 1082e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <a href="<?cs var:toroot ?>training/tv/discovery/index.html" 10837213656f986f5713c46ce5e86f8b8f569640275bJoe Fernandez description="How to help users discover content from your app."> 1084e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez Helping Users Find Content on TV</a> 1085e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez </div> 1086e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <ul> 1087e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <li> 1088e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <a href="<?cs var:toroot ?>training/tv/discovery/recommendations.html"> 1089e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez Recommending TV Content</a> 1090e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez </li> 1091e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <li> 1092e2b44f86b9ff32cc5fec04c10d09d639fd1f45f2Scott Rowe <a href="<?cs var:toroot ?>training/tv/discovery/searchable.html"> 1093e2b44f86b9ff32cc5fec04c10d09d639fd1f45f2Scott Rowe Making TV Apps Searchable</a> 1094e2b44f86b9ff32cc5fec04c10d09d639fd1f45f2Scott Rowe <li> 1095e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <a href="<?cs var:toroot ?>training/tv/discovery/in-app-search.html"> 1096e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez Searching within TV Apps</a> 1097e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez </li> 1098e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez </ul> 1099e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez </li> 1100e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez 110115edcda56ba12ad04a286f4d07f2b6fe0b1c5e38Joe Fernandez <li> 110215edcda56ba12ad04a286f4d07f2b6fe0b1c5e38Joe Fernandez <a href="<?cs var:toroot ?>training/tv/games/index.html" 110315edcda56ba12ad04a286f4d07f2b6fe0b1c5e38Joe Fernandez description="How to build games for TV."> 110415edcda56ba12ad04a286f4d07f2b6fe0b1c5e38Joe Fernandez Building TV Games</a> 110515edcda56ba12ad04a286f4d07f2b6fe0b1c5e38Joe Fernandez </li> 110615edcda56ba12ad04a286f4d07f2b6fe0b1c5e38Joe Fernandez 1107ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <li class="nav-section"> 1108ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <div class="nav-section-header"> 1109ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <a href="<?cs var:toroot ?>training/tv/tif/index.html" 1110513cf16d5e12ea4f2bca88d1c26ed21ae88fc9c9Quddus Chong description="How to build channels for TV."> 1111513cf16d5e12ea4f2bca88d1c26ed21ae88fc9c9Quddus Chong Building TV Channels</a> 1112ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe </div> 1113ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <ul> 1114ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <li> 1115ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <a href="<?cs var:toroot ?>training/tv/tif/tvinput.html"> 1116ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe Developing a TV Input Service</a> 1117ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <li> 1118ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <a href="<?cs var:toroot ?>training/tv/tif/channel.html"> 1119ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe Working with Channel Data</a> 1120ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe </li> 1121ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <li> 1122ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <a href="<?cs var:toroot ?>training/tv/tif/ui.html"> 1123ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe Managing User Interaction</a> 1124ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe </li> 1125ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe </ul> 1126bab257453bdc0c8b7f11de88dd7a8f8fa202803fAndrew Solovay </li> 11277515d188ddc6f5b582080b0e712ef9d003c6b85cScott Rowe 11287515d188ddc6f5b582080b0e712ef9d003c6b85cScott Rowe <li> 11297515d188ddc6f5b582080b0e712ef9d003c6b85cScott Rowe <a href="<?cs var:toroot ?>training/tv/publishing/checklist.html" 11307515d188ddc6f5b582080b0e712ef9d003c6b85cScott Rowe description="An itemized list of requirements for TV apps."> 11317515d188ddc6f5b582080b0e712ef9d003c6b85cScott Rowe TV Apps Checklist</a> 11327515d188ddc6f5b582080b0e712ef9d003c6b85cScott Rowe </li> 1133d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </ul> 1134d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </li> 1135d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <!-- End: Building for TV --> 1136d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez 11377fe755e66b10244da2382c11f9244346b8184e48Andrew Solovay 1138c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <!-- Start: Building for Auto --> 1139c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <li class="nav-section"> 1140c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <div class="nav-section-header"> 1141c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <a href="<?cs var:toroot ?>training/auto/index.html"> 1142c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <span class="small">Building Apps for</span><br/> 1143c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong Auto 1144c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong </a> 1145c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong </div> 1146c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <ul> 1147c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <li> 1148c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <a href="<?cs var:toroot ?>training/auto/start/index.html" 1149c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong description="How to start building or extending apps that work 1150c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong with Auto devices."> 1151c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong Getting Started with Auto</a> 1152c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong </li> 11537fe755e66b10244da2382c11f9244346b8184e48Andrew Solovay <li> 11547fe755e66b10244da2382c11f9244346b8184e48Andrew Solovay <a href="<?cs var:toroot ?>training/auto/audio/index.html" 11557fe755e66b10244da2382c11f9244346b8184e48Andrew Solovay description="How to extend audio apps to play content on Auto devices."> 11567fe755e66b10244da2382c11f9244346b8184e48Andrew Solovay Playing Audio for Auto</a> 11577fe755e66b10244da2382c11f9244346b8184e48Andrew Solovay </li> 1158a7f226b860455b26cc64f6db08f8c279be71117fAndrew Solovay <li> 1159a7f226b860455b26cc64f6db08f8c279be71117fAndrew Solovay <a href="<?cs var:toroot ?>training/auto/messaging/index.html" 1160a7f226b860455b26cc64f6db08f8c279be71117fAndrew Solovay description="How to extend text messaging apps to work with Auto devices."> 1161a7f226b860455b26cc64f6db08f8c279be71117fAndrew Solovay Messaging for Auto</a> 1162a7f226b860455b26cc64f6db08f8c279be71117fAndrew Solovay </li> 1163eb41bc08e118f257e83640aff95f80058e40ee21sreevanis <li> 1164eb41bc08e118f257e83640aff95f80058e40ee21sreevanis <a href="<?cs var:toroot ?>training/auto/testing/index.html" description= 1165eb41bc08e118f257e83640aff95f80058e40ee21sreevanis "How to run and test Auto apps."> 1166eb41bc08e118f257e83640aff95f80058e40ee21sreevanis Testing Auto Apps</a> 1167eb41bc08e118f257e83640aff95f80058e40ee21sreevanis </li> 1168c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong </ul> 1169c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong </li> 1170c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <!-- End: Building for Auto --> 1171c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong 117222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 117322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 117422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/best-ux.html"> 117522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Best Practices for</span><br/> 11768142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main Interaction & Engagement 117722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 117822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 117922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 118050c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 118150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 118222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 118322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/design-navigation/index.html" 118422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 118522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to plan your app's screen hierarchy and forms of navigation so users can 118622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main effectively and intuitively traverse your app content using various navigation 118722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main patterns." 118822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Designing Effective Navigation</a> 118922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 11907736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 119122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/screen-planning.html"> 119222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Planning Screens and Their Relationships 11937736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 11947736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 119522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/multiple-sizes.html"> 119622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Planning for Multiple Touchscreen Sizes 11977736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 11987736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 119922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/descendant-lateral.html"> 120022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Providing Descendant and Lateral Navigation 120122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 120222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 120322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/ancestral-temporal.html"> 120422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Providing Ancestral and Temporal Navigation 120522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 120622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 120722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/wireframing.html"> 120822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Putting it All Together: Wireframing the Example App 12097736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 12107736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 12117736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 12127736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 121350c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 121450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 121522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 121622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/implementing-navigation/index.html" 121722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 12187c8405513675c47205a68c0644f6046eebefc5a3Scott Main "How to implement various navigation patterns such as swipe views, 12197c8405513675c47205a68c0644f6046eebefc5a3Scott Main a navigation drawer, and up navigation." 122022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Implementing Effective Navigation</a> 122122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 12227736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 122322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/lateral.html"> 12247c8405513675c47205a68c0644f6046eebefc5a3Scott Main Creating Swipe Views with Tabs 12257c8405513675c47205a68c0644f6046eebefc5a3Scott Main </a> 12267c8405513675c47205a68c0644f6046eebefc5a3Scott Main </li> 12277c8405513675c47205a68c0644f6046eebefc5a3Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/nav-drawer.html"> 12287c8405513675c47205a68c0644f6046eebefc5a3Scott Main Creating a Navigation Drawer 12297736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 12307736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 123122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/ancestral.html"> 12327c8405513675c47205a68c0644f6046eebefc5a3Scott Main Providing Up Navigation 12337736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 12347736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 123522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/temporal.html"> 12367c8405513675c47205a68c0644f6046eebefc5a3Scott Main Providing Proper Back Navigation 12377736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 12387736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 123922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/descendant.html"> 124022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Implementing Descendant Navigation 12417736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 12427736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 12437736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 12447736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 12450aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j 12460aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li class="nav-section"> 12470aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <div class="nav-section-header"> 12480aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/index.html" 12490aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j description= 1250f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin "How to display messages called notifications outside of 12510aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j your application's UI." 12520aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j >Notifying the User</a> 12530aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </div> 12540aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <ul> 12550aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 12560aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/build-notification.html"> 12570aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Building a Notification 12580aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 12590aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 12600aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 12610aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/navigation.html"> 12620aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Preserving Navigation when Starting an Activity 12630aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 12640aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 12650aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 12660aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/managing.html"> 12670aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Updating Notifications 12680aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 12690aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 12700aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 12710aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/expanded.html"> 12720aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Using Big View Styles 12730aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 12740aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 12750aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 12760aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/display-progress.html"> 12770aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Displaying Progress in a Notification 12780aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 12790aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 12800aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </ul> 12810aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 128273ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman 128373ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman 1284f71f509af0047c154a67c136e8f57a4018663379Joe Malin <li class="nav-section"> 1285f71f509af0047c154a67c136e8f57a4018663379Joe Malin <div class="nav-section-header"> 1286f71f509af0047c154a67c136e8f57a4018663379Joe Malin <a href="<?cs var:toroot ?>training/swipe/index.html" 1287f71f509af0047c154a67c136e8f57a4018663379Joe Malin description= 1288f71f509af0047c154a67c136e8f57a4018663379Joe Malin "How to modify your app's layout to support manual content updates triggered by the 1289f71f509af0047c154a67c136e8f57a4018663379Joe Malin swipe-to-refresh gesture." 1290f71f509af0047c154a67c136e8f57a4018663379Joe Malin >Supporting Swipe-to-Refresh</a> 1291f71f509af0047c154a67c136e8f57a4018663379Joe Malin </div> 1292f71f509af0047c154a67c136e8f57a4018663379Joe Malin <ul> 1293f71f509af0047c154a67c136e8f57a4018663379Joe Malin <li> 1294f71f509af0047c154a67c136e8f57a4018663379Joe Malin <a href="<?cs var:toroot ?>training/swipe/add-swipe-interface.html" 1295f71f509af0047c154a67c136e8f57a4018663379Joe Malin >Adding Swipe-to-Refresh To Your App</a></li> 1296f71f509af0047c154a67c136e8f57a4018663379Joe Malin <li> 1297f71f509af0047c154a67c136e8f57a4018663379Joe Malin <a href="<?cs var:toroot ?>training/swipe/respond-refresh-request.html" 1298f71f509af0047c154a67c136e8f57a4018663379Joe Malin >Responding to a Refresh Gesture</a> 1299f71f509af0047c154a67c136e8f57a4018663379Joe Malin </li> 1300f71f509af0047c154a67c136e8f57a4018663379Joe Malin </ul> 1301f71f509af0047c154a67c136e8f57a4018663379Joe Malin </li> 130273ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman 130373ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman 13040aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li class="nav-section"> 13050aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <div class="nav-section-header"> 13060aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/search/index.html" 13070aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j description= 13080aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j "How to properly add a search interface to your app and create a searchable database." 13090aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j >Adding Search Functionality</a> 13100aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </div> 13110aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <ul> 13120aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li><a href="<?cs var:toroot ?>training/search/setup.html"> 13130aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Setting up the Search Interface 13140aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 13150aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 13160aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li><a href="<?cs var:toroot ?>training/search/search.html"> 13170aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Storing and Searching for Data 13180aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 13190aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 13200aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li><a href="<?cs var:toroot ?>training/search/backward-compat.html"> 13210aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Remaining Backward Compatible 13220aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 13230aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 13240aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </ul> 13250aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 13263ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 13278142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <li class="nav-section"> 13288142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <div class="nav-section-header"> 13298142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <a href="<?cs var:toroot ?>training/app-indexing/index.html" 13308142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main description= 13318142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main "How to enable deep linking and indexing of your application 13328142898da2e10d73617cd953a7bff85ff56dd0f5Scott Maincontent so that users can open this content directly from their mobile search 13338142898da2e10d73617cd953a7bff85ff56dd0f5Scott Mainresults." 1334240aca333e340445f977d2a0e268a7c8d3a591e0quddusc >Making Your App Content Searchable by Google</a> 13358142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </div> 13368142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <ul> 13378142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <li><a href="<?cs var:toroot ?>training/app-indexing/deep-linking.html"> 13388142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main Enabling Deep Links for App Content 13398142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </a> 13408142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </li> 13418142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <li><a href="<?cs var:toroot ?>training/app-indexing/enabling-app-indexing.html"> 134273ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman Specifying App Content for Indexing 13438142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </a> 13448142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </li> 13458142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </ul> 13468142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </li> 13478142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main 1348059e3905bb79aa6010471f066f571c9ad2ae5fa1Dirk Dougherty <li> 1349059e3905bb79aa6010471f066f571c9ad2ae5fa1Dirk Dougherty <a href="<?cs var:toroot ?>training/articles/assistant.html" 1350059e3905bb79aa6010471f066f571c9ad2ae5fa1Dirk Dougherty description= 1351059e3905bb79aa6010471f066f571c9ad2ae5fa1Dirk Dougherty "Support contextually relevant actions through the Assist API." 1352059e3905bb79aa6010471f066f571c9ad2ae5fa1Dirk Dougherty >Optimizing Content for the Assistant</a> 1353059e3905bb79aa6010471f066f571c9ad2ae5fa1Dirk Dougherty </li> 135473ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman <li class="nav-section"> 135573ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman <div class="nav-section"> 135673ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman <a href="<?cs var:toroot ?>training/app-links/index.html" 135773ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman description= 135873ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman "How to enable the system to handle web requests by taking the user directly 135973ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman to your app instead of your website." 136073ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman >Handling App Links</a> 136173ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman </div> 136273ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman </li> 136373ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman <!-- End Interaction and Engagement --> 136473ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman 136573ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman</ul> 13668142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main 13678142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <li class="nav-section"> 13688142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <div class="nav-section-header"> 13698142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <a href="<?cs var:toroot ?>training/best-ui.html"> 13708142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <span class="small">Best Practices for</span><br/> 13718142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main User Interface 13728142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </a> 13738142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </div> 13748142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <ul> 13758142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main 137673ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman 137750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 137822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 13795b50239c33176e0b321d2ee32a589e0583767e02Scott Main <a href="<?cs var:toroot ?>training/multiscreen/index.html" 1380b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="针对多种屏幕进行设计" 138122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="複数画面のデザイン" 138222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main es-lang="Cómo diseñar aplicaciones para varias pantallas" 138322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 138422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build a user interface that's flexible enough to 138522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main fit perfectly on any screen and how to create different interaction 138622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main patterns that are optimized for different screen sizes." 138722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Designing for Multiple Screens</a> 138822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 138938e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik <ul> 13905b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/multiscreen/screensizes.html" 1391b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="支持各种屏幕尺寸" 139222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ko-lang="다양한 화면 크기 지원" 139322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="さまざまな画面サイズのサポート" 1394f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo admitir varios tamaños de pantalla" 139522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Supporting Different Screen Sizes</a> 139638e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 13975b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/multiscreen/screendensities.html" 1398b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="支持各种屏幕密度" 139922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="さまざまな画面密度のサポート" 1400f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo admitir varias densidades de pantalla" 140122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Supporting Different Screen Densities</a> 140238e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 14035b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/multiscreen/adaptui.html" 1404b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="实施自适应用户界面流程" 140522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="順応性のある UI フローの実装" 1406f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo implementar interfaces de usuario adaptables" 140722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Implementing Adaptive UI Flows</a> 140838e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 140938e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </ul> 141038e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 141138e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik 141250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 141322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 14143d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <a href="<?cs var:toroot ?>training/appbar/index.html" 14153d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay description= 14163d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay "How to use the support library's toolbar widget to implement an 14173d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay app bar that displays properly on a wide range of devices." 14183d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay >Adding the App Bar</a> 14193d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay </div> 14203d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <ul> 14213d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <li><a href="<?cs var:toroot ?>training/appbar/setting-up.html" 14223d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay >Setting Up the App Bar</a> 14233d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay </li> 14243d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <li><a href="<?cs var:toroot ?>training/appbar/actions.html" 14253d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay >Adding and Handling Actions</a> 14263d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay </li> 14273d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <li><a href="<?cs var:toroot ?>training/appbar/up-action.html" 14283d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay >Adding an Up Action</a> 14293d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay </li> 143022c024657d2c97cbc8aed7cead25acdf6649aeedAndrew Solovay <li><a href="<?cs var:toroot ?>training/appbar/action-views.html" 143122c024657d2c97cbc8aed7cead25acdf6649aeedAndrew Solovay >Action Views and Action Providers</a> 143222c024657d2c97cbc8aed7cead25acdf6649aeedAndrew Solovay </li> 14333d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay </ul> 14343d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay </li> 14353d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay 14369f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay <li class="nav-section"> 14379f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay <div class="nav-section-header"> 14389f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay <a href="<?cs var:toroot ?>training/snackbar/index.html" 14399f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay description= 14409f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay "How to use the support library's Snackbar widget to display a 14419f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay brief pop-up message." 14429f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay >Showing Pop-Up Messages</a> 14439f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay </div> 14449f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay <ul> 14459f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay <li><a href="<?cs var:toroot ?>training/snackbar/showing.html" 14469f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay >Building and Displaying a Pop-Up Message</a> 14479f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay </li> 14489f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay <li><a href="<?cs var:toroot ?>training/snackbar/action.html" 14499f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay >Adding an Action to a Message</a> 14509f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay </li> 14519f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay </ul> 14529f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay </li> 14539f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay 14543d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <li class="nav-section"> 14553d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <div class="nav-section-header"> 145622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/custom-views/index.html" 145722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 145822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build custom UI widgets that are interactive and smooth." 145922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Creating Custom Views</a> 146022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 1461580f0146535e7daed83aef721f505270f7b040e1Scott Main <ul> 146222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/create-view.html"> 146322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating a Custom View Class 1464580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 1465580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 146622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/custom-drawing.html"> 146722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Implementing Custom Drawing 1468580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 1469580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 147022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/making-interactive.html"> 147122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Making the View Interactive 1472580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 1473580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 147422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/optimizing-view.html"> 147522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Optimizing the View 1476580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 1477580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 1478580f0146535e7daed83aef721f505270f7b040e1Scott Main </ul> 147919266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 148019266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik 148150e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 148222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 148322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/backward-compatible-ui/index.html" 148422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 148522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to use UI components and other APIs from the more recent versions of Android 148622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main while remaining compatible with older versions of the platform." 148722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Creating Backward-Compatible UIs</a> 148822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 148919266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik <ul> 149022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/abstracting.html"> 149122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Abstracting the New APIs 149219266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 149319266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 149422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/new-implementation.html"> 149522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Proxying to the New APIs 149619266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 149719266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 149822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/older-implementation.html"> 149922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating an Implementation with Older APIs 150019266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 150119266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 150222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/using-component.html"> 150322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using the Version-Aware Component 150419266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 150519266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 150619266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </ul> 150719266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 15083ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 150950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 151022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 151122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/accessibility/index.html" 151222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 151322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to make your app accessible to users with vision 151422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main impairment or other physical disabilities." 151522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Implementing Accessibility</a> 1516931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </div> 1517931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi <ul> 151822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/accessibility/accessible-app.html"> 151922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Developing Accessible Applications 1520931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </a> 1521931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </li> 152222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/accessibility/service.html"> 152322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Developing Accessibility Services 1524931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </a> 1525931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </li> 1526e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <li><a href="<?cs var:toroot ?>training/accessibility/testing.html"> 1527e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong Accessibility Testing Checklist 1528e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong </a> 1529e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong </li> 1530931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </ul> 1531580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 15323ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 1533cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <li class="nav-section"> 1534cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <div class="nav-section-header"> 1535cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <a href="<?cs var:toroot ?>training/system-ui/index.html" 1536cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick description= 1537cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick "How to hide and show status and navigation bars across different versions of Android, 1538cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick while managing the display of other screen components." 1539cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick >Managing the System UI</a> 1540cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </div> 1541cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <ul> 1542cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <li><a href="<?cs var:toroot ?>training/system-ui/dim.html"> 1543cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick Dimming the System Bars 1544cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </a> 1545cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </li> 1546cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <li><a href="<?cs var:toroot ?>training/system-ui/status.html"> 1547cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick Hiding the Status Bar 1548cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </a> 1549cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </li> 1550cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <li><a href="<?cs var:toroot ?>training/system-ui/navigation.html"> 1551cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick Hiding the Navigation Bar 1552cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </a> 1553cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </li> 15545b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/system-ui/immersive.html"> 1555467f5db87950601fb5e0936aca9a1cebe28d350bKatie McCormick Using Immersive Full-Screen Mode 1556467f5db87950601fb5e0936aca9a1cebe28d350bKatie McCormick </a> 1557467f5db87950601fb5e0936aca9a1cebe28d350bKatie McCormick </li> 1558cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <li><a href="<?cs var:toroot ?>training/system-ui/visibility.html"> 1559cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick Responding to UI Visibility Changes 1560cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </a> 1561414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1562414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </ul> 1563414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1564414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera 1565414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera <li class="nav-section"> 1566414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera <div class="nav-section-header"> 1567414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera <a href="<?cs var:toroot ?>training/material/index.html" 1568414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera description= 1569414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera "How to implement material design on Android." 1570dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman zh-cn-lang="面向开发者的材料设计" 1571dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman zh-tw-lang="開發人員材料設計" 1572dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman ja-lang="マテリアル デザインでのアプリ作成" 1573dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman es-lang="Crear aplicaciones con Material Design" 1574dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman pt-br-lang="Material Design para desenvolvedores" 1575dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman ko-lang="개발자를 위한 머티리얼 디자인" 1576dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman ru-lang="Создание приложений с помощью Material Design" 1577dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Desain Bahan untuk Pengembang" 1578dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Material Design cho Nhà phát triển" 1579414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera >Creating Apps with Material Design</a> 1580414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </div> 1581414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera <ul> 1582ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/get-started.html" 1583ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="入门指南" 1584ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="開始使用" 1585ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="スタート ガイド" 1586ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Comencemos" 1587ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como iniciar" 1588ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="시작하기" 1589ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Начало работы" 1590dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Memulai" 1591dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Bắt đầu" 1592ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1593414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Getting Started 1594414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1595414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1596ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/theme.html" 1597ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="使用材料主题" 1598ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="使用材料設計風格" 1599ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="マテリアル テーマの使用" 1600ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Usar el tema Material" 1601ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como usar o tema do Material" 1602ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="머티어리얼 테마 사용" 1603ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Использование темы Material Design" 1604dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Menggunakan Tema Bahan" 1605dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Sử dụng Chủ đề Material" 1606ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1607414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Using the Material Theme 1608414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1609414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1610ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/lists-cards.html" 1611ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="创建列表与卡片" 1612ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="建立清單和卡片" 1613ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="リストとカードの作成" 1614ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Crear listas y tarjetas" 1615ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como criar listas e cartões" 1616ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="목록 및 카드 생성" 1617ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Создание списков и подсказок" 1618dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Membuat Daftar dan Kartu" 1619dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Tạo Danh sách và Thẻ" 1620ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1621414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Creating Lists and Cards 1622414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1623414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1624ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/shadows-clipping.html" 1625ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="定义阴影与裁剪视图" 1626ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="定義陰影和裁剪檢視" 1627ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="シャドウとクリッピング ビューの定義" 1628ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Definir vistas de recorte y sombras" 1629ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como definir sombras e recortar visualizações" 1630ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="그림자 정의 및 뷰 클리핑" 1631ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Определение теней и обрезка представлений" 1632dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Mendefinisikan Bayangan dan Memangkas Tampilan" 1633dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Định nghĩa Đổ bóng và Dạng xem Cắt hình" 1634ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1635414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Defining Shadows and Clipping Views 1636414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1637414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1638ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/drawables.html" 1639ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="使用 Drawables" 1640ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="使用可繪項目" 1641ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="ドローアブルの使用" 1642ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Trabajar con interfaces dibujables" 1643ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como trabalhar com desenháveis" 1644ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="Drawable 사용" 1645ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Работа с элементами дизайна" 1646dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Bekerja dengan Drawable" 1647dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Làm việc với Nội dung vẽ được" 1648ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1649414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Working with Drawables 1650414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1651414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1652ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/animations.html" 1653ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="定义定制动画" 1654ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="定義自訂動畫" 1655ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="カスタム アニメーションの定義" 1656ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Definir animaciones personalizadas" 1657ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como definir animações personalizadas" 1658ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="사용자지정 애니메이션 정의" 1659ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Определение настраиваемой анимации" 1660dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Mendefinisikan Animasi Custom" 1661dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Định nghĩa Hoạt hình Tùy chỉnh" 1662ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1663414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Defining Custom Animations 1664414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1665414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1666ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/compatibility.html" 1667ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="维护兼容性" 1668ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="維持相容性" 1669ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="互換性の維持" 1670ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Mantener la compatibilidad" 1671ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como manter a compatibilidade" 1672ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="호환성 유지" 1673ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Обеспечение совместимости" 1674dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Mempertahankan Kompatibilitas" 1675dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Duy trì Tính tương thích" 1676ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1677414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Maintaining Compatibility 1678414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1679cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </li> 1680cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </ul> 1681cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </li> 1682cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick 168322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 168422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 16858142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <!-- End User Interface --> 16868142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main 16878142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main 16883ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 1689c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main 1690518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li class="nav-section"> 1691518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <div class="nav-section-header"> 1692c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <a href="<?cs var:toroot ?>training/best-user-input.html"> 1693518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <span class="small">Best Practices for</span><br/> 1694518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j User Input 1695518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1696518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </div> 1697518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <ul> 16983ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 1699518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li class="nav-section"> 1700518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <div class="nav-section-header"> 1701518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <a href="<?cs var:toroot ?>training/gestures/index.html" 1702518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j description= 1703518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j "How to write apps that allow users to interact with the touch screen via touch gestures." 1704518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j >Using Touch Gestures</a> 1705518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </div> 1706518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <ul> 1707518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/detector.html"> 1708518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Detecting Common Gestures 1709518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1710518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 1711518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/movement.html"> 1712518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Tracking Movement 1713518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1714518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 1715518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/scroll.html"> 1716518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Animating a Scroll Gesture 1717518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1718518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 1719518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/multi.html"> 1720518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Handling Multi-Touch Gestures 1721518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1722518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 1723518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/scale.html"> 1724518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Dragging and Scaling 1725518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1726518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 1727518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/viewgroup.html"> 1728518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Managing Touch Events in a ViewGroup 1729518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1730518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 1731518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </ul> 1732c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 17333ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 1734c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li class="nav-section"> 1735c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <div class="nav-section-header"> 1736c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <a href="<?cs var:toroot ?>training/keyboard-input/index.html" 1737c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main description= 1738c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main "How to specify the appearance and behaviors of soft input methods (such 1739c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main as on-screen keyboards) and how to optimize the experience with 1740c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main hardware keyboards." 1741c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main >Handling Keyboard Input</a> 1742c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </div> 1743c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <ul> 1744c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/style.html"> 1745c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Specifying the Input Method Type 1746c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 1747c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 1748c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/visibility.html"> 1749c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Handling Input Method Visibility 1750c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 1751c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 1752c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/navigation.html"> 1753c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Supporting Keyboard Navigation 1754c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 1755c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 1756c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/commands.html"> 1757c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Handling Keyboard Actions 1758c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 1759c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 1760c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </ul> 1761c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 17621dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc 17631dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <li class="nav-section"> 17641dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <div class="nav-section-header"> 17651dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <a href="<?cs var:toroot ?>training/game-controllers/index.html" 17661dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc description= 17671dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc "How to write apps that support game controllers." 17681dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc >Supporting Game Controllers</a> 17691dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </div> 17701dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <ul> 17711dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <li><a href="<?cs var:toroot ?>training/game-controllers/controller-input.html"> 17721dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc Handling Controller Actions 17731dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </a> 17741dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </li> 17751dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <li><a href="<?cs var:toroot ?>training/game-controllers/compatibility.html"> 17761dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc Supporting Controllers Across Android Versions 17771dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </a> 17781dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </li> 17791dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <li><a href="<?cs var:toroot ?>training/game-controllers/multiple-controllers.html"> 17801dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc Supporting Multiple Game Controllers 17811dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </a> 17821dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </li> 17831dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </ul> 17841dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </li> 1785c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </ul> 1786421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> <!-- end of User Input --> 178750c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 178822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 178922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 17907bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/best-background.html"> 179122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Best Practices for</span><br/> 17927bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Background Jobs 179322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 179422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 179522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 17963ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 1797f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li class="nav-section"> 1798f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <div class="nav-section-header"> 1799f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <a href="<?cs var:toroot ?>training/run-background-service/index.html" 1800f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin description= 1801f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin "How to improve UI performance and responsiveness by sending work to a 18028ac78803f59fd4fbe9e2682632791bc255d38aceScott Main Service running in the background" 18038ac78803f59fd4fbe9e2682632791bc255d38aceScott Main >Running in a Background Service</a> 1804f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </div> 1805f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <ul> 1806f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li><a href="<?cs var:toroot ?>training/run-background-service/create-service.html"> 1807f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin Creating a Background Service 1808f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </a> 1809f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 1810f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li><a href="<?cs var:toroot ?>training/run-background-service/send-request.html"> 1811f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin Sending Work Requests to the Background Service 1812f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </a> 1813f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 1814f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li><a href="<?cs var:toroot ?>training/run-background-service/report-status.html"> 1815f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin Reporting Work Status 1816f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </a> 1817f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 1818f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </ul> 1819f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 18208ac78803f59fd4fbe9e2682632791bc255d38aceScott Main 18218ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <li class="nav-section"> 18228ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <div class="nav-section-header"> 18238ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <a href="<?cs var:toroot ?>training/load-data-background/index.html" 18248ac78803f59fd4fbe9e2682632791bc255d38aceScott Main description="How to use CursorLoader to query data without 18258ac78803f59fd4fbe9e2682632791bc255d38aceScott Main affecting UI responsiveness." 18268ac78803f59fd4fbe9e2682632791bc255d38aceScott Main >Loading Data in the Background</a> 18278ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </div> 18288ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <ul> 18298ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <li><a href="<?cs var:toroot ?>training/load-data-background/setup-loader.html"> 18308ac78803f59fd4fbe9e2682632791bc255d38aceScott Main Running a Query with a CursorLoader</a> 18318ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </li> 18328ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <li><a href="<?cs var:toroot ?>training/load-data-background/handle-results.html"> 18338ac78803f59fd4fbe9e2682632791bc255d38aceScott Main Handling the Results</a> 18348ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </li> 18358ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </ul> 18368ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </li> 18373ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 18387bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li class="nav-section"> 18397bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <div class="nav-section-header"> 18407bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/scheduling/index.html" 18417bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick description="How to use repeating alarms and wake locks 18427bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick to run background jobs." 18437bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick >Managing Device Awake State</a> 18447bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </div> 18457bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <ul> 18467bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/scheduling/wakelock.html"> 18477bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Keeping the Device Awake</a> 18487bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 18497bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/scheduling/alarms.html"> 18507bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Scheduling Repeating Alarms</a> 18517bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 18527bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </ul> 18537bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 18547bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </ul> 18557bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> <!-- end of Background Jobs --> 18567bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick 1857dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong <li class="nav-section"> 1858dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong <div class="nav-section-header"> 1859dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong <a href="<?cs var:toroot ?>training/best-performance.html"> 1860dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong <span class="small">Best Practices for</span><br/> 1861dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong Performance 1862dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong </a> 1863dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong </div> 1864dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong <ul> 18657bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li> 1866a3f0e01f332ee0acc8450bf4564992f2ffe2f426Scott Main <a href="<?cs var:toroot ?>training/articles/memory.html" 1867881e7299042658ea6a5d2f1fb223fd7bef94e1c9Aleks Haecky description= 1868881e7299042658ea6a5d2f1fb223fd7bef94e1c9Aleks Haecky "How to keep your app's memory footprint small in order to improve performance 1869881e7299042658ea6a5d2f1fb223fd7bef94e1c9Aleks Haecky on a variety of mobile devices." 1870a3f0e01f332ee0acc8450bf4564992f2ffe2f426Scott Main >Managing Your App's Memory</a> 1871a3f0e01f332ee0acc8450bf4564992f2ffe2f426Scott Main </li> 1872adff7b54478a5f774165a161547cd09caeec9e2fEric Schmidt <li> 1873adff7b54478a5f774165a161547cd09caeec9e2fEric Schmidt <a href="<?cs var:toroot ?>training/articles/memory-overview.html" 1874adff7b54478a5f774165a161547cd09caeec9e2fEric Schmidt description= 1875adff7b54478a5f774165a161547cd09caeec9e2fEric Schmidt "How Android manages app process and memory allocation." 1876adff7b54478a5f774165a161547cd09caeec9e2fEric Schmidt >Overview of Android Memory Management</a> 1877adff7b54478a5f774165a161547cd09caeec9e2fEric Schmidt </li> 1878a3f0e01f332ee0acc8450bf4564992f2ffe2f426Scott Main <li> 18797bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/articles/perf-tips.html" 18807bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick description= 18817bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick "How to optimize your app's performance in various ways to improve its 18827bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick responsiveness and battery efficiency." 18837bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick >Performance Tips</a> 18847bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 18857bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li class="nav-section"> 18867bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <div class="nav-section-header"> 18877bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/improving-layouts/index.html" 18887bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick description= 18897bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick "How to identify problems in your app's layout performance and improve the UI 18907bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick responsiveness." 18917bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick >Improving Layout Performance</a> 18927bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </div> 18937bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <ul> 18947bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/improving-layouts/optimizing-layout.html"> 18957bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Optimizing Layout Hierarchies 18967bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 18977bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 18987bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/improving-layouts/reusing-layouts.html"> 18997bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Re-using Layouts with <include/> 19007bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 19017bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 19027bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/improving-layouts/loading-ondemand.html"> 19037bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Loading Views On Demand 19047bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 19057bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 19067bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/improving-layouts/smooth-scrolling.html"> 19077bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Making ListView Scrolling Smooth 19087bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 19097bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 19107bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </ul> 19117bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 191228be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez 191350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 191422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 19155b50239c33176e0b321d2ee32a589e0583767e02Scott Main <a href="<?cs var:toroot ?>training/monitoring-device-state/index.html" 1916b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="优化电池使用时间" 191722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="電池消費量の最適化" 191822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main es-lang="Cómo optimizar la duración de la batería" 191922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 192022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to minimize the amount of power your app requires by adapting to current 192122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main power conditions and performing power-hungry tasks at proper intervals." 1922dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong >Optimizing Battery Life 1923dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong </a> 192422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 1925df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas <ul> 192628be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez 192728be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez <li class="nav-section"> 192828be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez <div class="nav-section-header"> 1929855738ab865d4067e885694d386459280af2dcaaDoug Kramer <a href="<?cs var:toroot ?>training/performance/battery/network/index.html"> 193028be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Reducing Network Battery Drain 193128be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 193228be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </div> 193328be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez <ul> 1934855738ab865d4067e885694d386459280af2dcaaDoug Kramer <li><a href="<?cs var:toroot ?>training/performance/battery/network/gather-data.html"> 193528be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Collecting Network Traffic Data 193628be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 193728be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> 1938855738ab865d4067e885694d386459280af2dcaaDoug Kramer <li><a href="<?cs var:toroot ?>training/performance/battery/network/analyze-data.html"> 193928be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Analyzing Network Traffic Data 194028be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 194128be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> 1942855738ab865d4067e885694d386459280af2dcaaDoug Kramer <li><a href="<?cs var:toroot ?>training/performance/battery/network/action-user-traffic.html"> 194328be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Optimizing User-Initiated Network Use 194428be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 194528be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> 1946855738ab865d4067e885694d386459280af2dcaaDoug Kramer <li><a href="<?cs var:toroot ?>training/performance/battery/network/action-app-traffic.html"> 194728be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Optimizing App-Initiated Network Use 194828be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 194928be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> 1950855738ab865d4067e885694d386459280af2dcaaDoug Kramer <li><a href="<?cs var:toroot ?>training/performance/battery/network/action-server-traffic.html"> 195128be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Optimizing Server-Initiated Network Use 195228be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 195328be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> 1954855738ab865d4067e885694d386459280af2dcaaDoug Kramer <li><a href="<?cs var:toroot ?>training/performance/battery/network/action-any-traffic.html"> 195528be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Optimizing General Network Use 195628be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 195728be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> 195828be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </ul> 195928be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> <!-- End of Reducing Network Battery Drain --> 196028be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez 196128be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez <li><a href="<?cs var:toroot ?>training/monitoring-device-state/doze-standby.html" 1962c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong >Optimizing for Doze and App Standby</a> 1963c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong </li> 19645b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/monitoring-device-state/battery-monitoring.html" 1965b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="监控电池电量和充电状态" 196622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="電池残量と充電状態の監視" 1967f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo controlar el nivel de batería y el estado de carga" 196822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Monitoring the Battery Level and Charging State</a> 1969df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 19705b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/monitoring-device-state/docking-monitoring.html" 1971b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="确定和监控基座对接状态和类型" 197222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="ホルダーの装着状態とタイプの特定と監視" 1973f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo determinar y controlar el tipo de conector y el estado de la conexión" 197422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Determining and Monitoring the Docking State and Type</a> 197522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 19765b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/monitoring-device-state/connectivity-monitoring.html" 1977b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="确定和监控网络连接状态" 197822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="接続状態の特定と監視" 1979f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo determinar y controlar el estado de la conectividad" 198022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Determining and Monitoring the Connectivity Status</a> 198122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 19825b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/monitoring-device-state/manifest-receivers.html" 1983b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="根据需要操作广播接收器" 198422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="オンデマンドでのブロードキャスト レシーバ操作" 1985f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo manipular los receptores de emisión bajo demanda" 198622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Manipulating Broadcast Receivers On Demand</a> 1987df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 1988df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </ul> 1989df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 19908dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li class="nav-section"> 19918dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <div class="nav-section-header"> 19928dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <a href="<?cs var:toroot ?>training/multiple-threads/index.html" 19938dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin description= 19948dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin "How to improve the performance and scalability of long-running operations by 19958dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin dispatching work to multiple threads."> 19968dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Sending Operations to Multiple Threads</a> 19978dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </div> 19988dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <ul> 19998dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/define-runnable.html"> 20008dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Specifying the Code to Run on a Thread 20018dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 20028dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 20038dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/create-threadpool.html"> 20048dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Creating a Manager for Multiple Threads 20058dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 20068dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 20078dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/run-code.html"> 20088dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Running Code on a Thread Pool Thread 20098dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 20108dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 20118dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/communicate-ui.html"> 20128dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Communicating with the UI Thread 20138dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 20148dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 2015df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </ul> 2016df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 201722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 201833e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/perf-anr.html" 201922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 202022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to keep your app responsive to user interaction so the UI does not lock-up and 202122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main display an "Application Not Responding" dialog." 202222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Keeping Your App Responsive</a> 202322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 202422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 202533e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/perf-jni.html" 202622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 202722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to efficiently use the Java Native Interface with the Android NDK." 202822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >JNI Tips</a> 202922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 2030d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty <li> 2031d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty <a href="<?cs var:toroot ?>training/articles/smp.html" 2032d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty description= 2033d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty "Tips for coding Android apps on symmetric multiprocessor systems." 2034d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty >SMP Primer for Android</a> 2035d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty </li> 203622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 203722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> <!-- end of Performance --> 20383ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 203922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 204022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 204122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/best-security.html"> 204222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Best Practices for</span><br/> 204322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Security & Privacy 204422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 204522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 204622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 204722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 204833e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/security-tips.html" 204922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 205022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to perform various tasks and keep your app's data and your user's data secure." 205122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Security Tips</a> 205222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 205300158363b47d916d159d2f3a0e1152783fd66a9cScott Main 205400158363b47d916d159d2f3a0e1152783fd66a9cScott Main <li> 205500158363b47d916d159d2f3a0e1152783fd66a9cScott Main <a href="<?cs var:toroot ?>training/articles/security-ssl.html" 205600158363b47d916d159d2f3a0e1152783fd66a9cScott Main description= 205700158363b47d916d159d2f3a0e1152783fd66a9cScott Main "How to ensure that your app is secure when performing network transactions." 205800158363b47d916d159d2f3a0e1152783fd66a9cScott Main >Security with HTTPS and SSL</a> 205900158363b47d916d159d2f3a0e1152783fd66a9cScott Main </li> 20603ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 2061897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay <li> 2062897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay <a href="<?cs var:toroot ?>training/articles/security-gms-provider.html" 2063897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay description= 2064897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay "How to use and update Google Play services security provider, to 2065897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay protect against SSL exploits." 2066897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay >Updating Your Security Provider to Protect Against SSL Exploits</a> 2067897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay </li> 2068897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay 20696b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li> 20706b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/safetynet/index.html" 20716b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez description= 20726b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez "How to use the SafetyNet service to analyze a device where your app is running 20736b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez and get information about its compatibility with your app." 20746b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez >Checking Device Compatibility with SafetyNet</a> 20756b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 20766b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez 20776b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li> 2078e1277eb819b9eee3612e2cedba55d7cfb5e9c5e7Billy Lamberta <a href="<?cs var:toroot ?>work/device-management-policy.html" 20796b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez description="How to create an application that enforces security policies on devices." 20806b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez >Enhancing Security with Device Management Policies</a> 2081e577d72a3be20e589437271f0e5ca474fab38124Roman Nurik </li> 208222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 208322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 208422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End security and user info --> 20854c4a47f42101a57ab8ff05a8e035d97582c3368aScott Main 20862ef3952d8e62b71baca176b3e17315a37facd34aquddusc <li class="nav-section"> 20872ef3952d8e62b71baca176b3e17315a37facd34aquddusc <div class="nav-section-header"> 20886404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <a href="<?cs var:toroot ?>training/best-permissions-ids.html"> 20896404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <span class="small">Best Practices for</span><br/> 20906404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty Permissions & Identifiers 20916404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </a> 20926404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </div> 20936404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <ul> 20946404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <li> 20956404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <a href="<?cs var:toroot ?>training/articles/user-data-overview.html" 20966404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty description= 20976404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty "Overview of app permissions on Android and how they affect your users." 20981fea1ec8292a70df958c7f42595bf3f75cdef9c6Dirk Dougherty >Permissions and User Data</a> 20996404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </li> 21006404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <li> 21016404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <a href="<?cs var:toroot ?>training/articles/user-data-permissions.html" 21026404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty description= 21036404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty "How to manage permissions the right way for users." 21046404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty >Best Practices for App Permissions</a> 21056404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </li> 21066404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <li> 21076404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <a href="<?cs var:toroot ?>training/articles/user-data-ids.html" 21086404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty description= 21096404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty "Unique identifiers available and how to choose the right one for your use case." 21106404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty >Best Practices for Unique Identifiers</a> 21116404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </li> 21126404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </ul> 21136404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </li> 21146404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <!-- End Permissions and identifiers --> 21156404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty 21166404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <li class="nav-section"> 21176404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <div class="nav-section-header"> 2118e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <a href="<?cs var:toroot ?>training/testing/index.html"> 21192ef3952d8e62b71baca176b3e17315a37facd34aquddusc <span class="small">Best Practices for</span><br/> 21202ef3952d8e62b71baca176b3e17315a37facd34aquddusc Testing 21212ef3952d8e62b71baca176b3e17315a37facd34aquddusc </a> 21222ef3952d8e62b71baca176b3e17315a37facd34aquddusc </div> 21232ef3952d8e62b71baca176b3e17315a37facd34aquddusc <ul> 2124e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <li> 2125e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <a href="<?cs var:toroot ?>training/testing/start/index.html" 2126e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong description="How to get started with testing your Android applications."> 2127e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong Getting Started with Testing 2128e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong </a> 2129e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong </li> 21302ef3952d8e62b71baca176b3e17315a37facd34aquddusc <li class="nav-section"> 2131e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <div class="nav-section-header"><a href="<?cs var:toroot ?>training/testing/unit-testing/index.html" 2132e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong description="How to build effective unit tests for Android apps."> 2133e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong Building Effective Unit Tests 21342ef3952d8e62b71baca176b3e17315a37facd34aquddusc </a></div> 21352ef3952d8e62b71baca176b3e17315a37facd34aquddusc <ul> 2136e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <li><a href="<?cs var:toroot ?>training/testing/unit-testing/local-unit-tests.html"> 2137e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <span class="en">Building Local Unit Tests</span> 2138e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong </a> 21392ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 2140e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <li><a href="<?cs var:toroot ?>training/testing/unit-testing/instrumented-unit-tests.html"> 2141e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <span class="en">Building Instrumented Unit Tests</span> 2142e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong </a> 21432ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 21442ef3952d8e62b71baca176b3e17315a37facd34aquddusc </ul> 21452ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 21467639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <li class="nav-section"> 21477639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <div class="nav-section-header"><a href="<?cs var:toroot ?>training/testing/ui-testing/index.html" 21487639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong description="How to automate your user interface tests for Android apps."> 21497639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong Automating UI Tests 21507639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </a></div> 21517639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <ul> 21527639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <li><a href="<?cs var:toroot ?>training/testing/ui-testing/espresso-testing.html"> 21537639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <span class="en">Testing UI for a Single App</span> 21547639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </a> 21557639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </li> 21567639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <li><a href="<?cs var:toroot ?>training/testing/ui-testing/uiautomator-testing.html"> 21577639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <span class="en">Testing UI for Multiple Apps</span> 21587639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </a> 21597639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </li> 21607639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </ul> 21617639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </li> 21624bc762a919ead1ad02d4ee065a95e4ecf8a4e657Quddus Chong <li class="nav-section"> 2163e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <div class="nav-section-header"><a href="<?cs var:toroot ?>training/testing/integration-testing/index.html" 2164e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong description="How to build effective integration tests for Android apps."> 2165e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong Testing App Component Integrations 21664bc762a919ead1ad02d4ee065a95e4ecf8a4e657Quddus Chong </a></div> 21674bc762a919ead1ad02d4ee065a95e4ecf8a4e657Quddus Chong <ul> 2168e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <li><a href="<?cs var:toroot ?>training/testing/integration-testing/service-testing.html"> 2169e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <span class="en">Testing Your Service</span></a></li> 2170e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <li><a href="<?cs var:toroot ?>training/testing/integration-testing/content-provider-testing.html"> 2171e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <span class="en">Testing Your Content Provider</span></a></li> 21724bc762a919ead1ad02d4ee065a95e4ecf8a4e657Quddus Chong </ul> 21734bc762a919ead1ad02d4ee065a95e4ecf8a4e657Quddus Chong </li> 2174566b54126c5132a2e8442675051becab09a31543Quddus Chong <li><a href="<?cs var:toroot ?>training/testing/performance.html" 2175e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong description="How to automate UI performance testing.">Testing Display Performance</a> 2176d61e5537e08f4257e87e2841c58e4fb939c7782dQuddus Chong </li> 2177d61e5537e08f4257e87e2841c58e4fb939c7782dQuddus Chong </ul> 21782ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 21792ef3952d8e62b71baca176b3e17315a37facd34aquddusc <!-- End best Testing --> 218050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 218122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 218222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 218322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/distribute.html"> 218422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Using Google Play to</span><br/> 218522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Distribute & Monetize 218622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 218722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 218822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 2189768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li class="nav-section"> 2190768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <div class="nav-section-header"><a href="<?cs var:toroot ?>training/in-app-billing/index.html" 2191768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong description="How to sell in-app products from your application using In-app Billing."> 2192768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong Selling In-app Products 2193768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a></div> 2194768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <ul> 2195768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/preparing-iab-app.html"> 2196768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Preparing Your App</span> 2197768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 2198768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 2199768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/list-iab-products.html"> 2200768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Establishing Products for Sale</span> 2201768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 2202768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 2203768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/purchase-iab-products.html"> 2204768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Purchasing Products</span> 2205768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 2206768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 2207768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/test-iab-app.html"> 2208768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Testing Your App</span> 2209768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 2210768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 2211768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </ul> 2212768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 22133ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 2214969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas <li class="nav-section"> 221522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 221622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/multiple-apks/index.html" 221722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 221822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to publish your app on Google Play with separate APKs that target 221922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main different devices, while using a single app listing." 222022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Maintaining Multiple APKs</a> 222122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 2222969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas <ul> 222322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/api.html"> 222422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs for Different API Levels 2225969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </a> 2226969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 222722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/screensize.html"> 222822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs for Different Screen Sizes 2229969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </a> 2230969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 223122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/texture.html"> 223222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs for Different GL Textures 223322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 223422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 223522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/multiple.html"> 223622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs with 2+ Dimensions 2237969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </a> 2238969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 2239969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </ul> 2240969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 224122558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty </ul> 224222558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty </li> 224322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End best Publishing --> 224422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 224550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main</ul><!-- nav --> 224622558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty<script type="text/javascript"> 224722558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty<!-- 224822558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty buildToggleLists(); 224922558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty changeNavLang(getLangPref()); 225022558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty//--> 225179cb98c6ced6aaf1ea102e4b927cfb0b99bbf67bAndrew Solovay</script> 2252