blob: bb00f80777731324f9771c922a10f405ce8c43a3 [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">
854 <a href="<?cs var:toroot ?>training/tv/start/index.html"
855 description="How to start building TV apps or extend your existing app to run on TV
856 devices.">
857 Building TV Apps</a>
858 </div>
859 <ul>
860 <li>
861 <a href="<?cs var:toroot ?>training/tv/start/start.html">
862 Getting Started with TV Apps</a>
863 </li>
864 <li>
865 <a href="<?cs var:toroot ?>training/tv/start/hardware.html">
866 Handling TV Hardware</a>
867 </li>
868 <li>
869 <a href="<?cs var:toroot ?>training/tv/start/layouts.html">
870 Building TV Layouts</a>
871 </li>
872 <li>
873 <a href="<?cs var:toroot ?>training/tv/start/navigation.html">
874 Creating TV Navigation</a>
875 </li>
876 </ul>
877 </li>
878
879 </ul>
880 </li>
881 <!-- End: Building for TV -->
882
883
Scott Main22cc2762012-11-07 16:35:16 -0800884 <li class="nav-section">
885 <div class="nav-section-header">
886 <a href="<?cs var:toroot ?>training/best-ux.html">
887 <span class="small">Best Practices for</span><br/>
Scott Main81428982013-12-09 18:02:48 -0800888 Interaction &amp; Engagement
Scott Main50e990c2012-06-21 17:14:39 -0700889 </a>
890 </div>
891 <ul>
892
893 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800894 <div class="nav-section-header">
895 <a href="<?cs var:toroot ?>training/design-navigation/index.html"
896 description=
897 "How to plan your app's screen hierarchy and forms of navigation so users can
898 effectively and intuitively traverse your app content using various navigation
899 patterns."
900 >Designing Effective Navigation</a>
Scott Mainddab47b2012-10-02 17:48:11 -0700901 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700902 <ul>
Scott Main22cc2762012-11-07 16:35:16 -0800903 <li><a href="<?cs var:toroot ?>training/design-navigation/screen-planning.html">
904 Planning Screens and Their Relationships
905 </a>
906 </li>
907 <li><a href="<?cs var:toroot ?>training/design-navigation/multiple-sizes.html">
908 Planning for Multiple Touchscreen Sizes
909 </a>
910 </li>
911 <li><a href="<?cs var:toroot ?>training/design-navigation/descendant-lateral.html">
912 Providing Descendant and Lateral Navigation
913 </a>
914 </li>
915 <li><a href="<?cs var:toroot ?>training/design-navigation/ancestral-temporal.html">
916 Providing Ancestral and Temporal Navigation
917 </a>
918 </li>
919 <li><a href="<?cs var:toroot ?>training/design-navigation/wireframing.html">
920 Putting it All Together: Wireframing the Example App
921 </a>
922 </li>
923 </ul>
924 </li>
925
926 <li class="nav-section">
927 <div class="nav-section-header">
928 <a href="<?cs var:toroot ?>training/implementing-navigation/index.html"
929 description=
Scott Main7c840552013-03-26 18:53:01 -0700930 "How to implement various navigation patterns such as swipe views,
931 a navigation drawer, and up navigation."
Scott Main22cc2762012-11-07 16:35:16 -0800932 >Implementing Effective Navigation</a>
933 </div>
934 <ul>
935 <li><a href="<?cs var:toroot ?>training/implementing-navigation/lateral.html">
Scott Main7c840552013-03-26 18:53:01 -0700936 Creating Swipe Views with Tabs
937 </a>
938 </li>
939 <li><a href="<?cs var:toroot ?>training/implementing-navigation/nav-drawer.html">
940 Creating a Navigation Drawer
Scott Main22cc2762012-11-07 16:35:16 -0800941 </a>
942 </li>
943 <li><a href="<?cs var:toroot ?>training/implementing-navigation/ancestral.html">
Scott Main7c840552013-03-26 18:53:01 -0700944 Providing Up Navigation
Scott Main22cc2762012-11-07 16:35:16 -0800945 </a>
946 </li>
947 <li><a href="<?cs var:toroot ?>training/implementing-navigation/temporal.html">
Scott Main7c840552013-03-26 18:53:01 -0700948 Providing Proper Back Navigation
Scott Main22cc2762012-11-07 16:35:16 -0800949 </a>
950 </li>
951 <li><a href="<?cs var:toroot ?>training/implementing-navigation/descendant.html">
952 Implementing Descendant Navigation
953 </a>
954 </li>
955 </ul>
956 </li>
&& repo sync -j80aae0002012-10-04 16:34:23 -0700957
958 <li class="nav-section">
959 <div class="nav-section-header">
960 <a href="<?cs var:toroot ?>training/notify-user/index.html"
961 description=
Joe Malinf0f5efb2012-10-27 11:16:19 -0700962 "How to display messages called notifications outside of
&& repo sync -j80aae0002012-10-04 16:34:23 -0700963 your application's UI."
964 >Notifying the User</a>
965 </div>
966 <ul>
967 <li>
968 <a href="<?cs var:toroot ?>training/notify-user/build-notification.html">
969 Building a Notification
970 </a>
971 </li>
972 <li>
973 <a href="<?cs var:toroot ?>training/notify-user/navigation.html">
974 Preserving Navigation when Starting an Activity
975 </a>
976 </li>
977 <li>
978 <a href="<?cs var:toroot ?>training/notify-user/managing.html">
979 Updating Notifications
980 </a>
981 </li>
982 <li>
983 <a href="<?cs var:toroot ?>training/notify-user/expanded.html">
984 Using Big View Styles
985 </a>
986 </li>
987 <li>
988 <a href="<?cs var:toroot ?>training/notify-user/display-progress.html">
989 Displaying Progress in a Notification
990 </a>
991 </li>
992 </ul>
993 </li>
994
995 <li class="nav-section">
996 <div class="nav-section-header">
997 <a href="<?cs var:toroot ?>training/search/index.html"
998 description=
999 "How to properly add a search interface to your app and create a searchable database."
1000 >Adding Search Functionality</a>
1001 </div>
1002 <ul>
1003 <li><a href="<?cs var:toroot ?>training/search/setup.html">
1004 Setting up the Search Interface
1005 </a>
1006 </li>
1007 <li><a href="<?cs var:toroot ?>training/search/search.html">
1008 Storing and Searching for Data
1009 </a>
1010 </li>
1011 <li><a href="<?cs var:toroot ?>training/search/backward-compat.html">
1012 Remaining Backward Compatible
1013 </a>
1014 </li>
1015 </ul>
1016 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001017
Scott Main81428982013-12-09 18:02:48 -08001018 <li class="nav-section">
1019 <div class="nav-section-header">
1020 <a href="<?cs var:toroot ?>training/app-indexing/index.html"
1021 description=
1022 "How to enable deep linking and indexing of your application
1023content so that users can open this content directly from their mobile search
1024results."
quddusc240aca32013-12-19 16:59:17 -08001025 >Making Your App Content Searchable by Google</a>
Scott Main81428982013-12-09 18:02:48 -08001026 </div>
1027 <ul>
1028 <li><a href="<?cs var:toroot ?>training/app-indexing/deep-linking.html">
1029 Enabling Deep Links for App Content
1030 </a>
1031 </li>
1032 <li><a href="<?cs var:toroot ?>training/app-indexing/enabling-app-indexing.html">
1033 Specifying App Content for Indexing
1034 </a>
1035 </li>
1036 </ul>
1037 </li>
1038 </ul>
1039 </li>
1040 <!-- End Interaction and Engagement -->
1041
1042
1043
1044
1045 <li class="nav-section">
1046 <div class="nav-section-header">
1047 <a href="<?cs var:toroot ?>training/best-ui.html">
1048 <span class="small">Best Practices for</span><br/>
1049 User Interface
1050 </a>
1051 </div>
1052 <ul>
1053
Joe Malin3ddba7e2013-03-04 10:33:30 -08001054
Scott Main22cc2762012-11-07 16:35:16 -08001055 <li class="nav-section">
1056 <div class="nav-section-header">
Scott Main5b50239c2013-12-17 14:59:05 -08001057 <a href="<?cs var:toroot ?>training/multiscreen/index.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001058 zh-cn-lang="针对多种屏幕进行设计"
Scott Main22cc2762012-11-07 16:35:16 -08001059 ja-lang="複数画面のデザイン"
1060 es-lang="Cómo diseñar aplicaciones para varias pantallas"
1061 description=
1062 "How to build a user interface that's flexible enough to
1063 fit perfectly on any screen and how to create different interaction
1064 patterns that are optimized for different screen sizes."
1065 >Designing for Multiple Screens</a>
1066 </div>
1067 <ul>
Scott Main5b50239c2013-12-17 14:59:05 -08001068 <li><a href="<?cs var:toroot ?>training/multiscreen/screensizes.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001069 zh-cn-lang="支持各种屏幕尺寸"
Scott Mainddab47b2012-10-02 17:48:11 -07001070 ko-lang="다양한 화면 크기 지원"
1071 ja-lang="さまざまな画面サイズのサポート"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001072 es-lang="Cómo admitir varios tamaños de pantalla"
Scott Main22cc2762012-11-07 16:35:16 -08001073 >Supporting Different Screen Sizes</a>
Scott Main50e990c2012-06-21 17:14:39 -07001074 </li>
Scott Main5b50239c2013-12-17 14:59:05 -08001075 <li><a href="<?cs var:toroot ?>training/multiscreen/screendensities.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001076 zh-cn-lang="支持各种屏幕密度"
Scott Mainddab47b2012-10-02 17:48:11 -07001077 ja-lang="さまざまな画面密度のサポート"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001078 es-lang="Cómo admitir varias densidades de pantalla"
Scott Mainddab47b2012-10-02 17:48:11 -07001079 >Supporting Different Screen Densities</a>
Scott Main50e990c2012-06-21 17:14:39 -07001080 </li>
Scott Main5b50239c2013-12-17 14:59:05 -08001081 <li><a href="<?cs var:toroot ?>training/multiscreen/adaptui.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001082 zh-cn-lang="实施自适应用户界面流程"
Scott Mainddab47b2012-10-02 17:48:11 -07001083 ja-lang="順応性のある UI フローの実装"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001084 es-lang="Cómo implementar interfaces de usuario adaptables"
Scott Mainddab47b2012-10-02 17:48:11 -07001085 >Implementing Adaptive UI Flows</a>
Scott Main50e990c2012-06-21 17:14:39 -07001086 </li>
1087 </ul>
1088 </li>
Joe Malin50c22752012-10-20 12:41:40 -07001089
Scott Main50e990c2012-06-21 17:14:39 -07001090 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001091 <div class="nav-section-header">
1092 <a href="<?cs var:toroot ?>training/custom-views/index.html"
1093 description=
1094 "How to build custom UI widgets that are interactive and smooth."
1095 >Creating Custom Views</a>
1096 </div>
Scott Main50e990c2012-06-21 17:14:39 -07001097 <ul>
Scott Main22cc2762012-11-07 16:35:16 -08001098 <li><a href="<?cs var:toroot ?>training/custom-views/create-view.html">
1099 Creating a Custom View Class
Scott Main50e990c2012-06-21 17:14:39 -07001100 </a>
1101 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001102 <li><a href="<?cs var:toroot ?>training/custom-views/custom-drawing.html">
1103 Implementing Custom Drawing
Scott Main50e990c2012-06-21 17:14:39 -07001104 </a>
1105 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001106 <li><a href="<?cs var:toroot ?>training/custom-views/making-interactive.html">
1107 Making the View Interactive
1108 </a>
1109 </li>
1110 <li><a href="<?cs var:toroot ?>training/custom-views/optimizing-view.html">
1111 Optimizing the View
Scott Main50e990c2012-06-21 17:14:39 -07001112 </a>
1113 </li>
1114 </ul>
1115 </li>
Joe Malin50c22752012-10-20 12:41:40 -07001116
Scott Main50e990c2012-06-21 17:14:39 -07001117 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001118 <div class="nav-section-header">
1119 <a href="<?cs var:toroot ?>training/backward-compatible-ui/index.html"
1120 description=
1121 "How to use UI components and other APIs from the more recent versions of Android
1122 while remaining compatible with older versions of the platform."
1123 >Creating Backward-Compatible UIs</a>
Scott Mainddab47b2012-10-02 17:48:11 -07001124 </div>
Scott Main50e990c2012-06-21 17:14:39 -07001125 <ul>
Scott Main22cc2762012-11-07 16:35:16 -08001126 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/abstracting.html">
1127 Abstracting the New APIs
1128 </a>
1129 </li>
1130 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/new-implementation.html">
1131 Proxying to the New APIs
1132 </a>
1133 </li>
1134 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/older-implementation.html">
1135 Creating an Implementation with Older APIs
1136 </a>
1137 </li>
1138 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/using-component.html">
1139 Using the Version-Aware Component
1140 </a>
1141 </li>
1142 </ul>
1143 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001144
Scott Main22cc2762012-11-07 16:35:16 -08001145 <li class="nav-section">
1146 <div class="nav-section-header">
1147 <a href="<?cs var:toroot ?>training/accessibility/index.html"
1148 description=
1149 "How to make your app accessible to users with vision
1150 impairment or other physical disabilities."
1151 >Implementing Accessibility</a>
1152 </div>
1153 <ul>
1154 <li><a href="<?cs var:toroot ?>training/accessibility/accessible-app.html">
1155 Developing Accessible Applications
1156 </a>
1157 </li>
1158 <li><a href="<?cs var:toroot ?>training/accessibility/service.html">
1159 Developing Accessibility Services
1160 </a>
1161 </li>
1162 </ul>
1163 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001164
Katie McCormickcfd30472013-09-27 15:52:14 -07001165 <li class="nav-section">
1166 <div class="nav-section-header">
1167 <a href="<?cs var:toroot ?>training/system-ui/index.html"
1168 description=
1169 "How to hide and show status and navigation bars across different versions of Android,
1170 while managing the display of other screen components."
1171 >Managing the System UI</a>
1172 </div>
1173 <ul>
1174 <li><a href="<?cs var:toroot ?>training/system-ui/dim.html">
1175 Dimming the System Bars
1176 </a>
1177 </li>
1178 <li><a href="<?cs var:toroot ?>training/system-ui/status.html">
1179 Hiding the Status Bar
1180 </a>
1181 </li>
1182 <li><a href="<?cs var:toroot ?>training/system-ui/navigation.html">
1183 Hiding the Navigation Bar
1184 </a>
1185 </li>
Scott Main5b50239c2013-12-17 14:59:05 -08001186 <li><a href="<?cs var:toroot ?>training/system-ui/immersive.html">
Katie McCormick467f5db2013-11-05 13:35:15 -08001187 Using Immersive Full-Screen Mode
1188 </a>
1189 </li>
Katie McCormickcfd30472013-09-27 15:52:14 -07001190 <li><a href="<?cs var:toroot ?>training/system-ui/visibility.html">
1191 Responding to UI Visibility Changes
1192 </a>
1193 </li>
1194 </ul>
1195 </li>
1196
Scott Main22cc2762012-11-07 16:35:16 -08001197 </ul>
1198 </li>
Scott Main81428982013-12-09 18:02:48 -08001199 <!-- End User Interface -->
1200
1201
Joe Malin3ddba7e2013-03-04 10:33:30 -08001202
Scott Mainc8a6f8a2012-12-05 16:13:25 -08001203
&& repo sync -j8518edbf2012-11-30 16:28:27 -08001204 <li class="nav-section">
1205 <div class="nav-section-header">
Scott Mainc8a6f8a2012-12-05 16:13:25 -08001206 <a href="<?cs var:toroot ?>training/best-user-input.html">
&& repo sync -j8518edbf2012-11-30 16:28:27 -08001207 <span class="small">Best Practices for</span><br/>
1208 User Input
1209 </a>
1210 </div>
1211 <ul>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001212
&& repo sync -j8518edbf2012-11-30 16:28:27 -08001213 <li class="nav-section">
1214 <div class="nav-section-header">
1215 <a href="<?cs var:toroot ?>training/gestures/index.html"
1216 description=
1217 "How to write apps that allow users to interact with the touch screen via touch gestures."
1218 >Using Touch Gestures</a>
1219 </div>
1220 <ul>
1221 <li><a href="<?cs var:toroot ?>training/gestures/detector.html">
1222 Detecting Common Gestures
1223 </a>
1224 </li>
1225 <li><a href="<?cs var:toroot ?>training/gestures/movement.html">
1226 Tracking Movement
1227 </a>
1228 </li>
1229 <li><a href="<?cs var:toroot ?>training/gestures/scroll.html">
1230 Animating a Scroll Gesture
1231 </a>
1232 </li>
1233 <li><a href="<?cs var:toroot ?>training/gestures/multi.html">
1234 Handling Multi-Touch Gestures
1235 </a>
1236 </li>
1237 <li><a href="<?cs var:toroot ?>training/gestures/scale.html">
1238 Dragging and Scaling
1239 </a>
1240 </li>
1241 <li><a href="<?cs var:toroot ?>training/gestures/viewgroup.html">
1242 Managing Touch Events in a ViewGroup
1243 </a>
1244 </li>
1245 </ul>
Scott Mainc8a6f8a2012-12-05 16:13:25 -08001246 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001247
Scott Mainc8a6f8a2012-12-05 16:13:25 -08001248 <li class="nav-section">
1249 <div class="nav-section-header">
1250 <a href="<?cs var:toroot ?>training/keyboard-input/index.html"
1251 description=
1252 "How to specify the appearance and behaviors of soft input methods (such
1253 as on-screen keyboards) and how to optimize the experience with
1254 hardware keyboards."
1255 >Handling Keyboard Input</a>
1256 </div>
1257 <ul>
1258 <li><a href="<?cs var:toroot ?>training/keyboard-input/style.html">
1259 Specifying the Input Method Type
1260 </a>
1261 </li>
1262 <li><a href="<?cs var:toroot ?>training/keyboard-input/visibility.html">
1263 Handling Input Method Visibility
1264 </a>
1265 </li>
1266 <li><a href="<?cs var:toroot ?>training/keyboard-input/navigation.html">
1267 Supporting Keyboard Navigation
1268 </a>
1269 </li>
1270 <li><a href="<?cs var:toroot ?>training/keyboard-input/commands.html">
1271 Handling Keyboard Actions
1272 </a>
1273 </li>
1274 </ul>
1275 </li>
quddusc1dff7462013-07-01 16:57:26 -07001276
1277 <li class="nav-section">
1278 <div class="nav-section-header">
1279 <a href="<?cs var:toroot ?>training/game-controllers/index.html"
1280 description=
1281 "How to write apps that support game controllers."
1282 >Supporting Game Controllers</a>
1283 </div>
1284 <ul>
1285 <li><a href="<?cs var:toroot ?>training/game-controllers/controller-input.html">
1286 Handling Controller Actions
1287 </a>
1288 </li>
1289 <li><a href="<?cs var:toroot ?>training/game-controllers/compatibility.html">
1290 Supporting Controllers Across Android Versions
1291 </a>
1292 </li>
1293 <li><a href="<?cs var:toroot ?>training/game-controllers/multiple-controllers.html">
1294 Supporting Multiple Game Controllers
1295 </a>
1296 </li>
1297 </ul>
1298 </li>
Scott Mainc8a6f8a2012-12-05 16:13:25 -08001299 </ul>
Joe Malin421435d2013-01-15 15:06:08 -08001300 </li> <!-- end of User Input -->
Scott Main22cc2762012-11-07 16:35:16 -08001301
1302 <li class="nav-section">
1303 <div class="nav-section-header">
Katie McCormick7bdb3f62013-09-05 14:46:20 -07001304 <a href="<?cs var:toroot ?>training/best-background.html">
1305 <span class="small">Best Practices for</span><br/>
1306 Background Jobs
1307 </a>
1308 </div>
1309 <ul>
1310
1311 <li class="nav-section">
1312 <div class="nav-section-header">
1313 <a href="<?cs var:toroot ?>training/run-background-service/index.html"
1314 description=
1315 "How to improve UI performance and responsiveness by sending work to a
1316 Service running in the background"
1317 >Running in a Background Service</a>
1318 </div>
1319 <ul>
1320 <li><a href="<?cs var:toroot ?>training/run-background-service/create-service.html">
1321 Creating a Background Service
1322 </a>
1323 </li>
1324 <li><a href="<?cs var:toroot ?>training/run-background-service/send-request.html">
1325 Sending Work Requests to the Background Service
1326 </a>
1327 </li>
1328 <li><a href="<?cs var:toroot ?>training/run-background-service/report-status.html">
1329 Reporting Work Status
1330 </a>
1331 </li>
1332 </ul>
1333 </li>
1334
1335 <li class="nav-section">
1336 <div class="nav-section-header">
1337 <a href="<?cs var:toroot ?>training/load-data-background/index.html"
1338 description="How to use CursorLoader to query data without
1339 affecting UI responsiveness."
1340 >Loading Data in the Background</a>
1341 </div>
1342 <ul>
1343 <li><a href="<?cs var:toroot ?>training/load-data-background/setup-loader.html">
1344 Running a Query with a CursorLoader</a>
1345 </li>
1346 <li><a href="<?cs var:toroot ?>training/load-data-background/handle-results.html">
1347 Handling the Results</a>
1348 </li>
1349 </ul>
1350 </li>
1351
1352 <li class="nav-section">
1353 <div class="nav-section-header">
1354 <a href="<?cs var:toroot ?>training/scheduling/index.html"
1355 description="How to use repeating alarms and wake locks
1356 to run background jobs."
1357 >Managing Device Awake State</a>
1358 </div>
1359 <ul>
1360 <li><a href="<?cs var:toroot ?>training/scheduling/wakelock.html">
1361 Keeping the Device Awake</a>
1362 </li>
1363 <li><a href="<?cs var:toroot ?>training/scheduling/alarms.html">
1364 Scheduling Repeating Alarms</a>
1365 </li>
1366 </ul>
1367 </li>
1368 </ul>
1369 </li> <!-- end of Background Jobs -->
1370
1371 <li class="nav-section">
1372 <div class="nav-section-header">
Scott Main22cc2762012-11-07 16:35:16 -08001373 <a href="<?cs var:toroot ?>training/best-performance.html">
1374 <span class="small">Best Practices for</span><br/>
1375 Performance
1376 </a>
1377 </div>
1378 <ul>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001379
Scott Main22cc2762012-11-07 16:35:16 -08001380 <li>
Scott Maina3f0e012013-09-19 17:45:40 -07001381 <a href="<?cs var:toroot ?>training/articles/memory.html"
1382 description=
1383 "How to keep your app's memory footprint small in order to improve performance
1384 on a variety of mobile devices."
1385 >Managing Your App's Memory</a>
1386 </li>
1387
1388 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001389 <a href="<?cs var:toroot ?>training/articles/perf-tips.html"
Scott Main22cc2762012-11-07 16:35:16 -08001390 description=
1391 "How to optimize your app's performance in various ways to improve its
1392 responsiveness and battery efficiency."
1393 >Performance Tips</a>
1394 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001395
Scott Main22cc2762012-11-07 16:35:16 -08001396 <li class="nav-section">
1397 <div class="nav-section-header">
1398 <a href="<?cs var:toroot ?>training/improving-layouts/index.html"
1399 description=
1400 "How to identify problems in your app's layout performance and improve the UI
1401 responsiveness."
1402 >Improving Layout Performance</a>
1403 </div>
1404 <ul>
1405 <li><a href="<?cs var:toroot ?>training/improving-layouts/optimizing-layout.html">
1406 Optimizing Layout Hierarchies
1407 </a>
1408 </li>
1409 <li><a href="<?cs var:toroot ?>training/improving-layouts/reusing-layouts.html">
1410 Re-using Layouts with &lt;include/&gt;
1411 </a>
1412 </li>
1413 <li><a href="<?cs var:toroot ?>training/improving-layouts/loading-ondemand.html">
1414 Loading Views On Demand
1415 </a>
1416 </li>
1417 <li><a href="<?cs var:toroot ?>training/improving-layouts/smooth-scrolling.html">
1418 Making ListView Scrolling Smooth
1419 </a>
1420 </li>
1421 </ul>
1422 </li>
Scott Main8ac78802012-12-14 11:39:03 -08001423
Joe Malinf0f5efb2012-10-27 11:16:19 -07001424 <li class="nav-section">
1425 <div class="nav-section-header">
Scott Main5b50239c2013-12-17 14:59:05 -08001426 <a href="<?cs var:toroot ?>training/monitoring-device-state/index.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001427 zh-cn-lang="优化电池使用时间"
Scott Main22cc2762012-11-07 16:35:16 -08001428 ja-lang="電池消費量の最適化"
1429 es-lang="Cómo optimizar la duración de la batería"
1430 description=
1431 "How to minimize the amount of power your app requires by adapting to current
1432 power conditions and performing power-hungry tasks at proper intervals."
1433 >Optimizing Battery Life</a>
1434 </div>
1435 <ul>
Scott Main5b50239c2013-12-17 14:59:05 -08001436 <li><a href="<?cs var:toroot ?>training/monitoring-device-state/battery-monitoring.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001437 zh-cn-lang="监控电池电量和充电状态"
Scott Mainddab47b2012-10-02 17:48:11 -07001438 ja-lang="電池残量と充電状態の監視"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001439 es-lang="Cómo controlar el nivel de batería y el estado de carga"
Scott Mainddab47b2012-10-02 17:48:11 -07001440 >Monitoring the Battery Level and Charging State</a>
Scott Main50e990c2012-06-21 17:14:39 -07001441 </li>
Scott Main5b50239c2013-12-17 14:59:05 -08001442 <li><a href="<?cs var:toroot ?>training/monitoring-device-state/docking-monitoring.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001443 zh-cn-lang="确定和监控基座对接状态和类型"
Scott Mainddab47b2012-10-02 17:48:11 -07001444 ja-lang="ホルダーの装着状態とタイプの特定と監視"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001445 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 -07001446 >Determining and Monitoring the Docking State and Type</a>
Scott Main50e990c2012-06-21 17:14:39 -07001447 </li>
Scott Main5b50239c2013-12-17 14:59:05 -08001448 <li><a href="<?cs var:toroot ?>training/monitoring-device-state/connectivity-monitoring.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001449 zh-cn-lang="确定和监控网络连接状态"
Scott Mainddab47b2012-10-02 17:48:11 -07001450 ja-lang="接続状態の特定と監視"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001451 es-lang="Cómo determinar y controlar el estado de la conectividad"
Scott Mainddab47b2012-10-02 17:48:11 -07001452 >Determining and Monitoring the Connectivity Status</a>
Scott Main50e990c2012-06-21 17:14:39 -07001453 </li>
Scott Main5b50239c2013-12-17 14:59:05 -08001454 <li><a href="<?cs var:toroot ?>training/monitoring-device-state/manifest-receivers.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001455 zh-cn-lang="根据需要操作广播接收器"
Scott Mainddab47b2012-10-02 17:48:11 -07001456 ja-lang="オンデマンドでのブロードキャスト レシーバ操作"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001457 es-lang="Cómo manipular los receptores de emisión bajo demanda"
Scott Mainddab47b2012-10-02 17:48:11 -07001458 >Manipulating Broadcast Receivers On Demand</a>
Scott Main50e990c2012-06-21 17:14:39 -07001459 </li>
1460 </ul>
1461 </li>
Joe Malin8dd62752012-11-26 14:06:35 -08001462 <li class="nav-section">
1463 <div class="nav-section-header">
1464 <a href="<?cs var:toroot ?>training/multiple-threads/index.html"
1465 description=
1466 "How to improve the performance and scalability of long-running operations by
1467 dispatching work to multiple threads.">
1468 Sending Operations to Multiple Threads</a>
1469 </div>
1470 <ul>
1471 <li><a href="<?cs var:toroot ?>training/multiple-threads/define-runnable.html">
1472 Specifying the Code to Run on a Thread
1473 </a>
1474 </li>
1475 <li><a href="<?cs var:toroot ?>training/multiple-threads/create-threadpool.html">
1476 Creating a Manager for Multiple Threads
1477 </a>
1478 </li>
1479 <li><a href="<?cs var:toroot ?>training/multiple-threads/run-code.html">
1480 Running Code on a Thread Pool Thread
1481 </a>
1482 </li>
1483 <li><a href="<?cs var:toroot ?>training/multiple-threads/communicate-ui.html">
1484 Communicating with the UI Thread
1485 </a>
1486 </li>
1487 </ul>
1488 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001489
Scott Main22cc2762012-11-07 16:35:16 -08001490 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001491 <a href="<?cs var:toroot ?>training/articles/perf-anr.html"
Scott Main22cc2762012-11-07 16:35:16 -08001492 description=
1493 "How to keep your app responsive to user interaction so the UI does not lock-up and
1494 display an &quot;Application Not Responding&quot; dialog."
1495 >Keeping Your App Responsive</a>
Scott Main50e990c2012-06-21 17:14:39 -07001496 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001497
Scott Main22cc2762012-11-07 16:35:16 -08001498 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001499 <a href="<?cs var:toroot ?>training/articles/perf-jni.html"
Scott Main22cc2762012-11-07 16:35:16 -08001500 description=
1501 "How to efficiently use the Java Native Interface with the Android NDK."
1502 >JNI Tips</a>
1503 </li>
Dirk Doughertyd5894212012-11-28 18:53:10 -08001504 <li>
1505 <a href="<?cs var:toroot ?>training/articles/smp.html"
1506 description=
1507 "Tips for coding Android apps on symmetric multiprocessor systems."
1508 >SMP Primer for Android</a>
1509 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001510 </ul>
1511 </li> <!-- end of Performance -->
Joe Malin3ddba7e2013-03-04 10:33:30 -08001512
1513
Scott Main50e990c2012-06-21 17:14:39 -07001514
Scott Main22cc2762012-11-07 16:35:16 -08001515 <li class="nav-section">
1516 <div class="nav-section-header">
1517 <a href="<?cs var:toroot ?>training/best-security.html">
1518 <span class="small">Best Practices for</span><br/>
1519 Security &amp; Privacy
1520 </a>
1521 </div>
1522 <ul>
Scott Main22cc2762012-11-07 16:35:16 -08001523 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001524 <a href="<?cs var:toroot ?>training/articles/security-tips.html"
Scott Main22cc2762012-11-07 16:35:16 -08001525 description=
1526 "How to perform various tasks and keep your app's data and your user's data secure."
1527 >Security Tips</a>
1528 </li>
Scott Main00158362013-01-17 16:58:50 -08001529
1530 <li>
1531 <a href="<?cs var:toroot ?>training/articles/security-ssl.html"
1532 description=
1533 "How to ensure that your app is secure when performing network transactions."
1534 >Security with HTTPS and SSL</a>
1535 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001536
Andrew Solovay897cf902014-07-30 15:00:55 -07001537 <li>
1538 <a href="<?cs var:toroot ?>training/articles/security-gms-provider.html"
1539 description=
1540 "How to use and update Google Play services security provider, to
1541 protect against SSL exploits."
1542 >Updating Your Security Provider to Protect Against SSL Exploits</a>
1543 </li>
1544
Scott Main50e990c2012-06-21 17:14:39 -07001545 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001546 <div class="nav-section-header">
1547 <a href="<?cs var:toroot ?>training/enterprise/index.html"
1548 description=
1549 "How to implement device management policies for enterprise-oriented apps."
1550 >Developing for Enterprise</a>
Scott Main50e990c2012-06-21 17:14:39 -07001551 </div>
1552 <ul>
Scott Main22cc2762012-11-07 16:35:16 -08001553 <li><a href="<?cs var:toroot ?>training/enterprise/device-management-policy.html">
1554 Enhancing Security with Device Management Policies
Scott Main50e990c2012-06-21 17:14:39 -07001555 </a>
1556 </li>
1557 </ul>
1558 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001559 </ul>
1560 </li>
1561 <!-- End security and user info -->
Scott Main50e990c2012-06-21 17:14:39 -07001562
quddusc2ef39522013-06-21 16:49:46 -07001563 <li class="nav-section">
1564 <div class="nav-section-header">
1565 <a href="<?cs var:toroot ?>training/testing.html">
1566 <span class="small">Best Practices for</span><br/>
1567 Testing
1568 </a>
1569 </div>
1570 <ul>
1571 <li class="nav-section">
1572 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/activity-testing/index.html"
1573 description="How to test Activities in your Android applications.">
1574 Testing Your Activity
1575 </a></div>
1576 <ul>
1577 <li><a href="<?cs var:toroot ?>training/activity-testing/preparing-activity-testing.html">
1578 <span class="en">Setting Up Your Test Environment</span>
1579 </a>
1580 </li>
1581 <li><a href="<?cs var:toroot ?>training/activity-testing/activity-basic-testing.html">
1582 <span class="en">Creating and Running a Test Case</span>
1583 </a>
1584 </li>
1585 <li><a href="<?cs var:toroot ?>training/activity-testing/activity-ui-testing.html">
1586 <span class="en">Testing UI Components</span>
1587 </a>
1588 </li>
1589 <li><a href="<?cs var:toroot ?>training/activity-testing/activity-unit-testing.html">
1590 <span class="en">Creating Unit Tests</span>
1591 </a>
1592 </li>
1593 <li><a href="<?cs var:toroot ?>training/activity-testing/activity-functional-testing.html">
1594 <span class="en">Creating Functional Tests</span>
1595 </a>
1596 </li>
1597 </ul>
1598 </li>
1599 </ul>
1600 </li>
1601 <!-- End best Testing -->
Scott Main50e990c2012-06-21 17:14:39 -07001602
Scott Main22cc2762012-11-07 16:35:16 -08001603 <li class="nav-section">
1604 <div class="nav-section-header">
1605 <a href="<?cs var:toroot ?>training/distribute.html">
1606 <span class="small">Using Google Play to</span><br/>
1607 Distribute &amp; Monetize
1608 </a>
1609 </div>
1610 <ul>
Quddus Chong768dba62012-12-08 17:06:30 -08001611 <li class="nav-section">
1612 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/in-app-billing/index.html"
1613 description="How to sell in-app products from your application using In-app Billing.">
1614 Selling In-app Products
1615 </a></div>
1616 <ul>
1617 <li><a href="<?cs var:toroot ?>training/in-app-billing/preparing-iab-app.html">
1618 <span class="en">Preparing Your App</span>
1619 </a>
1620 </li>
1621 <li><a href="<?cs var:toroot ?>training/in-app-billing/list-iab-products.html">
1622 <span class="en">Establishing Products for Sale</span>
1623 </a>
1624 </li>
1625 <li><a href="<?cs var:toroot ?>training/in-app-billing/purchase-iab-products.html">
1626 <span class="en">Purchasing Products</span>
1627 </a>
1628 </li>
1629 <li><a href="<?cs var:toroot ?>training/in-app-billing/test-iab-app.html">
1630 <span class="en">Testing Your App</span>
1631 </a>
1632 </li>
1633 </ul>
1634 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001635
Scott Main50e990c2012-06-21 17:14:39 -07001636 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001637 <div class="nav-section-header">
1638 <a href="<?cs var:toroot ?>training/multiple-apks/index.html"
1639 description=
1640 "How to publish your app on Google Play with separate APKs that target
1641 different devices, while using a single app listing."
1642 >Maintaining Multiple APKs</a>
1643 </div>
Scott Main50e990c2012-06-21 17:14:39 -07001644 <ul>
1645 <li><a href="<?cs var:toroot ?>training/multiple-apks/api.html">
Scott Main22cc2762012-11-07 16:35:16 -08001646 Creating Multiple APKs for Different API Levels
Scott Main50e990c2012-06-21 17:14:39 -07001647 </a>
1648 </li>
1649 <li><a href="<?cs var:toroot ?>training/multiple-apks/screensize.html">
Scott Main22cc2762012-11-07 16:35:16 -08001650 Creating Multiple APKs for Different Screen Sizes
Scott Main50e990c2012-06-21 17:14:39 -07001651 </a>
1652 </li>
1653 <li><a href="<?cs var:toroot ?>training/multiple-apks/texture.html">
Scott Main22cc2762012-11-07 16:35:16 -08001654 Creating Multiple APKs for Different GL Textures
Scott Main50e990c2012-06-21 17:14:39 -07001655 </a>
1656 </li>
1657 <li><a href="<?cs var:toroot ?>training/multiple-apks/multiple.html">
Scott Main22cc2762012-11-07 16:35:16 -08001658 Creating Multiple APKs with 2+ Dimensions
Scott Main50e990c2012-06-21 17:14:39 -07001659 </a>
1660 </li>
1661 </ul>
1662 </li>
Scott Main50e990c2012-06-21 17:14:39 -07001663 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001664 <div class="nav-section-header">
1665 <a href="<?cs var:toroot ?>training/monetization/index.html"
1666 description=
1667 "How to implement monetization strategies for your app without compromising
1668 the user experience."
1669 >Monetizing Your App</a>
1670 </div>
Scott Main50e990c2012-06-21 17:14:39 -07001671 <ul>
1672 <li><a href="<?cs var:toroot ?>training/monetization/ads-and-ux.html">
Scott Main22cc2762012-11-07 16:35:16 -08001673 Advertising without Compromising User Experience
Scott Main50e990c2012-06-21 17:14:39 -07001674 </a>
1675 </li>
1676 </ul>
1677 </li>
Scott Main50e990c2012-06-21 17:14:39 -07001678 </ul>
1679 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001680 <!-- End best Publishing -->
1681
Scott Main50e990c2012-06-21 17:14:39 -07001682</ul><!-- nav -->
Scott Main50e990c2012-06-21 17:14:39 -07001683<script type="text/javascript">
1684<!--
1685 buildToggleLists();
1686 changeNavLang(getLangPref());
1687//-->
1688</script>