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> 652773740ed79075e6daffaea0c62857348ab54d93eAlexander Lucas 65350e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 65422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 655787012b78a6961e51792501b36ba79c6eb931cf2David Friedman <a href="<?cs var:toroot ?>training/backup/index.html" 65622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 65722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to sync and back up app and user data to remote web services in the 65822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main cloud and how to restore the data back to multiple devices." 65922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Syncing to the Cloud</a> 660957f716cf1686145ba4c06ca8669eaa2e22f54e8Robert Ly </div> 661055e3f25ba85d7aefcddaa0aa2bb0589719ec80cRobert Ly <ul> 662787012b78a6961e51792501b36ba79c6eb931cf2David Friedman <li><a href="<?cs var:toroot ?>training/backup/autosyncapi.html"> 66389c44d205d13641518aa8b705127125f483074afDavid Friedman Configuring Auto Backup 664787012b78a6961e51792501b36ba79c6eb931cf2David Friedman </a> 665787012b78a6961e51792501b36ba79c6eb931cf2David Friedman </li> 666787012b78a6961e51792501b36ba79c6eb931cf2David Friedman <li><a href="<?cs var:toroot ?>training/backup/backupapi.html"> 66722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using the Backup API 668055e3f25ba85d7aefcddaa0aa2bb0589719ec80cRobert Ly </a> 669055e3f25ba85d7aefcddaa0aa2bb0589719ec80cRobert Ly </li> 6707736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 67171baac13580dd6f16bf5308eb1571bcb014676fckmccormick <li><a href="<?cs var:toroot ?>training/cloudsave/conflict-res.html" 67271baac13580dd6f16bf5308eb1571bcb014676fckmccormick description= 67371baac13580dd6f16bf5308eb1571bcb014676fckmccormick "How to design a robust conflict resolution strategy for apps that save data to the cloud." 67471baac13580dd6f16bf5308eb1571bcb014676fckmccormick >Resolving Cloud Save Conflicts 67571baac13580dd6f16bf5308eb1571bcb014676fckmccormick </a> 6762e1c7b7495f2317ba30ae809b4964fdafcf504ceJoe Malin </li> 6777736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 678e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li class="nav-section"> 679e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <div class="nav-section-header"> 680e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/index.html" 681e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin description="How to transfer data between the cloud and the device using the Android 682e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin sync adapter framework" 683e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin >Transferring Data Using Sync Adapters</a> 684e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </div> 685e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <ul> 686e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li> 687e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/creating-authenticator.html"> 688e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin Creating a Stub Authenticator 689e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </a> 690e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 691e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li> 692e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/creating-stub-provider.html"> 693e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin Creating a Stub Content Provider 694e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </a> 695e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 696e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li> 697e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/creating-sync-adapter.html"> 698e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin Creating a Sync Adapter 699e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </a> 700e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 701e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <li> 702e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin <a href="<?cs var:toroot ?>training/sync-adapters/running-sync-adapter.html"> 703e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin Running a Sync Adapter 704e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </a> 705e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 706e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </ul> 707e9df511e2018eb6a296408d09e355c6f2c77ae59Joe Malin </li> 7081a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <li class="nav-section"> 7091a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <div class="nav-section-header"> 7101a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <a href="<?cs var:toroot ?>training/volley/index.html" 7111a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick description="How to perform fast, scalable UI operations over the network using Volley" 7121a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick >Transmitting Network Data Using Volley</a> 7131a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </div> 7141a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <ul> 7151a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <li> 7161a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <a href="<?cs var:toroot ?>training/volley/simple.html"> 7171a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick Sending a Simple Request 7181a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </a> 7191a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </li> 7201a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <li> 7211a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <a href="<?cs var:toroot ?>training/volley/requestqueue.html"> 7221a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick Setting Up a RequestQueue 7231a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </a> 7241a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </li> 7251a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <li> 7261a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <a href="<?cs var:toroot ?>training/volley/request.html"> 7271a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick Making a Standard Request 7281a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </a> 7291a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </li> 7301a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <li> 7311a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick <a href="<?cs var:toroot ?>training/volley/request-custom.html"> 7321a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick Implementing a Custom Request 7331a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </a> 7341a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </li> 7351a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </ul> 7361a89ae4cdcf8d467e5d081234ec66a097045f772Katie McCormick </li> 73722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 73822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 73922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End connectivity and cloud --> 7403ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 7413ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 7426b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li class="nav-section"> 7436b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <div class="nav-section-header"> 7446b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/building-location.html"> 7456b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <span class="small">Building Apps with</span><br/> 7466b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Location & Maps 7476b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7486b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </div> 7496b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <ul> 7506b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li class="nav-section"> 7516b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <div class="nav-section-header"> 7526b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/location/index.html" 7536b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez description="How to add location-aware features to your app by getting the user's current location."> 7546b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Making Your App Location-Aware 7556b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7566b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </div> 7576b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <ul> 7586b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li> 7596b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/location/retrieve-current.html"> 7606b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Getting the Last Known Location 7616b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7626b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7636b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li> 764825261e0168413bd94c0308470b1566868f42872William French <a href="<?cs var:toroot ?>training/location/change-location-settings.html"> 765825261e0168413bd94c0308470b1566868f42872William French Changing Location Settings 766825261e0168413bd94c0308470b1566868f42872William French </a> 767825261e0168413bd94c0308470b1566868f42872William French </li> 768825261e0168413bd94c0308470b1566868f42872William French <li> 7696b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/location/receive-location-updates.html"> 7706b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Receiving Location Updates 7716b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7726b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7736b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li> 7746b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/location/display-address.html"> 7756b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Displaying a Location Address 7766b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7776b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7786b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li><a href="<?cs var:toroot ?>training/location/geofencing.html"> 7796b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Creating and Monitoring Geofences 7806b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7816b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7826b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </ul> 7836b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7846b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li class="nav-section"> 7856b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/maps/index.html" 7866b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez description="How to add maps and mapping information to your app."> 7876b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Adding Maps 7886b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 7896b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7906b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </ul> 7916b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 7926b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <!-- End location and maps --> 7936b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez 794580f0146535e7daed83aef721f505270f7b040e1Scott Main 79522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 79622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 79722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/building-userinfo.html"> 79822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Building Apps with</span><br/> 79973ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman User Info & Sign-In 80022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 80122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 80222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 803421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li class="nav-section"> 804421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <div class="nav-section-header"> 805421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/index.html" 806421435d2bede2788b74b07b1bab893fef98047c5Joe Malin description= 807421435d2bede2788b74b07b1bab893fef98047c5Joe Malin "How to use Android's central address book, the Contacts Provider, to 808421435d2bede2788b74b07b1bab893fef98047c5Joe Malin display contacts and their details and modify contact information."> 809421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Accessing Contacts Data</a> 810421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </div> 811421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <ul> 812421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 813421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-names.html"> 814421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Retrieving a List of Contacts 815421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 816421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 817421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 818421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-details.html"> 819421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Retrieving Details for a Contact 820421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 821421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 822421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 823421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/modify-data.html"> 824421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Modifying Contacts Using Intents 825421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 826421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> 827421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <li> 828421435d2bede2788b74b07b1bab893fef98047c5Joe Malin <a href="<?cs var:toroot ?>training/contacts-provider/display-contact-badge.html"> 829421435d2bede2788b74b07b1bab893fef98047c5Joe Malin Displaying the Quick Contact Badge 830421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </a> 8312956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </li> 8322956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </ul> 8332956f2fd2ce7eba5abac30fa1c0a2c514edcc787Scott Main </li> 83450e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 8356b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/sign-in/index.html" 8366b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez description="How to add user sign-in functionality to your app."> 8376b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez Adding Sign-In 8386b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </a> 8397736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 84022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 84122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 8426b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <!-- End user info and sign-in --> 8433ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 8443ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 8452728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li class="nav-section"> 8462728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <div class="nav-section-header"> 8472728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/building-wearables.html"> 8482728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <span class="small">Building Apps for</span><br/> 8492728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly Wearables 8502728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </a> 8512728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </div> 8522728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <ul> 8532728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li class="nav-section"> 8542728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <div class="nav-section-header"> 8552728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/notifications/index.html" 8562728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly description="How to build handheld notifications that are synced to 8572728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly and look great on wearables." 8582728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly >Adding Wearable Features to Notifications</a> 8592728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </div> 8602728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <ul> 8612728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8622728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/notifications/creating.html">Creating a Notification</a> 8632728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8642728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8652728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/notifications/voice-input.html">Receiving Voice Input in a Notification</a> 8662728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8672728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8682728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/notifications/pages.html">Adding Pages to a Notification</a> 8692728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8702728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8712728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/notifications/stacks.html">Stacking Notifications</a> 8722728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8732728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </ul> 8742728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8752728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly 8762728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li class="nav-section"> 8772728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <div class="nav-section-header"> 8782728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/apps/index.html" 8792728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly description="How to build apps that run directly on wearables." 8802728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly >Creating Wearable Apps</a> 8812728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </div> 8822728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <ul> 8832728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8842728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/apps/creating.html">Creating and Running a Wearable App</a> 8852728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8862728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8872728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/apps/layouts.html">Creating Custom Layouts</a> 8882728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8892728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8908f8e87be3cbd30496b8ec66c6e8aee83d1cfdc56Luan Nguyen <a href="<?cs var:toroot ?>training/wearables/apps/always-on.html">Keeping Your App Visible</a> 8918f8e87be3cbd30496b8ec66c6e8aee83d1cfdc56Luan Nguyen </li> 8928f8e87be3cbd30496b8ec66c6e8aee83d1cfdc56Luan Nguyen <li> 8932728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/apps/voice.html">Adding Voice Capabilities</a> 8942728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8952728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8962728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/apps/packaging.html">Packaging Wearable Apps</a> 8972728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 8982728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 8992728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/apps/bt-debugging.html">Debugging over Bluetooth</a> 9002728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9012728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </ul> 9022728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9032728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly 9042728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li class="nav-section"> 9052728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <div class="nav-section-header"> 906bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/index.html" 907bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera description="How to create custom user interfaces for wearable apps." 908bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera >Creating Custom UIs</a> 909bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </div> 910bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <ul> 911bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li> 912bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/layouts.html">Defining Layouts</a> 913bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 914bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li> 915bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/cards.html">Creating Cards</a> 916bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 917bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li> 918bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/lists.html">Creating Lists</a> 919bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 920bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li> 921bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/2d-picker.html">Creating a 2D Picker</a> 922bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 923bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li> 924bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/confirm.html">Showing Confirmations</a> 925bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 926bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li> 927bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <a href="<?cs var:toroot ?>training/wearables/ui/exit.html">Exiting Full-Screen Activities</a> 928bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 929bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </ul> 930bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera </li> 931bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera 932bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <li class="nav-section"> 933bab2bf78ef21427cf553cd71837bafe6b5f24ecbRicardo Cervera <div class="nav-section-header"> 9342728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/data-layer/index.html" 9352728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly description="How to sync data between handhelds and wearables." 9362728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly >Sending and Syncing Data</a> 9372728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </div> 9382728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <ul> 9392728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 9402728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/data-layer/accessing.html">Accessing the Wearable Data Layer</a> 9412728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9422728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 9432728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/data-layer/data-items.html">Syncing Data Items</a> 9442728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9452728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 9462728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/data-layer/assets.html">Transferring Assets</a> 9472728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9482728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 9492728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/data-layer/messages.html">Sending and Receiving Messages</a> 9502728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9512728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <li> 9522728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <a href="<?cs var:toroot ?>training/wearables/data-layer/events.html">Handling Data Layer Events</a> 9532728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9542728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </ul> 9552728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 9567db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera 9577db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li class="nav-section"> 9587db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <div class="nav-section-header"> 9597db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/index.html" 960ad69082b501dc9d885e8cd612e65a04cb47575deRicardo Cervera description="How to create watch faces for wearables." 961ad69082b501dc9d885e8cd612e65a04cb47575deRicardo Cervera >Creating Watch Faces</a> 9627db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </div> 9637db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <ul> 9647db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 9657db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/designing.html">Designing Watch Faces</a> 9667db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9677db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 9687db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/service.html">Building a Watch Face Service</a> 9697db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9707db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 9717db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/drawing.html">Drawing Watch Faces</a> 9727db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9737db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 9747db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/information.html">Showing Information in Watch Faces</a> 9757db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9767db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 977e6705bf25d00048ee7b9cc4b6bf9699c17d53306David Friedman <a href="<?cs var:toroot ?>training/wearables/watch-faces/interacting.html">Creating Interactive Watch Faces</a> 978e6705bf25d00048ee7b9cc4b6bf9699c17d53306David Friedman </li> 979e6705bf25d00048ee7b9cc4b6bf9699c17d53306David Friedman <li> 9807db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/configuration.html">Providing Configuration Activities</a> 9817db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9827db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 9837db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/issues.html">Addressing Common Issues</a> 9847db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9857db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <li> 9867db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera <a href="<?cs var:toroot ?>training/wearables/watch-faces/performance.html">Optimizing Performance and Battery Life</a> 9877db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9887db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </ul> 9897db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera </li> 9907db29796849bf34f5240c05799b9c1b2270805e0Ricardo Cervera 9915aad2c9fb0e04403406411ba3e21bd3965e50df5Luan Nguyen <li> 9925aad2c9fb0e04403406411ba3e21bd3965e50df5Luan Nguyen <a href="<?cs var:toroot ?>training/articles/wear-location-detection.html" 9935aad2c9fb0e04403406411ba3e21bd3965e50df5Luan Nguyen description= 9945aad2c9fb0e04403406411ba3e21bd3965e50df5Luan Nguyen "How to detect location data on Android Wear devices." 9955aad2c9fb0e04403406411ba3e21bd3965e50df5Luan Nguyen >Detecting Location</a> 9965aad2c9fb0e04403406411ba3e21bd3965e50df5Luan Nguyen </li> 9979125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman 9989125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman <li> 9999125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman <a href="<?cs var:toroot ?>training/articles/wear-permissions.html" 10009125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman description= 10019125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman "How to request permissions on Android Wear devices." 10029125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman >Requesting Permissions</a> 10039125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman </li> 10049125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman 10059125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman <li> 10069125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman <a href="<?cs var:toroot ?>training/wearables/wearable-sounds.html" 10079125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman description= 10089125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman "How to use the speaker on Android Wear devices." 10099125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman >Using the Speaker</a> 10109125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman </li> 10119125eba0d36be4509d47fae9cdd83ce5b5d84184David Friedman 10122728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </ul> 10132728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly </li> 10142728c2a93abd74ef19e550f3530ee70ea41424b3Robert Ly <!-- End Building for wearables --> 101522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 1016414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera 1017d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <!-- Start: Building for TV --> 1018d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <li class="nav-section"> 1019d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <div class="nav-section-header"> 1020d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <a href="<?cs var:toroot ?>training/tv/index.html"> 1021d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <span class="small">Building Apps for</span><br/> 1022d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez TV 1023d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </a> 1024d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </div> 1025d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <ul> 1026d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez 1027d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <li class="nav-section"> 1028d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <div class="nav-section-header"> 1029e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez 1030d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <a href="<?cs var:toroot ?>training/tv/start/index.html" 1031827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="TV アプリのビルド" 1032d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez description="How to start building TV apps or extend your existing app to run on TV 1033d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez devices."> 1034d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez Building TV Apps</a> 1035d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </div> 1036d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <ul> 1037d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <li> 1038827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/start/start.html" 1039827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="TV アプリのビルドを開始する"> 1040d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez Getting Started with TV Apps</a> 1041d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </li> 1042d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <li> 1043827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/start/hardware.html" 1044827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="TV ハードウェアを処理する"> 1045d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez Handling TV Hardware</a> 1046d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </li> 1047d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <li> 1048827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/start/layouts.html" 1049827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="TV 向けレイアウトをビルドする"> 1050d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez Building TV Layouts</a> 1051d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </li> 1052d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <li> 1053827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/start/navigation.html" 1054827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="TV 用のナビゲーションを作成する"> 1055d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez Creating TV Navigation</a> 1056d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </li> 1057d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </ul> 1058d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </li> 1059d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez 1060f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez <li class="nav-section"> 1061f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez <div class="nav-section-header"> 1062f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez <a href="<?cs var:toroot ?>training/tv/playback/index.html" 106376db15a8c9a644bdff854763a922e1e3fd525e9cJoe Fernandez ja-lang="TV 再生アプリのビルド" 1064f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez description="How to build apps that provide media catalogs and play content."> 1065f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez Building TV Playback Apps</a> 1066f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez </div> 1067f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez <ul> 1068f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez <li> 1069827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/playback/browse.html" 1070827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="カタログ ブラウザを作成する"> 1071f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez Creating a Catalog Browser</a> 1072f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez </li> 1073f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez <li> 1074da0c5de5faccd7ceca419f0178a2d4a51732e3c7Scott Rowe <a href="<?cs var:toroot ?>training/tv/playback/card.html"> 1075da0c5de5faccd7ceca419f0178a2d4a51732e3c7Scott Rowe Providing a Card View</a> 1076da0c5de5faccd7ceca419f0178a2d4a51732e3c7Scott Rowe </li> 1077da0c5de5faccd7ceca419f0178a2d4a51732e3c7Scott Rowe <li> 1078827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/playback/details.html" 1079827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="詳細ビューをビルドする"> 1080f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez Building a Details View</a> 1081f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez </li> 10826bd081ca8a555fd71fbe856374b8efe68ede6144Scott Rowe <li> 1083827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman <a href="<?cs var:toroot ?>training/tv/playback/now-playing.html" 1084827cc88a338967fe778fe96bfaec80091da0f6cdDavid Friedman ja-lang="再生中カードを表示する"> 10856bd081ca8a555fd71fbe856374b8efe68ede6144Scott Rowe Displaying a Now Playing Card</a> 10866bd081ca8a555fd71fbe856374b8efe68ede6144Scott Rowe </li> 1087bfc8636dfca82470fb67720a4ac09cd5e58f2422Daniel Yu <li> 1088eefe46cd5a57e24df0cb5cd6fd195e7dcd806581Daniel Yu <a href="<?cs var:toroot ?>training/tv/playback/guided-step.html"> 1089eefe46cd5a57e24df0cb5cd6fd195e7dcd806581Daniel Yu Adding a Guided Step</a> 1090eefe46cd5a57e24df0cb5cd6fd195e7dcd806581Daniel Yu </li> 1091eefe46cd5a57e24df0cb5cd6fd195e7dcd806581Daniel Yu <li> 1092bfc8636dfca82470fb67720a4ac09cd5e58f2422Daniel Yu <a href="<?cs var:toroot ?>training/tv/playback/options.html"> 1093bfc8636dfca82470fb67720a4ac09cd5e58f2422Daniel Yu Enabling Background Playback</a> 1094bfc8636dfca82470fb67720a4ac09cd5e58f2422Daniel Yu </li> 1095f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez </ul> 1096f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez </li> 1097f666355b2d9dbffffa640aff7731a8ba8309eaaaJoe Fernandez 1098e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <li class="nav-section"> 1099e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <div class="nav-section-header"> 1100e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <a href="<?cs var:toroot ?>training/tv/discovery/index.html" 11017213656f986f5713c46ce5e86f8b8f569640275bJoe Fernandez description="How to help users discover content from your app."> 1102e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez Helping Users Find Content on TV</a> 1103e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez </div> 1104e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <ul> 1105e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <li> 1106e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <a href="<?cs var:toroot ?>training/tv/discovery/recommendations.html"> 1107e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez Recommending TV Content</a> 1108e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez </li> 1109e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <li> 1110e2b44f86b9ff32cc5fec04c10d09d639fd1f45f2Scott Rowe <a href="<?cs var:toroot ?>training/tv/discovery/searchable.html"> 1111e2b44f86b9ff32cc5fec04c10d09d639fd1f45f2Scott Rowe Making TV Apps Searchable</a> 1112e2b44f86b9ff32cc5fec04c10d09d639fd1f45f2Scott Rowe <li> 1113e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez <a href="<?cs var:toroot ?>training/tv/discovery/in-app-search.html"> 1114e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez Searching within TV Apps</a> 1115e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez </li> 1116e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez </ul> 1117e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez </li> 1118e6b9abb3ad06d32e76a07e733e0a6554479fbfa4Joe Fernandez 111915edcda56ba12ad04a286f4d07f2b6fe0b1c5e38Joe Fernandez <li> 112015edcda56ba12ad04a286f4d07f2b6fe0b1c5e38Joe Fernandez <a href="<?cs var:toroot ?>training/tv/games/index.html" 112115edcda56ba12ad04a286f4d07f2b6fe0b1c5e38Joe Fernandez description="How to build games for TV."> 112215edcda56ba12ad04a286f4d07f2b6fe0b1c5e38Joe Fernandez Building TV Games</a> 112315edcda56ba12ad04a286f4d07f2b6fe0b1c5e38Joe Fernandez </li> 112415edcda56ba12ad04a286f4d07f2b6fe0b1c5e38Joe Fernandez 1125ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <li class="nav-section"> 1126ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <div class="nav-section-header"> 1127ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <a href="<?cs var:toroot ?>training/tv/tif/index.html" 1128513cf16d5e12ea4f2bca88d1c26ed21ae88fc9c9Quddus Chong description="How to build channels for TV."> 1129513cf16d5e12ea4f2bca88d1c26ed21ae88fc9c9Quddus Chong Building TV Channels</a> 1130ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe </div> 1131ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <ul> 1132ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <li> 1133ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <a href="<?cs var:toroot ?>training/tv/tif/tvinput.html"> 1134ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe Developing a TV Input Service</a> 1135ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <li> 1136ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <a href="<?cs var:toroot ?>training/tv/tif/channel.html"> 1137ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe Working with Channel Data</a> 1138ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe </li> 1139ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <li> 1140ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe <a href="<?cs var:toroot ?>training/tv/tif/ui.html"> 1141ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe Managing User Interaction</a> 1142ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe </li> 1143ab8c34ffc406b654aff6503da987790aabe0852eScott Rowe </ul> 1144bab257453bdc0c8b7f11de88dd7a8f8fa202803fAndrew Solovay </li> 11457515d188ddc6f5b582080b0e712ef9d003c6b85cScott Rowe 11467515d188ddc6f5b582080b0e712ef9d003c6b85cScott Rowe <li> 11477515d188ddc6f5b582080b0e712ef9d003c6b85cScott Rowe <a href="<?cs var:toroot ?>training/tv/publishing/checklist.html" 11487515d188ddc6f5b582080b0e712ef9d003c6b85cScott Rowe description="An itemized list of requirements for TV apps."> 11497515d188ddc6f5b582080b0e712ef9d003c6b85cScott Rowe TV Apps Checklist</a> 11507515d188ddc6f5b582080b0e712ef9d003c6b85cScott Rowe </li> 1151d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </ul> 1152d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez </li> 1153d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez <!-- End: Building for TV --> 1154d86a2f5b344a6c3520ab05c02df8a5b3fdfa5aeaJoe Fernandez 11557fe755e66b10244da2382c11f9244346b8184e48Andrew Solovay 1156c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <!-- Start: Building for Auto --> 1157c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <li class="nav-section"> 1158c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <div class="nav-section-header"> 1159c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <a href="<?cs var:toroot ?>training/auto/index.html"> 1160c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <span class="small">Building Apps for</span><br/> 1161c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong Auto 1162c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong </a> 1163c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong </div> 1164c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <ul> 1165c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <li> 1166c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <a href="<?cs var:toroot ?>training/auto/start/index.html" 1167c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong description="How to start building or extending apps that work 1168c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong with Auto devices."> 1169c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong Getting Started with Auto</a> 1170c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong </li> 11717fe755e66b10244da2382c11f9244346b8184e48Andrew Solovay <li> 11727fe755e66b10244da2382c11f9244346b8184e48Andrew Solovay <a href="<?cs var:toroot ?>training/auto/audio/index.html" 11737fe755e66b10244da2382c11f9244346b8184e48Andrew Solovay description="How to extend audio apps to play content on Auto devices."> 11747fe755e66b10244da2382c11f9244346b8184e48Andrew Solovay Playing Audio for Auto</a> 11757fe755e66b10244da2382c11f9244346b8184e48Andrew Solovay </li> 1176a7f226b860455b26cc64f6db08f8c279be71117fAndrew Solovay <li> 1177a7f226b860455b26cc64f6db08f8c279be71117fAndrew Solovay <a href="<?cs var:toroot ?>training/auto/messaging/index.html" 1178a7f226b860455b26cc64f6db08f8c279be71117fAndrew Solovay description="How to extend text messaging apps to work with Auto devices."> 1179a7f226b860455b26cc64f6db08f8c279be71117fAndrew Solovay Messaging for Auto</a> 1180a7f226b860455b26cc64f6db08f8c279be71117fAndrew Solovay </li> 1181eb41bc08e118f257e83640aff95f80058e40ee21sreevanis <li> 1182eb41bc08e118f257e83640aff95f80058e40ee21sreevanis <a href="<?cs var:toroot ?>training/auto/testing/index.html" description= 1183eb41bc08e118f257e83640aff95f80058e40ee21sreevanis "How to run and test Auto apps."> 1184eb41bc08e118f257e83640aff95f80058e40ee21sreevanis Testing Auto Apps</a> 1185eb41bc08e118f257e83640aff95f80058e40ee21sreevanis </li> 1186c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong </ul> 1187c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong </li> 1188c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong <!-- End: Building for Auto --> 1189c6aed4612827be0359d2022f6a38a0e5fce0609cQuddus Chong 119022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 119122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 119222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/best-ux.html"> 119322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Best Practices for</span><br/> 11948142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main Interaction & Engagement 119522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 119622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 119722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 119850c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 119950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 120022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 120122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/design-navigation/index.html" 120222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 120322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to plan your app's screen hierarchy and forms of navigation so users can 120422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main effectively and intuitively traverse your app content using various navigation 120522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main patterns." 120622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Designing Effective Navigation</a> 120722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 12087736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 120922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/screen-planning.html"> 121022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Planning Screens and Their Relationships 12117736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 12127736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 121322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/multiple-sizes.html"> 121422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Planning for Multiple Touchscreen Sizes 12157736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 12167736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 121722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/descendant-lateral.html"> 121822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Providing Descendant and Lateral Navigation 121922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 122022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 122122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/ancestral-temporal.html"> 122222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Providing Ancestral and Temporal Navigation 122322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 122422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 122522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/design-navigation/wireframing.html"> 122622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Putting it All Together: Wireframing the Example App 12277736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 12287736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 12297736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 12307736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 123150c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 123250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 123322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 123422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/implementing-navigation/index.html" 123522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 12367c8405513675c47205a68c0644f6046eebefc5a3Scott Main "How to implement various navigation patterns such as swipe views, 12377c8405513675c47205a68c0644f6046eebefc5a3Scott Main a navigation drawer, and up navigation." 123822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Implementing Effective Navigation</a> 123922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 12407736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main <ul> 124122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/lateral.html"> 12427c8405513675c47205a68c0644f6046eebefc5a3Scott Main Creating Swipe Views with Tabs 12437c8405513675c47205a68c0644f6046eebefc5a3Scott Main </a> 12447c8405513675c47205a68c0644f6046eebefc5a3Scott Main </li> 12457c8405513675c47205a68c0644f6046eebefc5a3Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/nav-drawer.html"> 12467c8405513675c47205a68c0644f6046eebefc5a3Scott Main Creating a Navigation Drawer 12477736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 12487736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 124922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/ancestral.html"> 12507c8405513675c47205a68c0644f6046eebefc5a3Scott Main Providing Up Navigation 12517736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 12527736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 125322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/temporal.html"> 12547c8405513675c47205a68c0644f6046eebefc5a3Scott Main Providing Proper Back Navigation 12557736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 12567736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 125722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/implementing-navigation/descendant.html"> 125822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Implementing Descendant Navigation 12597736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </a> 12607736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 12617736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </ul> 12627736f96d0e4d9981be2466c02bcf43e2a4a75493Scott Main </li> 12630aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j 12640aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li class="nav-section"> 12650aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <div class="nav-section-header"> 12660aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/index.html" 12670aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j description= 1268f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin "How to display messages called notifications outside of 12690aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j your application's UI." 12700aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j >Notifying the User</a> 12710aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </div> 12720aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <ul> 12730aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 12740aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/build-notification.html"> 12750aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Building a Notification 12760aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 12770aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 12780aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 12790aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/navigation.html"> 12800aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Preserving Navigation when Starting an Activity 12810aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 12820aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 12830aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 12840aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/managing.html"> 12850aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Updating Notifications 12860aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 12870aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 12880aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 12890aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/expanded.html"> 12900aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Using Big View Styles 12910aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 12920aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 12930aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li> 12940aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/notify-user/display-progress.html"> 12950aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Displaying Progress in a Notification 12960aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 12970aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 12980aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </ul> 12990aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 130073ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman 130173ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman 1302f71f509af0047c154a67c136e8f57a4018663379Joe Malin <li class="nav-section"> 1303f71f509af0047c154a67c136e8f57a4018663379Joe Malin <div class="nav-section-header"> 1304f71f509af0047c154a67c136e8f57a4018663379Joe Malin <a href="<?cs var:toroot ?>training/swipe/index.html" 1305f71f509af0047c154a67c136e8f57a4018663379Joe Malin description= 1306f71f509af0047c154a67c136e8f57a4018663379Joe Malin "How to modify your app's layout to support manual content updates triggered by the 1307f71f509af0047c154a67c136e8f57a4018663379Joe Malin swipe-to-refresh gesture." 1308f71f509af0047c154a67c136e8f57a4018663379Joe Malin >Supporting Swipe-to-Refresh</a> 1309f71f509af0047c154a67c136e8f57a4018663379Joe Malin </div> 1310f71f509af0047c154a67c136e8f57a4018663379Joe Malin <ul> 1311f71f509af0047c154a67c136e8f57a4018663379Joe Malin <li> 1312f71f509af0047c154a67c136e8f57a4018663379Joe Malin <a href="<?cs var:toroot ?>training/swipe/add-swipe-interface.html" 1313f71f509af0047c154a67c136e8f57a4018663379Joe Malin >Adding Swipe-to-Refresh To Your App</a></li> 1314f71f509af0047c154a67c136e8f57a4018663379Joe Malin <li> 1315f71f509af0047c154a67c136e8f57a4018663379Joe Malin <a href="<?cs var:toroot ?>training/swipe/respond-refresh-request.html" 1316f71f509af0047c154a67c136e8f57a4018663379Joe Malin >Responding to a Refresh Gesture</a> 1317f71f509af0047c154a67c136e8f57a4018663379Joe Malin </li> 1318f71f509af0047c154a67c136e8f57a4018663379Joe Malin </ul> 1319f71f509af0047c154a67c136e8f57a4018663379Joe Malin </li> 132073ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman 132173ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman 13220aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li class="nav-section"> 13230aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <div class="nav-section-header"> 13240aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <a href="<?cs var:toroot ?>training/search/index.html" 13250aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j description= 13260aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j "How to properly add a search interface to your app and create a searchable database." 13270aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j >Adding Search Functionality</a> 13280aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </div> 13290aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <ul> 13300aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li><a href="<?cs var:toroot ?>training/search/setup.html"> 13310aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Setting up the Search Interface 13320aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 13330aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 13340aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li><a href="<?cs var:toroot ?>training/search/search.html"> 13350aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Storing and Searching for Data 13360aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 13370aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 13380aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j <li><a href="<?cs var:toroot ?>training/search/backward-compat.html"> 13390aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j Remaining Backward Compatible 13400aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </a> 13410aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 13420aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </ul> 13430aae00051c3e96a6271840c50f6b9e448c7064f4&& repo sync -j </li> 13443ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 13458142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <li class="nav-section"> 13468142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <div class="nav-section-header"> 13478142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <a href="<?cs var:toroot ?>training/app-indexing/index.html" 13488142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main description= 13498142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main "How to enable deep linking and indexing of your application 13508142898da2e10d73617cd953a7bff85ff56dd0f5Scott Maincontent so that users can open this content directly from their mobile search 13518142898da2e10d73617cd953a7bff85ff56dd0f5Scott Mainresults." 1352240aca333e340445f977d2a0e268a7c8d3a591e0quddusc >Making Your App Content Searchable by Google</a> 13538142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </div> 13548142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <ul> 13558142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <li><a href="<?cs var:toroot ?>training/app-indexing/deep-linking.html"> 13568142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main Enabling Deep Links for App Content 13578142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </a> 13588142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </li> 13598142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <li><a href="<?cs var:toroot ?>training/app-indexing/enabling-app-indexing.html"> 136073ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman Specifying App Content for Indexing 13618142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </a> 13628142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </li> 13638142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </ul> 13648142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </li> 13658142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main 1366059e3905bb79aa6010471f066f571c9ad2ae5fa1Dirk Dougherty <li> 1367059e3905bb79aa6010471f066f571c9ad2ae5fa1Dirk Dougherty <a href="<?cs var:toroot ?>training/articles/assistant.html" 1368059e3905bb79aa6010471f066f571c9ad2ae5fa1Dirk Dougherty description= 1369059e3905bb79aa6010471f066f571c9ad2ae5fa1Dirk Dougherty "Support contextually relevant actions through the Assist API." 1370059e3905bb79aa6010471f066f571c9ad2ae5fa1Dirk Dougherty >Optimizing Content for the Assistant</a> 1371059e3905bb79aa6010471f066f571c9ad2ae5fa1Dirk Dougherty </li> 137273ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman <li class="nav-section"> 137373ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman <div class="nav-section"> 137473ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman <a href="<?cs var:toroot ?>training/app-links/index.html" 137573ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman description= 137673ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman "How to enable the system to handle web requests by taking the user directly 137773ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman to your app instead of your website." 137873ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman >Handling App Links</a> 137973ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman </div> 138073ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman </li> 138173ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman <!-- End Interaction and Engagement --> 138273ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman 138373ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman</ul> 13848142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main 13858142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <li class="nav-section"> 13868142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <div class="nav-section-header"> 13878142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <a href="<?cs var:toroot ?>training/best-ui.html"> 13888142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <span class="small">Best Practices for</span><br/> 13898142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main User Interface 13908142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </a> 13918142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main </div> 13928142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <ul> 13938142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main 139473ff05fb391b8ef60f502814b5ee7ee369c2d4dbDavid Friedman 139550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 139622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 13975b50239c33176e0b321d2ee32a589e0583767e02Scott Main <a href="<?cs var:toroot ?>training/multiscreen/index.html" 1398b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="针对多种屏幕进行设计" 139922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="複数画面のデザイン" 140022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main es-lang="Cómo diseñar aplicaciones para varias pantallas" 140122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 140222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build a user interface that's flexible enough to 140322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main fit perfectly on any screen and how to create different interaction 140422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main patterns that are optimized for different screen sizes." 140522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Designing for Multiple Screens</a> 140622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 140738e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik <ul> 14085b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/multiscreen/screensizes.html" 1409b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="支持各种屏幕尺寸" 141022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ko-lang="다양한 화면 크기 지원" 141122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="さまざまな画面サイズのサポート" 1412f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo admitir varios tamaños de pantalla" 141322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Supporting Different Screen Sizes</a> 141438e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 14155b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/multiscreen/screendensities.html" 1416b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="支持各种屏幕密度" 141722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="さまざまな画面密度のサポート" 1418f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo admitir varias densidades de pantalla" 141922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Supporting Different Screen Densities</a> 142038e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 14215b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/multiscreen/adaptui.html" 1422b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="实施自适应用户界面流程" 142322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="順応性のある UI フローの実装" 1424f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo implementar interfaces de usuario adaptables" 142522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Implementing Adaptive UI Flows</a> 142638e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 142738e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </ul> 142838e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik </li> 142938e09c3ddb7da47a23bf4221ab678e058c7e923aRoman Nurik 143050e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 143122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 14323d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <a href="<?cs var:toroot ?>training/appbar/index.html" 14333d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay description= 14343d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay "How to use the support library's toolbar widget to implement an 14353d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay app bar that displays properly on a wide range of devices." 14363d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay >Adding the App Bar</a> 14373d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay </div> 14383d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <ul> 14393d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <li><a href="<?cs var:toroot ?>training/appbar/setting-up.html" 14403d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay >Setting Up the App Bar</a> 14413d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay </li> 14423d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <li><a href="<?cs var:toroot ?>training/appbar/actions.html" 14433d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay >Adding and Handling Actions</a> 14443d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay </li> 14453d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <li><a href="<?cs var:toroot ?>training/appbar/up-action.html" 14463d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay >Adding an Up Action</a> 14473d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay </li> 144822c024657d2c97cbc8aed7cead25acdf6649aeedAndrew Solovay <li><a href="<?cs var:toroot ?>training/appbar/action-views.html" 144922c024657d2c97cbc8aed7cead25acdf6649aeedAndrew Solovay >Action Views and Action Providers</a> 145022c024657d2c97cbc8aed7cead25acdf6649aeedAndrew Solovay </li> 14513d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay </ul> 14523d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay </li> 14533d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay 14549f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay <li class="nav-section"> 14559f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay <div class="nav-section-header"> 14569f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay <a href="<?cs var:toroot ?>training/snackbar/index.html" 14579f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay description= 14589f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay "How to use the support library's Snackbar widget to display a 14599f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay brief pop-up message." 14609f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay >Showing Pop-Up Messages</a> 14619f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay </div> 14629f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay <ul> 14639f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay <li><a href="<?cs var:toroot ?>training/snackbar/showing.html" 14649f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay >Building and Displaying a Pop-Up Message</a> 14659f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay </li> 14669f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay <li><a href="<?cs var:toroot ?>training/snackbar/action.html" 14679f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay >Adding an Action to a Message</a> 14689f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay </li> 14699f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay </ul> 14709f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay </li> 14719f48b563fbadf67185fd63ab6e591521fc9182c8Andrew Solovay 14723d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <li class="nav-section"> 14733d1032abae253369fb235f4d4a755bbf212c6be3Andrew Solovay <div class="nav-section-header"> 147422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/custom-views/index.html" 147522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 147622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to build custom UI widgets that are interactive and smooth." 147722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Creating Custom Views</a> 147822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 1479580f0146535e7daed83aef721f505270f7b040e1Scott Main <ul> 148022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/create-view.html"> 148122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating a Custom View Class 1482580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 1483580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 148422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/custom-drawing.html"> 148522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Implementing Custom Drawing 1486580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 1487580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 148822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/making-interactive.html"> 148922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Making the View Interactive 1490580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 1491580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 149222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/custom-views/optimizing-view.html"> 149322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Optimizing the View 1494580f0146535e7daed83aef721f505270f7b040e1Scott Main </a> 1495580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 1496580f0146535e7daed83aef721f505270f7b040e1Scott Main </ul> 149719266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 149819266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik 149950e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 150022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 150122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/backward-compatible-ui/index.html" 150222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 150322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to use UI components and other APIs from the more recent versions of Android 150422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main while remaining compatible with older versions of the platform." 150522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Creating Backward-Compatible UIs</a> 150622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 150719266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik <ul> 150822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/abstracting.html"> 150922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Abstracting the New APIs 151019266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 151119266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 151222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/new-implementation.html"> 151322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Proxying to the New APIs 151419266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 151519266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 151622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/older-implementation.html"> 151722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating an Implementation with Older APIs 151819266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 151919266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 152022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/using-component.html"> 152122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Using the Version-Aware Component 152219266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </a> 152319266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 152419266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </ul> 152519266f7b02c91d21d630c99d593f83cc427cd40bRoman Nurik </li> 15263ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 152750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 152822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 152922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/accessibility/index.html" 153022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 153122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to make your app accessible to users with vision 153222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main impairment or other physical disabilities." 153322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Implementing Accessibility</a> 1534931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </div> 1535931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi <ul> 153622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/accessibility/accessible-app.html"> 153722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Developing Accessible Applications 1538931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </a> 1539931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </li> 154022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/accessibility/service.html"> 154122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Developing Accessibility Services 1542931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </a> 1543931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </li> 1544e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <li><a href="<?cs var:toroot ?>training/accessibility/testing.html"> 1545e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong Accessibility Testing Checklist 1546e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong </a> 1547e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong </li> 1548931ff55a905c2efb7abb7ac287fe2132aaf77627Megha Joshi </ul> 1549580f0146535e7daed83aef721f505270f7b040e1Scott Main </li> 15503ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 1551cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <li class="nav-section"> 1552cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <div class="nav-section-header"> 1553cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <a href="<?cs var:toroot ?>training/system-ui/index.html" 1554cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick description= 1555cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick "How to hide and show status and navigation bars across different versions of Android, 1556cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick while managing the display of other screen components." 1557cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick >Managing the System UI</a> 1558cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </div> 1559cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <ul> 1560cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <li><a href="<?cs var:toroot ?>training/system-ui/dim.html"> 1561cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick Dimming the System Bars 1562cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </a> 1563cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </li> 1564cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <li><a href="<?cs var:toroot ?>training/system-ui/status.html"> 1565cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick Hiding the Status Bar 1566cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </a> 1567cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </li> 1568cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <li><a href="<?cs var:toroot ?>training/system-ui/navigation.html"> 1569cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick Hiding the Navigation Bar 1570cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </a> 1571cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </li> 15725b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/system-ui/immersive.html"> 1573467f5db87950601fb5e0936aca9a1cebe28d350bKatie McCormick Using Immersive Full-Screen Mode 1574467f5db87950601fb5e0936aca9a1cebe28d350bKatie McCormick </a> 1575467f5db87950601fb5e0936aca9a1cebe28d350bKatie McCormick </li> 1576cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick <li><a href="<?cs var:toroot ?>training/system-ui/visibility.html"> 1577cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick Responding to UI Visibility Changes 1578cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </a> 1579414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1580414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </ul> 1581414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1582414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera 1583414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera <li class="nav-section"> 1584414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera <div class="nav-section-header"> 1585414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera <a href="<?cs var:toroot ?>training/material/index.html" 1586414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera description= 1587414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera "How to implement material design on Android." 1588dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman zh-cn-lang="面向开发者的材料设计" 1589dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman zh-tw-lang="開發人員材料設計" 1590dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman ja-lang="マテリアル デザインでのアプリ作成" 1591dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman es-lang="Crear aplicaciones con Material Design" 1592dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman pt-br-lang="Material Design para desenvolvedores" 1593dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman ko-lang="개발자를 위한 머티리얼 디자인" 1594dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman ru-lang="Создание приложений с помощью Material Design" 1595dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Desain Bahan untuk Pengembang" 1596dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Material Design cho Nhà phát triển" 1597414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera >Creating Apps with Material Design</a> 1598414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </div> 1599414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera <ul> 1600ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/get-started.html" 1601ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="入门指南" 1602ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="開始使用" 1603ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="スタート ガイド" 1604ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Comencemos" 1605ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como iniciar" 1606ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="시작하기" 1607ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Начало работы" 1608dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Memulai" 1609dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Bắt đầu" 1610ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1611414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Getting Started 1612414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1613414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1614ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/theme.html" 1615ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="使用材料主题" 1616ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="使用材料設計風格" 1617ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="マテリアル テーマの使用" 1618ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Usar el tema Material" 1619ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como usar o tema do Material" 1620ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="머티어리얼 테마 사용" 1621ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Использование темы Material Design" 1622dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Menggunakan Tema Bahan" 1623dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Sử dụng Chủ đề Material" 1624ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1625414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Using the Material Theme 1626414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1627414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1628ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/lists-cards.html" 1629ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="创建列表与卡片" 1630ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="建立清單和卡片" 1631ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="リストとカードの作成" 1632ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Crear listas y tarjetas" 1633ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como criar listas e cartões" 1634ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="목록 및 카드 생성" 1635ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Создание списков и подсказок" 1636dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Membuat Daftar dan Kartu" 1637dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Tạo Danh sách và Thẻ" 1638ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1639414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Creating Lists and Cards 1640414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1641414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1642ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/shadows-clipping.html" 1643ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="定义阴影与裁剪视图" 1644ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="定義陰影和裁剪檢視" 1645ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="シャドウとクリッピング ビューの定義" 1646ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Definir vistas de recorte y sombras" 1647ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como definir sombras e recortar visualizações" 1648ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="그림자 정의 및 뷰 클리핑" 1649ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Определение теней и обрезка представлений" 1650dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Mendefinisikan Bayangan dan Memangkas Tampilan" 1651dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Định nghĩa Đổ bóng và Dạng xem Cắt hình" 1652ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1653414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Defining Shadows and Clipping Views 1654414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1655414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1656ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/drawables.html" 1657ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="使用 Drawables" 1658ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="使用可繪項目" 1659ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="ドローアブルの使用" 1660ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Trabajar con interfaces dibujables" 1661ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como trabalhar com desenháveis" 1662ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="Drawable 사용" 1663ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Работа с элементами дизайна" 1664dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Bekerja dengan Drawable" 1665dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Làm việc với Nội dung vẽ được" 1666ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1667414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Working with Drawables 1668414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1669414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1670ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/animations.html" 1671ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="定义定制动画" 1672ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="定義自訂動畫" 1673ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="カスタム アニメーションの定義" 1674ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Definir animaciones personalizadas" 1675ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como definir animações personalizadas" 1676ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="사용자지정 애니메이션 정의" 1677ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Определение настраиваемой анимации" 1678dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Mendefinisikan Animasi Custom" 1679dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Định nghĩa Hoạt hình Tùy chỉnh" 1680ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1681414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Defining Custom Animations 1682414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1683414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </li> 1684ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman <li><a href="<?cs var:toroot ?>training/material/compatibility.html" 1685ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-cn-lang="维护兼容性" 1686ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman zh-tw-lang="維持相容性" 1687ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ja-lang="互換性の維持" 1688ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman es-lang="Mantener la compatibilidad" 1689ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman pt-br-lang="Como manter a compatibilidade" 1690ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ko-lang="호환성 유지" 1691ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman ru-lang="Обеспечение совместимости" 1692dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman in-lang="Mempertahankan Kompatibilitas" 1693dee655c406cbb71518ccdbfd7b79b6ecc2cefbfeDavid Friedman vi-lang="Duy trì Tính tương thích" 1694ec787018c2452a66b29c8496bec90edc0979f56aDavid Friedman > 1695414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera Maintaining Compatibility 1696414978a821d54e34e18ba0d86aef265ac85f24adRicardo Cervera </a> 1697cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </li> 1698cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </ul> 1699cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick </li> 1700cfd3047f42993c8eaec635c6dc3301a86e980d11Katie McCormick 170122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 170222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 17038142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main <!-- End User Interface --> 17048142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main 17058142898da2e10d73617cd953a7bff85ff56dd0f5Scott Main 17063ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 1707c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main 1708518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li class="nav-section"> 1709518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <div class="nav-section-header"> 1710c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <a href="<?cs var:toroot ?>training/best-user-input.html"> 1711518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <span class="small">Best Practices for</span><br/> 1712518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j User Input 1713518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1714518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </div> 1715518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <ul> 17163ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 1717518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li class="nav-section"> 1718518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <div class="nav-section-header"> 1719518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <a href="<?cs var:toroot ?>training/gestures/index.html" 1720518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j description= 1721518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j "How to write apps that allow users to interact with the touch screen via touch gestures." 1722518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j >Using Touch Gestures</a> 1723518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </div> 1724518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <ul> 1725518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/detector.html"> 1726518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Detecting Common Gestures 1727518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1728518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 1729518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/movement.html"> 1730518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Tracking Movement 1731518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1732518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 1733518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/scroll.html"> 1734518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Animating a Scroll Gesture 1735518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1736518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 1737518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/multi.html"> 1738518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Handling Multi-Touch Gestures 1739518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1740518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 1741518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/scale.html"> 1742518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Dragging and Scaling 1743518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1744518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 1745518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j <li><a href="<?cs var:toroot ?>training/gestures/viewgroup.html"> 1746518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j Managing Touch Events in a ViewGroup 1747518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </a> 1748518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </li> 1749518edbfa97dbdc366f1e03c62ae275c388ec20ef&& repo sync -j </ul> 1750c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 17513ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 1752c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li class="nav-section"> 1753c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <div class="nav-section-header"> 1754c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <a href="<?cs var:toroot ?>training/keyboard-input/index.html" 1755c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main description= 1756c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main "How to specify the appearance and behaviors of soft input methods (such 1757c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main as on-screen keyboards) and how to optimize the experience with 1758c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main hardware keyboards." 1759c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main >Handling Keyboard Input</a> 1760c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </div> 1761c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <ul> 1762c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/style.html"> 1763c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Specifying the Input Method Type 1764c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 1765c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 1766c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/visibility.html"> 1767c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Handling Input Method Visibility 1768c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 1769c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 1770c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/navigation.html"> 1771c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Supporting Keyboard Navigation 1772c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 1773c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 1774c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main <li><a href="<?cs var:toroot ?>training/keyboard-input/commands.html"> 1775c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main Handling Keyboard Actions 1776c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </a> 1777c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 1778c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </ul> 1779c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </li> 17801dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc 17811dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <li class="nav-section"> 17821dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <div class="nav-section-header"> 17831dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <a href="<?cs var:toroot ?>training/game-controllers/index.html" 17841dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc description= 17851dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc "How to write apps that support game controllers." 17861dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc >Supporting Game Controllers</a> 17871dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </div> 17881dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <ul> 17891dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <li><a href="<?cs var:toroot ?>training/game-controllers/controller-input.html"> 17901dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc Handling Controller Actions 17911dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </a> 17921dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </li> 17931dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <li><a href="<?cs var:toroot ?>training/game-controllers/compatibility.html"> 17941dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc Supporting Controllers Across Android Versions 17951dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </a> 17961dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </li> 17971dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc <li><a href="<?cs var:toroot ?>training/game-controllers/multiple-controllers.html"> 17981dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc Supporting Multiple Game Controllers 17991dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </a> 18001dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </li> 18011dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </ul> 18021dff746b0260f7ea423d961ae0c8a55f2a71af72quddusc </li> 1803c8a6f8a0414d9366bd2d3ee9d74271c8f680409bScott Main </ul> 1804421435d2bede2788b74b07b1bab893fef98047c5Joe Malin </li> <!-- end of User Input --> 180550c2275cff28c4a216f6924584e43cd64b90a3bfJoe Malin 180622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 180722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 18087bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/best-background.html"> 180922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Best Practices for</span><br/> 18107bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Background Jobs 181122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 181222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 181322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 18143ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 1815f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li class="nav-section"> 1816f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <div class="nav-section-header"> 1817f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <a href="<?cs var:toroot ?>training/run-background-service/index.html" 1818f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin description= 1819f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin "How to improve UI performance and responsiveness by sending work to a 18208ac78803f59fd4fbe9e2682632791bc255d38aceScott Main Service running in the background" 18218ac78803f59fd4fbe9e2682632791bc255d38aceScott Main >Running in a Background Service</a> 1822f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </div> 1823f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <ul> 1824f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li><a href="<?cs var:toroot ?>training/run-background-service/create-service.html"> 1825f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin Creating a Background Service 1826f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </a> 1827f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 1828f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li><a href="<?cs var:toroot ?>training/run-background-service/send-request.html"> 1829f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin Sending Work Requests to the Background Service 1830f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </a> 1831f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 1832f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin <li><a href="<?cs var:toroot ?>training/run-background-service/report-status.html"> 1833f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin Reporting Work Status 1834f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </a> 1835f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 1836f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </ul> 1837f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin </li> 18388ac78803f59fd4fbe9e2682632791bc255d38aceScott Main 18398ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <li class="nav-section"> 18408ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <div class="nav-section-header"> 18418ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <a href="<?cs var:toroot ?>training/load-data-background/index.html" 18428ac78803f59fd4fbe9e2682632791bc255d38aceScott Main description="How to use CursorLoader to query data without 18438ac78803f59fd4fbe9e2682632791bc255d38aceScott Main affecting UI responsiveness." 18448ac78803f59fd4fbe9e2682632791bc255d38aceScott Main >Loading Data in the Background</a> 18458ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </div> 18468ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <ul> 18478ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <li><a href="<?cs var:toroot ?>training/load-data-background/setup-loader.html"> 18488ac78803f59fd4fbe9e2682632791bc255d38aceScott Main Running a Query with a CursorLoader</a> 18498ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </li> 18508ac78803f59fd4fbe9e2682632791bc255d38aceScott Main <li><a href="<?cs var:toroot ?>training/load-data-background/handle-results.html"> 18518ac78803f59fd4fbe9e2682632791bc255d38aceScott Main Handling the Results</a> 18528ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </li> 18538ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </ul> 18548ac78803f59fd4fbe9e2682632791bc255d38aceScott Main </li> 18553ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 18567bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li class="nav-section"> 18577bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <div class="nav-section-header"> 18587bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/scheduling/index.html" 18597bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick description="How to use repeating alarms and wake locks 18607bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick to run background jobs." 18617bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick >Managing Device Awake State</a> 18627bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </div> 18637bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <ul> 18647bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/scheduling/wakelock.html"> 18657bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Keeping the Device Awake</a> 18667bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 18677bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/scheduling/alarms.html"> 18687bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Scheduling Repeating Alarms</a> 18697bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 18707bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </ul> 18717bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 18727bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </ul> 18737bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> <!-- end of Background Jobs --> 18747bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick 1875dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong <li class="nav-section"> 1876dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong <div class="nav-section-header"> 1877dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong <a href="<?cs var:toroot ?>training/best-performance.html"> 1878dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong <span class="small">Best Practices for</span><br/> 1879dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong Performance 1880dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong </a> 1881dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong </div> 1882dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong <ul> 18837bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li> 1884a3f0e01f332ee0acc8450bf4564992f2ffe2f426Scott Main <a href="<?cs var:toroot ?>training/articles/memory.html" 1885881e7299042658ea6a5d2f1fb223fd7bef94e1c9Aleks Haecky description= 1886881e7299042658ea6a5d2f1fb223fd7bef94e1c9Aleks Haecky "How to keep your app's memory footprint small in order to improve performance 1887881e7299042658ea6a5d2f1fb223fd7bef94e1c9Aleks Haecky on a variety of mobile devices." 1888a3f0e01f332ee0acc8450bf4564992f2ffe2f426Scott Main >Managing Your App's Memory</a> 1889a3f0e01f332ee0acc8450bf4564992f2ffe2f426Scott Main </li> 1890a3f0e01f332ee0acc8450bf4564992f2ffe2f426Scott Main <li> 18917bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/articles/perf-tips.html" 18927bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick description= 18937bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick "How to optimize your app's performance in various ways to improve its 18947bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick responsiveness and battery efficiency." 18957bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick >Performance Tips</a> 18967bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 18977bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li class="nav-section"> 18987bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <div class="nav-section-header"> 18997bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <a href="<?cs var:toroot ?>training/improving-layouts/index.html" 19007bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick description= 19017bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick "How to identify problems in your app's layout performance and improve the UI 19027bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick responsiveness." 19037bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick >Improving Layout Performance</a> 19047bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </div> 19057bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <ul> 19067bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/improving-layouts/optimizing-layout.html"> 19077bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Optimizing Layout Hierarchies 19087bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 19097bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 19107bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/improving-layouts/reusing-layouts.html"> 19117bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Re-using Layouts with <include/> 19127bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 19137bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 19147bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/improving-layouts/loading-ondemand.html"> 19157bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Loading Views On Demand 19167bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 19177bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 19187bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick <li><a href="<?cs var:toroot ?>training/improving-layouts/smooth-scrolling.html"> 19197bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick Making ListView Scrolling Smooth 19207bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </a> 19217bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 19227bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </ul> 19237bdb3f6997c5235777d08c0f5a12dfb41551c960Katie McCormick </li> 192428be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez 192550e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main <li class="nav-section"> 192622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 19275b50239c33176e0b321d2ee32a589e0583767e02Scott Main <a href="<?cs var:toroot ?>training/monitoring-device-state/index.html" 1928b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="优化电池使用时间" 192922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="電池消費量の最適化" 193022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main es-lang="Cómo optimizar la duración de la batería" 193122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 193222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to minimize the amount of power your app requires by adapting to current 193322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main power conditions and performing power-hungry tasks at proper intervals." 1934dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong >Optimizing Battery Life 1935dcfa755616504fb4443f4d79d936f30c3742d77aQuddus Chong </a> 193622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 1937df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas <ul> 193828be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez 193928be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez <li class="nav-section"> 194028be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez <div class="nav-section-header"> 1941855738ab865d4067e885694d386459280af2dcaaDoug Kramer <a href="<?cs var:toroot ?>training/performance/battery/network/index.html"> 194228be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Reducing Network Battery Drain 194328be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 194428be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </div> 194528be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez <ul> 1946855738ab865d4067e885694d386459280af2dcaaDoug Kramer <li><a href="<?cs var:toroot ?>training/performance/battery/network/gather-data.html"> 194728be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Collecting Network Traffic Data 194828be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 194928be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> 1950855738ab865d4067e885694d386459280af2dcaaDoug Kramer <li><a href="<?cs var:toroot ?>training/performance/battery/network/analyze-data.html"> 195128be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Analyzing Network Traffic Data 195228be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 195328be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> 1954855738ab865d4067e885694d386459280af2dcaaDoug Kramer <li><a href="<?cs var:toroot ?>training/performance/battery/network/action-user-traffic.html"> 195528be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Optimizing User-Initiated Network Use 195628be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 195728be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> 1958855738ab865d4067e885694d386459280af2dcaaDoug Kramer <li><a href="<?cs var:toroot ?>training/performance/battery/network/action-app-traffic.html"> 195928be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Optimizing App-Initiated Network Use 196028be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 196128be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> 1962855738ab865d4067e885694d386459280af2dcaaDoug Kramer <li><a href="<?cs var:toroot ?>training/performance/battery/network/action-server-traffic.html"> 196328be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Optimizing Server-Initiated Network Use 196428be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 196528be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> 1966855738ab865d4067e885694d386459280af2dcaaDoug Kramer <li><a href="<?cs var:toroot ?>training/performance/battery/network/action-any-traffic.html"> 196728be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez Optimizing General Network Use 196828be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </a> 196928be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> 197028be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </ul> 197128be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez </li> <!-- End of Reducing Network Battery Drain --> 197228be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez 197328be3259d924cbf9c6577c46e4da3006ca433ee2Joe Fernandez <li><a href="<?cs var:toroot ?>training/monitoring-device-state/doze-standby.html" 1974c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong >Optimizing for Doze and App Standby</a> 1975c5f82010f7d958e5db1f8d06c7c8021bb946fd0cQuddus Chong </li> 19765b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/monitoring-device-state/battery-monitoring.html" 1977b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="监控电池电量和充电状态" 197822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="電池残量と充電状態の監視" 1979f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo controlar el nivel de batería y el estado de carga" 198022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Monitoring the Battery Level and Charging State</a> 1981df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 19825b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/monitoring-device-state/docking-monitoring.html" 1983b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="确定和监控基座对接状态和类型" 198422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="ホルダーの装着状態とタイプの特定と監視" 1985f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo determinar y controlar el tipo de conector y el estado de la conexión" 198622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Determining and Monitoring the Docking State and Type</a> 198722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 19885b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/monitoring-device-state/connectivity-monitoring.html" 1989b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="确定和监控网络连接状态" 199022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="接続状態の特定と監視" 1991f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo determinar y controlar el estado de la conectividad" 199222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Determining and Monitoring the Connectivity Status</a> 199322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 19945b50239c33176e0b321d2ee32a589e0583767e02Scott Main <li><a href="<?cs var:toroot ?>training/monitoring-device-state/manifest-receivers.html" 1995b582c678c88df2848023b7f27f4bc0ab2249e1e1Dirk Dougherty zh-cn-lang="根据需要操作广播接收器" 199622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main ja-lang="オンデマンドでのブロードキャスト レシーバ操作" 1997f0f5efbea206fd0fbac655519f3f535620ed74ccJoe Malin es-lang="Cómo manipular los receptores de emisión bajo demanda" 199822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Manipulating Broadcast Receivers On Demand</a> 1999df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 2000df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </ul> 2001df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 20028dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li class="nav-section"> 20038dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <div class="nav-section-header"> 20048dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <a href="<?cs var:toroot ?>training/multiple-threads/index.html" 20058dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin description= 20068dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin "How to improve the performance and scalability of long-running operations by 20078dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin dispatching work to multiple threads."> 20088dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Sending Operations to Multiple Threads</a> 20098dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </div> 20108dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <ul> 20118dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/define-runnable.html"> 20128dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Specifying the Code to Run on a Thread 20138dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 20148dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 20158dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/create-threadpool.html"> 20168dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Creating a Manager for Multiple Threads 20178dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 20188dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 20198dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/run-code.html"> 20208dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Running Code on a Thread Pool Thread 20218dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 20228dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 20238dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin <li><a href="<?cs var:toroot ?>training/multiple-threads/communicate-ui.html"> 20248dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin Communicating with the UI Thread 20258dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </a> 20268dd6275e2871bea1acb20cbdd98ea0451b3d5be0Joe Malin </li> 2027df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </ul> 2028df6c8270e300e2d04f57e24bb2b34c33edce4a0dAlexander Lucas </li> 202922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 203033e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/perf-anr.html" 203122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 203222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to keep your app responsive to user interaction so the UI does not lock-up and 203322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main display an "Application Not Responding" dialog." 203422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Keeping Your App Responsive</a> 203522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 203622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 203733e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/perf-jni.html" 203822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 203922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to efficiently use the Java Native Interface with the Android NDK." 204022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >JNI Tips</a> 204122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 2042d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty <li> 2043d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty <a href="<?cs var:toroot ?>training/articles/smp.html" 2044d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty description= 2045d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty "Tips for coding Android apps on symmetric multiprocessor systems." 2046d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty >SMP Primer for Android</a> 2047d5894210930fc0a8bc3733258747d837e2960fa9Dirk Dougherty </li> 204822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 204922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> <!-- end of Performance --> 20503ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 205122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 205222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 205322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/best-security.html"> 205422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Best Practices for</span><br/> 205522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Security & Privacy 205622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 205722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 205822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 205922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li> 206033e499ea364e4e061964bc8fe16365fd632eb39dScott Main <a href="<?cs var:toroot ?>training/articles/security-tips.html" 206122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 206222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to perform various tasks and keep your app's data and your user's data secure." 206322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Security Tips</a> 206422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 206500158363b47d916d159d2f3a0e1152783fd66a9cScott Main 206600158363b47d916d159d2f3a0e1152783fd66a9cScott Main <li> 206700158363b47d916d159d2f3a0e1152783fd66a9cScott Main <a href="<?cs var:toroot ?>training/articles/security-ssl.html" 206800158363b47d916d159d2f3a0e1152783fd66a9cScott Main description= 206900158363b47d916d159d2f3a0e1152783fd66a9cScott Main "How to ensure that your app is secure when performing network transactions." 207000158363b47d916d159d2f3a0e1152783fd66a9cScott Main >Security with HTTPS and SSL</a> 207100158363b47d916d159d2f3a0e1152783fd66a9cScott Main </li> 20723ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 2073897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay <li> 2074897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay <a href="<?cs var:toroot ?>training/articles/security-gms-provider.html" 2075897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay description= 2076897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay "How to use and update Google Play services security provider, to 2077897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay protect against SSL exploits." 2078897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay >Updating Your Security Provider to Protect Against SSL Exploits</a> 2079897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay </li> 2080897cf908c9f1e5f5a2c0b4a3ec72636e64b94eb4Andrew Solovay 20816b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li> 20826b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <a href="<?cs var:toroot ?>training/safetynet/index.html" 20836b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez description= 20846b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez "How to use the SafetyNet service to analyze a device where your app is running 20856b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez and get information about its compatibility with your app." 20866b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez >Checking Device Compatibility with SafetyNet</a> 20876b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez </li> 20886b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez 20896b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez <li> 2090e1277eb819b9eee3612e2cedba55d7cfb5e9c5e7Billy Lamberta <a href="<?cs var:toroot ?>work/device-management-policy.html" 20916b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez description="How to create an application that enforces security policies on devices." 20926b4c3fed885db4341076159dc549d6bdae4df02eJoe Fernandez >Enhancing Security with Device Management Policies</a> 2093e577d72a3be20e589437271f0e5ca474fab38124Roman Nurik </li> 209422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </ul> 209522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 209622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End security and user info --> 20974c4a47f42101a57ab8ff05a8e035d97582c3368aScott Main 20982ef3952d8e62b71baca176b3e17315a37facd34aquddusc <li class="nav-section"> 20992ef3952d8e62b71baca176b3e17315a37facd34aquddusc <div class="nav-section-header"> 21006404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <a href="<?cs var:toroot ?>training/best-permissions-ids.html"> 21016404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <span class="small">Best Practices for</span><br/> 21026404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty Permissions & Identifiers 21036404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </a> 21046404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </div> 21056404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <ul> 21066404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <li> 21076404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <a href="<?cs var:toroot ?>training/articles/user-data-overview.html" 21086404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty description= 21096404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty "Overview of app permissions on Android and how they affect your users." 21101fea1ec8292a70df958c7f42595bf3f75cdef9c6Dirk Dougherty >Permissions and User Data</a> 21116404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </li> 21126404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <li> 21136404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <a href="<?cs var:toroot ?>training/articles/user-data-permissions.html" 21146404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty description= 21156404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty "How to manage permissions the right way for users." 21166404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty >Best Practices for App Permissions</a> 21176404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </li> 21186404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <li> 21196404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <a href="<?cs var:toroot ?>training/articles/user-data-ids.html" 21206404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty description= 21216404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty "Unique identifiers available and how to choose the right one for your use case." 21226404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty >Best Practices for Unique Identifiers</a> 21236404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </li> 21246404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </ul> 21256404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty </li> 21266404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <!-- End Permissions and identifiers --> 21276404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty 21286404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <li class="nav-section"> 21296404e8436b0244c69e081711326d60b1cc8906d2Dirk Dougherty <div class="nav-section-header"> 2130e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <a href="<?cs var:toroot ?>training/testing/index.html"> 21312ef3952d8e62b71baca176b3e17315a37facd34aquddusc <span class="small">Best Practices for</span><br/> 21322ef3952d8e62b71baca176b3e17315a37facd34aquddusc Testing 21332ef3952d8e62b71baca176b3e17315a37facd34aquddusc </a> 21342ef3952d8e62b71baca176b3e17315a37facd34aquddusc </div> 21352ef3952d8e62b71baca176b3e17315a37facd34aquddusc <ul> 2136e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <li> 2137e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <a href="<?cs var:toroot ?>training/testing/start/index.html" 2138e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong description="How to get started with testing your Android applications."> 2139e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong Getting Started with Testing 2140e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong </a> 2141e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong </li> 21422ef3952d8e62b71baca176b3e17315a37facd34aquddusc <li class="nav-section"> 2143e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <div class="nav-section-header"><a href="<?cs var:toroot ?>training/testing/unit-testing/index.html" 2144e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong description="How to build effective unit tests for Android apps."> 2145e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong Building Effective Unit Tests 21462ef3952d8e62b71baca176b3e17315a37facd34aquddusc </a></div> 21472ef3952d8e62b71baca176b3e17315a37facd34aquddusc <ul> 2148e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <li><a href="<?cs var:toroot ?>training/testing/unit-testing/local-unit-tests.html"> 2149e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <span class="en">Building Local Unit Tests</span> 2150e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong </a> 21512ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 2152e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <li><a href="<?cs var:toroot ?>training/testing/unit-testing/instrumented-unit-tests.html"> 2153e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <span class="en">Building Instrumented Unit Tests</span> 2154e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong </a> 21552ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 21562ef3952d8e62b71baca176b3e17315a37facd34aquddusc </ul> 21572ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 21587639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <li class="nav-section"> 21597639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <div class="nav-section-header"><a href="<?cs var:toroot ?>training/testing/ui-testing/index.html" 21607639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong description="How to automate your user interface tests for Android apps."> 21617639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong Automating UI Tests 21627639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </a></div> 21637639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <ul> 21647639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <li><a href="<?cs var:toroot ?>training/testing/ui-testing/espresso-testing.html"> 21657639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <span class="en">Testing UI for a Single App</span> 21667639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </a> 21677639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </li> 21687639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <li><a href="<?cs var:toroot ?>training/testing/ui-testing/uiautomator-testing.html"> 21697639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong <span class="en">Testing UI for Multiple Apps</span> 21707639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </a> 21717639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </li> 21727639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </ul> 21737639e730c8b951f892f08ba98906e08b79b174b7Quddus Chong </li> 21744bc762a919ead1ad02d4ee065a95e4ecf8a4e657Quddus Chong <li class="nav-section"> 2175e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <div class="nav-section-header"><a href="<?cs var:toroot ?>training/testing/integration-testing/index.html" 2176e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong description="How to build effective integration tests for Android apps."> 2177e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong Testing App Component Integrations 21784bc762a919ead1ad02d4ee065a95e4ecf8a4e657Quddus Chong </a></div> 21794bc762a919ead1ad02d4ee065a95e4ecf8a4e657Quddus Chong <ul> 2180e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <li><a href="<?cs var:toroot ?>training/testing/integration-testing/service-testing.html"> 2181e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <span class="en">Testing Your Service</span></a></li> 2182e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <li><a href="<?cs var:toroot ?>training/testing/integration-testing/content-provider-testing.html"> 2183e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong <span class="en">Testing Your Content Provider</span></a></li> 21844bc762a919ead1ad02d4ee065a95e4ecf8a4e657Quddus Chong </ul> 21854bc762a919ead1ad02d4ee065a95e4ecf8a4e657Quddus Chong </li> 2186566b54126c5132a2e8442675051becab09a31543Quddus Chong <li><a href="<?cs var:toroot ?>training/testing/performance.html" 2187e3f6c81c31ec505fd310dcf23d14e5b0e07279bfQuddus Chong description="How to automate UI performance testing.">Testing Display Performance</a> 2188d61e5537e08f4257e87e2841c58e4fb939c7782dQuddus Chong </li> 2189d61e5537e08f4257e87e2841c58e4fb939c7782dQuddus Chong </ul> 21902ef3952d8e62b71baca176b3e17315a37facd34aquddusc </li> 21912ef3952d8e62b71baca176b3e17315a37facd34aquddusc <!-- End best Testing --> 219250e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main 219322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li class="nav-section"> 219422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 219522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/distribute.html"> 219622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <span class="small">Using Google Play to</span><br/> 219722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Distribute & Monetize 219822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 219922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 220022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <ul> 2201768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li class="nav-section"> 2202768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <div class="nav-section-header"><a href="<?cs var:toroot ?>training/in-app-billing/index.html" 2203768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong description="How to sell in-app products from your application using In-app Billing."> 2204768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong Selling In-app Products 2205768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a></div> 2206768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <ul> 2207768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/preparing-iab-app.html"> 2208768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Preparing Your App</span> 2209768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 2210768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 2211768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/list-iab-products.html"> 2212768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Establishing Products for Sale</span> 2213768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 2214768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 2215768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/purchase-iab-products.html"> 2216768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Purchasing Products</span> 2217768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 2218768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 2219768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <li><a href="<?cs var:toroot ?>training/in-app-billing/test-iab-app.html"> 2220768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong <span class="en">Testing Your App</span> 2221768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </a> 2222768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 2223768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </ul> 2224768dba6d8cd6ad56fb6d4e7e30b3260e0d5e0ffdQuddus Chong </li> 22253ddba7ee37c02c071b6b7580cc21ad8007861ec9Joe Malin 2226969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas <li class="nav-section"> 222722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <div class="nav-section-header"> 222822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <a href="<?cs var:toroot ?>training/multiple-apks/index.html" 222922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main description= 223022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main "How to publish your app on Google Play with separate APKs that target 223122cc2764cc74e52888b043e0c6371594305bb5e9Scott Main different devices, while using a single app listing." 223222cc2764cc74e52888b043e0c6371594305bb5e9Scott Main >Maintaining Multiple APKs</a> 223322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </div> 2234969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas <ul> 223522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/api.html"> 223622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs for Different API Levels 2237969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </a> 2238969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 223922cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/screensize.html"> 224022cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs for Different Screen Sizes 2241969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </a> 2242969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 224322cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/texture.html"> 224422cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs for Different GL Textures 224522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </a> 224622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main </li> 224722cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <li><a href="<?cs var:toroot ?>training/multiple-apks/multiple.html"> 224822cc2764cc74e52888b043e0c6371594305bb5e9Scott Main Creating Multiple APKs with 2+ Dimensions 2249969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </a> 2250969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 2251969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </ul> 2252969c243f17a785dbe697e2cbe09c320136f0d82aAlexander Lucas </li> 225322558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty </ul> 225422558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty </li> 225522cc2764cc74e52888b043e0c6371594305bb5e9Scott Main <!-- End best Publishing --> 225622cc2764cc74e52888b043e0c6371594305bb5e9Scott Main 225750e990c64fa23ce94efa76b9e72df7f8ec3cee6aScott Main</ul><!-- nav --> 225822558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty<script type="text/javascript"> 225922558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty<!-- 226022558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty buildToggleLists(); 226122558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty changeNavLang(getLangPref()); 226222558d0be8210aee1a2ab64b374bb357d4123acdDirk Dougherty//--> 226379cb98c6ced6aaf1ea102e4b927cfb0b99bbf67bAndrew Solovay</script> 2264