blob: 12685ba39143eb85e9527172316ab5645b0541a4 [file] [log] [blame]
Scott Main50e990c2012-06-21 17:14:39 -07001<ul id="nav">
Scott Main50e990c2012-06-21 17:14:39 -07002 <li class="nav-section">
3 <div class="nav-section-header">
4 <a href="<?cs var:toroot ?>training/index.html">
Scott Main22cc2762012-11-07 16:35:16 -08005 Getting Started
Scott Main50e990c2012-06-21 17:14:39 -07006 </a>
7 </div>
8
9 <ul>
10 <li class="nav-section">
11 <div class="nav-section-header">
Scott Main22cc2762012-11-07 16:35:16 -080012 <a href="<?cs var:toroot ?>training/basics/firstapp/index.html"
13 description=
14 "After you've installed the Android SDK, start with this class
15 to learn the basics about Android app development."
16 >Building Your First App</a>
Scott Main50e990c2012-06-21 17:14:39 -070017 </div>
18 <ul>
19 <li><a href="<?cs var:toroot ?>training/basics/firstapp/creating-project.html">
Scott Main22cc2762012-11-07 16:35:16 -080020 Creating an Android Project
Scott Main50e990c2012-06-21 17:14:39 -070021 </a>
22 </li>
23 <li><a href="<?cs var:toroot ?>training/basics/firstapp/running-app.html">
Scott Main22cc2762012-11-07 16:35:16 -080024 Running Your Application
Scott Main50e990c2012-06-21 17:14:39 -070025 </a>
26 </li>
27 <li><a href="<?cs var:toroot ?>training/basics/firstapp/building-ui.html">
Scott Main22cc2762012-11-07 16:35:16 -080028 Building a Simple User Interface
Scott Main50e990c2012-06-21 17:14:39 -070029 </a>
30 </li>
31 <li><a href="<?cs var:toroot ?>training/basics/firstapp/starting-activity.html">
Scott Main22cc2762012-11-07 16:35:16 -080032 Starting Another Activity
Scott Main50e990c2012-06-21 17:14:39 -070033 </a>
34 </li>
35 </ul>
36 </li>
37
38 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -080039 <div class="nav-section-header">
Scott Maind0413012013-07-19 19:04:45 -070040 <a href="<?cs var:toroot ?>training/basics/actionbar/index.html"
41 description=
42 "The action bar is one of the most important design elements you can implement for your
43app's activities. Although first introduced with API level 11, you can use the Support Library to
44include the action bar on devices running Android 2.1 or higher."
45 >Adding the Action Bar</a>
46 </div>
47 <ul>
48 <li><a href="<?cs var:toroot ?>training/basics/actionbar/setting-up.html">
49 Setting Up the Action Bar
50 </a>
51 </li>
52 <li><a href="<?cs var:toroot ?>training/basics/actionbar/adding-buttons.html">
53 Adding Action Buttons
54 </a>
55 </li>
56 <li><a href="<?cs var:toroot ?>training/basics/actionbar/styling.html">
57 Styling the Action Bar
58 </a>
59 </li>
60 <li><a href="<?cs var:toroot ?>training/basics/actionbar/overlaying.html">
61 Overlaying the Action Bar
62 </a>
63 </li>
64 </ul>
65 </li>
66
67 <li class="nav-section">
68 <div class="nav-section-header">
Scott Mainf1513912013-08-22 18:11:01 -070069 <a href="<?cs var:toroot ?>training/basics/supporting-devices/index.html"
70 description=
71 "How to build your app with alternative resources that provide an
72 optimized user experience on multiple device form factors using a single APK."
73 >Supporting Different Devices</a>
74 </div>
75 <ul>
76 <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/languages.html">
77 Supporting Different Languages
78 </a>
79 </li>
80 <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/screens.html">
81 Supporting Different Screens
82 </a>
83 </li>
84 <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/platforms.html">
85 Supporting Different Platform Versions
86 </a>
87 </li>
88 </ul>
89 </li>
90
91 <li class="nav-section">
92 <div class="nav-section-header">
Scott Main22cc2762012-11-07 16:35:16 -080093 <a href="<?cs var:toroot ?>training/basics/activity-lifecycle/index.html"
94 description=
95 "How Android activities live and die and how to create
96 a seamless user experience by implementing lifecycle callback methods."
97 >Managing the Activity Lifecycle</a>
98 </div>
Scott Main50e990c2012-06-21 17:14:39 -070099 <ul>
100 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/starting.html">
Scott Main22cc2762012-11-07 16:35:16 -0800101 Starting an Activity
Scott Main50e990c2012-06-21 17:14:39 -0700102 </a>
103 </li>
104 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/pausing.html">
Scott Main22cc2762012-11-07 16:35:16 -0800105 Pausing and Resuming an Activity
Scott Main50e990c2012-06-21 17:14:39 -0700106 </a>
107 </li>
108 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/stopping.html">
Scott Main22cc2762012-11-07 16:35:16 -0800109 Stopping and Restarting an Activity
Scott Main50e990c2012-06-21 17:14:39 -0700110 </a>
111 </li>
112 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/recreating.html">
Scott Main22cc2762012-11-07 16:35:16 -0800113 Recreating an Activity
Scott Main50e990c2012-06-21 17:14:39 -0700114 </a>
115 </li>
116 </ul>
117 </li>
Joe Malin50c22752012-10-20 12:41:40 -0700118
Scott Main50e990c2012-06-21 17:14:39 -0700119 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800120 <div class="nav-section-header">
Scott Main22cc2762012-11-07 16:35:16 -0800121 <a href="<?cs var:toroot ?>training/basics/fragments/index.html"
122 description=
123 "How to build a user interface for your app that is flexible enough
124 to present multiple UI components on large screens and a more constrained set of
125 UI components on smaller screens&mdash;essential for building a single APK for both
126 phones and tablets."
127 >Building a Dynamic UI with Fragments</a>
128 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700129 <ul>
Scott Main50e990c2012-06-21 17:14:39 -0700130 <li><a href="<?cs var:toroot ?>training/basics/fragments/creating.html">
Scott Main22cc2762012-11-07 16:35:16 -0800131 Creating a Fragment
Scott Main50e990c2012-06-21 17:14:39 -0700132 </a>
133 </li>
134 <li><a href="<?cs var:toroot ?>training/basics/fragments/fragment-ui.html">
Scott Main22cc2762012-11-07 16:35:16 -0800135 Building a Flexible UI
Scott Main50e990c2012-06-21 17:14:39 -0700136 </a>
137 </li>
138 <li><a href="<?cs var:toroot ?>training/basics/fragments/communicating.html">
Scott Main22cc2762012-11-07 16:35:16 -0800139 Communicating with Other Fragments
Scott Main50e990c2012-06-21 17:14:39 -0700140 </a>
141 </li>
142 </ul>
143 </li>
144
145 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800146 <div class="nav-section-header"><a href="<?cs var:toroot?>training/basics/data-storage/index.html"
147 description=
148 "How to save data on the device, whether it's temporary files, downloaded
149 app assets, user media, structured data, or something else."
150 >Saving Data</a>
151 </div>
Scott Main11f03b42012-09-07 15:26:39 -0700152 <ul>
153 <li><a href="<?cs var:toroot ?>training/basics/data-storage/shared-preferences.html">
Scott Main22cc2762012-11-07 16:35:16 -0800154 Saving Key-Value Sets
Scott Main11f03b42012-09-07 15:26:39 -0700155 </a>
156 </li>
157 <li><a href="<?cs var:toroot ?>training/basics/data-storage/files.html">
Scott Main22cc2762012-11-07 16:35:16 -0800158 Saving Files
Scott Main11f03b42012-09-07 15:26:39 -0700159 </a>
160 </li>
161 <li><a href="<?cs var:toroot ?>training/basics/data-storage/databases.html">
Scott Main22cc2762012-11-07 16:35:16 -0800162 Saving Data in SQL Databases
Scott Main11f03b42012-09-07 15:26:39 -0700163 </a>
164 </li>
165 </ul>
166 </li>
167
168 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800169 <div class="nav-section-header">
170 <a href="<?cs var:toroot ?>training/basics/intents/index.html"
171 description=
172 "How to build a user experience that leverages other apps available
173 on the device to perform advanced user tasks, such as capture a photo or view
174 an address on a map."
175 >Interacting with Other Apps</a>
176 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700177 <ul>
178 <li><a href="<?cs var:toroot ?>training/basics/intents/sending.html">
Scott Main22cc2762012-11-07 16:35:16 -0800179 Sending the User to Another App
Scott Main50e990c2012-06-21 17:14:39 -0700180 </a>
181 </li>
182 <li><a href="<?cs var:toroot ?>training/basics/intents/result.html">
Scott Main22cc2762012-11-07 16:35:16 -0800183 Getting a Result from the Activity
Scott Main50e990c2012-06-21 17:14:39 -0700184 </a>
185 </li>
186 <li><a href="<?cs var:toroot ?>training/basics/intents/filters.html">
Scott Main22cc2762012-11-07 16:35:16 -0800187 Allowing Other Apps to Start Your Activity
Scott Main50e990c2012-06-21 17:14:39 -0700188 </a>
189 </li>
190 </ul>
191 </li>
192
Scott Main50e990c2012-06-21 17:14:39 -0700193 </ul>
Joe Malinf0f5efb2012-10-27 11:16:19 -0700194 </li><!-- end getting started -->
Joe Malin45edbb72013-08-26 14:55:54 -0700195 <li class="nav-section">
196 <div class="nav-section-header">
197 <a href="<?cs var:toroot ?>training/building-content-sharing.html">
198 <span class="small">Building Apps with</span><br/>Content Sharing
199 </a>
200 </div>
201 <ul>
202 <li class="nav-section">
203 <div class="nav-section-header">
204 <a href="<?cs var:toroot ?>training/sharing/index.html"
205 description=
206 "How to take your app interaction to the next level by sharing
207 information with other apps, receive information back, and provide a simple and
208 scalable way to perform Share actions with user content."
209 >Sharing Simple Data</a>
210 </div>
211 <ul>
212 <li>
213 <a href="<?cs var:toroot ?>training/sharing/send.html">
214 Sending Simple Data to Other Apps
215 </a>
216 </li>
217 <li>
218 <a href="<?cs var:toroot ?>training/sharing/receive.html">
219 Receiving Simple Data from Other Apps
220 </a>
221 </li>
222 <li>
223 <a href="<?cs var:toroot ?>training/sharing/shareaction.html">
224 Adding an Easy Share Action
225 </a>
226 </li>
227 </ul>
228 </li>
229 <li class="nav-section">
230 <div class="nav-section-header">
231 <a href="<?cs var:toroot?>training/secure-file-sharing/index.html"
232 description=
233 "How to provide secure access to a file associated with your app using a content
234 URI and temporary access permissions."
235 >Sharing Files</a>
236 </div>
237 <ul>
238 <li>
239 <a href="<?cs var:toroot ?>training/secure-file-sharing/setup-sharing.html">
240 Setting Up File Sharing
241 </a>
242 </li>
243 <li>
244 <a href="<?cs var:toroot ?>training/secure-file-sharing/share-file.html">
245 Sharing a File
246 </a>
247 </li>
248 <li>
249 <a href="<?cs var:toroot ?>training/secure-file-sharing/request-file.html">
250 Requesting a Shared File
251 </a>
252 </li>
253 <li>
254 <a href="<?cs var:toroot ?>training/secure-file-sharing/retrieve-info.html">
255 Retrieving File Information
256 </a>
257 </li>
258 </ul>
259 </li>
260 <li class="nav-section">
261 <div class="nav-section-header">
262 <a href="<?cs var:toroot ?>training/beam-files/index.html"
263 description=
264 "How to transfer files between devices using the NFC Android Beam feature."
265 >Sharing Files with NFC</a>
266 </div>
267 <ul>
268 <li>
269 <a href="<?cs var:toroot ?>training/beam-files/send-files.html"
270 >Sending Files to Another Device</a>
271 </li>
272 <li><a href="<?cs var:toroot ?>training/beam-files/receive-files.html"
273 >Receiving Files from Another Device</a></li>
274 </ul>
275 </li>
276 </ul>
277 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800278
279
Scott Main22cc2762012-11-07 16:35:16 -0800280
Scott Main50e990c2012-06-21 17:14:39 -0700281 <li class="nav-section">
282 <div class="nav-section-header">
Scott Main22cc2762012-11-07 16:35:16 -0800283 <a href="<?cs var:toroot ?>training/building-multimedia.html">
284 <span class="small">Building Apps with</span><br/>Multimedia
285 </a>
286 </div>
287 <ul>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800288
Scott Main22cc2762012-11-07 16:35:16 -0800289 <li class="nav-section">
290 <div class="nav-section-header">
291 <a href="<?cs var:toroot ?>training/managing-audio/index.html"
292 description=
293 "How to respond to hardware audio key presses, request audio focus
294 when playing audio, and respond appropriately to changes in audio focus."
295 >Managing Audio Playback</a>
296 </div>
297 <ul>
298 <li><a href="<?cs var:toroot ?>training/managing-audio/volume-playback.html">
299 Controlling Your App's Volume and Playback
300 </a>
301 </li>
302 <li><a href="<?cs var:toroot ?>training/managing-audio/audio-focus.html">
303 Managing Audio Focus
304 </a>
305 </li>
306 <li><a href="<?cs var:toroot ?>training/managing-audio/audio-output.html">
307 Dealing with Audio Output Hardware
308 </a>
309 </li>
310 </ul>
311 </li>
312
313 <li class="nav-section">
314 <div class="nav-section-header">
315 <a href="<?cs var:toroot ?>training/camera/index.html"
316 description=
317 "How to leverage existing camera apps on the user's device to capture
318 photos or control the camera hardware directly and build your own camera app."
319 >Capturing Photos</a>
320 </div>
321 <ul>
322 <li><a href="<?cs var:toroot ?>training/camera/photobasics.html">
323 Taking Photos Simply
324 </a>
325 </li>
326 <li><a href="<?cs var:toroot ?>training/camera/videobasics.html">
327 Recording Videos Simply
328 </a>
329 </li>
330 <li><a href="<?cs var:toroot ?>training/camera/cameradirect.html">
331 Controlling the Camera
332 </a>
333 </li>
334 </ul>
335 </li>
Joe Fernandez84fe6172013-10-29 01:55:12 -0700336
337 <li class="nav-section">
338 <div class="nav-section-header">
339 <a href="<?cs var:toroot ?>training/printing/index.html"
340 description=
341 "How to print photos, HTML documents, and custom documents from your app."
342 >Printing Content</a>
343 </div>
344 <ul>
345 <li><a href="<?cs var:toroot ?>training/printing/photos.html">
346 Photos
347 </a>
348 </li>
349 <li><a href="<?cs var:toroot ?>training/printing/html-docs.html">
350 HTML Documents
351 </a>
352 </li>
353 <li><a href="<?cs var:toroot ?>training/printing/custom-docs.html">
354 Custom Documents
355 </a>
356 </li>
357 </ul>
358 </li>
359
Scott Main22cc2762012-11-07 16:35:16 -0800360 </ul>
361 </li>
362 <!-- End multimedia -->
Joe Malin3ddba7e2013-03-04 10:33:30 -0800363
364
Scott Main22cc2762012-11-07 16:35:16 -0800365
366 <li class="nav-section">
367 <div class="nav-section-header">
368 <a href="<?cs var:toroot ?>training/building-graphics.html">
369 <span class="small">Building Apps with</span><br/>Graphics &amp; Animation
370 </a>
371 </div>
372 <ul>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800373
Scott Main22cc2762012-11-07 16:35:16 -0800374 <li class="nav-section">
375 <div class="nav-section-header">
376 <a href="<?cs var:toroot ?>training/displaying-bitmaps/index.html"
377 description=
378 "How to load and process bitmaps while keeping your user interface
379 responsive and avoid exceeding memory limits."
380 >Displaying Bitmaps Efficiently</a>
381 </div>
382 <ul>
383 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/load-bitmap.html">
384 Loading Large Bitmaps Efficiently
385 </a>
386 </li>
387 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/process-bitmap.html">
388 Processing Bitmaps Off the UI Thread
389 </a>
390 </li>
391 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/cache-bitmap.html">
392 Caching Bitmaps
393 </a>
394 </li>
kmccormick75715422013-03-04 15:25:40 -0800395 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/manage-memory.html">
396 Managing Bitmap Memory
397 </a>
398 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800399 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/display-bitmap.html">
400 Displaying Bitmaps in Your UI
401 </a></li>
402 </ul>
403 </li>
404
405 <li class="nav-section">
406 <div class="nav-section-header">
407 <a href="<?cs var:toroot?>training/graphics/opengl/index.html"
408 description=
409 "How to create OpenGL graphics within the Android app framework
410 and respond to touch input."
411 >Displaying Graphics with OpenGL ES</a>
412 </div>
413 <ul>
414 <li><a href="<?cs var:toroot ?>training/graphics/opengl/environment.html">
415 Building an OpenGL ES Environment
416 </a>
417 </li>
418 <li><a href="<?cs var:toroot ?>training/graphics/opengl/shapes.html">
419 Defining Shapes
420 </a>
421 </li>
422 <li><a href="<?cs var:toroot ?>training/graphics/opengl/draw.html">
423 Drawing Shapes
424 </a>
425 </li>
426 <li><a href="<?cs var:toroot ?>training/graphics/opengl/projection.html">
427 Applying Projection and Camera Views
428 </a>
429 </li>
430 <li><a href="<?cs var:toroot ?>training/graphics/opengl/motion.html">
431 Adding Motion
432 </a>
433 </li>
434 <li><a href="<?cs var:toroot ?>training/graphics/opengl/touch.html">
435 Responding to Touch Events
436 </a>
437 </li>
438 </ul>
439 </li>
440 <li class="nav-section">
441 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/animation/index.html"
442 description=
443 "How to add transitional animations to your user interface.">
444 Adding Animations
445 </a></div>
446 <ul>
447 <li><a href="<?cs var:toroot ?>training/animation/crossfade.html">
448 Crossfading Two Views
449 </a>
450 </li>
451 <li><a href="<?cs var:toroot ?>training/animation/screen-slide.html">
452 Using ViewPager for Screen Slide
453 </a>
454 </li>
455 <li><a href="<?cs var:toroot ?>training/animation/cardflip.html">
456 Displaying Card Flip Animations
457 </a>
458 </li>
459 <li><a href="<?cs var:toroot ?>training/animation/zoom.html">
460 Zooming a View
461 </a>
462 </li>
463 <li><a href="<?cs var:toroot ?>training/animation/layout.html">
464 Animating Layout Changes
465 </a>
466 </li>
467 </ul>
468 </li>
469 </ul>
470 </li>
471 <!-- End graphics and animation -->
Joe Malin3ddba7e2013-03-04 10:33:30 -0800472
Scott Main22cc2762012-11-07 16:35:16 -0800473
474 <li class="nav-section">
475 <div class="nav-section-header">
476 <a href="<?cs var:toroot ?>training/building-connectivity.html">
477 <span class="small">Building Apps with</span><br/>
478 Connectivity &amp; the Cloud
479 </a>
480 </div>
481 <ul>
482
Scott Main22cc2762012-11-07 16:35:16 -0800483 <li class="nav-section">
484 <div class="nav-section-header">
485 <a href="<?cs var:toroot ?>training/connect-devices-wirelessly/index.html"
486 description=
487 "How to find and connect to local devices using Network Service
Scott Mainf5e09702013-08-22 17:19:17 -0700488 Discovery and how to create peer-to-peer connections with Wi-Fi."
Scott Main22cc2762012-11-07 16:35:16 -0800489 >Connecting Devices Wirelessly</a>
490 </div>
491 <ul>
492 <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd.html">
493 Using Network Service Discovery
494 </a>
495 </li>
496 <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/wifi-direct.html">
Scott Mainf5e09702013-08-22 17:19:17 -0700497 Creating P2P Connections with Wi-Fi
Scott Main22cc2762012-11-07 16:35:16 -0800498 </a>
499 </li>
500 <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd-wifi-direct.html">
Scott Main2d006d22013-09-16 13:11:07 -0700501 Using Wi-Fi P2P for Service Discovery
Scott Main22cc2762012-11-07 16:35:16 -0800502 </a>
503 </li>
504 </ul>
505 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800506 <li class="nav-section">
507 <div class="nav-section-header">
508 <a href="<?cs var:toroot ?>training/basics/network-ops/index.html"
509 description=
510 "How to create a network connection, monitor the connection for changes
511 in connectivity, and perform transactions with XML data."
512 >Performing Network Operations</a>
513 </div>
514 <ul>
515 <li><a href="<?cs var:toroot ?>training/basics/network-ops/connecting.html">
516 Connecting to the Network
517 </a>
518 </li>
519 <li><a href="<?cs var:toroot ?>training/basics/network-ops/managing.html">
520 Managing Network Usage
521 </a>
522 </li>
523 <li><a href="<?cs var:toroot ?>training/basics/network-ops/xml.html">
524 Parsing XML Data
525 </a>
526 </li>
527 </ul>
528 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800529 <li class="nav-section">
530 <div class="nav-section-header">
531 <a href="<?cs var:toroot ?>training/efficient-downloads/index.html"
532 description=
533 "How to minimize your app's impact on the battery when performing downloads
534 and other network transactions."
535 >Transferring Data Without Draining the Battery</a>
536 </div>
537 <ul>
538 <li><a href="<?cs var:toroot ?>training/efficient-downloads/efficient-network-access.html">
539 Optimizing Downloads for Efficient Network Access
540 </a>
541 </li>
542 <li><a href="<?cs var:toroot ?>training/efficient-downloads/regular_updates.html">
543 Minimizing the Effect of Regular Updates
544 </a>
545 </li>
546 <li><a href="<?cs var:toroot ?>training/efficient-downloads/redundant_redundant.html">
547 Redundant Downloads are Redundant
548 </a>
549 </li>
550 <li><a href="<?cs var:toroot ?>training/efficient-downloads/connectivity_patterns.html">
551 Modifying Patterns Based on the Connectivity Type
552 </a>
553 </li>
554 </ul>
555 </li>
556
557 <li class="nav-section">
558 <div class="nav-section-header">
559 <a href="<?cs var:toroot ?>training/cloudsync/index.html"
560 description=
561 "How to sync and back up app and user data to remote web services in the
562 cloud and how to restore the data back to multiple devices."
563 >Syncing to the Cloud</a>
564 </div>
565 <ul>
566 <li><a href="<?cs var:toroot ?>training/cloudsync/backupapi.html">
567 Using the Backup API
568 </a>
569 </li>
570 <li><a href="<?cs var:toroot ?>training/cloudsync/gcm.html">
571 Making the Most of Google Cloud Messaging
572 </a>
573 </li>
574 </ul>
kmccormick71baac12013-06-11 13:17:55 -0700575 <li><a href="<?cs var:toroot ?>training/cloudsave/conflict-res.html"
576 description=
577 "How to design a robust conflict resolution strategy for apps that save data to the cloud."
578 >Resolving Cloud Save Conflicts
579 </a>
Joe Malin2e1c7b72013-08-30 15:30:54 -0700580 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800581 </li>
Joe Maline9df5112013-06-07 13:38:00 -0700582 <li class="nav-section">
583 <div class="nav-section-header">
584 <a href="<?cs var:toroot ?>training/sync-adapters/index.html"
585 description="How to transfer data between the cloud and the device using the Android
586 sync adapter framework"
587 >Transferring Data Using Sync Adapters</a>
588 </div>
589 <ul>
590 <li>
591 <a href="<?cs var:toroot ?>training/sync-adapters/creating-authenticator.html">
592 Creating a Stub Authenticator
593 </a>
594 </li>
595 <li>
596 <a href="<?cs var:toroot ?>training/sync-adapters/creating-stub-provider.html">
597 Creating a Stub Content Provider
598 </a>
599 </li>
600 <li>
601 <a href="<?cs var:toroot ?>training/sync-adapters/creating-sync-adapter.html">
602 Creating a Sync Adapter
603 </a>
604 </li>
605 <li>
606 <a href="<?cs var:toroot ?>training/sync-adapters/running-sync-adapter.html">
607 Running a Sync Adapter
608 </a>
609 </li>
610 </ul>
611 </li>
Katie McCormick1a89ae42014-03-18 17:13:50 -0700612 <li class="nav-section">
613 <div class="nav-section-header">
614 <a href="<?cs var:toroot ?>training/volley/index.html"
615 description="How to perform fast, scalable UI operations over the network using Volley"
616 >Transmitting Network Data Using Volley</a>
617 </div>
618 <ul>
619 <li>
620 <a href="<?cs var:toroot ?>training/volley/simple.html">
621 Sending a Simple Request
622 </a>
623 </li>
624 <li>
625 <a href="<?cs var:toroot ?>training/volley/requestqueue.html">
626 Setting Up a RequestQueue
627 </a>
628 </li>
629 <li>
630 <a href="<?cs var:toroot ?>training/volley/request.html">
631 Making a Standard Request
632 </a>
633 </li>
634 <li>
635 <a href="<?cs var:toroot ?>training/volley/request-custom.html">
636 Implementing a Custom Request
637 </a>
638 </li>
639 </ul>
640 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800641 </ul>
642 </li>
643 <!-- End connectivity and cloud -->
Joe Malin3ddba7e2013-03-04 10:33:30 -0800644
645
Scott Main22cc2762012-11-07 16:35:16 -0800646
647 <li class="nav-section">
648 <div class="nav-section-header">
649 <a href="<?cs var:toroot ?>training/building-userinfo.html">
650 <span class="small">Building Apps with</span><br/>
651 User Info &amp; Location
652 </a>
653 </div>
654 <ul>
Joe Malin421435d2013-01-15 15:06:08 -0800655 <li class="nav-section">
656 <div class="nav-section-header">
657 <a href="<?cs var:toroot ?>training/contacts-provider/index.html"
658 description=
659 "How to use Android's central address book, the Contacts Provider, to
660 display contacts and their details and modify contact information.">
661 Accessing Contacts Data</a>
662 </div>
663 <ul>
664 <li>
665 <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-names.html">
666 Retrieving a List of Contacts
667 </a>
668 </li>
669 <li>
670 <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-details.html">
671 Retrieving Details for a Contact
672 </a>
673 </li>
674 <li>
675 <a href="<?cs var:toroot ?>training/contacts-provider/modify-data.html">
676 Modifying Contacts Using Intents
677 </a>
678 </li>
679 <li>
680 <a href="<?cs var:toroot ?>training/contacts-provider/display-contact-badge.html">
681 Displaying the Quick Contact Badge
682 </a>
683 </li>
684 </ul>
685 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800686
687 <li class="nav-section">
688 <div class="nav-section-header">
Joe Malin3ddba7e2013-03-04 10:33:30 -0800689 <a href="<?cs var:toroot ?>training/location/index.html"
690 description="How to add location-aware features to your app by getting the user's current location.">
691 Making Your App Location-Aware
692 </a>
Scott Main22cc2762012-11-07 16:35:16 -0800693 </div>
694 <ul>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800695 <li>
696 <a href="<?cs var:toroot ?>training/location/retrieve-current.html">
697 Retrieving the Current Location
698 </a>
Scott Main22cc2762012-11-07 16:35:16 -0800699 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800700 <li>
701 <a href="<?cs var:toroot ?>training/location/receive-location-updates.html">
702 Receiving Location Updates
703 </a>
Scott Main22cc2762012-11-07 16:35:16 -0800704 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800705 <li>
706 <a href="<?cs var:toroot ?>training/location/display-address.html">
Scott Main22cc2762012-11-07 16:35:16 -0800707 Displaying a Location Address
708 </a>
709 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800710 <li><a href="<?cs var:toroot ?>training/location/geofencing.html">
711 Creating and Monitoring Geofences
712 </a>
713 </li>
714 <li><a href="<?cs var:toroot ?>training/location/activity-recognition.html">
715 Recognizing the User's Current Activity
716 </a>
717 </li>
Joe Malin72fdbc82013-07-26 17:26:52 -0700718 <li><a href="<?cs var:toroot ?>training/location/location-testing.html">
719 Testing Using Mock Locations
720 </a>
721 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800722 </ul>
723 </li>
724 </ul>
725 </li>
726 <!-- End privacy and location -->
Joe Malin3ddba7e2013-03-04 10:33:30 -0800727
728
Robert Ly2728c2a2014-06-15 22:00:13 -0700729 <li class="nav-section">
730 <div class="nav-section-header">
731 <a href="<?cs var:toroot ?>training/building-wearables.html">
732 <span class="small">Building Apps for</span><br/>
733 Wearables
734 </a>
735 </div>
736 <ul>
737 <li class="nav-section">
738 <div class="nav-section-header">
739 <a href="<?cs var:toroot ?>training/wearables/notifications/index.html"
740 description="How to build handheld notifications that are synced to
741 and look great on wearables."
742 >Adding Wearable Features to Notifications</a>
743 </div>
744 <ul>
745 <li>
746 <a href="<?cs var:toroot ?>training/wearables/notifications/creating.html">Creating a Notification</a>
747 </li>
748 <li>
749 <a href="<?cs var:toroot ?>training/wearables/notifications/voice-input.html">Receiving Voice Input in a Notification</a>
750 </li>
751 <li>
752 <a href="<?cs var:toroot ?>training/wearables/notifications/pages.html">Adding Pages to a Notification</a>
753 </li>
754 <li>
755 <a href="<?cs var:toroot ?>training/wearables/notifications/stacks.html">Stacking Notifications</a>
756 </li>
757 </ul>
758 </li>
759
760 <li class="nav-section">
761 <div class="nav-section-header">
762 <a href="<?cs var:toroot ?>training/wearables/apps/index.html"
763 description="How to build apps that run directly on wearables."
764 >Creating Wearable Apps</a>
765 </div>
766 <ul>
767 <li>
768 <a href="<?cs var:toroot ?>training/wearables/apps/creating.html">Creating and Running a Wearable App</a>
769 </li>
770 <li>
771 <a href="<?cs var:toroot ?>training/wearables/apps/layouts.html">Creating Custom Layouts</a>
772 </li>
773 <li>
774 <a href="<?cs var:toroot ?>training/wearables/apps/voice.html">Adding Voice Capabilities</a>
775 </li>
776 <li>
777 <a href="<?cs var:toroot ?>training/wearables/apps/packaging.html">Packaging Wearable Apps</a>
778 </li>
779 <li>
780 <a href="<?cs var:toroot ?>training/wearables/apps/bt-debugging.html">Debugging over Bluetooth</a>
781 </li>
782 </ul>
783 </li>
784
785 <li class="nav-section">
786 <div class="nav-section-header">
Ricardo Cerverabab2bf72014-09-26 13:00:34 -0700787 <a href="<?cs var:toroot ?>training/wearables/ui/index.html"
788 description="How to create custom user interfaces for wearable apps."
789 >Creating Custom UIs</a>
790 </div>
791 <ul>
792 <li>
793 <a href="<?cs var:toroot ?>training/wearables/ui/layouts.html">Defining Layouts</a>
794 </li>
795 <li>
796 <a href="<?cs var:toroot ?>training/wearables/ui/cards.html">Creating Cards</a>
797 </li>
798 <li>
799 <a href="<?cs var:toroot ?>training/wearables/ui/lists.html">Creating Lists</a>
800 </li>
801 <li>
802 <a href="<?cs var:toroot ?>training/wearables/ui/2d-picker.html">Creating a 2D Picker</a>
803 </li>
804 <li>
805 <a href="<?cs var:toroot ?>training/wearables/ui/confirm.html">Showing Confirmations</a>
806 </li>
807 <li>
808 <a href="<?cs var:toroot ?>training/wearables/ui/exit.html">Exiting Full-Screen Activities</a>
809 </li>
810 </ul>
811 </li>
812
813 <li class="nav-section">
814 <div class="nav-section-header">
Robert Ly2728c2a2014-06-15 22:00:13 -0700815 <a href="<?cs var:toroot ?>training/wearables/data-layer/index.html"
816 description="How to sync data between handhelds and wearables."
817 >Sending and Syncing Data</a>
818 </div>
819 <ul>
820 <li>
821 <a href="<?cs var:toroot ?>training/wearables/data-layer/accessing.html">Accessing the Wearable Data Layer</a>
822 </li>
823 <li>
824 <a href="<?cs var:toroot ?>training/wearables/data-layer/data-items.html">Syncing Data Items</a>
825 </li>
826 <li>
827 <a href="<?cs var:toroot ?>training/wearables/data-layer/assets.html">Transferring Assets</a>
828 </li>
829 <li>
830 <a href="<?cs var:toroot ?>training/wearables/data-layer/messages.html">Sending and Receiving Messages</a>
831 </li>
832 <li>
833 <a href="<?cs var:toroot ?>training/wearables/data-layer/events.html">Handling Data Layer Events</a>
834 </li>
835 </ul>
836 </li>
837 </ul>
838 </li>
839
840 <!-- End Building for wearables -->
Scott Main22cc2762012-11-07 16:35:16 -0800841
Joe Fernandezd86a2f52014-09-11 09:52:07 -0700842 <!-- Start: Building for TV -->
843 <li class="nav-section">
844 <div class="nav-section-header">
845 <a href="<?cs var:toroot ?>training/tv/index.html">
846 <span class="small">Building Apps for</span><br/>
847 TV
848 </a>
849 </div>
850 <ul>
851
852 <li class="nav-section">
853 <div class="nav-section-header">
Joe Fernandeze6b9abb2014-10-05 12:44:04 -0700854
Joe Fernandezd86a2f52014-09-11 09:52:07 -0700855 <a href="<?cs var:toroot ?>training/tv/start/index.html"
856 description="How to start building TV apps or extend your existing app to run on TV
857 devices.">
858 Building TV Apps</a>
859 </div>
860 <ul>
861 <li>
862 <a href="<?cs var:toroot ?>training/tv/start/start.html">
863 Getting Started with TV Apps</a>
864 </li>
865 <li>
866 <a href="<?cs var:toroot ?>training/tv/start/hardware.html">
867 Handling TV Hardware</a>
868 </li>
869 <li>
870 <a href="<?cs var:toroot ?>training/tv/start/layouts.html">
871 Building TV Layouts</a>
872 </li>
873 <li>
874 <a href="<?cs var:toroot ?>training/tv/start/navigation.html">
875 Creating TV Navigation</a>
876 </li>
877 </ul>
878 </li>
879
Joe Fernandezf6663552014-10-02 10:13:16 -0700880 <li class="nav-section">
881 <div class="nav-section-header">
882 <a href="<?cs var:toroot ?>training/tv/playback/index.html"
883 description="How to build apps that provide media catalogs and play content.">
884 Building TV Playback Apps</a>
885 </div>
886 <ul>
887 <li>
888 <a href="<?cs var:toroot ?>training/tv/playback/browse.html">
889 Creating a Catalog Browser</a>
890 </li>
891 <li>
892 <a href="<?cs var:toroot ?>training/tv/playback/details.html">
893 Building a Details View</a>
894 </li>
895 </ul>
896 </li>
897
Joe Fernandeze6b9abb2014-10-05 12:44:04 -0700898 <li class="nav-section">
899 <div class="nav-section-header">
900 <a href="<?cs var:toroot ?>training/tv/discovery/index.html"
901 description="How to help users discovery content from your app.">
902 Helping Users Find Content on TV</a>
903 </div>
904 <ul>
905 <li>
906 <a href="<?cs var:toroot ?>training/tv/discovery/recommendations.html">
907 Recommending TV Content</a>
908 </li>
909 <li>
910 <a href="<?cs var:toroot ?>training/tv/discovery/in-app-search.html">
911 Searching within TV Apps</a>
912 </li>
913 </ul>
914 </li>
915
Joe Fernandez15edcda2014-10-05 17:04:13 -0700916 <li>
917 <a href="<?cs var:toroot ?>training/tv/games/index.html"
918 description="How to build games for TV.">
919 Building TV Games</a>
920 </li>
921
Joe Fernandezd86a2f52014-09-11 09:52:07 -0700922 </ul>
923 </li>
924 <!-- End: Building for TV -->
925
926
Scott Main22cc2762012-11-07 16:35:16 -0800927 <li class="nav-section">
928 <div class="nav-section-header">
929 <a href="<?cs var:toroot ?>training/best-ux.html">
930 <span class="small">Best Practices for</span><br/>
Scott Main81428982013-12-09 18:02:48 -0800931 Interaction &amp; Engagement
Scott Main50e990c2012-06-21 17:14:39 -0700932 </a>
933 </div>
934 <ul>
935
936 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800937 <div class="nav-section-header">
938 <a href="<?cs var:toroot ?>training/design-navigation/index.html"
939 description=
940 "How to plan your app's screen hierarchy and forms of navigation so users can
941 effectively and intuitively traverse your app content using various navigation
942 patterns."
943 >Designing Effective Navigation</a>
Scott Mainddab47b2012-10-02 17:48:11 -0700944 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700945 <ul>
Scott Main22cc2762012-11-07 16:35:16 -0800946 <li><a href="<?cs var:toroot ?>training/design-navigation/screen-planning.html">
947 Planning Screens and Their Relationships
948 </a>
949 </li>
950 <li><a href="<?cs var:toroot ?>training/design-navigation/multiple-sizes.html">
951 Planning for Multiple Touchscreen Sizes
952 </a>
953 </li>
954 <li><a href="<?cs var:toroot ?>training/design-navigation/descendant-lateral.html">
955 Providing Descendant and Lateral Navigation
956 </a>
957 </li>
958 <li><a href="<?cs var:toroot ?>training/design-navigation/ancestral-temporal.html">
959 Providing Ancestral and Temporal Navigation
960 </a>
961 </li>
962 <li><a href="<?cs var:toroot ?>training/design-navigation/wireframing.html">
963 Putting it All Together: Wireframing the Example App
964 </a>
965 </li>
966 </ul>
967 </li>
968
969 <li class="nav-section">
970 <div class="nav-section-header">
971 <a href="<?cs var:toroot ?>training/implementing-navigation/index.html"
972 description=
Scott Main7c840552013-03-26 18:53:01 -0700973 "How to implement various navigation patterns such as swipe views,
974 a navigation drawer, and up navigation."
Scott Main22cc2762012-11-07 16:35:16 -0800975 >Implementing Effective Navigation</a>
976 </div>
977 <ul>
978 <li><a href="<?cs var:toroot ?>training/implementing-navigation/lateral.html">
Scott Main7c840552013-03-26 18:53:01 -0700979 Creating Swipe Views with Tabs
980 </a>
981 </li>
982 <li><a href="<?cs var:toroot ?>training/implementing-navigation/nav-drawer.html">
983 Creating a Navigation Drawer
Scott Main22cc2762012-11-07 16:35:16 -0800984 </a>
985 </li>
986 <li><a href="<?cs var:toroot ?>training/implementing-navigation/ancestral.html">
Scott Main7c840552013-03-26 18:53:01 -0700987 Providing Up Navigation
Scott Main22cc2762012-11-07 16:35:16 -0800988 </a>
989 </li>
990 <li><a href="<?cs var:toroot ?>training/implementing-navigation/temporal.html">
Scott Main7c840552013-03-26 18:53:01 -0700991 Providing Proper Back Navigation
Scott Main22cc2762012-11-07 16:35:16 -0800992 </a>
993 </li>
994 <li><a href="<?cs var:toroot ?>training/implementing-navigation/descendant.html">
995 Implementing Descendant Navigation
996 </a>
997 </li>
998 </ul>
999 </li>
&& repo sync -j80aae0002012-10-04 16:34:23 -07001000
1001 <li class="nav-section">
1002 <div class="nav-section-header">
1003 <a href="<?cs var:toroot ?>training/notify-user/index.html"
1004 description=
Joe Malinf0f5efb2012-10-27 11:16:19 -07001005 "How to display messages called notifications outside of
&& repo sync -j80aae0002012-10-04 16:34:23 -07001006 your application's UI."
1007 >Notifying the User</a>
1008 </div>
1009 <ul>
1010 <li>
1011 <a href="<?cs var:toroot ?>training/notify-user/build-notification.html">
1012 Building a Notification
1013 </a>
1014 </li>
1015 <li>
1016 <a href="<?cs var:toroot ?>training/notify-user/navigation.html">
1017 Preserving Navigation when Starting an Activity
1018 </a>
1019 </li>
1020 <li>
1021 <a href="<?cs var:toroot ?>training/notify-user/managing.html">
1022 Updating Notifications
1023 </a>
1024 </li>
1025 <li>
1026 <a href="<?cs var:toroot ?>training/notify-user/expanded.html">
1027 Using Big View Styles
1028 </a>
1029 </li>
1030 <li>
1031 <a href="<?cs var:toroot ?>training/notify-user/display-progress.html">
1032 Displaying Progress in a Notification
1033 </a>
1034 </li>
1035 </ul>
1036 </li>
1037
1038 <li class="nav-section">
1039 <div class="nav-section-header">
1040 <a href="<?cs var:toroot ?>training/search/index.html"
1041 description=
1042 "How to properly add a search interface to your app and create a searchable database."
1043 >Adding Search Functionality</a>
1044 </div>
1045 <ul>
1046 <li><a href="<?cs var:toroot ?>training/search/setup.html">
1047 Setting up the Search Interface
1048 </a>
1049 </li>
1050 <li><a href="<?cs var:toroot ?>training/search/search.html">
1051 Storing and Searching for Data
1052 </a>
1053 </li>
1054 <li><a href="<?cs var:toroot ?>training/search/backward-compat.html">
1055 Remaining Backward Compatible
1056 </a>
1057 </li>
1058 </ul>
1059 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001060
Scott Main81428982013-12-09 18:02:48 -08001061 <li class="nav-section">
1062 <div class="nav-section-header">
1063 <a href="<?cs var:toroot ?>training/app-indexing/index.html"
1064 description=
1065 "How to enable deep linking and indexing of your application
1066content so that users can open this content directly from their mobile search
1067results."
quddusc240aca32013-12-19 16:59:17 -08001068 >Making Your App Content Searchable by Google</a>
Scott Main81428982013-12-09 18:02:48 -08001069 </div>
1070 <ul>
1071 <li><a href="<?cs var:toroot ?>training/app-indexing/deep-linking.html">
1072 Enabling Deep Links for App Content
1073 </a>
1074 </li>
1075 <li><a href="<?cs var:toroot ?>training/app-indexing/enabling-app-indexing.html">
1076 Specifying App Content for Indexing
1077 </a>
1078 </li>
1079 </ul>
1080 </li>
1081 </ul>
1082 </li>
1083 <!-- End Interaction and Engagement -->
1084
1085
1086
1087
1088 <li class="nav-section">
1089 <div class="nav-section-header">
1090 <a href="<?cs var:toroot ?>training/best-ui.html">
1091 <span class="small">Best Practices for</span><br/>
1092 User Interface
1093 </a>
1094 </div>
1095 <ul>
1096
Joe Malin3ddba7e2013-03-04 10:33:30 -08001097
Scott Main22cc2762012-11-07 16:35:16 -08001098 <li class="nav-section">
1099 <div class="nav-section-header">
Scott Main5b50239c2013-12-17 14:59:05 -08001100 <a href="<?cs var:toroot ?>training/multiscreen/index.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001101 zh-cn-lang="针对多种屏幕进行设计"
Scott Main22cc2762012-11-07 16:35:16 -08001102 ja-lang="複数画面のデザイン"
1103 es-lang="Cómo diseñar aplicaciones para varias pantallas"
1104 description=
1105 "How to build a user interface that's flexible enough to
1106 fit perfectly on any screen and how to create different interaction
1107 patterns that are optimized for different screen sizes."
1108 >Designing for Multiple Screens</a>
1109 </div>
1110 <ul>
Scott Main5b50239c2013-12-17 14:59:05 -08001111 <li><a href="<?cs var:toroot ?>training/multiscreen/screensizes.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001112 zh-cn-lang="支持各种屏幕尺寸"
Scott Mainddab47b2012-10-02 17:48:11 -07001113 ko-lang="다양한 화면 크기 지원"
1114 ja-lang="さまざまな画面サイズのサポート"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001115 es-lang="Cómo admitir varios tamaños de pantalla"
Scott Main22cc2762012-11-07 16:35:16 -08001116 >Supporting Different Screen Sizes</a>
Scott Main50e990c2012-06-21 17:14:39 -07001117 </li>
Scott Main5b50239c2013-12-17 14:59:05 -08001118 <li><a href="<?cs var:toroot ?>training/multiscreen/screendensities.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001119 zh-cn-lang="支持各种屏幕密度"
Scott Mainddab47b2012-10-02 17:48:11 -07001120 ja-lang="さまざまな画面密度のサポート"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001121 es-lang="Cómo admitir varias densidades de pantalla"
Scott Mainddab47b2012-10-02 17:48:11 -07001122 >Supporting Different Screen Densities</a>
Scott Main50e990c2012-06-21 17:14:39 -07001123 </li>
Scott Main5b50239c2013-12-17 14:59:05 -08001124 <li><a href="<?cs var:toroot ?>training/multiscreen/adaptui.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001125 zh-cn-lang="实施自适应用户界面流程"
Scott Mainddab47b2012-10-02 17:48:11 -07001126 ja-lang="順応性のある UI フローの実装"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001127 es-lang="Cómo implementar interfaces de usuario adaptables"
Scott Mainddab47b2012-10-02 17:48:11 -07001128 >Implementing Adaptive UI Flows</a>
Scott Main50e990c2012-06-21 17:14:39 -07001129 </li>
1130 </ul>
1131 </li>
Joe Malin50c22752012-10-20 12:41:40 -07001132
Scott Main50e990c2012-06-21 17:14:39 -07001133 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001134 <div class="nav-section-header">
1135 <a href="<?cs var:toroot ?>training/custom-views/index.html"
1136 description=
1137 "How to build custom UI widgets that are interactive and smooth."
1138 >Creating Custom Views</a>
1139 </div>
Scott Main50e990c2012-06-21 17:14:39 -07001140 <ul>
Scott Main22cc2762012-11-07 16:35:16 -08001141 <li><a href="<?cs var:toroot ?>training/custom-views/create-view.html">
1142 Creating a Custom View Class
Scott Main50e990c2012-06-21 17:14:39 -07001143 </a>
1144 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001145 <li><a href="<?cs var:toroot ?>training/custom-views/custom-drawing.html">
1146 Implementing Custom Drawing
Scott Main50e990c2012-06-21 17:14:39 -07001147 </a>
1148 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001149 <li><a href="<?cs var:toroot ?>training/custom-views/making-interactive.html">
1150 Making the View Interactive
1151 </a>
1152 </li>
1153 <li><a href="<?cs var:toroot ?>training/custom-views/optimizing-view.html">
1154 Optimizing the View
Scott Main50e990c2012-06-21 17:14:39 -07001155 </a>
1156 </li>
1157 </ul>
1158 </li>
Joe Malin50c22752012-10-20 12:41:40 -07001159
Scott Main50e990c2012-06-21 17:14:39 -07001160 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001161 <div class="nav-section-header">
1162 <a href="<?cs var:toroot ?>training/backward-compatible-ui/index.html"
1163 description=
1164 "How to use UI components and other APIs from the more recent versions of Android
1165 while remaining compatible with older versions of the platform."
1166 >Creating Backward-Compatible UIs</a>
Scott Mainddab47b2012-10-02 17:48:11 -07001167 </div>
Scott Main50e990c2012-06-21 17:14:39 -07001168 <ul>
Scott Main22cc2762012-11-07 16:35:16 -08001169 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/abstracting.html">
1170 Abstracting the New APIs
1171 </a>
1172 </li>
1173 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/new-implementation.html">
1174 Proxying to the New APIs
1175 </a>
1176 </li>
1177 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/older-implementation.html">
1178 Creating an Implementation with Older APIs
1179 </a>
1180 </li>
1181 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/using-component.html">
1182 Using the Version-Aware Component
1183 </a>
1184 </li>
1185 </ul>
1186 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001187
Scott Main22cc2762012-11-07 16:35:16 -08001188 <li class="nav-section">
1189 <div class="nav-section-header">
1190 <a href="<?cs var:toroot ?>training/accessibility/index.html"
1191 description=
1192 "How to make your app accessible to users with vision
1193 impairment or other physical disabilities."
1194 >Implementing Accessibility</a>
1195 </div>
1196 <ul>
1197 <li><a href="<?cs var:toroot ?>training/accessibility/accessible-app.html">
1198 Developing Accessible Applications
1199 </a>
1200 </li>
1201 <li><a href="<?cs var:toroot ?>training/accessibility/service.html">
1202 Developing Accessibility Services
1203 </a>
1204 </li>
1205 </ul>
1206 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001207
Katie McCormickcfd30472013-09-27 15:52:14 -07001208 <li class="nav-section">
1209 <div class="nav-section-header">
1210 <a href="<?cs var:toroot ?>training/system-ui/index.html"
1211 description=
1212 "How to hide and show status and navigation bars across different versions of Android,
1213 while managing the display of other screen components."
1214 >Managing the System UI</a>
1215 </div>
1216 <ul>
1217 <li><a href="<?cs var:toroot ?>training/system-ui/dim.html">
1218 Dimming the System Bars
1219 </a>
1220 </li>
1221 <li><a href="<?cs var:toroot ?>training/system-ui/status.html">
1222 Hiding the Status Bar
1223 </a>
1224 </li>
1225 <li><a href="<?cs var:toroot ?>training/system-ui/navigation.html">
1226 Hiding the Navigation Bar
1227 </a>
1228 </li>
Scott Main5b50239c2013-12-17 14:59:05 -08001229 <li><a href="<?cs var:toroot ?>training/system-ui/immersive.html">
Katie McCormick467f5db2013-11-05 13:35:15 -08001230 Using Immersive Full-Screen Mode
1231 </a>
1232 </li>
Katie McCormickcfd30472013-09-27 15:52:14 -07001233 <li><a href="<?cs var:toroot ?>training/system-ui/visibility.html">
1234 Responding to UI Visibility Changes
1235 </a>
1236 </li>
1237 </ul>
1238 </li>
1239
Scott Main22cc2762012-11-07 16:35:16 -08001240 </ul>
1241 </li>
Scott Main81428982013-12-09 18:02:48 -08001242 <!-- End User Interface -->
1243
1244
Joe Malin3ddba7e2013-03-04 10:33:30 -08001245
Scott Mainc8a6f8a2012-12-05 16:13:25 -08001246
&& repo sync -j8518edbf2012-11-30 16:28:27 -08001247 <li class="nav-section">
1248 <div class="nav-section-header">
Scott Mainc8a6f8a2012-12-05 16:13:25 -08001249 <a href="<?cs var:toroot ?>training/best-user-input.html">
&& repo sync -j8518edbf2012-11-30 16:28:27 -08001250 <span class="small">Best Practices for</span><br/>
1251 User Input
1252 </a>
1253 </div>
1254 <ul>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001255
&& repo sync -j8518edbf2012-11-30 16:28:27 -08001256 <li class="nav-section">
1257 <div class="nav-section-header">
1258 <a href="<?cs var:toroot ?>training/gestures/index.html"
1259 description=
1260 "How to write apps that allow users to interact with the touch screen via touch gestures."
1261 >Using Touch Gestures</a>
1262 </div>
1263 <ul>
1264 <li><a href="<?cs var:toroot ?>training/gestures/detector.html">
1265 Detecting Common Gestures
1266 </a>
1267 </li>
1268 <li><a href="<?cs var:toroot ?>training/gestures/movement.html">
1269 Tracking Movement
1270 </a>
1271 </li>
1272 <li><a href="<?cs var:toroot ?>training/gestures/scroll.html">
1273 Animating a Scroll Gesture
1274 </a>
1275 </li>
1276 <li><a href="<?cs var:toroot ?>training/gestures/multi.html">
1277 Handling Multi-Touch Gestures
1278 </a>
1279 </li>
1280 <li><a href="<?cs var:toroot ?>training/gestures/scale.html">
1281 Dragging and Scaling
1282 </a>
1283 </li>
1284 <li><a href="<?cs var:toroot ?>training/gestures/viewgroup.html">
1285 Managing Touch Events in a ViewGroup
1286 </a>
1287 </li>
1288 </ul>
Scott Mainc8a6f8a2012-12-05 16:13:25 -08001289 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001290
Scott Mainc8a6f8a2012-12-05 16:13:25 -08001291 <li class="nav-section">
1292 <div class="nav-section-header">
1293 <a href="<?cs var:toroot ?>training/keyboard-input/index.html"
1294 description=
1295 "How to specify the appearance and behaviors of soft input methods (such
1296 as on-screen keyboards) and how to optimize the experience with
1297 hardware keyboards."
1298 >Handling Keyboard Input</a>
1299 </div>
1300 <ul>
1301 <li><a href="<?cs var:toroot ?>training/keyboard-input/style.html">
1302 Specifying the Input Method Type
1303 </a>
1304 </li>
1305 <li><a href="<?cs var:toroot ?>training/keyboard-input/visibility.html">
1306 Handling Input Method Visibility
1307 </a>
1308 </li>
1309 <li><a href="<?cs var:toroot ?>training/keyboard-input/navigation.html">
1310 Supporting Keyboard Navigation
1311 </a>
1312 </li>
1313 <li><a href="<?cs var:toroot ?>training/keyboard-input/commands.html">
1314 Handling Keyboard Actions
1315 </a>
1316 </li>
1317 </ul>
1318 </li>
quddusc1dff7462013-07-01 16:57:26 -07001319
1320 <li class="nav-section">
1321 <div class="nav-section-header">
1322 <a href="<?cs var:toroot ?>training/game-controllers/index.html"
1323 description=
1324 "How to write apps that support game controllers."
1325 >Supporting Game Controllers</a>
1326 </div>
1327 <ul>
1328 <li><a href="<?cs var:toroot ?>training/game-controllers/controller-input.html">
1329 Handling Controller Actions
1330 </a>
1331 </li>
1332 <li><a href="<?cs var:toroot ?>training/game-controllers/compatibility.html">
1333 Supporting Controllers Across Android Versions
1334 </a>
1335 </li>
1336 <li><a href="<?cs var:toroot ?>training/game-controllers/multiple-controllers.html">
1337 Supporting Multiple Game Controllers
1338 </a>
1339 </li>
1340 </ul>
1341 </li>
Scott Mainc8a6f8a2012-12-05 16:13:25 -08001342 </ul>
Joe Malin421435d2013-01-15 15:06:08 -08001343 </li> <!-- end of User Input -->
Scott Main22cc2762012-11-07 16:35:16 -08001344
1345 <li class="nav-section">
1346 <div class="nav-section-header">
Katie McCormick7bdb3f62013-09-05 14:46:20 -07001347 <a href="<?cs var:toroot ?>training/best-background.html">
1348 <span class="small">Best Practices for</span><br/>
1349 Background Jobs
1350 </a>
1351 </div>
1352 <ul>
1353
1354 <li class="nav-section">
1355 <div class="nav-section-header">
1356 <a href="<?cs var:toroot ?>training/run-background-service/index.html"
1357 description=
1358 "How to improve UI performance and responsiveness by sending work to a
1359 Service running in the background"
1360 >Running in a Background Service</a>
1361 </div>
1362 <ul>
1363 <li><a href="<?cs var:toroot ?>training/run-background-service/create-service.html">
1364 Creating a Background Service
1365 </a>
1366 </li>
1367 <li><a href="<?cs var:toroot ?>training/run-background-service/send-request.html">
1368 Sending Work Requests to the Background Service
1369 </a>
1370 </li>
1371 <li><a href="<?cs var:toroot ?>training/run-background-service/report-status.html">
1372 Reporting Work Status
1373 </a>
1374 </li>
1375 </ul>
1376 </li>
1377
1378 <li class="nav-section">
1379 <div class="nav-section-header">
1380 <a href="<?cs var:toroot ?>training/load-data-background/index.html"
1381 description="How to use CursorLoader to query data without
1382 affecting UI responsiveness."
1383 >Loading Data in the Background</a>
1384 </div>
1385 <ul>
1386 <li><a href="<?cs var:toroot ?>training/load-data-background/setup-loader.html">
1387 Running a Query with a CursorLoader</a>
1388 </li>
1389 <li><a href="<?cs var:toroot ?>training/load-data-background/handle-results.html">
1390 Handling the Results</a>
1391 </li>
1392 </ul>
1393 </li>
1394
1395 <li class="nav-section">
1396 <div class="nav-section-header">
1397 <a href="<?cs var:toroot ?>training/scheduling/index.html"
1398 description="How to use repeating alarms and wake locks
1399 to run background jobs."
1400 >Managing Device Awake State</a>
1401 </div>
1402 <ul>
1403 <li><a href="<?cs var:toroot ?>training/scheduling/wakelock.html">
1404 Keeping the Device Awake</a>
1405 </li>
1406 <li><a href="<?cs var:toroot ?>training/scheduling/alarms.html">
1407 Scheduling Repeating Alarms</a>
1408 </li>
1409 </ul>
1410 </li>
1411 </ul>
1412 </li> <!-- end of Background Jobs -->
1413
1414 <li class="nav-section">
1415 <div class="nav-section-header">
Scott Main22cc2762012-11-07 16:35:16 -08001416 <a href="<?cs var:toroot ?>training/best-performance.html">
1417 <span class="small">Best Practices for</span><br/>
1418 Performance
1419 </a>
1420 </div>
1421 <ul>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001422
Scott Main22cc2762012-11-07 16:35:16 -08001423 <li>
Scott Maina3f0e012013-09-19 17:45:40 -07001424 <a href="<?cs var:toroot ?>training/articles/memory.html"
1425 description=
1426 "How to keep your app's memory footprint small in order to improve performance
1427 on a variety of mobile devices."
1428 >Managing Your App's Memory</a>
1429 </li>
1430
1431 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001432 <a href="<?cs var:toroot ?>training/articles/perf-tips.html"
Scott Main22cc2762012-11-07 16:35:16 -08001433 description=
1434 "How to optimize your app's performance in various ways to improve its
1435 responsiveness and battery efficiency."
1436 >Performance Tips</a>
1437 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001438
Scott Main22cc2762012-11-07 16:35:16 -08001439 <li class="nav-section">
1440 <div class="nav-section-header">
1441 <a href="<?cs var:toroot ?>training/improving-layouts/index.html"
1442 description=
1443 "How to identify problems in your app's layout performance and improve the UI
1444 responsiveness."
1445 >Improving Layout Performance</a>
1446 </div>
1447 <ul>
1448 <li><a href="<?cs var:toroot ?>training/improving-layouts/optimizing-layout.html">
1449 Optimizing Layout Hierarchies
1450 </a>
1451 </li>
1452 <li><a href="<?cs var:toroot ?>training/improving-layouts/reusing-layouts.html">
1453 Re-using Layouts with &lt;include/&gt;
1454 </a>
1455 </li>
1456 <li><a href="<?cs var:toroot ?>training/improving-layouts/loading-ondemand.html">
1457 Loading Views On Demand
1458 </a>
1459 </li>
1460 <li><a href="<?cs var:toroot ?>training/improving-layouts/smooth-scrolling.html">
1461 Making ListView Scrolling Smooth
1462 </a>
1463 </li>
1464 </ul>
1465 </li>
Scott Main8ac78802012-12-14 11:39:03 -08001466
Joe Malinf0f5efb2012-10-27 11:16:19 -07001467 <li class="nav-section">
1468 <div class="nav-section-header">
Scott Main5b50239c2013-12-17 14:59:05 -08001469 <a href="<?cs var:toroot ?>training/monitoring-device-state/index.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001470 zh-cn-lang="优化电池使用时间"
Scott Main22cc2762012-11-07 16:35:16 -08001471 ja-lang="電池消費量の最適化"
1472 es-lang="Cómo optimizar la duración de la batería"
1473 description=
1474 "How to minimize the amount of power your app requires by adapting to current
1475 power conditions and performing power-hungry tasks at proper intervals."
1476 >Optimizing Battery Life</a>
1477 </div>
1478 <ul>
Scott Main5b50239c2013-12-17 14:59:05 -08001479 <li><a href="<?cs var:toroot ?>training/monitoring-device-state/battery-monitoring.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001480 zh-cn-lang="监控电池电量和充电状态"
Scott Mainddab47b2012-10-02 17:48:11 -07001481 ja-lang="電池残量と充電状態の監視"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001482 es-lang="Cómo controlar el nivel de batería y el estado de carga"
Scott Mainddab47b2012-10-02 17:48:11 -07001483 >Monitoring the Battery Level and Charging State</a>
Scott Main50e990c2012-06-21 17:14:39 -07001484 </li>
Scott Main5b50239c2013-12-17 14:59:05 -08001485 <li><a href="<?cs var:toroot ?>training/monitoring-device-state/docking-monitoring.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001486 zh-cn-lang="确定和监控基座对接状态和类型"
Scott Mainddab47b2012-10-02 17:48:11 -07001487 ja-lang="ホルダーの装着状態とタイプの特定と監視"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001488 es-lang="Cómo determinar y controlar el tipo de conector y el estado de la conexión"
Scott Mainddab47b2012-10-02 17:48:11 -07001489 >Determining and Monitoring the Docking State and Type</a>
Scott Main50e990c2012-06-21 17:14:39 -07001490 </li>
Scott Main5b50239c2013-12-17 14:59:05 -08001491 <li><a href="<?cs var:toroot ?>training/monitoring-device-state/connectivity-monitoring.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001492 zh-cn-lang="确定和监控网络连接状态"
Scott Mainddab47b2012-10-02 17:48:11 -07001493 ja-lang="接続状態の特定と監視"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001494 es-lang="Cómo determinar y controlar el estado de la conectividad"
Scott Mainddab47b2012-10-02 17:48:11 -07001495 >Determining and Monitoring the Connectivity Status</a>
Scott Main50e990c2012-06-21 17:14:39 -07001496 </li>
Scott Main5b50239c2013-12-17 14:59:05 -08001497 <li><a href="<?cs var:toroot ?>training/monitoring-device-state/manifest-receivers.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001498 zh-cn-lang="根据需要操作广播接收器"
Scott Mainddab47b2012-10-02 17:48:11 -07001499 ja-lang="オンデマンドでのブロードキャスト レシーバ操作"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001500 es-lang="Cómo manipular los receptores de emisión bajo demanda"
Scott Mainddab47b2012-10-02 17:48:11 -07001501 >Manipulating Broadcast Receivers On Demand</a>
Scott Main50e990c2012-06-21 17:14:39 -07001502 </li>
1503 </ul>
1504 </li>
Joe Malin8dd62752012-11-26 14:06:35 -08001505 <li class="nav-section">
1506 <div class="nav-section-header">
1507 <a href="<?cs var:toroot ?>training/multiple-threads/index.html"
1508 description=
1509 "How to improve the performance and scalability of long-running operations by
1510 dispatching work to multiple threads.">
1511 Sending Operations to Multiple Threads</a>
1512 </div>
1513 <ul>
1514 <li><a href="<?cs var:toroot ?>training/multiple-threads/define-runnable.html">
1515 Specifying the Code to Run on a Thread
1516 </a>
1517 </li>
1518 <li><a href="<?cs var:toroot ?>training/multiple-threads/create-threadpool.html">
1519 Creating a Manager for Multiple Threads
1520 </a>
1521 </li>
1522 <li><a href="<?cs var:toroot ?>training/multiple-threads/run-code.html">
1523 Running Code on a Thread Pool Thread
1524 </a>
1525 </li>
1526 <li><a href="<?cs var:toroot ?>training/multiple-threads/communicate-ui.html">
1527 Communicating with the UI Thread
1528 </a>
1529 </li>
1530 </ul>
1531 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001532
Scott Main22cc2762012-11-07 16:35:16 -08001533 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001534 <a href="<?cs var:toroot ?>training/articles/perf-anr.html"
Scott Main22cc2762012-11-07 16:35:16 -08001535 description=
1536 "How to keep your app responsive to user interaction so the UI does not lock-up and
1537 display an &quot;Application Not Responding&quot; dialog."
1538 >Keeping Your App Responsive</a>
Scott Main50e990c2012-06-21 17:14:39 -07001539 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001540
Scott Main22cc2762012-11-07 16:35:16 -08001541 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001542 <a href="<?cs var:toroot ?>training/articles/perf-jni.html"
Scott Main22cc2762012-11-07 16:35:16 -08001543 description=
1544 "How to efficiently use the Java Native Interface with the Android NDK."
1545 >JNI Tips</a>
1546 </li>
Dirk Doughertyd5894212012-11-28 18:53:10 -08001547 <li>
1548 <a href="<?cs var:toroot ?>training/articles/smp.html"
1549 description=
1550 "Tips for coding Android apps on symmetric multiprocessor systems."
1551 >SMP Primer for Android</a>
1552 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001553 </ul>
1554 </li> <!-- end of Performance -->
Joe Malin3ddba7e2013-03-04 10:33:30 -08001555
1556
Scott Main50e990c2012-06-21 17:14:39 -07001557
Scott Main22cc2762012-11-07 16:35:16 -08001558 <li class="nav-section">
1559 <div class="nav-section-header">
1560 <a href="<?cs var:toroot ?>training/best-security.html">
1561 <span class="small">Best Practices for</span><br/>
1562 Security &amp; Privacy
1563 </a>
1564 </div>
1565 <ul>
Scott Main22cc2762012-11-07 16:35:16 -08001566 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001567 <a href="<?cs var:toroot ?>training/articles/security-tips.html"
Scott Main22cc2762012-11-07 16:35:16 -08001568 description=
1569 "How to perform various tasks and keep your app's data and your user's data secure."
1570 >Security Tips</a>
1571 </li>
Scott Main00158362013-01-17 16:58:50 -08001572
1573 <li>
1574 <a href="<?cs var:toroot ?>training/articles/security-ssl.html"
1575 description=
1576 "How to ensure that your app is secure when performing network transactions."
1577 >Security with HTTPS and SSL</a>
1578 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001579
Andrew Solovay897cf902014-07-30 15:00:55 -07001580 <li>
1581 <a href="<?cs var:toroot ?>training/articles/security-gms-provider.html"
1582 description=
1583 "How to use and update Google Play services security provider, to
1584 protect against SSL exploits."
1585 >Updating Your Security Provider to Protect Against SSL Exploits</a>
1586 </li>
1587
Scott Main50e990c2012-06-21 17:14:39 -07001588 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001589 <div class="nav-section-header">
1590 <a href="<?cs var:toroot ?>training/enterprise/index.html"
1591 description=
1592 "How to implement device management policies for enterprise-oriented apps."
1593 >Developing for Enterprise</a>
Scott Main50e990c2012-06-21 17:14:39 -07001594 </div>
1595 <ul>
Scott Main22cc2762012-11-07 16:35:16 -08001596 <li><a href="<?cs var:toroot ?>training/enterprise/device-management-policy.html">
1597 Enhancing Security with Device Management Policies
Scott Main50e990c2012-06-21 17:14:39 -07001598 </a>
1599 </li>
1600 </ul>
1601 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001602 </ul>
1603 </li>
1604 <!-- End security and user info -->
Scott Main50e990c2012-06-21 17:14:39 -07001605
quddusc2ef39522013-06-21 16:49:46 -07001606 <li class="nav-section">
1607 <div class="nav-section-header">
1608 <a href="<?cs var:toroot ?>training/testing.html">
1609 <span class="small">Best Practices for</span><br/>
1610 Testing
1611 </a>
1612 </div>
1613 <ul>
1614 <li class="nav-section">
1615 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/activity-testing/index.html"
1616 description="How to test Activities in your Android applications.">
1617 Testing Your Activity
1618 </a></div>
1619 <ul>
1620 <li><a href="<?cs var:toroot ?>training/activity-testing/preparing-activity-testing.html">
1621 <span class="en">Setting Up Your Test Environment</span>
1622 </a>
1623 </li>
1624 <li><a href="<?cs var:toroot ?>training/activity-testing/activity-basic-testing.html">
1625 <span class="en">Creating and Running a Test Case</span>
1626 </a>
1627 </li>
1628 <li><a href="<?cs var:toroot ?>training/activity-testing/activity-ui-testing.html">
1629 <span class="en">Testing UI Components</span>
1630 </a>
1631 </li>
1632 <li><a href="<?cs var:toroot ?>training/activity-testing/activity-unit-testing.html">
1633 <span class="en">Creating Unit Tests</span>
1634 </a>
1635 </li>
1636 <li><a href="<?cs var:toroot ?>training/activity-testing/activity-functional-testing.html">
1637 <span class="en">Creating Functional Tests</span>
1638 </a>
1639 </li>
1640 </ul>
1641 </li>
1642 </ul>
1643 </li>
1644 <!-- End best Testing -->
Scott Main50e990c2012-06-21 17:14:39 -07001645
Scott Main22cc2762012-11-07 16:35:16 -08001646 <li class="nav-section">
1647 <div class="nav-section-header">
1648 <a href="<?cs var:toroot ?>training/distribute.html">
1649 <span class="small">Using Google Play to</span><br/>
1650 Distribute &amp; Monetize
1651 </a>
1652 </div>
1653 <ul>
Quddus Chong768dba62012-12-08 17:06:30 -08001654 <li class="nav-section">
1655 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/in-app-billing/index.html"
1656 description="How to sell in-app products from your application using In-app Billing.">
1657 Selling In-app Products
1658 </a></div>
1659 <ul>
1660 <li><a href="<?cs var:toroot ?>training/in-app-billing/preparing-iab-app.html">
1661 <span class="en">Preparing Your App</span>
1662 </a>
1663 </li>
1664 <li><a href="<?cs var:toroot ?>training/in-app-billing/list-iab-products.html">
1665 <span class="en">Establishing Products for Sale</span>
1666 </a>
1667 </li>
1668 <li><a href="<?cs var:toroot ?>training/in-app-billing/purchase-iab-products.html">
1669 <span class="en">Purchasing Products</span>
1670 </a>
1671 </li>
1672 <li><a href="<?cs var:toroot ?>training/in-app-billing/test-iab-app.html">
1673 <span class="en">Testing Your App</span>
1674 </a>
1675 </li>
1676 </ul>
1677 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001678
Scott Main50e990c2012-06-21 17:14:39 -07001679 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001680 <div class="nav-section-header">
1681 <a href="<?cs var:toroot ?>training/multiple-apks/index.html"
1682 description=
1683 "How to publish your app on Google Play with separate APKs that target
1684 different devices, while using a single app listing."
1685 >Maintaining Multiple APKs</a>
1686 </div>
Scott Main50e990c2012-06-21 17:14:39 -07001687 <ul>
1688 <li><a href="<?cs var:toroot ?>training/multiple-apks/api.html">
Scott Main22cc2762012-11-07 16:35:16 -08001689 Creating Multiple APKs for Different API Levels
Scott Main50e990c2012-06-21 17:14:39 -07001690 </a>
1691 </li>
1692 <li><a href="<?cs var:toroot ?>training/multiple-apks/screensize.html">
Scott Main22cc2762012-11-07 16:35:16 -08001693 Creating Multiple APKs for Different Screen Sizes
Scott Main50e990c2012-06-21 17:14:39 -07001694 </a>
1695 </li>
1696 <li><a href="<?cs var:toroot ?>training/multiple-apks/texture.html">
Scott Main22cc2762012-11-07 16:35:16 -08001697 Creating Multiple APKs for Different GL Textures
Scott Main50e990c2012-06-21 17:14:39 -07001698 </a>
1699 </li>
1700 <li><a href="<?cs var:toroot ?>training/multiple-apks/multiple.html">
Scott Main22cc2762012-11-07 16:35:16 -08001701 Creating Multiple APKs with 2+ Dimensions
Scott Main50e990c2012-06-21 17:14:39 -07001702 </a>
1703 </li>
1704 </ul>
1705 </li>
Scott Main50e990c2012-06-21 17:14:39 -07001706 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001707 <div class="nav-section-header">
1708 <a href="<?cs var:toroot ?>training/monetization/index.html"
1709 description=
1710 "How to implement monetization strategies for your app without compromising
1711 the user experience."
1712 >Monetizing Your App</a>
1713 </div>
Scott Main50e990c2012-06-21 17:14:39 -07001714 <ul>
1715 <li><a href="<?cs var:toroot ?>training/monetization/ads-and-ux.html">
Scott Main22cc2762012-11-07 16:35:16 -08001716 Advertising without Compromising User Experience
Scott Main50e990c2012-06-21 17:14:39 -07001717 </a>
1718 </li>
1719 </ul>
1720 </li>
Scott Main50e990c2012-06-21 17:14:39 -07001721 </ul>
1722 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001723 <!-- End best Publishing -->
1724
Scott Main50e990c2012-06-21 17:14:39 -07001725</ul><!-- nav -->
Scott Main50e990c2012-06-21 17:14:39 -07001726<script type="text/javascript">
1727<!--
1728 buildToggleLists();
1729 changeNavLang(getLangPref());
1730//-->
1731</script>