blob: 6142dba6cb7d809c3de091a00ddeb5d9b3e50a93 [file] [log] [blame]
Elliot Waite20d6d772016-03-15 18:58:55 -07001toc:
2- title: Getting Started
3 path: /training/index.html
4 section:
5 - title: Building Your First App
6 path: /training/basics/firstapp/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07007 path_attributes:
8 - name: description
9 value: After you've installed the Android SDK, start with this class to learn the basics about Android app development.
Elliot Waite20d6d772016-03-15 18:58:55 -070010 section:
11 - title: Creating an Android Project
12 path: /training/basics/firstapp/creating-project.html
13 - title: Running Your Application
14 path: /training/basics/firstapp/running-app.html
15 - title: Building a Simple User Interface
16 path: /training/basics/firstapp/building-ui.html
17 - title: Starting Another Activity
18 path: /training/basics/firstapp/starting-activity.html
19 - title: Supporting Different Devices
20 path: /training/basics/supporting-devices/index.html
Elliot Waite988248d2016-04-26 19:46:39 -070021 path_attributes:
22 - name: description
23 value: How to build your app with alternative resources that provide an optimized user experience on multiple device form factors using a single APK.
Elliot Waite20d6d772016-03-15 18:58:55 -070024 section:
25 - title: Supporting Different Languages
26 path: /training/basics/supporting-devices/languages.html
27 - title: Supporting Different Screens
28 path: /training/basics/supporting-devices/screens.html
29 - title: Supporting Different Platform Versions
30 path: /training/basics/supporting-devices/platforms.html
31 - title: Managing the Activity Lifecycle
32 path: /training/basics/activity-lifecycle/index.html
Elliot Waite988248d2016-04-26 19:46:39 -070033 path_attributes:
34 - name: ja-lang
35 value: アクティビティのライフサイクル 管理
36 - name: ko-lang
37 value: 액티비티 수명 주기 관리하기
38 - name: pt-br-lang
39 value: Como gerenciar o ciclo de vida da atividade
40 - name: ru-lang
41 value: Управление жизненным циклом операций
42 - name: zh-cn-lang
43 value: 管理活动生命周期
44 - name: zh-tw-lang
45 value: 管理應用行為顯示生命週期
46 - name: description
47 value: How Android activities live and die and how to create a seamless user experience by implementing lifecycle callback methods.
Elliot Waite20d6d772016-03-15 18:58:55 -070048 section:
49 - title: Starting an Activity
50 path: /training/basics/activity-lifecycle/starting.html
Elliot Waite988248d2016-04-26 19:46:39 -070051 path_attributes:
52 - name: ja-lang
53 value: アクティビティを開始する
54 - name: ko-lang
55 value: 액티비티 시작하기
56 - name: pt-br-lang
57 value: Iniciando uma atividade
58 - name: ru-lang
59 value: Запуск операции
60 - name: zh-cn-lang
61 value: 开始活动
62 - name: zh-tw-lang
63 value: 啟動應用行為顯示
Elliot Waite20d6d772016-03-15 18:58:55 -070064 - title: Pausing and Resuming an Activity
65 path: /training/basics/activity-lifecycle/pausing.html
66 - title: Stopping and Restarting an Activity
67 path: /training/basics/activity-lifecycle/stopping.html
Elliot Waite988248d2016-04-26 19:46:39 -070068 path_attributes:
69 - name: ja-lang
70 value: アクティビティの一時停止と再開
71 - name: ko-lang
72 value: 액티비티 일시정지 및 재개하기
73 - name: pt-br-lang
74 value: Pausando e reiniciando uma atividade
75 - name: ru-lang
76 value: Приостановка и возобновление операции
77 - name: zh-cn-lang
78 value: 暂停和继续活动
79 - name: zh-tw-lang
80 value: 暫停並繼續應用行為顯示
Elliot Waite20d6d772016-03-15 18:58:55 -070081 - title: Recreating an Activity
82 path: /training/basics/activity-lifecycle/recreating.html
Elliot Waite988248d2016-04-26 19:46:39 -070083 path_attributes:
84 - name: ja-lang
85 value: アクティビティを再作成する
86 - name: ko-lang
87 value: 액티비티 재생성하기
88 - name: pt-br-lang
89 value: Recriando uma atividade
90 - name: ru-lang
91 value: Воссоздание операции
92 - name: zh-cn-lang
93 value: 重新创建活动
94 - name: zh-tw-lang
95 value: 重新建立應用行為顯示
Elliot Waite20d6d772016-03-15 18:58:55 -070096 - title: Building a Dynamic UI with Fragments
97 path: /training/basics/fragments/index.html
Elliot Waite988248d2016-04-26 19:46:39 -070098 path_attributes:
99 - name: description
100 value: How to build a user interface for your app that is flexible enough to present multiple UI components on large screens and a more constrained set of UI components on smaller screens—essential for building a single APK for both phones and tablets.
Elliot Waite20d6d772016-03-15 18:58:55 -0700101 section:
102 - title: Creating a Fragment
103 path: /training/basics/fragments/creating.html
104 - title: Building a Flexible UI
105 path: /training/basics/fragments/fragment-ui.html
Elliot Waite988248d2016-04-26 19:46:39 -0700106 path_attributes:
107 - name: zh-cn-lang
108 value: 构建灵活的界面
Elliot Waite20d6d772016-03-15 18:58:55 -0700109 - title: Communicating with Other Fragments
110 path: /training/basics/fragments/communicating.html
111 - title: Saving Data
112 path: /training/basics/data-storage/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700113 path_attributes:
114 - name: ja-lang
115 value: データの保存
116 - name: ko-lang
117 value: 데이터 저장하기
118 - name: pt-br-lang
119 value: Salvando dados
120 - name: ru-lang
121 value: Сохранение данных
122 - name: zh-cn-lang
123 value: 保存数据
124 - name: zh-tw-lang
125 value: 儲存資料
126 - name: description
127 value: How to save data on the device, whether it's temporary files, downloaded app assets, user media, structured data, or something else.
Elliot Waite20d6d772016-03-15 18:58:55 -0700128 section:
129 - title: Saving Key-Value Sets
130 path: /training/basics/data-storage/shared-preferences.html
Elliot Waite988248d2016-04-26 19:46:39 -0700131 path_attributes:
132 - name: ja-lang
133 value: キー値セットを保存する
134 - name: ko-lang
135 value: 키-값 세트 저장하기
136 - name: pt-br-lang
137 value: Salvando conjuntos de valor-chave
138 - name: ru-lang
139 value: Сохранение наборов "ключ-значение"
140 - name: zh-cn-lang
141 value: 保存键值集
142 - name: zh-tw-lang
143 value: 儲存索引鍵值組
Elliot Waite20d6d772016-03-15 18:58:55 -0700144 - title: Saving Files
145 path: /training/basics/data-storage/files.html
Elliot Waite988248d2016-04-26 19:46:39 -0700146 path_attributes:
147 - name: ja-lang
148 value: ファイルを保存する
149 - name: ko-lang
150 value: 파일 저장하기
151 - name: pt-br-lang
152 value: Salvando arquivos
153 - name: ru-lang
154 value: Сохранение файлов
155 - name: zh-cn-lang
156 value: 保存文件
157 - name: zh-tw-lang
158 value: 儲存檔案
Elliot Waite20d6d772016-03-15 18:58:55 -0700159 - title: Saving Data in SQL Databases
160 path: /training/basics/data-storage/databases.html
Elliot Waite988248d2016-04-26 19:46:39 -0700161 path_attributes:
162 - name: ja-lang
163 value: SQL データベースにデータを保存する
164 - name: ko-lang
165 value: SQL 데이터베이스에 데이터 저장하기
166 - name: pt-br-lang
167 value: Salvando dados em bancos de dados do SQL
168 - name: ru-lang
169 value: Сохранение данных в базах данных SQL
170 - name: zh-cn-lang
171 value: 在 SQL 数据库中保存数据
172 - name: zh-tw-lang
173 value: 在 SQL 資料庫中儲存資料
Elliot Waite20d6d772016-03-15 18:58:55 -0700174 - title: Interacting with Other Apps
175 path: /training/basics/intents/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700176 path_attributes:
177 - name: ja-lang
178 value: 他のアプリとの相互操作
179 - name: ko-lang
180 value: 액티비티 수명 주기 관리하기
181 - name: pt-br-lang
182 value: Interagindo com outros aplicativos
183 - name: ru-lang
184 value: Взаимодействие с другими приложениями
185 - name: zh-cn-lang
186 value: 与其他应用交互
187 - name: zh-tw-lang
188 value: 與其他應用程式互動
189 - name: description
190 value: How to build a user experience that leverages other apps available on the device to perform advanced user tasks, such as capture a photo or view an address on a map.
Elliot Waite20d6d772016-03-15 18:58:55 -0700191 section:
192 - title: Sending the User to Another App
193 path: /training/basics/intents/sending.html
Elliot Waite988248d2016-04-26 19:46:39 -0700194 path_attributes:
195 - name: ja-lang
196 value: 別のアプリにユーザーを送る
197 - name: ko-lang
198 value: 다른 앱으로 사용자 보내기
199 - name: pt-br-lang
200 value: Enviando o usuário para outro aplicativo
201 - name: ru-lang
202 value: Направление пользователя в другое приложение
203 - name: zh-cn-lang
204 value: 向另一个应用发送用户
205 - name: zh-tw-lang
206 value: 將使用者傳送至其他應用程式
Elliot Waite20d6d772016-03-15 18:58:55 -0700207 - title: Getting a Result from the Activity
208 path: /training/basics/intents/result.html
Elliot Waite988248d2016-04-26 19:46:39 -0700209 path_attributes:
210 - name: ja-lang
211 value: アクティビティから結果を取得する
212 - name: ko-lang
213 value: 액티비티로부터 결과 가져오기
214 - name: pt-br-lang
215 value: Obtendo resultados de uma atividade
216 - name: ru-lang
217 value: Получение результата операции
218 - name: zh-cn-lang
219 value: 获取活动的结果
220 - name: zh-tw-lang
221 value: 從應用行為顯示取得結果
Elliot Waite20d6d772016-03-15 18:58:55 -0700222 - title: Allowing Other Apps to Start Your Activity
223 path: /training/basics/intents/filters.html
Elliot Waite988248d2016-04-26 19:46:39 -0700224 path_attributes:
225 - name: ja-lang
226 value: 他のアプリからのアクティビティの開始を許可する
227 - name: ko-lang
228 value: 다른 앱이 자신의 액티비티를 시작하도록 허용하기
229 - name: pt-br-lang
230 value: Permitindo que outros aplicativos iniciem sua atividade
231 - name: ru-lang
232 value: Разрешение другим приложениям на запуск вашей операции
233 - name: zh-cn-lang
234 value: 允许其他应用开始您的活动
235 - name: zh-tw-lang
236 value: 允許其他應用程式啟動您的應用行為顯示
Elliot Waite20d6d772016-03-15 18:58:55 -0700237 - title: Working with System Permissions
238 path: /training/permissions/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700239 path_attributes:
240 - name: description
241 value: How to declare that your app needs access to features and resources outside of its 'sandbox', and how to request those privileges at runtime.
Elliot Waite20d6d772016-03-15 18:58:55 -0700242 section:
243 - title: Declaring Permissions
244 path: /training/permissions/declaring.html
245 - title: Requesting Permissions at Run Time
246 path: /training/permissions/requesting.html
247 - title: Best Practices for Runtime Permissions
248 path: /training/permissions/best-practices.html
249
250- title: Building Apps with Content Sharing
251 path: /training/building-content-sharing.html
252 section:
253 - title: Sharing Simple Data
254 path: /training/sharing/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700255 path_attributes:
256 - name: description
257 value: How to take your app interaction to the next level by sharing information with other apps, receive information back, and provide a simple and scalable way to perform Share actions with user content.
Elliot Waite20d6d772016-03-15 18:58:55 -0700258 section:
259 - title: Sending Simple Data to Other Apps
260 path: /training/sharing/send.html
261 - title: Receiving Simple Data from Other Apps
262 path: /training/sharing/receive.html
263 - title: Adding an Easy Share Action
264 path: /training/sharing/shareaction.html
265 - title: Sharing Files
266 path: /training/secure-file-sharing/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700267 path_attributes:
268 - name: description
269 value: How to provide secure access to a file associated with your app using a content URI and temporary access permissions.
Elliot Waite20d6d772016-03-15 18:58:55 -0700270 section:
271 - title: Setting Up File Sharing
272 path: /training/secure-file-sharing/setup-sharing.html
273 - title: Sharing a File
274 path: /training/secure-file-sharing/share-file.html
275 - title: Requesting a Shared File
276 path: /training/secure-file-sharing/request-file.html
277 - title: Retrieving File Information
278 path: /training/secure-file-sharing/retrieve-info.html
279 - title: Sharing Files with NFC
280 path: /training/beam-files/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700281 path_attributes:
282 - name: description
283 value: How to transfer files between devices using the NFC Android Beam feature.
Elliot Waite20d6d772016-03-15 18:58:55 -0700284 section:
285 - title: Sending Files to Another Device
286 path: /training/beam-files/send-files.html
287 - title: Receiving Files from Another Device
288 path: /training/beam-files/receive-files.html
289
290- title: Building Apps with Multimedia
291 path: /training/building-multimedia.html
292 section:
293 - title: Managing Audio Playback
294 path: /training/managing-audio/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700295 path_attributes:
296 - name: description
297 value: How to respond to hardware audio key presses, request audio focus when playing audio, and respond appropriately to changes in audio focus.
Elliot Waite20d6d772016-03-15 18:58:55 -0700298 section:
299 - title: Controlling Your App's Volume and Playback
300 path: /training/managing-audio/volume-playback.html
301 - title: Managing Audio Focus
302 path: /training/managing-audio/audio-focus.html
303 - title: Dealing with Audio Output Hardware
304 path: /training/managing-audio/audio-output.html
305 - title: Capturing Photos
306 path: /training/camera/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700307 path_attributes:
308 - name: description
309 value: How to leverage existing camera apps on the user's device to capture photos or control the camera hardware directly and build your own camera app.
Elliot Waite20d6d772016-03-15 18:58:55 -0700310 section:
311 - title: Taking Photos Simply
312 path: /training/camera/photobasics.html
313 - title: Recording Videos Simply
314 path: /training/camera/videobasics.html
315 - title: Controlling the Camera
316 path: /training/camera/cameradirect.html
317 - title: Printing Content
318 path: /training/printing/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700319 path_attributes:
320 - name: description
321 value: How to print photos, HTML documents, and custom documents from your app.
Elliot Waite20d6d772016-03-15 18:58:55 -0700322 section:
323 - title: Photos
324 path: /training/printing/photos.html
325 - title: HTML Documents
326 path: /training/printing/html-docs.html
327 - title: Custom Documents
328 path: /training/printing/custom-docs.html
329
330- title: Building Apps with Graphics & Animation
331 path: /training/building-graphics.html
332 section:
333 - title: Displaying Bitmaps Efficiently
334 path: /training/displaying-bitmaps/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700335 path_attributes:
336 - name: description
337 value: How to load and process bitmaps while keeping your user interface responsive and avoid exceeding memory limits.
Elliot Waite20d6d772016-03-15 18:58:55 -0700338 section:
339 - title: Loading Large Bitmaps Efficiently
340 path: /training/displaying-bitmaps/load-bitmap.html
341 - title: Processing Bitmaps Off the UI Thread
342 path: /training/displaying-bitmaps/process-bitmap.html
343 - title: Caching Bitmaps
344 path: /training/displaying-bitmaps/cache-bitmap.html
345 - title: Managing Bitmap Memory
346 path: /training/displaying-bitmaps/manage-memory.html
347 - title: Displaying Bitmaps in Your UI
348 path: /training/displaying-bitmaps/display-bitmap.html
349 - title: Displaying Graphics with OpenGL ES
350 path: /training/graphics/opengl/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700351 path_attributes:
352 - name: description
353 value: How to create OpenGL graphics within the Android app framework and respond to touch input.
Elliot Waite20d6d772016-03-15 18:58:55 -0700354 section:
355 - title: Building an OpenGL ES Environment
356 path: /training/graphics/opengl/environment.html
357 - title: Defining Shapes
358 path: /training/graphics/opengl/shapes.html
359 - title: Drawing Shapes
360 path: /training/graphics/opengl/draw.html
361 - title: Applying Projection and Camera Views
362 path: /training/graphics/opengl/projection.html
363 - title: Adding Motion
364 path: /training/graphics/opengl/motion.html
365 - title: Responding to Touch Events
366 path: /training/graphics/opengl/touch.html
367 - title: Animating Views Using Scenes and Transitions
368 path: /training/transitions/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700369 path_attributes:
370 - name: description
371 value: How to animate state changes in a view hierarchy using transitions.
Elliot Waite20d6d772016-03-15 18:58:55 -0700372 section:
373 - title: The Transitions Framework
374 path: /training/transitions/overview.html
375 - title: Creating a Scene
376 path: /training/transitions/scenes.html
377 - title: Applying a Transition
378 path: /training/transitions/transitions.html
379 - title: Creating Custom Transitions
380 path: /training/transitions/custom-transitions.html
381 - title: Adding Animations
382 path: /training/animation/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700383 path_attributes:
384 - name: description
385 value: How to add transitional animations to your user interface.
Elliot Waite20d6d772016-03-15 18:58:55 -0700386 section:
387 - title: Crossfading Two Views
388 path: /training/animation/crossfade.html
389 - title: Using ViewPager for Screen Slide
390 path: /training/animation/screen-slide.html
391 - title: Displaying Card Flip Animations
392 path: /training/animation/cardflip.html
393 - title: Zooming a View
394 path: /training/animation/zoom.html
395 - title: Animating Layout Changes
396 path: /training/animation/layout.html
397
398- title: Building Apps with Connectivity & the Cloud
399 path: /training/building-connectivity.html
400 section:
401 - title: Connecting Devices Wirelessly
402 path: /training/connect-devices-wirelessly/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700403 path_attributes:
404 - name: description
405 value: How to find and connect to local devices using Network Service Discovery and how to create peer-to-peer connections with Wi-Fi.
Elliot Waite20d6d772016-03-15 18:58:55 -0700406 section:
407 - title: Using Network Service Discovery
408 path: /training/connect-devices-wirelessly/nsd.html
409 - title: Creating P2P Connections with Wi-Fi
410 path: /training/connect-devices-wirelessly/wifi-direct.html
411 - title: Using Wi-Fi P2P for Service Discovery
412 path: /training/connect-devices-wirelessly/nsd-wifi-direct.html
413 - title: Performing Network Operations
414 path: /training/basics/network-ops/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700415 path_attributes:
416 - name: description
417 value: How to create a network connection, monitor the connection for changes in connectivity, and perform transactions with XML data.
Elliot Waite20d6d772016-03-15 18:58:55 -0700418 section:
419 - title: Connecting to the Network
420 path: /training/basics/network-ops/connecting.html
421 - title: Managing Network Usage
422 path: /training/basics/network-ops/managing.html
423 - title: Parsing XML Data
424 path: /training/basics/network-ops/xml.html
425 - title: Transferring Data Without Draining the Battery
426 path: /training/efficient-downloads/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700427 path_attributes:
428 - name: description
429 value: How to minimize your app's impact on the battery when performing downloads and other network transactions.
Elliot Waite20d6d772016-03-15 18:58:55 -0700430 section:
431 - title: Optimizing Downloads for Efficient Network Access
432 path: /training/efficient-downloads/efficient-network-access.html
433 - title: Minimizing the Effect of Regular Updates
434 path: /training/efficient-downloads/regular_updates.html
435 - title: Redundant Downloads are Redundant
436 path: /training/efficient-downloads/redundant_redundant.html
437 - title: Modifying Patterns Based on the Connectivity Type
438 path: /training/efficient-downloads/connectivity_patterns.html
439 - title: Syncing to the Cloud
440 path: /training/backup/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700441 path_attributes:
442 - name: description
443 value: How to sync and back up app and user data to remote web services in the cloud and how to restore the data back to multiple devices.
Elliot Waite20d6d772016-03-15 18:58:55 -0700444 section:
445 - title: Configuring Auto Backup
446 path: /training/backup/autosyncapi.html
447 - title: Using the Backup API
448 path: /training/backup/backupapi.html
449 - title: Resolving Cloud Save Conflicts
450 path: /training/cloudsave/conflict-res.html
Elliot Waite988248d2016-04-26 19:46:39 -0700451 path_attributes:
452 - name: description
453 value: How to design a robust conflict resolution strategy for apps that save data to the cloud.
Elliot Waite20d6d772016-03-15 18:58:55 -0700454 - title: Transferring Data Using Sync Adapters
455 path: /training/sync-adapters/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700456 path_attributes:
457 - name: description
458 value: How to transfer data between the cloud and the device using the Android sync adapter framework
Elliot Waite20d6d772016-03-15 18:58:55 -0700459 section:
460 - title: Creating a Stub Authenticator
461 path: /training/sync-adapters/creating-authenticator.html
462 - title: Creating a Stub Content Provider
463 path: /training/sync-adapters/creating-stub-provider.html
464 - title: Creating a Sync Adapter
465 path: /training/sync-adapters/creating-sync-adapter.html
466 - title: Running a Sync Adapter
467 path: /training/sync-adapters/running-sync-adapter.html
468 - title: Transmitting Network Data Using Volley
469 path: /training/volley/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700470 path_attributes:
471 - name: description
472 value: How to perform fast, scalable UI operations over the network using Volley
Elliot Waite20d6d772016-03-15 18:58:55 -0700473 section:
474 - title: Sending a Simple Request
475 path: /training/volley/simple.html
476 - title: Setting Up a RequestQueue
477 path: /training/volley/requestqueue.html
478 - title: Making a Standard Request
479 path: /training/volley/request.html
480 - title: Implementing a Custom Request
481 path: /training/volley/request-custom.html
482
483- title: Building Apps with Location & Maps
484 path: /training/building-location.html
485 section:
486 - title: Making Your App Location-Aware
487 path: /training/location/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700488 path_attributes:
489 - name: description
490 value: How to add location-aware features to your app by getting the user's current location.
Elliot Waite20d6d772016-03-15 18:58:55 -0700491 section:
492 - title: Getting the Last Known Location
493 path: /training/location/retrieve-current.html
494 - title: Changing Location Settings
495 path: /training/location/change-location-settings.html
496 - title: Receiving Location Updates
497 path: /training/location/receive-location-updates.html
498 - title: Displaying a Location Address
499 path: /training/location/display-address.html
500 - title: Creating and Monitoring Geofences
501 path: /training/location/geofencing.html
502 - title: Adding Maps
503 path: /training/maps/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700504 path_attributes:
505 - name: description
506 value: How to add maps and mapping information to your app.
Elliot Waite20d6d772016-03-15 18:58:55 -0700507
508- title: Building Apps with User Info & Sign-In
509 path: /training/building-userinfo.html
510 section:
511 - title: Accessing Contacts Data
512 path: /training/contacts-provider/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700513 path_attributes:
514 - name: description
515 value: How to use Android's central address book, the Contacts Provider, to display contacts and their details and modify contact information.
Elliot Waite20d6d772016-03-15 18:58:55 -0700516 section:
517 - title: Retrieving a List of Contacts
518 path: /training/contacts-provider/retrieve-names.html
519 - title: Retrieving Details for a Contact
520 path: /training/contacts-provider/retrieve-details.html
521 - title: Modifying Contacts Using Intents
522 path: /training/contacts-provider/modify-data.html
523 - title: Displaying the Quick Contact Badge
524 path: /training/contacts-provider/display-contact-badge.html
525 - title: Adding Sign-In
526 path: /training/sign-in/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700527 path_attributes:
528 - name: description
529 value: How to add user sign-in functionality to your app.
Elliot Waite20d6d772016-03-15 18:58:55 -0700530
531- title: Building Apps for Wearables
532 path: /training/building-wearables.html
533 section:
534 - title: Adding Wearable Features to Notifications
535 path: /training/wearables/notifications/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700536 path_attributes:
537 - name: description
538 value: How to build handheld notifications that are synced to and look great on wearables.
Elliot Waite20d6d772016-03-15 18:58:55 -0700539 section:
540 - title: Creating a Notification
541 path: /training/wearables/notifications/creating.html
542 - title: Receiving Voice Input in a Notification
543 path: /training/wearables/notifications/voice-input.html
544 - title: Adding Pages to a Notification
545 path: /training/wearables/notifications/pages.html
546 - title: Stacking Notifications
547 path: /training/wearables/notifications/stacks.html
548 - title: Creating Wearable Apps
549 path: /training/wearables/apps/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700550 path_attributes:
551 - name: description
552 value: How to build apps that run directly on wearables.
Elliot Waite20d6d772016-03-15 18:58:55 -0700553 section:
554 - title: Creating and Running a Wearable App
555 path: /training/wearables/apps/creating.html
556 - title: Creating Custom Layouts
557 path: /training/wearables/apps/layouts.html
558 - title: Keeping Your App Visible
559 path: /training/wearables/apps/always-on.html
560 - title: Adding Voice Capabilities
561 path: /training/wearables/apps/voice.html
562 - title: Packaging Wearable Apps
563 path: /training/wearables/apps/packaging.html
564 - title: Debugging over Bluetooth
565 path: /training/wearables/apps/bt-debugging.html
566 - title: Creating Custom UIs
567 path: /training/wearables/ui/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700568 path_attributes:
569 - name: description
570 value: How to create custom user interfaces for wearable apps.
Elliot Waite20d6d772016-03-15 18:58:55 -0700571 section:
572 - title: Defining Layouts
573 path: /training/wearables/ui/layouts.html
574 - title: Creating Cards
575 path: /training/wearables/ui/cards.html
576 - title: Creating Lists
577 path: /training/wearables/ui/lists.html
578 - title: Creating a 2D Picker
579 path: /training/wearables/ui/2d-picker.html
580 - title: Showing Confirmations
581 path: /training/wearables/ui/confirm.html
582 - title: Exiting Full-Screen Activities
583 path: /training/wearables/ui/exit.html
584 - title: Sending and Syncing Data
585 path: /training/wearables/data-layer/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700586 path_attributes:
587 - name: description
588 value: How to sync data between handhelds and wearables.
Elliot Waite20d6d772016-03-15 18:58:55 -0700589 section:
590 - title: Accessing the Wearable Data Layer
591 path: /training/wearables/data-layer/accessing.html
592 - title: Syncing Data Items
593 path: /training/wearables/data-layer/data-items.html
594 - title: Transferring Assets
595 path: /training/wearables/data-layer/assets.html
596 - title: Sending and Receiving Messages
597 path: /training/wearables/data-layer/messages.html
598 - title: Handling Data Layer Events
599 path: /training/wearables/data-layer/events.html
600 - title: Creating Watch Faces
601 path: /training/wearables/watch-faces/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700602 path_attributes:
603 - name: description
604 value: How to create watch faces for wearables.
Elliot Waite20d6d772016-03-15 18:58:55 -0700605 section:
606 - title: Designing Watch Faces
607 path: /training/wearables/watch-faces/designing.html
608 - title: Building a Watch Face Service
609 path: /training/wearables/watch-faces/service.html
610 - title: Drawing Watch Faces
611 path: /training/wearables/watch-faces/drawing.html
612 - title: Showing Information in Watch Faces
613 path: /training/wearables/watch-faces/information.html
614 - title: Creating Interactive Watch Faces
615 path: /training/wearables/watch-faces/interacting.html
616 - title: Providing Configuration Activities
617 path: /training/wearables/watch-faces/configuration.html
618 - title: Addressing Common Issues
619 path: /training/wearables/watch-faces/issues.html
620 - title: Optimizing Performance and Battery Life
621 path: /training/wearables/watch-faces/performance.html
622 - title: Detecting Location
623 path: /training/articles/wear-location-detection.html
Elliot Waite988248d2016-04-26 19:46:39 -0700624 path_attributes:
625 - name: description
626 value: How to detect location data on Android Wear devices.
Elliot Waite20d6d772016-03-15 18:58:55 -0700627 - title: Requesting Permissions
628 path: /training/articles/wear-permissions.html
Elliot Waite988248d2016-04-26 19:46:39 -0700629 path_attributes:
630 - name: description
631 value: How to request permissions on Android Wear devices.
Elliot Waite20d6d772016-03-15 18:58:55 -0700632 - title: Using the Speaker
633 path: /training/wearables/wearable-sounds.html
Elliot Waite988248d2016-04-26 19:46:39 -0700634 path_attributes:
635 - name: description
636 value: How to use the speaker on Android Wear devices.
Elliot Waite20d6d772016-03-15 18:58:55 -0700637
638- title: Building Apps for TV
639 path: /training/tv/index.html
640 section:
641 - title: Building TV Apps
642 path: /training/tv/start/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700643 path_attributes:
644 - name: ja-lang
645 value: TV アプリのビルド
646 - name: description
647 value: How to start building TV apps or extend your existing app to run on TV devices.
Elliot Waite20d6d772016-03-15 18:58:55 -0700648 section:
649 - title: Getting Started with TV Apps
650 path: /training/tv/start/start.html
Elliot Waite988248d2016-04-26 19:46:39 -0700651 path_attributes:
652 - name: ja-lang
653 value: TV アプリのビルドを開始する
Elliot Waite20d6d772016-03-15 18:58:55 -0700654 - title: Handling TV Hardware
655 path: /training/tv/start/hardware.html
Elliot Waite988248d2016-04-26 19:46:39 -0700656 path_attributes:
657 - name: ja-lang
658 value: TV ハードウェアを処理する
Elliot Waite20d6d772016-03-15 18:58:55 -0700659 - title: Building TV Layouts
660 path: /training/tv/start/layouts.html
Elliot Waite988248d2016-04-26 19:46:39 -0700661 path_attributes:
662 - name: ja-lang
663 value: TV 向けレイアウトをビルドする
Elliot Waite20d6d772016-03-15 18:58:55 -0700664 - title: Creating TV Navigation
665 path: /training/tv/start/navigation.html
Elliot Waite988248d2016-04-26 19:46:39 -0700666 path_attributes:
667 - name: ja-lang
668 value: TV 用のナビゲーションを作成する
Elliot Waite20d6d772016-03-15 18:58:55 -0700669 - title: Building TV Playback Apps
670 path: /training/tv/playback/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700671 path_attributes:
672 - name: ja-lang
673 value: TV 再生アプリのビルド
674 - name: description
675 value: How to build apps that provide media catalogs and play content.
Elliot Waite20d6d772016-03-15 18:58:55 -0700676 section:
677 - title: Creating a Catalog Browser
678 path: /training/tv/playback/browse.html
Elliot Waite988248d2016-04-26 19:46:39 -0700679 path_attributes:
680 - name: ja-lang
681 value: カタログ ブラウザを作成する
Elliot Waite20d6d772016-03-15 18:58:55 -0700682 - title: Providing a Card View
683 path: /training/tv/playback/card.html
684 - title: Building a Details View
685 path: /training/tv/playback/details.html
Elliot Waite988248d2016-04-26 19:46:39 -0700686 path_attributes:
687 - name: ja-lang
688 value: 詳細ビューをビルドする
Elliot Waite20d6d772016-03-15 18:58:55 -0700689 - title: Displaying a Now Playing Card
690 path: /training/tv/playback/now-playing.html
Elliot Waite988248d2016-04-26 19:46:39 -0700691 path_attributes:
692 - name: ja-lang
693 value: 再生中カードを表示する
Elliot Waite20d6d772016-03-15 18:58:55 -0700694 - title: Adding a Guided Step
695 path: /training/tv/playback/guided-step.html
696 - title: Enabling Background Playback
697 path: /training/tv/playback/options.html
Daniel Yue0fa75c2016-07-19 13:45:38 -0700698 - title: Adding Picture-in-picture
699 path: /training/tv/playback/picture-in-picture.html
Elliot Waite20d6d772016-03-15 18:58:55 -0700700 - title: Helping Users Find Content on TV
701 path: /training/tv/discovery/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700702 path_attributes:
703 - name: description
704 value: How to help users discover content from your app.
Elliot Waite20d6d772016-03-15 18:58:55 -0700705 section:
706 - title: Recommending TV Content
707 path: /training/tv/discovery/recommendations.html
708 - title: Making TV Apps Searchable
709 path: /training/tv/discovery/searchable.html
710 - title: Searching within TV Apps
711 path: /training/tv/discovery/in-app-search.html
712 - title: Building TV Games
713 path: /training/tv/games/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700714 path_attributes:
715 - name: description
716 value: How to build games for TV.
Elliot Waite20d6d772016-03-15 18:58:55 -0700717 - title: Building TV Channels
718 path: /training/tv/tif/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700719 path_attributes:
720 - name: description
721 value: How to build channels for TV.
Elliot Waite20d6d772016-03-15 18:58:55 -0700722 section:
723 - title: Developing a TV Input Service
724 path: /training/tv/tif/tvinput.html
725 - title: Working with Channel Data
726 path: /training/tv/tif/channel.html
727 - title: Managing User Interaction
728 path: /training/tv/tif/ui.html
729 - title: TV Apps Checklist
730 path: /training/tv/publishing/checklist.html
Elliot Waite988248d2016-04-26 19:46:39 -0700731 path_attributes:
732 - name: description
733 value: An itemized list of requirements for TV apps.
Elliot Waite20d6d772016-03-15 18:58:55 -0700734
735- title: Building Apps for Auto
736 path: /training/auto/index.html
737 section:
738 - title: Getting Started with Auto
739 path: /training/auto/start/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700740 path_attributes:
741 - name: description
742 value: How to start building or extending apps that work with Auto devices.
Elliot Waite20d6d772016-03-15 18:58:55 -0700743 - title: Playing Audio for Auto
744 path: /training/auto/audio/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700745 path_attributes:
746 - name: description
747 value: How to extend audio apps to play content on Auto devices.
Elliot Waite20d6d772016-03-15 18:58:55 -0700748 - title: Messaging for Auto
749 path: /training/auto/messaging/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700750 path_attributes:
751 - name: description
752 value: How to extend text messaging apps to work with Auto devices.
sreevaniseb41bc02016-02-03 11:07:53 -0800753 - title: Testing for Auto
754 path: /training/auto/testing/index.html
755 path_attributes:
756 - name: description
757 value: How to use DHU to test Auto apps.
Elliot Waite20d6d772016-03-15 18:58:55 -0700758
Elliot Waite20d6d772016-03-15 18:58:55 -0700759- title: Best Practices for Interaction & Engagement
760 path: /training/best-ux.html
761 section:
762 - title: Designing Effective Navigation
763 path: /training/design-navigation/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700764 path_attributes:
765 - name: description
766 value: How to plan your app's screen hierarchy and forms of navigation so users can effectively and intuitively traverse your app content using various navigation patterns.
Elliot Waite20d6d772016-03-15 18:58:55 -0700767 section:
768 - title: Planning Screens and Their Relationships
769 path: /training/design-navigation/screen-planning.html
770 - title: Planning for Multiple Touchscreen Sizes
771 path: /training/design-navigation/multiple-sizes.html
772 - title: Providing Descendant and Lateral Navigation
773 path: /training/design-navigation/descendant-lateral.html
774 - title: Providing Ancestral and Temporal Navigation
775 path: /training/design-navigation/ancestral-temporal.html
776 - title: "Putting it All Together: Wireframing the Example App"
777 path: /training/design-navigation/wireframing.html
778 - title: Implementing Effective Navigation
779 path: /training/implementing-navigation/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700780 path_attributes:
781 - name: description
782 value: How to implement various navigation patterns such as swipe views, a navigation drawer, and up navigation.
Elliot Waite20d6d772016-03-15 18:58:55 -0700783 section:
784 - title: Creating Swipe Views with Tabs
785 path: /training/implementing-navigation/lateral.html
786 - title: Creating a Navigation Drawer
787 path: /training/implementing-navigation/nav-drawer.html
788 - title: Providing Up Navigation
789 path: /training/implementing-navigation/ancestral.html
790 - title: Providing Proper Back Navigation
791 path: /training/implementing-navigation/temporal.html
792 - title: Implementing Descendant Navigation
793 path: /training/implementing-navigation/descendant.html
794 - title: Notifying the User
795 path: /training/notify-user/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700796 path_attributes:
797 - name: description
798 value: How to display messages called notifications outside of your application's UI.
Elliot Waite20d6d772016-03-15 18:58:55 -0700799 section:
800 - title: Building a Notification
801 path: /training/notify-user/build-notification.html
802 - title: Preserving Navigation when Starting an Activity
803 path: /training/notify-user/navigation.html
804 - title: Updating Notifications
805 path: /training/notify-user/managing.html
806 - title: Using Big View Styles
807 path: /training/notify-user/expanded.html
808 - title: Displaying Progress in a Notification
809 path: /training/notify-user/display-progress.html
810 - title: Supporting Swipe-to-Refresh
811 path: /training/swipe/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700812 path_attributes:
813 - name: description
814 value: How to modify your app's layout to support manual content updates triggered by the swipe-to-refresh gesture.
Elliot Waite20d6d772016-03-15 18:58:55 -0700815 section:
816 - title: Adding Swipe-to-Refresh To Your App
817 path: /training/swipe/add-swipe-interface.html
818 - title: Responding to a Refresh Gesture
819 path: /training/swipe/respond-refresh-request.html
820 - title: Adding Search Functionality
821 path: /training/search/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700822 path_attributes:
823 - name: description
824 value: How to properly add a search interface to your app and create a searchable database.
Elliot Waite20d6d772016-03-15 18:58:55 -0700825 section:
826 - title: Setting up the Search Interface
827 path: /training/search/setup.html
828 - title: Storing and Searching for Data
829 path: /training/search/search.html
830 - title: Remaining Backward Compatible
831 path: /training/search/backward-compat.html
832 - title: Making Your App Content Searchable by Google
833 path: /training/app-indexing/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700834 path_attributes:
835 - name: description
836 value: How to enable deep linking and indexing of your application content so that users can open this content directly from their mobile search results.
Elliot Waite20d6d772016-03-15 18:58:55 -0700837 section:
838 - title: Enabling Deep Links for App Content
839 path: /training/app-indexing/deep-linking.html
840 - title: Specifying App Content for Indexing
841 path: /training/app-indexing/enabling-app-indexing.html
842 - title: Optimizing Content for the Assistant
843 path: /training/articles/assistant.html
Elliot Waite988248d2016-04-26 19:46:39 -0700844 path_attributes:
845 - name: description
846 value: Support contextually relevant actions through the Assist API.
Elliot Waite20d6d772016-03-15 18:58:55 -0700847 - title: Handling App Links
848 path: /training/app-links/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700849 path_attributes:
850 - name: description
851 value: How to enable the system to handle web requests by taking the user directly to your app instead of your website.
Elliot Waite20d6d772016-03-15 18:58:55 -0700852
853- title: Best Practices for User Interface
854 path: /training/best-ui.html
855 section:
856 - title: Designing for Multiple Screens
857 path: /training/multiscreen/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700858 path_attributes:
859 - name: es-lang
860 value: Cómo diseñar aplicaciones para varias pantallas
861 - name: ja-lang
862 value: 複数画面のデザイン
863 - name: zh-cn-lang
864 value: 针对多种屏幕进行设计
865 - name: description
866 value: How to build a user interface that's flexible enough to fit perfectly on any screen and how to create different interaction patterns that are optimized for different screen sizes.
Elliot Waite20d6d772016-03-15 18:58:55 -0700867 section:
868 - title: Supporting Different Screen Sizes
869 path: /training/multiscreen/screensizes.html
Elliot Waite988248d2016-04-26 19:46:39 -0700870 path_attributes:
871 - name: es-lang
872 value: Cómo admitir varios tamaños de pantalla
873 - name: ja-lang
874 value: さまざまな画面サイズのサポート
875 - name: ko-lang
876 value: 다양한 화면 크기 지원
877 - name: zh-cn-lang
878 value: 支持各种屏幕尺寸
Elliot Waite20d6d772016-03-15 18:58:55 -0700879 - title: Supporting Different Screen Densities
880 path: /training/multiscreen/screendensities.html
Elliot Waite988248d2016-04-26 19:46:39 -0700881 path_attributes:
882 - name: es-lang
883 value: Cómo admitir varias densidades de pantalla
884 - name: ja-lang
885 value: さまざまな画面密度のサポート
886 - name: zh-cn-lang
887 value: 支持各种屏幕密度
Elliot Waite20d6d772016-03-15 18:58:55 -0700888 - title: Implementing Adaptive UI Flows
889 path: /training/multiscreen/adaptui.html
Elliot Waite988248d2016-04-26 19:46:39 -0700890 path_attributes:
891 - name: es-lang
892 value: Cómo implementar interfaces de usuario adaptables
893 - name: ja-lang
894 value: 順応性のある UI フローの実装
895 - name: zh-cn-lang
896 value: 实施自适应用户界面流程
Elliot Waite20d6d772016-03-15 18:58:55 -0700897 - title: Adding the App Bar
898 path: /training/appbar/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700899 path_attributes:
900 - name: description
901 value: How to use the support library's toolbar widget to implement an app bar that displays properly on a wide range of devices.
Elliot Waite20d6d772016-03-15 18:58:55 -0700902 section:
903 - title: Setting Up the App Bar
904 path: /training/appbar/setting-up.html
905 - title: Adding and Handling Actions
906 path: /training/appbar/actions.html
907 - title: Adding an Up Action
908 path: /training/appbar/up-action.html
909 - title: Action Views and Action Providers
910 path: /training/appbar/action-views.html
911 - title: Showing Pop-Up Messages
912 path: /training/snackbar/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700913 path_attributes:
914 - name: description
915 value: How to use the support library's Snackbar widget to display a brief pop-up message.
Elliot Waite20d6d772016-03-15 18:58:55 -0700916 section:
917 - title: Building and Displaying a Pop-Up Message
918 path: /training/snackbar/showing.html
919 - title: Adding an Action to a Message
920 path: /training/snackbar/action.html
921 - title: Creating Custom Views
922 path: /training/custom-views/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700923 path_attributes:
924 - name: description
925 value: How to build custom UI widgets that are interactive and smooth.
Elliot Waite20d6d772016-03-15 18:58:55 -0700926 section:
927 - title: Creating a Custom View Class
928 path: /training/custom-views/create-view.html
929 - title: Implementing Custom Drawing
930 path: /training/custom-views/custom-drawing.html
931 - title: Making the View Interactive
932 path: /training/custom-views/making-interactive.html
933 - title: Optimizing the View
934 path: /training/custom-views/optimizing-view.html
935 - title: Creating Backward-Compatible UIs
936 path: /training/backward-compatible-ui/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700937 path_attributes:
938 - name: description
939 value: How to use UI components and other APIs from the more recent versions of Android while remaining compatible with older versions of the platform.
Elliot Waite20d6d772016-03-15 18:58:55 -0700940 section:
941 - title: Abstracting the New APIs
942 path: /training/backward-compatible-ui/abstracting.html
943 - title: Proxying to the New APIs
944 path: /training/backward-compatible-ui/new-implementation.html
945 - title: Creating an Implementation with Older APIs
946 path: /training/backward-compatible-ui/older-implementation.html
947 - title: Using the Version-Aware Component
948 path: /training/backward-compatible-ui/using-component.html
949 - title: Implementing Accessibility
950 path: /training/accessibility/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700951 path_attributes:
952 - name: description
953 value: How to make your app accessible to users with vision impairment or other physical disabilities.
Elliot Waite20d6d772016-03-15 18:58:55 -0700954 section:
955 - title: Developing Accessible Applications
956 path: /training/accessibility/accessible-app.html
957 - title: Developing Accessibility Services
958 path: /training/accessibility/service.html
959 - title: Accessibility Testing Checklist
960 path: /training/accessibility/testing.html
961 - title: Managing the System UI
962 path: /training/system-ui/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700963 path_attributes:
964 - name: description
965 value: How to hide and show status and navigation bars across different versions of Android, while managing the display of other screen components.
Elliot Waite20d6d772016-03-15 18:58:55 -0700966 section:
967 - title: Dimming the System Bars
968 path: /training/system-ui/dim.html
969 - title: Hiding the Status Bar
970 path: /training/system-ui/status.html
971 - title: Hiding the Navigation Bar
972 path: /training/system-ui/navigation.html
973 - title: Using Immersive Full-Screen Mode
974 path: /training/system-ui/immersive.html
975 - title: Responding to UI Visibility Changes
976 path: /training/system-ui/visibility.html
977 - title: Creating Apps with Material Design
978 path: /training/material/index.html
Elliot Waite988248d2016-04-26 19:46:39 -0700979 path_attributes:
980 - name: es-lang
981 value: Crear aplicaciones con Material Design
982 - name: in-lang
983 value: Desain Bahan untuk Pengembang
984 - name: ja-lang
985 value: マテリアル デザインでのアプリ作成
986 - name: ko-lang
987 value: 개발자를 위한 머티리얼 디자인
988 - name: pt-br-lang
989 value: Material Design para desenvolvedores
990 - name: ru-lang
991 value: Создание приложений с помощью Material Design
992 - name: vi-lang
993 value: Material Design cho Nhà phát triển
994 - name: zh-cn-lang
995 value: 面向开发者的材料设计
996 - name: zh-tw-lang
997 value: 開發人員材料設計
998 - name: description
999 value: How to implement material design on Android.
Elliot Waite20d6d772016-03-15 18:58:55 -07001000 section:
1001 - title: Getting Started
1002 path: /training/material/get-started.html
Elliot Waite988248d2016-04-26 19:46:39 -07001003 path_attributes:
1004 - name: es-lang
1005 value: Comencemos
1006 - name: in-lang
1007 value: Memulai
1008 - name: ja-lang
1009 value: スタート ガイド
1010 - name: ko-lang
1011 value: 시작하기
1012 - name: pt-br-lang
1013 value: Como iniciar
1014 - name: ru-lang
1015 value: Начало работы
1016 - name: vi-lang
1017 value: Bắt đầu
1018 - name: zh-cn-lang
1019 value: 入门指南
1020 - name: zh-tw-lang
1021 value: 開始使用
Elliot Waite20d6d772016-03-15 18:58:55 -07001022 - title: Using the Material Theme
1023 path: /training/material/theme.html
Elliot Waite988248d2016-04-26 19:46:39 -07001024 path_attributes:
1025 - name: es-lang
1026 value: Usar el tema Material
1027 - name: in-lang
1028 value: Menggunakan Tema Bahan
1029 - name: ja-lang
1030 value: マテリアル テーマの使用
1031 - name: ko-lang
1032 value: 머티어리얼 테마 사용
1033 - name: pt-br-lang
1034 value: Como usar o tema do Material
1035 - name: ru-lang
1036 value: Использование темы Material Design
1037 - name: vi-lang
1038 value: Sử dụng Chủ đề Material
1039 - name: zh-cn-lang
1040 value: 使用材料主题
1041 - name: zh-tw-lang
1042 value: 使用材料設計風格
Elliot Waite20d6d772016-03-15 18:58:55 -07001043 - title: Creating Lists and Cards
1044 path: /training/material/lists-cards.html
Elliot Waite988248d2016-04-26 19:46:39 -07001045 path_attributes:
1046 - name: es-lang
1047 value: Crear listas y tarjetas
1048 - name: in-lang
1049 value: Membuat Daftar dan Kartu
1050 - name: ja-lang
1051 value: リストとカードの作成
1052 - name: ko-lang
1053 value: 목록 및 카드 생성
1054 - name: pt-br-lang
1055 value: Como criar listas e cartões
1056 - name: ru-lang
1057 value: Создание списков и подсказок
1058 - name: vi-lang
1059 value: Tạo Danh sách và Thẻ
1060 - name: zh-cn-lang
1061 value: 创建列表与卡片
1062 - name: zh-tw-lang
1063 value: 建立清單和卡片
Elliot Waite20d6d772016-03-15 18:58:55 -07001064 - title: Defining Shadows and Clipping Views
1065 path: /training/material/shadows-clipping.html
Elliot Waite988248d2016-04-26 19:46:39 -07001066 path_attributes:
1067 - name: es-lang
1068 value: Definir vistas de recorte y sombras
1069 - name: in-lang
1070 value: Mendefinisikan Bayangan dan Memangkas Tampilan
1071 - name: ja-lang
1072 value: シャドウとクリッピング ビューの定義
1073 - name: ko-lang
1074 value: 그림자 정의 및 뷰 클리핑
1075 - name: pt-br-lang
1076 value: Como definir sombras e recortar visualizações
1077 - name: ru-lang
1078 value: Определение теней и обрезка представлений
1079 - name: vi-lang
1080 value: Định nghĩa Đổ bóng và Dạng xem Cắt hình
1081 - name: zh-cn-lang
1082 value: 定义阴影与裁剪视图
1083 - name: zh-tw-lang
1084 value: 定義陰影和裁剪檢視
Elliot Waite20d6d772016-03-15 18:58:55 -07001085 - title: Working with Drawables
1086 path: /training/material/drawables.html
Elliot Waite988248d2016-04-26 19:46:39 -07001087 path_attributes:
1088 - name: es-lang
1089 value: Trabajar con interfaces dibujables
1090 - name: in-lang
1091 value: Bekerja dengan Drawable
1092 - name: ja-lang
1093 value: ドローアブルの使用
1094 - name: ko-lang
1095 value: Drawable 사용
1096 - name: pt-br-lang
1097 value: Como trabalhar com desenháveis
1098 - name: ru-lang
1099 value: Работа с элементами дизайна
1100 - name: vi-lang
1101 value: Làm việc với Nội dung vẽ được
1102 - name: zh-cn-lang
1103 value: 使用 Drawables
1104 - name: zh-tw-lang
1105 value: 使用可繪項目
Elliot Waite20d6d772016-03-15 18:58:55 -07001106 - title: Defining Custom Animations
1107 path: /training/material/animations.html
Elliot Waite988248d2016-04-26 19:46:39 -07001108 path_attributes:
1109 - name: es-lang
1110 value: Definir animaciones personalizadas
1111 - name: in-lang
1112 value: Mendefinisikan Animasi Custom
1113 - name: ja-lang
1114 value: カスタム アニメーションの定義
1115 - name: ko-lang
1116 value: 사용자지정 애니메이션 정의
1117 - name: pt-br-lang
1118 value: Como definir animações personalizadas
1119 - name: ru-lang
1120 value: Определение настраиваемой анимации
1121 - name: vi-lang
1122 value: Định nghĩa Hoạt hình Tùy chỉnh
1123 - name: zh-cn-lang
1124 value: 定义定制动画
1125 - name: zh-tw-lang
1126 value: 定義自訂動畫
Elliot Waite20d6d772016-03-15 18:58:55 -07001127 - title: Maintaining Compatibility
1128 path: /training/material/compatibility.html
Elliot Waite988248d2016-04-26 19:46:39 -07001129 path_attributes:
1130 - name: es-lang
1131 value: Mantener la compatibilidad
1132 - name: in-lang
1133 value: Mempertahankan Kompatibilitas
1134 - name: ja-lang
1135 value: 互換性の維持
1136 - name: ko-lang
1137 value: 호환성 유지
1138 - name: pt-br-lang
1139 value: Como manter a compatibilidade
1140 - name: ru-lang
1141 value: Обеспечение совместимости
1142 - name: vi-lang
1143 value: Duy trì Tính tương thích
1144 - name: zh-cn-lang
1145 value: 维护兼容性
1146 - name: zh-tw-lang
1147 value: 維持相容性
Elliot Waite20d6d772016-03-15 18:58:55 -07001148
1149- title: Best Practices for User Input
1150 path: /training/best-user-input.html
1151 section:
1152 - title: Using Touch Gestures
1153 path: /training/gestures/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001154 path_attributes:
1155 - name: description
1156 value: How to write apps that allow users to interact with the touch screen via touch gestures.
Elliot Waite20d6d772016-03-15 18:58:55 -07001157 section:
1158 - title: Detecting Common Gestures
1159 path: /training/gestures/detector.html
1160 - title: Tracking Movement
1161 path: /training/gestures/movement.html
1162 - title: Animating a Scroll Gesture
1163 path: /training/gestures/scroll.html
1164 - title: Handling Multi-Touch Gestures
1165 path: /training/gestures/multi.html
1166 - title: Dragging and Scaling
1167 path: /training/gestures/scale.html
1168 - title: Managing Touch Events in a ViewGroup
1169 path: /training/gestures/viewgroup.html
1170 - title: Handling Keyboard Input
1171 path: /training/keyboard-input/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001172 path_attributes:
1173 - name: description
1174 value: How to specify the appearance and behaviors of soft input methods (such as on-screen keyboards) and how to optimize the experience with hardware keyboards.
Elliot Waite20d6d772016-03-15 18:58:55 -07001175 section:
1176 - title: Specifying the Input Method Type
1177 path: /training/keyboard-input/style.html
1178 - title: Handling Input Method Visibility
1179 path: /training/keyboard-input/visibility.html
1180 - title: Supporting Keyboard Navigation
1181 path: /training/keyboard-input/navigation.html
1182 - title: Handling Keyboard Actions
1183 path: /training/keyboard-input/commands.html
1184 - title: Supporting Game Controllers
1185 path: /training/game-controllers/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001186 path_attributes:
1187 - name: description
1188 value: How to write apps that support game controllers.
Elliot Waite20d6d772016-03-15 18:58:55 -07001189 section:
1190 - title: Handling Controller Actions
1191 path: /training/game-controllers/controller-input.html
1192 - title: Supporting Controllers Across Android Versions
1193 path: /training/game-controllers/compatibility.html
1194 - title: Supporting Multiple Game Controllers
1195 path: /training/game-controllers/multiple-controllers.html
1196
1197- title: Best Practices for Background Jobs
1198 path: /training/best-background.html
1199 section:
1200 - title: Running in a Background Service
1201 path: /training/run-background-service/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001202 path_attributes:
1203 - name: description
1204 value: How to improve UI performance and responsiveness by sending work to a Service running in the background
Elliot Waite20d6d772016-03-15 18:58:55 -07001205 section:
1206 - title: Creating a Background Service
1207 path: /training/run-background-service/create-service.html
1208 - title: Sending Work Requests to the Background Service
1209 path: /training/run-background-service/send-request.html
1210 - title: Reporting Work Status
1211 path: /training/run-background-service/report-status.html
1212 - title: Loading Data in the Background
1213 path: /training/load-data-background/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001214 path_attributes:
1215 - name: description
1216 value: How to use CursorLoader to query data without affecting UI responsiveness.
Elliot Waite20d6d772016-03-15 18:58:55 -07001217 section:
1218 - title: Running a Query with a CursorLoader
1219 path: /training/load-data-background/setup-loader.html
1220 - title: Handling the Results
1221 path: /training/load-data-background/handle-results.html
1222 - title: Managing Device Awake State
1223 path: /training/scheduling/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001224 path_attributes:
1225 - name: description
1226 value: How to use repeating alarms and wake locks to run background jobs.
Elliot Waite20d6d772016-03-15 18:58:55 -07001227 section:
1228 - title: Keeping the Device Awake
1229 path: /training/scheduling/wakelock.html
1230 - title: Scheduling Repeating Alarms
1231 path: /training/scheduling/alarms.html
1232
1233- title: Best Practices for Performance
1234 path: /training/best-performance.html
1235 section:
1236 - title: Managing Your App's Memory
1237 path: /training/articles/memory.html
Elliot Waite988248d2016-04-26 19:46:39 -07001238 path_attributes:
1239 - name: description
1240 value: How to keep your app's memory footprint small in order to improve performance on a variety of mobile devices.
Elliot Waite20d6d772016-03-15 18:58:55 -07001241 - title: Performance Tips
1242 path: /training/articles/perf-tips.html
Elliot Waite988248d2016-04-26 19:46:39 -07001243 path_attributes:
1244 - name: description
1245 value: How to optimize your app's performance in various ways to improve its responsiveness and battery efficiency.
Elliot Waite20d6d772016-03-15 18:58:55 -07001246 - title: Improving Layout Performance
1247 path: /training/improving-layouts/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001248 path_attributes:
1249 - name: description
1250 value: How to identify problems in your app's layout performance and improve the UI responsiveness.
Elliot Waite20d6d772016-03-15 18:58:55 -07001251 section:
1252 - title: Optimizing Layout Hierarchies
1253 path: /training/improving-layouts/optimizing-layout.html
1254 - title: Re-using Layouts with <include/>
1255 path: /training/improving-layouts/reusing-layouts.html
1256 - title: Loading Views On Demand
1257 path: /training/improving-layouts/loading-ondemand.html
1258 - title: Making ListView Scrolling Smooth
1259 path: /training/improving-layouts/smooth-scrolling.html
1260 - title: Optimizing Battery Life
1261 path: /training/monitoring-device-state/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001262 path_attributes:
1263 - name: es-lang
1264 value: Cómo optimizar la duración de la batería
1265 - name: ja-lang
1266 value: 電池消費量の最適化
1267 - name: zh-cn-lang
1268 value: 优化电池使用时间
1269 - name: description
1270 value: How to minimize the amount of power your app requires by adapting to current power conditions and performing power-hungry tasks at proper intervals.
Elliot Waite20d6d772016-03-15 18:58:55 -07001271 section:
1272 - title: Reducing Network Battery Drain
1273 path: /training/performance/battery/network/index.html
1274 section:
1275 - title: Collecting Network Traffic Data
1276 path: /training/performance/battery/network/gather-data.html
1277 - title: Analyzing Network Traffic Data
1278 path: /training/performance/battery/network/analyze-data.html
1279 - title: Optimizing User-Initiated Network Use
1280 path: /training/performance/battery/network/action-user-traffic.html
1281 - title: Optimizing App-Initiated Network Use
1282 path: /training/performance/battery/network/action-app-traffic.html
1283 - title: Optimizing Server-Initiated Network Use
1284 path: /training/performance/battery/network/action-server-traffic.html
1285 - title: Optimizing General Network Use
1286 path: /training/performance/battery/network/action-any-traffic.html
1287 - title: Optimizing for Doze and App Standby
1288 path: /training/monitoring-device-state/doze-standby.html
1289 - title: Monitoring the Battery Level and Charging State
1290 path: /training/monitoring-device-state/battery-monitoring.html
Elliot Waite988248d2016-04-26 19:46:39 -07001291 path_attributes:
1292 - name: es-lang
1293 value: Cómo controlar el nivel de batería y el estado de carga
1294 - name: ja-lang
1295 value: 電池残量と充電状態の監視
1296 - name: zh-cn-lang
1297 value: 监控电池电量和充电状态
Elliot Waite20d6d772016-03-15 18:58:55 -07001298 - title: Determining and Monitoring the Docking State and Type
1299 path: /training/monitoring-device-state/docking-monitoring.html
Elliot Waite988248d2016-04-26 19:46:39 -07001300 path_attributes:
1301 - name: es-lang
1302 value: Cómo determinar y controlar el tipo de conector y el estado de la conexión
1303 - name: ja-lang
1304 value: ホルダーの装着状態とタイプの特定と監視
1305 - name: zh-cn-lang
1306 value: 确定和监控基座对接状态和类型
Elliot Waite20d6d772016-03-15 18:58:55 -07001307 - title: Determining and Monitoring the Connectivity Status
1308 path: /training/monitoring-device-state/connectivity-monitoring.html
Elliot Waite988248d2016-04-26 19:46:39 -07001309 path_attributes:
1310 - name: es-lang
1311 value: Cómo determinar y controlar el estado de la conectividad
1312 - name: ja-lang
1313 value: 接続状態の特定と監視
1314 - name: zh-cn-lang
1315 value: 确定和监控网络连接状态
Elliot Waite20d6d772016-03-15 18:58:55 -07001316 - title: Manipulating Broadcast Receivers On Demand
1317 path: /training/monitoring-device-state/manifest-receivers.html
Elliot Waite988248d2016-04-26 19:46:39 -07001318 path_attributes:
1319 - name: es-lang
1320 value: Cómo manipular los receptores de emisión bajo demanda
1321 - name: ja-lang
1322 value: オンデマンドでのブロードキャスト レシーバ操作
1323 - name: zh-cn-lang
1324 value: 根据需要操作广播接收器
Elliot Waite20d6d772016-03-15 18:58:55 -07001325 - title: Sending Operations to Multiple Threads
1326 path: /training/multiple-threads/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001327 path_attributes:
1328 - name: description
1329 value: How to improve the performance and scalability of long-running operations by dispatching work to multiple threads.
Elliot Waite20d6d772016-03-15 18:58:55 -07001330 section:
1331 - title: Specifying the Code to Run on a Thread
1332 path: /training/multiple-threads/define-runnable.html
1333 - title: Creating a Manager for Multiple Threads
1334 path: /training/multiple-threads/create-threadpool.html
1335 - title: Running Code on a Thread Pool Thread
1336 path: /training/multiple-threads/run-code.html
1337 - title: Communicating with the UI Thread
1338 path: /training/multiple-threads/communicate-ui.html
1339 - title: Keeping Your App Responsive
1340 path: /training/articles/perf-anr.html
Elliot Waite988248d2016-04-26 19:46:39 -07001341 path_attributes:
1342 - name: description
1343 value: How to keep your app responsive to user interaction so the UI does not lock-up and display an "Application Not Responding" dialog.
Elliot Waite20d6d772016-03-15 18:58:55 -07001344 - title: JNI Tips
1345 path: /training/articles/perf-jni.html
Elliot Waite988248d2016-04-26 19:46:39 -07001346 path_attributes:
1347 - name: description
1348 value: How to efficiently use the Java Native Interface with the Android NDK.
Elliot Waite20d6d772016-03-15 18:58:55 -07001349 - title: SMP Primer for Android
1350 path: /training/articles/smp.html
Elliot Waite988248d2016-04-26 19:46:39 -07001351 path_attributes:
1352 - name: description
1353 value: Tips for coding Android apps on symmetric multiprocessor systems.
Elliot Waite20d6d772016-03-15 18:58:55 -07001354
1355- title: Best Practices for Security & Privacy
1356 path: /training/best-security.html
1357 section:
1358 - title: Security Tips
1359 path: /training/articles/security-tips.html
Elliot Waite988248d2016-04-26 19:46:39 -07001360 path_attributes:
1361 - name: description
1362 value: How to perform various tasks and keep your app's data and your user's data secure.
Elliot Waite20d6d772016-03-15 18:58:55 -07001363 - title: Security with HTTPS and SSL
1364 path: /training/articles/security-ssl.html
Elliot Waite988248d2016-04-26 19:46:39 -07001365 path_attributes:
1366 - name: description
1367 value: How to ensure that your app is secure when performing network transactions.
Kevin Hufnagle78747a12016-07-21 13:30:49 -07001368 - title: Network Security Configuration
1369 path: /training/articles/security-config.html
1370 path_attributes:
1371 - name: description
1372 value: Customize the behavior of your app's secure network connections safely.
Elliot Waite20d6d772016-03-15 18:58:55 -07001373 - title: Updating Your Security Provider to Protect Against SSL Exploits
1374 path: /training/articles/security-gms-provider.html
Elliot Waite988248d2016-04-26 19:46:39 -07001375 path_attributes:
1376 - name: description
1377 value: How to use and update Google Play services security provider, to protect against SSL exploits.
Elliot Waite20d6d772016-03-15 18:58:55 -07001378 - title: Checking Device Compatibility with SafetyNet
1379 path: /training/safetynet/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001380 path_attributes:
1381 - name: description
1382 value: How to use the SafetyNet service to analyze a device where your app is running and get information about its compatibility with your app.
Kevin Hufnaglec946f9d2016-07-20 14:14:55 -07001383 - title: Verifying Hardware-backed Key Pairs with Key Attestation
1384 path: /training/articles/security-key-attestation.html
1385 path_attributes:
1386 - name: description
1387 value: How to retrieve and verify the properties of a device's hardware-backed key pair.
Elliot Waite20d6d772016-03-15 18:58:55 -07001388 - title: Enhancing Security with Device Management Policies
Billy Lambertae1277eb2016-05-03 16:23:59 -07001389 path: /work/device-management-policy.html
Elliot Waite988248d2016-04-26 19:46:39 -07001390 path_attributes:
1391 - name: description
1392 value: How to create an application that enforces security policies on devices.
Elliot Waite20d6d772016-03-15 18:58:55 -07001393
1394- title: Best Practices for Permissions & Identifiers
1395 path: /training/best-permissions-ids.html
1396 section:
1397 - title: Permissions and User Data
1398 path: /training/articles/user-data-overview.html
Elliot Waite988248d2016-04-26 19:46:39 -07001399 path_attributes:
1400 - name: description
1401 value: Overview of app permissions on Android and how they affect your users.
Elliot Waite20d6d772016-03-15 18:58:55 -07001402 - title: Best Practices for App Permissions
1403 path: /training/articles/user-data-permissions.html
Elliot Waite988248d2016-04-26 19:46:39 -07001404 path_attributes:
1405 - name: description
1406 value: How to manage permissions the right way for users.
Elliot Waite20d6d772016-03-15 18:58:55 -07001407 - title: Best Practices for Unique Identifiers
1408 path: /training/articles/user-data-ids.html
Elliot Waite988248d2016-04-26 19:46:39 -07001409 path_attributes:
1410 - name: description
1411 value: Unique identifiers available and how to choose the right one for your use case.
Elliot Waite20d6d772016-03-15 18:58:55 -07001412
1413- title: Best Practices for Testing
1414 path: /training/testing/index.html
1415 section:
1416 - title: Getting Started with Testing
1417 path: /training/testing/start/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001418 path_attributes:
1419 - name: description
1420 value: How to get started with testing your Android applications.
Elliot Waite20d6d772016-03-15 18:58:55 -07001421 - title: Building Effective Unit Tests
1422 path: /training/testing/unit-testing/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001423 path_attributes:
1424 - name: description
1425 value: How to build effective unit tests for Android apps.
Elliot Waite20d6d772016-03-15 18:58:55 -07001426 section:
1427 - title: Building Local Unit Tests
1428 path: /training/testing/unit-testing/local-unit-tests.html
1429 - title: Building Instrumented Unit Tests
1430 path: /training/testing/unit-testing/instrumented-unit-tests.html
1431 - title: Automating UI Tests
1432 path: /training/testing/ui-testing/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001433 path_attributes:
1434 - name: description
1435 value: How to automate your user interface tests for Android apps.
Elliot Waite20d6d772016-03-15 18:58:55 -07001436 section:
1437 - title: Testing UI for a Single App
1438 path: /training/testing/ui-testing/espresso-testing.html
1439 - title: Testing UI for Multiple Apps
1440 path: /training/testing/ui-testing/uiautomator-testing.html
1441 - title: Testing App Component Integrations
1442 path: /training/testing/integration-testing/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001443 path_attributes:
1444 - name: description
1445 value: How to build effective integration tests for Android apps.
Elliot Waite20d6d772016-03-15 18:58:55 -07001446 section:
1447 - title: Testing Your Service
1448 path: /training/testing/integration-testing/service-testing.html
1449 - title: Testing Your Content Provider
1450 path: /training/testing/integration-testing/content-provider-testing.html
1451 - title: Testing Display Performance
1452 path: /training/testing/performance.html
Elliot Waite988248d2016-04-26 19:46:39 -07001453 path_attributes:
1454 - name: description
1455 value: How to automate UI performance testing.
Elliot Waite20d6d772016-03-15 18:58:55 -07001456
1457- title: Using Google Play to Distribute & Monetize
1458 path: /training/distribute.html
1459 section:
1460 - title: Selling In-app Products
1461 path: /training/in-app-billing/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001462 path_attributes:
1463 - name: description
1464 value: How to sell in-app products from your application using In-app Billing.
Elliot Waite20d6d772016-03-15 18:58:55 -07001465 section:
1466 - title: Preparing Your App
1467 path: /training/in-app-billing/preparing-iab-app.html
1468 - title: Establishing Products for Sale
1469 path: /training/in-app-billing/list-iab-products.html
1470 - title: Purchasing Products
1471 path: /training/in-app-billing/purchase-iab-products.html
1472 - title: Testing Your App
1473 path: /training/in-app-billing/test-iab-app.html
1474 - title: Maintaining Multiple APKs
1475 path: /training/multiple-apks/index.html
Elliot Waite988248d2016-04-26 19:46:39 -07001476 path_attributes:
1477 - name: description
1478 value: How to publish your app on Google Play with separate APKs that target different devices, while using a single app listing.
Elliot Waite20d6d772016-03-15 18:58:55 -07001479 section:
1480 - title: Creating Multiple APKs for Different API Levels
1481 path: /training/multiple-apks/api.html
1482 - title: Creating Multiple APKs for Different Screen Sizes
1483 path: /training/multiple-apks/screensize.html
1484 - title: Creating Multiple APKs for Different GL Textures
1485 path: /training/multiple-apks/texture.html
1486 - title: Creating Multiple APKs with 2+ Dimensions
1487 path: /training/multiple-apks/multiple.html