blob: c99fc96b0033bc3c1052c623a5b49052d5e9e9c7 [file] [log] [blame]
Scott Main50e990c2012-06-21 17:14:39 -07001<ul id="nav">
2
3
4 <li class="nav-section">
5 <div class="nav-section-header">
6 <a href="<?cs var:toroot ?>training/index.html">
Scott Main22cc2762012-11-07 16:35:16 -08007 Getting Started
Scott Main50e990c2012-06-21 17:14:39 -07008 </a>
9 </div>
10
11 <ul>
12 <li class="nav-section">
13 <div class="nav-section-header">
Scott Main22cc2762012-11-07 16:35:16 -080014 <a href="<?cs var:toroot ?>training/basics/firstapp/index.html"
15 description=
16 "After you've installed the Android SDK, start with this class
17 to learn the basics about Android app development."
18 >Building Your First App</a>
Scott Main50e990c2012-06-21 17:14:39 -070019 </div>
20 <ul>
21 <li><a href="<?cs var:toroot ?>training/basics/firstapp/creating-project.html">
Scott Main22cc2762012-11-07 16:35:16 -080022 Creating an Android Project
Scott Main50e990c2012-06-21 17:14:39 -070023 </a>
24 </li>
25 <li><a href="<?cs var:toroot ?>training/basics/firstapp/running-app.html">
Scott Main22cc2762012-11-07 16:35:16 -080026 Running Your Application
Scott Main50e990c2012-06-21 17:14:39 -070027 </a>
28 </li>
29 <li><a href="<?cs var:toroot ?>training/basics/firstapp/building-ui.html">
Scott Main22cc2762012-11-07 16:35:16 -080030 Building a Simple User Interface
Scott Main50e990c2012-06-21 17:14:39 -070031 </a>
32 </li>
33 <li><a href="<?cs var:toroot ?>training/basics/firstapp/starting-activity.html">
Scott Main22cc2762012-11-07 16:35:16 -080034 Starting Another Activity
Scott Main50e990c2012-06-21 17:14:39 -070035 </a>
36 </li>
37 </ul>
38 </li>
39
40 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -080041 <div class="nav-section-header">
Scott Maind0413012013-07-19 19:04:45 -070042 <a href="<?cs var:toroot ?>training/basics/actionbar/index.html"
43 description=
44 "The action bar is one of the most important design elements you can implement for your
45app's activities. Although first introduced with API level 11, you can use the Support Library to
46include the action bar on devices running Android 2.1 or higher."
47 >Adding the Action Bar</a>
48 </div>
49 <ul>
50 <li><a href="<?cs var:toroot ?>training/basics/actionbar/setting-up.html">
51 Setting Up the Action Bar
52 </a>
53 </li>
54 <li><a href="<?cs var:toroot ?>training/basics/actionbar/adding-buttons.html">
55 Adding Action Buttons
56 </a>
57 </li>
58 <li><a href="<?cs var:toroot ?>training/basics/actionbar/styling.html">
59 Styling the Action Bar
60 </a>
61 </li>
62 <li><a href="<?cs var:toroot ?>training/basics/actionbar/overlaying.html">
63 Overlaying the Action Bar
64 </a>
65 </li>
66 </ul>
67 </li>
68
69 <li class="nav-section">
70 <div class="nav-section-header">
Scott Main22cc2762012-11-07 16:35:16 -080071 <a href="<?cs var:toroot ?>training/basics/activity-lifecycle/index.html"
72 description=
73 "How Android activities live and die and how to create
74 a seamless user experience by implementing lifecycle callback methods."
75 >Managing the Activity Lifecycle</a>
76 </div>
Scott Main50e990c2012-06-21 17:14:39 -070077 <ul>
78 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/starting.html">
Scott Main22cc2762012-11-07 16:35:16 -080079 Starting an Activity
Scott Main50e990c2012-06-21 17:14:39 -070080 </a>
81 </li>
82 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/pausing.html">
Scott Main22cc2762012-11-07 16:35:16 -080083 Pausing and Resuming an Activity
Scott Main50e990c2012-06-21 17:14:39 -070084 </a>
85 </li>
86 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/stopping.html">
Scott Main22cc2762012-11-07 16:35:16 -080087 Stopping and Restarting an Activity
Scott Main50e990c2012-06-21 17:14:39 -070088 </a>
89 </li>
90 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/recreating.html">
Scott Main22cc2762012-11-07 16:35:16 -080091 Recreating an Activity
Scott Main50e990c2012-06-21 17:14:39 -070092 </a>
93 </li>
94 </ul>
95 </li>
Joe Malin50c22752012-10-20 12:41:40 -070096
Scott Main50e990c2012-06-21 17:14:39 -070097 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -080098 <div class="nav-section-header">
99 <a href="<?cs var:toroot ?>training/basics/supporting-devices/index.html"
100 description=
101 "How to build your app with alternative resources that provide an
102 optimized user experience on multiple device form factors using a single APK."
103 >Supporting Different Devices</a>
104 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700105 <ul>
106 <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/languages.html">
Scott Main22cc2762012-11-07 16:35:16 -0800107 Supporting Different Languages
Scott Main50e990c2012-06-21 17:14:39 -0700108 </a>
109 </li>
110 <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/screens.html">
Scott Main22cc2762012-11-07 16:35:16 -0800111 Supporting Different Screens
Scott Main50e990c2012-06-21 17:14:39 -0700112 </a>
113 </li>
114 <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/platforms.html">
Scott Main22cc2762012-11-07 16:35:16 -0800115 Supporting Different Platform Versions
Scott Main50e990c2012-06-21 17:14:39 -0700116 </a>
117 </li>
118 </ul>
119 </li>
Joe Malin50c22752012-10-20 12:41:40 -0700120
Scott Main50e990c2012-06-21 17:14:39 -0700121 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800122 <div class="nav-section-header">
123 <a href="<?cs var:toroot ?>training/basics/fragments/index.html"
124 description=
125 "How to build a user interface for your app that is flexible enough
126 to present multiple UI components on large screens and a more constrained set of
127 UI components on smaller screens&mdash;essential for building a single APK for both
128 phones and tablets."
129 >Building a Dynamic UI with Fragments</a>
130 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700131 <ul>
Scott Main50e990c2012-06-21 17:14:39 -0700132 <li><a href="<?cs var:toroot ?>training/basics/fragments/creating.html">
Scott Main22cc2762012-11-07 16:35:16 -0800133 Creating a Fragment
Scott Main50e990c2012-06-21 17:14:39 -0700134 </a>
135 </li>
136 <li><a href="<?cs var:toroot ?>training/basics/fragments/fragment-ui.html">
Scott Main22cc2762012-11-07 16:35:16 -0800137 Building a Flexible UI
Scott Main50e990c2012-06-21 17:14:39 -0700138 </a>
139 </li>
140 <li><a href="<?cs var:toroot ?>training/basics/fragments/communicating.html">
Scott Main22cc2762012-11-07 16:35:16 -0800141 Communicating with Other Fragments
Scott Main50e990c2012-06-21 17:14:39 -0700142 </a>
143 </li>
144 </ul>
145 </li>
146
147 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800148 <div class="nav-section-header"><a href="<?cs var:toroot?>training/basics/data-storage/index.html"
149 description=
150 "How to save data on the device, whether it's temporary files, downloaded
151 app assets, user media, structured data, or something else."
152 >Saving Data</a>
153 </div>
Scott Main11f03b42012-09-07 15:26:39 -0700154 <ul>
155 <li><a href="<?cs var:toroot ?>training/basics/data-storage/shared-preferences.html">
Scott Main22cc2762012-11-07 16:35:16 -0800156 Saving Key-Value Sets
Scott Main11f03b42012-09-07 15:26:39 -0700157 </a>
158 </li>
159 <li><a href="<?cs var:toroot ?>training/basics/data-storage/files.html">
Scott Main22cc2762012-11-07 16:35:16 -0800160 Saving Files
Scott Main11f03b42012-09-07 15:26:39 -0700161 </a>
162 </li>
163 <li><a href="<?cs var:toroot ?>training/basics/data-storage/databases.html">
Scott Main22cc2762012-11-07 16:35:16 -0800164 Saving Data in SQL Databases
Scott Main11f03b42012-09-07 15:26:39 -0700165 </a>
166 </li>
167 </ul>
168 </li>
169
170 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800171 <div class="nav-section-header">
172 <a href="<?cs var:toroot ?>training/basics/intents/index.html"
173 description=
174 "How to build a user experience that leverages other apps available
175 on the device to perform advanced user tasks, such as capture a photo or view
176 an address on a map."
177 >Interacting with Other Apps</a>
178 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700179 <ul>
180 <li><a href="<?cs var:toroot ?>training/basics/intents/sending.html">
Scott Main22cc2762012-11-07 16:35:16 -0800181 Sending the User to Another App
Scott Main50e990c2012-06-21 17:14:39 -0700182 </a>
183 </li>
184 <li><a href="<?cs var:toroot ?>training/basics/intents/result.html">
Scott Main22cc2762012-11-07 16:35:16 -0800185 Getting a Result from the Activity
Scott Main50e990c2012-06-21 17:14:39 -0700186 </a>
187 </li>
188 <li><a href="<?cs var:toroot ?>training/basics/intents/filters.html">
Scott Main22cc2762012-11-07 16:35:16 -0800189 Allowing Other Apps to Start Your Activity
Scott Main50e990c2012-06-21 17:14:39 -0700190 </a>
191 </li>
192 </ul>
193 </li>
194
Scott Main22cc2762012-11-07 16:35:16 -0800195 <li class="nav-section">
196 <div class="nav-section-header">
197 <a href="<?cs var:toroot ?>training/sharing/index.html"
198 description=
199 "How to take your app interaction to the next level by sharing
200 information with other apps, receive information back, and provide a simple and
201 scalable way to perform Share actions with user content."
202 >Sharing Content</a>
203 </div>
204 <ul>
205 <li><a href="<?cs var:toroot ?>training/sharing/send.html">
206 Sending Content to Other Apps
207 </a>
208 </li>
209 <li><a href="<?cs var:toroot ?>training/sharing/receive.html">
210 Receiving Content from Other Apps
211 </a>
212 </li>
213 <li><a href="<?cs var:toroot ?>training/sharing/shareaction.html">
214 Adding an Easy Share Action
215 </a>
216 </li>
217 </ul>
218 </li>
Scott Main50e990c2012-06-21 17:14:39 -0700219 </ul>
Joe Malinf0f5efb2012-10-27 11:16:19 -0700220 </li><!-- end getting started -->
Joe Malin3ddba7e2013-03-04 10:33:30 -0800221
222
223
Scott Main22cc2762012-11-07 16:35:16 -0800224
Scott Main50e990c2012-06-21 17:14:39 -0700225 <li class="nav-section">
226 <div class="nav-section-header">
Scott Main22cc2762012-11-07 16:35:16 -0800227 <a href="<?cs var:toroot ?>training/building-multimedia.html">
228 <span class="small">Building Apps with</span><br/>Multimedia
229 </a>
230 </div>
231 <ul>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800232
Scott Main22cc2762012-11-07 16:35:16 -0800233 <li class="nav-section">
234 <div class="nav-section-header">
235 <a href="<?cs var:toroot ?>training/managing-audio/index.html"
236 description=
237 "How to respond to hardware audio key presses, request audio focus
238 when playing audio, and respond appropriately to changes in audio focus."
239 >Managing Audio Playback</a>
240 </div>
241 <ul>
242 <li><a href="<?cs var:toroot ?>training/managing-audio/volume-playback.html">
243 Controlling Your App's Volume and Playback
244 </a>
245 </li>
246 <li><a href="<?cs var:toroot ?>training/managing-audio/audio-focus.html">
247 Managing Audio Focus
248 </a>
249 </li>
250 <li><a href="<?cs var:toroot ?>training/managing-audio/audio-output.html">
251 Dealing with Audio Output Hardware
252 </a>
253 </li>
254 </ul>
255 </li>
256
257 <li class="nav-section">
258 <div class="nav-section-header">
259 <a href="<?cs var:toroot ?>training/camera/index.html"
260 description=
261 "How to leverage existing camera apps on the user's device to capture
262 photos or control the camera hardware directly and build your own camera app."
263 >Capturing Photos</a>
264 </div>
265 <ul>
266 <li><a href="<?cs var:toroot ?>training/camera/photobasics.html">
267 Taking Photos Simply
268 </a>
269 </li>
270 <li><a href="<?cs var:toroot ?>training/camera/videobasics.html">
271 Recording Videos Simply
272 </a>
273 </li>
274 <li><a href="<?cs var:toroot ?>training/camera/cameradirect.html">
275 Controlling the Camera
276 </a>
277 </li>
278 </ul>
279 </li>
280 </ul>
281 </li>
282 <!-- End multimedia -->
Joe Malin3ddba7e2013-03-04 10:33:30 -0800283
284
Scott Main22cc2762012-11-07 16:35:16 -0800285
286 <li class="nav-section">
287 <div class="nav-section-header">
288 <a href="<?cs var:toroot ?>training/building-graphics.html">
289 <span class="small">Building Apps with</span><br/>Graphics &amp; Animation
290 </a>
291 </div>
292 <ul>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800293
Scott Main22cc2762012-11-07 16:35:16 -0800294 <li class="nav-section">
295 <div class="nav-section-header">
296 <a href="<?cs var:toroot ?>training/displaying-bitmaps/index.html"
297 description=
298 "How to load and process bitmaps while keeping your user interface
299 responsive and avoid exceeding memory limits."
300 >Displaying Bitmaps Efficiently</a>
301 </div>
302 <ul>
303 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/load-bitmap.html">
304 Loading Large Bitmaps Efficiently
305 </a>
306 </li>
307 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/process-bitmap.html">
308 Processing Bitmaps Off the UI Thread
309 </a>
310 </li>
311 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/cache-bitmap.html">
312 Caching Bitmaps
313 </a>
314 </li>
kmccormick75715422013-03-04 15:25:40 -0800315 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/manage-memory.html">
316 Managing Bitmap Memory
317 </a>
318 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800319 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/display-bitmap.html">
320 Displaying Bitmaps in Your UI
321 </a></li>
322 </ul>
323 </li>
324
325 <li class="nav-section">
326 <div class="nav-section-header">
327 <a href="<?cs var:toroot?>training/graphics/opengl/index.html"
328 description=
329 "How to create OpenGL graphics within the Android app framework
330 and respond to touch input."
331 >Displaying Graphics with OpenGL ES</a>
332 </div>
333 <ul>
334 <li><a href="<?cs var:toroot ?>training/graphics/opengl/environment.html">
335 Building an OpenGL ES Environment
336 </a>
337 </li>
338 <li><a href="<?cs var:toroot ?>training/graphics/opengl/shapes.html">
339 Defining Shapes
340 </a>
341 </li>
342 <li><a href="<?cs var:toroot ?>training/graphics/opengl/draw.html">
343 Drawing Shapes
344 </a>
345 </li>
346 <li><a href="<?cs var:toroot ?>training/graphics/opengl/projection.html">
347 Applying Projection and Camera Views
348 </a>
349 </li>
350 <li><a href="<?cs var:toroot ?>training/graphics/opengl/motion.html">
351 Adding Motion
352 </a>
353 </li>
354 <li><a href="<?cs var:toroot ?>training/graphics/opengl/touch.html">
355 Responding to Touch Events
356 </a>
357 </li>
358 </ul>
359 </li>
360 <li class="nav-section">
361 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/animation/index.html"
362 description=
363 "How to add transitional animations to your user interface.">
364 Adding Animations
365 </a></div>
366 <ul>
367 <li><a href="<?cs var:toroot ?>training/animation/crossfade.html">
368 Crossfading Two Views
369 </a>
370 </li>
371 <li><a href="<?cs var:toroot ?>training/animation/screen-slide.html">
372 Using ViewPager for Screen Slide
373 </a>
374 </li>
375 <li><a href="<?cs var:toroot ?>training/animation/cardflip.html">
376 Displaying Card Flip Animations
377 </a>
378 </li>
379 <li><a href="<?cs var:toroot ?>training/animation/zoom.html">
380 Zooming a View
381 </a>
382 </li>
383 <li><a href="<?cs var:toroot ?>training/animation/layout.html">
384 Animating Layout Changes
385 </a>
386 </li>
387 </ul>
388 </li>
389 </ul>
390 </li>
391 <!-- End graphics and animation -->
Joe Malin3ddba7e2013-03-04 10:33:30 -0800392
Scott Main22cc2762012-11-07 16:35:16 -0800393
394 <li class="nav-section">
395 <div class="nav-section-header">
396 <a href="<?cs var:toroot ?>training/building-connectivity.html">
397 <span class="small">Building Apps with</span><br/>
398 Connectivity &amp; the Cloud
399 </a>
400 </div>
401 <ul>
402
Scott Main22cc2762012-11-07 16:35:16 -0800403 <li class="nav-section">
404 <div class="nav-section-header">
405 <a href="<?cs var:toroot ?>training/connect-devices-wirelessly/index.html"
406 description=
407 "How to find and connect to local devices using Network Service
408 Discovery and Wi-Fi Direct in order to create peer-to-peer connections."
409 >Connecting Devices Wirelessly</a>
410 </div>
411 <ul>
412 <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd.html">
413 Using Network Service Discovery
414 </a>
415 </li>
416 <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/wifi-direct.html">
417 Connecting with Wi-Fi Direct
418 </a>
419 </li>
420 <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd-wifi-direct.html">
421 Using Wi-Fi Direct for Service Discovery
422 </a>
423 </li>
424 </ul>
425 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800426
Scott Main22cc2762012-11-07 16:35:16 -0800427 <li class="nav-section">
428 <div class="nav-section-header">
429 <a href="<?cs var:toroot ?>training/basics/network-ops/index.html"
430 description=
431 "How to create a network connection, monitor the connection for changes
432 in connectivity, and perform transactions with XML data."
433 >Performing Network Operations</a>
434 </div>
435 <ul>
436 <li><a href="<?cs var:toroot ?>training/basics/network-ops/connecting.html">
437 Connecting to the Network
438 </a>
439 </li>
440 <li><a href="<?cs var:toroot ?>training/basics/network-ops/managing.html">
441 Managing Network Usage
442 </a>
443 </li>
444 <li><a href="<?cs var:toroot ?>training/basics/network-ops/xml.html">
445 Parsing XML Data
446 </a>
447 </li>
448 </ul>
449 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800450 <li class="nav-section">
451 <div class="nav-section-header">
452 <a href="<?cs var:toroot ?>training/efficient-downloads/index.html"
453 description=
454 "How to minimize your app's impact on the battery when performing downloads
455 and other network transactions."
456 >Transferring Data Without Draining the Battery</a>
457 </div>
458 <ul>
459 <li><a href="<?cs var:toroot ?>training/efficient-downloads/efficient-network-access.html">
460 Optimizing Downloads for Efficient Network Access
461 </a>
462 </li>
463 <li><a href="<?cs var:toroot ?>training/efficient-downloads/regular_updates.html">
464 Minimizing the Effect of Regular Updates
465 </a>
466 </li>
467 <li><a href="<?cs var:toroot ?>training/efficient-downloads/redundant_redundant.html">
468 Redundant Downloads are Redundant
469 </a>
470 </li>
471 <li><a href="<?cs var:toroot ?>training/efficient-downloads/connectivity_patterns.html">
472 Modifying Patterns Based on the Connectivity Type
473 </a>
474 </li>
475 </ul>
476 </li>
477
478 <li class="nav-section">
479 <div class="nav-section-header">
480 <a href="<?cs var:toroot ?>training/cloudsync/index.html"
481 description=
482 "How to sync and back up app and user data to remote web services in the
483 cloud and how to restore the data back to multiple devices."
484 >Syncing to the Cloud</a>
485 </div>
486 <ul>
487 <li><a href="<?cs var:toroot ?>training/cloudsync/backupapi.html">
488 Using the Backup API
489 </a>
490 </li>
491 <li><a href="<?cs var:toroot ?>training/cloudsync/gcm.html">
492 Making the Most of Google Cloud Messaging
493 </a>
494 </li>
495 </ul>
kmccormick71baac12013-06-11 13:17:55 -0700496 <li><a href="<?cs var:toroot ?>training/cloudsave/conflict-res.html"
497 description=
498 "How to design a robust conflict resolution strategy for apps that save data to the cloud."
499 >Resolving Cloud Save Conflicts
500 </a>
501 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800502 </li>
Joe Maline9df5112013-06-07 13:38:00 -0700503 <li class="nav-section">
504 <div class="nav-section-header">
505 <a href="<?cs var:toroot ?>training/sync-adapters/index.html"
506 description="How to transfer data between the cloud and the device using the Android
507 sync adapter framework"
508 >Transferring Data Using Sync Adapters</a>
509 </div>
510 <ul>
511 <li>
512 <a href="<?cs var:toroot ?>training/sync-adapters/creating-authenticator.html">
513 Creating a Stub Authenticator
514 </a>
515 </li>
516 <li>
517 <a href="<?cs var:toroot ?>training/sync-adapters/creating-stub-provider.html">
518 Creating a Stub Content Provider
519 </a>
520 </li>
521 <li>
522 <a href="<?cs var:toroot ?>training/sync-adapters/creating-sync-adapter.html">
523 Creating a Sync Adapter
524 </a>
525 </li>
526 <li>
527 <a href="<?cs var:toroot ?>training/sync-adapters/running-sync-adapter.html">
528 Running a Sync Adapter
529 </a>
530 </li>
531 </ul>
532 </li>
533
Scott Main22cc2762012-11-07 16:35:16 -0800534 </ul>
535 </li>
536 <!-- End connectivity and cloud -->
Joe Malin3ddba7e2013-03-04 10:33:30 -0800537
538
Scott Main22cc2762012-11-07 16:35:16 -0800539
540 <li class="nav-section">
541 <div class="nav-section-header">
542 <a href="<?cs var:toroot ?>training/building-userinfo.html">
543 <span class="small">Building Apps with</span><br/>
544 User Info &amp; Location
545 </a>
546 </div>
547 <ul>
Joe Malin421435d2013-01-15 15:06:08 -0800548 <li class="nav-section">
549 <div class="nav-section-header">
550 <a href="<?cs var:toroot ?>training/contacts-provider/index.html"
551 description=
552 "How to use Android's central address book, the Contacts Provider, to
553 display contacts and their details and modify contact information.">
554 Accessing Contacts Data</a>
555 </div>
556 <ul>
557 <li>
558 <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-names.html">
559 Retrieving a List of Contacts
560 </a>
561 </li>
562 <li>
563 <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-details.html">
564 Retrieving Details for a Contact
565 </a>
566 </li>
567 <li>
568 <a href="<?cs var:toroot ?>training/contacts-provider/modify-data.html">
569 Modifying Contacts Using Intents
570 </a>
571 </li>
572 <li>
573 <a href="<?cs var:toroot ?>training/contacts-provider/display-contact-badge.html">
574 Displaying the Quick Contact Badge
575 </a>
576 </li>
577 </ul>
578 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800579 <li class="nav-section">
580 <div class="nav-section-header">
581 <a href="<?cs var:toroot ?>training/id-auth/index.html"
582 description=
583 "How to remember the user by account, authenticate the user, acquire user permission
584 for the user's online data, and create custom accounts on the device."
585 >Remembering Users</a>
586 </div>
587 <ul>
588 <li><a href="<?cs var:toroot ?>training/id-auth/identify.html">
589 Remembering Your User
590 </a>
591 </li>
592 <li><a href="<?cs var:toroot ?>training/id-auth/authenticate.html">
593 Authenticating to OAuth2 Services
594 </a>
595 </li>
596 <li><a href="<?cs var:toroot ?>training/id-auth/custom_auth.html">
597 Creating a Custom Account Type
598 </a>
599 </li>
600 </ul>
601 </li>
602
603 <li class="nav-section">
604 <div class="nav-section-header">
Joe Malin3ddba7e2013-03-04 10:33:30 -0800605 <a href="<?cs var:toroot ?>training/location/index.html"
606 description="How to add location-aware features to your app by getting the user's current location.">
607 Making Your App Location-Aware
608 </a>
Scott Main22cc2762012-11-07 16:35:16 -0800609 </div>
610 <ul>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800611 <li>
612 <a href="<?cs var:toroot ?>training/location/retrieve-current.html">
613 Retrieving the Current Location
614 </a>
Scott Main22cc2762012-11-07 16:35:16 -0800615 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800616 <li>
617 <a href="<?cs var:toroot ?>training/location/receive-location-updates.html">
618 Receiving Location Updates
619 </a>
Scott Main22cc2762012-11-07 16:35:16 -0800620 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800621 <li>
622 <a href="<?cs var:toroot ?>training/location/display-address.html">
Scott Main22cc2762012-11-07 16:35:16 -0800623 Displaying a Location Address
624 </a>
625 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800626 <li><a href="<?cs var:toroot ?>training/location/geofencing.html">
627 Creating and Monitoring Geofences
628 </a>
629 </li>
630 <li><a href="<?cs var:toroot ?>training/location/activity-recognition.html">
631 Recognizing the User's Current Activity
632 </a>
633 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800634 </ul>
635 </li>
636 </ul>
637 </li>
638 <!-- End privacy and location -->
Joe Malin3ddba7e2013-03-04 10:33:30 -0800639
640
Scott Main22cc2762012-11-07 16:35:16 -0800641
642 <li class="nav-section">
643 <div class="nav-section-header">
644 <a href="<?cs var:toroot ?>training/best-ux.html">
645 <span class="small">Best Practices for</span><br/>
646 User Experience &amp; UI
Scott Main50e990c2012-06-21 17:14:39 -0700647 </a>
648 </div>
649 <ul>
650
651 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800652 <div class="nav-section-header">
653 <a href="<?cs var:toroot ?>training/design-navigation/index.html"
654 description=
655 "How to plan your app's screen hierarchy and forms of navigation so users can
656 effectively and intuitively traverse your app content using various navigation
657 patterns."
658 >Designing Effective Navigation</a>
Scott Mainddab47b2012-10-02 17:48:11 -0700659 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700660 <ul>
Scott Main22cc2762012-11-07 16:35:16 -0800661 <li><a href="<?cs var:toroot ?>training/design-navigation/screen-planning.html">
662 Planning Screens and Their Relationships
663 </a>
664 </li>
665 <li><a href="<?cs var:toroot ?>training/design-navigation/multiple-sizes.html">
666 Planning for Multiple Touchscreen Sizes
667 </a>
668 </li>
669 <li><a href="<?cs var:toroot ?>training/design-navigation/descendant-lateral.html">
670 Providing Descendant and Lateral Navigation
671 </a>
672 </li>
673 <li><a href="<?cs var:toroot ?>training/design-navigation/ancestral-temporal.html">
674 Providing Ancestral and Temporal Navigation
675 </a>
676 </li>
677 <li><a href="<?cs var:toroot ?>training/design-navigation/wireframing.html">
678 Putting it All Together: Wireframing the Example App
679 </a>
680 </li>
681 </ul>
682 </li>
683
684 <li class="nav-section">
685 <div class="nav-section-header">
686 <a href="<?cs var:toroot ?>training/implementing-navigation/index.html"
687 description=
Scott Main7c840552013-03-26 18:53:01 -0700688 "How to implement various navigation patterns such as swipe views,
689 a navigation drawer, and up navigation."
Scott Main22cc2762012-11-07 16:35:16 -0800690 >Implementing Effective Navigation</a>
691 </div>
692 <ul>
693 <li><a href="<?cs var:toroot ?>training/implementing-navigation/lateral.html">
Scott Main7c840552013-03-26 18:53:01 -0700694 Creating Swipe Views with Tabs
695 </a>
696 </li>
697 <li><a href="<?cs var:toroot ?>training/implementing-navigation/nav-drawer.html">
698 Creating a Navigation Drawer
Scott Main22cc2762012-11-07 16:35:16 -0800699 </a>
700 </li>
701 <li><a href="<?cs var:toroot ?>training/implementing-navigation/ancestral.html">
Scott Main7c840552013-03-26 18:53:01 -0700702 Providing Up Navigation
Scott Main22cc2762012-11-07 16:35:16 -0800703 </a>
704 </li>
705 <li><a href="<?cs var:toroot ?>training/implementing-navigation/temporal.html">
Scott Main7c840552013-03-26 18:53:01 -0700706 Providing Proper Back Navigation
Scott Main22cc2762012-11-07 16:35:16 -0800707 </a>
708 </li>
709 <li><a href="<?cs var:toroot ?>training/implementing-navigation/descendant.html">
710 Implementing Descendant Navigation
711 </a>
712 </li>
713 </ul>
714 </li>
&& repo sync -j80aae0002012-10-04 16:34:23 -0700715
716 <li class="nav-section">
717 <div class="nav-section-header">
718 <a href="<?cs var:toroot ?>training/notify-user/index.html"
719 description=
Joe Malinf0f5efb2012-10-27 11:16:19 -0700720 "How to display messages called notifications outside of
&& repo sync -j80aae0002012-10-04 16:34:23 -0700721 your application's UI."
722 >Notifying the User</a>
723 </div>
724 <ul>
725 <li>
726 <a href="<?cs var:toroot ?>training/notify-user/build-notification.html">
727 Building a Notification
728 </a>
729 </li>
730 <li>
731 <a href="<?cs var:toroot ?>training/notify-user/navigation.html">
732 Preserving Navigation when Starting an Activity
733 </a>
734 </li>
735 <li>
736 <a href="<?cs var:toroot ?>training/notify-user/managing.html">
737 Updating Notifications
738 </a>
739 </li>
740 <li>
741 <a href="<?cs var:toroot ?>training/notify-user/expanded.html">
742 Using Big View Styles
743 </a>
744 </li>
745 <li>
746 <a href="<?cs var:toroot ?>training/notify-user/display-progress.html">
747 Displaying Progress in a Notification
748 </a>
749 </li>
750 </ul>
751 </li>
752
753 <li class="nav-section">
754 <div class="nav-section-header">
755 <a href="<?cs var:toroot ?>training/search/index.html"
756 description=
757 "How to properly add a search interface to your app and create a searchable database."
758 >Adding Search Functionality</a>
759 </div>
760 <ul>
761 <li><a href="<?cs var:toroot ?>training/search/setup.html">
762 Setting up the Search Interface
763 </a>
764 </li>
765 <li><a href="<?cs var:toroot ?>training/search/search.html">
766 Storing and Searching for Data
767 </a>
768 </li>
769 <li><a href="<?cs var:toroot ?>training/search/backward-compat.html">
770 Remaining Backward Compatible
771 </a>
772 </li>
773 </ul>
774 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800775
776
Scott Main22cc2762012-11-07 16:35:16 -0800777 <li class="nav-section">
778 <div class="nav-section-header">
779 <a href="/training/multiscreen/index.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -0700780 zh-cn-lang="针对多种屏幕进行设计"
Scott Main22cc2762012-11-07 16:35:16 -0800781 ja-lang="複数画面のデザイン"
782 es-lang="Cómo diseñar aplicaciones para varias pantallas"
783 description=
784 "How to build a user interface that's flexible enough to
785 fit perfectly on any screen and how to create different interaction
786 patterns that are optimized for different screen sizes."
787 >Designing for Multiple Screens</a>
788 </div>
789 <ul>
790 <li><a href="/training/multiscreen/screensizes.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -0700791 zh-cn-lang="支持各种屏幕尺寸"
Scott Mainddab47b2012-10-02 17:48:11 -0700792 ko-lang="다양한 화면 크기 지원"
793 ja-lang="さまざまな画面サイズのサポート"
Joe Malinf0f5efb2012-10-27 11:16:19 -0700794 es-lang="Cómo admitir varios tamaños de pantalla"
Scott Main22cc2762012-11-07 16:35:16 -0800795 >Supporting Different Screen Sizes</a>
Scott Main50e990c2012-06-21 17:14:39 -0700796 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800797 <li><a href="/training/multiscreen/screendensities.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -0700798 zh-cn-lang="支持各种屏幕密度"
Scott Mainddab47b2012-10-02 17:48:11 -0700799 ja-lang="さまざまな画面密度のサポート"
Joe Malinf0f5efb2012-10-27 11:16:19 -0700800 es-lang="Cómo admitir varias densidades de pantalla"
Scott Mainddab47b2012-10-02 17:48:11 -0700801 >Supporting Different Screen Densities</a>
Scott Main50e990c2012-06-21 17:14:39 -0700802 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800803 <li><a href="/training/multiscreen/adaptui.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -0700804 zh-cn-lang="实施自适应用户界面流程"
Scott Mainddab47b2012-10-02 17:48:11 -0700805 ja-lang="順応性のある UI フローの実装"
Joe Malinf0f5efb2012-10-27 11:16:19 -0700806 es-lang="Cómo implementar interfaces de usuario adaptables"
Scott Mainddab47b2012-10-02 17:48:11 -0700807 >Implementing Adaptive UI Flows</a>
Scott Main50e990c2012-06-21 17:14:39 -0700808 </li>
809 </ul>
810 </li>
Joe Malin50c22752012-10-20 12:41:40 -0700811
Scott Main50e990c2012-06-21 17:14:39 -0700812 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800813 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/tv/index.html"
814 description=
815 "How to optimize your app's user interface and user input for
816 the &quot;ten foot experience&quot; of a TV screen."
817 >Designing for TV</a>
818 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700819 <ul>
Scott Main22cc2762012-11-07 16:35:16 -0800820 <li><a href="<?cs var:toroot ?>training/tv/optimizing-layouts-tv.html">
821 Optimizing Layouts for TV
Scott Main50e990c2012-06-21 17:14:39 -0700822 </a>
823 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800824 <li><a href="<?cs var:toroot ?>training/tv/optimizing-navigation-tv.html">
825 Optimizing Navigation for TV
Scott Main50e990c2012-06-21 17:14:39 -0700826 </a>
827 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800828 <li><a href="<?cs var:toroot ?>training/tv/unsupported-features-tv.html">
829 Handling Features Not Supported on TV
Scott Main50e990c2012-06-21 17:14:39 -0700830 </a>
831 </li>
832 </ul>
833 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800834
Scott Main50e990c2012-06-21 17:14:39 -0700835 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800836 <div class="nav-section-header">
837 <a href="<?cs var:toroot ?>training/custom-views/index.html"
838 description=
839 "How to build custom UI widgets that are interactive and smooth."
840 >Creating Custom Views</a>
841 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700842 <ul>
Scott Main22cc2762012-11-07 16:35:16 -0800843 <li><a href="<?cs var:toroot ?>training/custom-views/create-view.html">
844 Creating a Custom View Class
Scott Main50e990c2012-06-21 17:14:39 -0700845 </a>
846 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800847 <li><a href="<?cs var:toroot ?>training/custom-views/custom-drawing.html">
848 Implementing Custom Drawing
Scott Main50e990c2012-06-21 17:14:39 -0700849 </a>
850 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800851 <li><a href="<?cs var:toroot ?>training/custom-views/making-interactive.html">
852 Making the View Interactive
853 </a>
854 </li>
855 <li><a href="<?cs var:toroot ?>training/custom-views/optimizing-view.html">
856 Optimizing the View
Scott Main50e990c2012-06-21 17:14:39 -0700857 </a>
858 </li>
859 </ul>
860 </li>
Joe Malin50c22752012-10-20 12:41:40 -0700861
Scott Main50e990c2012-06-21 17:14:39 -0700862 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800863 <div class="nav-section-header">
864 <a href="<?cs var:toroot ?>training/backward-compatible-ui/index.html"
865 description=
866 "How to use UI components and other APIs from the more recent versions of Android
867 while remaining compatible with older versions of the platform."
868 >Creating Backward-Compatible UIs</a>
Scott Mainddab47b2012-10-02 17:48:11 -0700869 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700870 <ul>
Scott Main22cc2762012-11-07 16:35:16 -0800871 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/abstracting.html">
872 Abstracting the New APIs
873 </a>
874 </li>
875 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/new-implementation.html">
876 Proxying to the New APIs
877 </a>
878 </li>
879 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/older-implementation.html">
880 Creating an Implementation with Older APIs
881 </a>
882 </li>
883 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/using-component.html">
884 Using the Version-Aware Component
885 </a>
886 </li>
887 </ul>
888 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800889
Scott Main22cc2762012-11-07 16:35:16 -0800890 <li class="nav-section">
891 <div class="nav-section-header">
892 <a href="<?cs var:toroot ?>training/accessibility/index.html"
893 description=
894 "How to make your app accessible to users with vision
895 impairment or other physical disabilities."
896 >Implementing Accessibility</a>
897 </div>
898 <ul>
899 <li><a href="<?cs var:toroot ?>training/accessibility/accessible-app.html">
900 Developing Accessible Applications
901 </a>
902 </li>
903 <li><a href="<?cs var:toroot ?>training/accessibility/service.html">
904 Developing Accessibility Services
905 </a>
906 </li>
907 </ul>
908 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800909
Scott Main22cc2762012-11-07 16:35:16 -0800910 </ul>
911 </li>
912 <!-- End best UX and UI -->
Joe Malin3ddba7e2013-03-04 10:33:30 -0800913
Scott Mainc8a6f8a2012-12-05 16:13:25 -0800914
&& repo sync -j8518edbf2012-11-30 16:28:27 -0800915 <li class="nav-section">
916 <div class="nav-section-header">
Scott Mainc8a6f8a2012-12-05 16:13:25 -0800917 <a href="<?cs var:toroot ?>training/best-user-input.html">
&& repo sync -j8518edbf2012-11-30 16:28:27 -0800918 <span class="small">Best Practices for</span><br/>
919 User Input
920 </a>
921 </div>
922 <ul>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800923
&& repo sync -j8518edbf2012-11-30 16:28:27 -0800924 <li class="nav-section">
925 <div class="nav-section-header">
926 <a href="<?cs var:toroot ?>training/gestures/index.html"
927 description=
928 "How to write apps that allow users to interact with the touch screen via touch gestures."
929 >Using Touch Gestures</a>
930 </div>
931 <ul>
932 <li><a href="<?cs var:toroot ?>training/gestures/detector.html">
933 Detecting Common Gestures
934 </a>
935 </li>
936 <li><a href="<?cs var:toroot ?>training/gestures/movement.html">
937 Tracking Movement
938 </a>
939 </li>
940 <li><a href="<?cs var:toroot ?>training/gestures/scroll.html">
941 Animating a Scroll Gesture
942 </a>
943 </li>
944 <li><a href="<?cs var:toroot ?>training/gestures/multi.html">
945 Handling Multi-Touch Gestures
946 </a>
947 </li>
948 <li><a href="<?cs var:toroot ?>training/gestures/scale.html">
949 Dragging and Scaling
950 </a>
951 </li>
952 <li><a href="<?cs var:toroot ?>training/gestures/viewgroup.html">
953 Managing Touch Events in a ViewGroup
954 </a>
955 </li>
956 </ul>
Scott Mainc8a6f8a2012-12-05 16:13:25 -0800957 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800958
Scott Mainc8a6f8a2012-12-05 16:13:25 -0800959 <li class="nav-section">
960 <div class="nav-section-header">
961 <a href="<?cs var:toroot ?>training/keyboard-input/index.html"
962 description=
963 "How to specify the appearance and behaviors of soft input methods (such
964 as on-screen keyboards) and how to optimize the experience with
965 hardware keyboards."
966 >Handling Keyboard Input</a>
967 </div>
968 <ul>
969 <li><a href="<?cs var:toroot ?>training/keyboard-input/style.html">
970 Specifying the Input Method Type
971 </a>
972 </li>
973 <li><a href="<?cs var:toroot ?>training/keyboard-input/visibility.html">
974 Handling Input Method Visibility
975 </a>
976 </li>
977 <li><a href="<?cs var:toroot ?>training/keyboard-input/navigation.html">
978 Supporting Keyboard Navigation
979 </a>
980 </li>
981 <li><a href="<?cs var:toroot ?>training/keyboard-input/commands.html">
982 Handling Keyboard Actions
983 </a>
984 </li>
985 </ul>
986 </li>
987 </ul>
Joe Malin421435d2013-01-15 15:06:08 -0800988 </li> <!-- end of User Input -->
Scott Main22cc2762012-11-07 16:35:16 -0800989
990 <li class="nav-section">
991 <div class="nav-section-header">
992 <a href="<?cs var:toroot ?>training/best-performance.html">
993 <span class="small">Best Practices for</span><br/>
994 Performance
995 </a>
996 </div>
997 <ul>
Joe Malin3ddba7e2013-03-04 10:33:30 -0800998
Scott Main22cc2762012-11-07 16:35:16 -0800999 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001000 <a href="<?cs var:toroot ?>training/articles/perf-tips.html"
Scott Main22cc2762012-11-07 16:35:16 -08001001 description=
1002 "How to optimize your app's performance in various ways to improve its
1003 responsiveness and battery efficiency."
1004 >Performance Tips</a>
1005 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001006
Scott Main22cc2762012-11-07 16:35:16 -08001007 <li class="nav-section">
1008 <div class="nav-section-header">
1009 <a href="<?cs var:toroot ?>training/improving-layouts/index.html"
1010 description=
1011 "How to identify problems in your app's layout performance and improve the UI
1012 responsiveness."
1013 >Improving Layout Performance</a>
1014 </div>
1015 <ul>
1016 <li><a href="<?cs var:toroot ?>training/improving-layouts/optimizing-layout.html">
1017 Optimizing Layout Hierarchies
1018 </a>
1019 </li>
1020 <li><a href="<?cs var:toroot ?>training/improving-layouts/reusing-layouts.html">
1021 Re-using Layouts with &lt;include/&gt;
1022 </a>
1023 </li>
1024 <li><a href="<?cs var:toroot ?>training/improving-layouts/loading-ondemand.html">
1025 Loading Views On Demand
1026 </a>
1027 </li>
1028 <li><a href="<?cs var:toroot ?>training/improving-layouts/smooth-scrolling.html">
1029 Making ListView Scrolling Smooth
1030 </a>
1031 </li>
1032 </ul>
1033 </li>
Scott Main8ac78802012-12-14 11:39:03 -08001034
Joe Malinf0f5efb2012-10-27 11:16:19 -07001035 <li class="nav-section">
1036 <div class="nav-section-header">
1037 <a href="<?cs var:toroot ?>training/run-background-service/index.html"
1038 description=
1039 "How to improve UI performance and responsiveness by sending work to a
Scott Main8ac78802012-12-14 11:39:03 -08001040 Service running in the background"
1041 >Running in a Background Service</a>
Joe Malinf0f5efb2012-10-27 11:16:19 -07001042 </div>
1043 <ul>
1044 <li><a href="<?cs var:toroot ?>training/run-background-service/create-service.html">
1045 Creating a Background Service
1046 </a>
1047 </li>
1048 <li><a href="<?cs var:toroot ?>training/run-background-service/send-request.html">
1049 Sending Work Requests to the Background Service
1050 </a>
1051 </li>
1052 <li><a href="<?cs var:toroot ?>training/run-background-service/report-status.html">
1053 Reporting Work Status
1054 </a>
1055 </li>
1056 </ul>
1057 </li>
Scott Main8ac78802012-12-14 11:39:03 -08001058
1059 <li class="nav-section">
1060 <div class="nav-section-header">
1061 <a href="<?cs var:toroot ?>training/load-data-background/index.html"
1062 description="How to use CursorLoader to query data without
1063 affecting UI responsiveness."
1064 >Loading Data in the Background</a>
1065 </div>
1066 <ul>
1067 <li><a href="<?cs var:toroot ?>training/load-data-background/setup-loader.html">
1068 Running a Query with a CursorLoader</a>
1069 </li>
1070 <li><a href="<?cs var:toroot ?>training/load-data-background/handle-results.html">
1071 Handling the Results</a>
1072 </li>
1073 </ul>
1074 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001075
Scott Main22cc2762012-11-07 16:35:16 -08001076 <li class="nav-section">
1077 <div class="nav-section-header">
1078 <a href="/training/monitoring-device-state/index.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001079 zh-cn-lang="优化电池使用时间"
Scott Main22cc2762012-11-07 16:35:16 -08001080 ja-lang="電池消費量の最適化"
1081 es-lang="Cómo optimizar la duración de la batería"
1082 description=
1083 "How to minimize the amount of power your app requires by adapting to current
1084 power conditions and performing power-hungry tasks at proper intervals."
1085 >Optimizing Battery Life</a>
1086 </div>
1087 <ul>
1088 <li><a href="/training/monitoring-device-state/battery-monitoring.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001089 zh-cn-lang="监控电池电量和充电状态"
Scott Mainddab47b2012-10-02 17:48:11 -07001090 ja-lang="電池残量と充電状態の監視"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001091 es-lang="Cómo controlar el nivel de batería y el estado de carga"
Scott Mainddab47b2012-10-02 17:48:11 -07001092 >Monitoring the Battery Level and Charging State</a>
Scott Main50e990c2012-06-21 17:14:39 -07001093 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001094 <li><a href="/training/monitoring-device-state/docking-monitoring.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001095 zh-cn-lang="确定和监控基座对接状态和类型"
Scott Mainddab47b2012-10-02 17:48:11 -07001096 ja-lang="ホルダーの装着状態とタイプの特定と監視"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001097 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 -07001098 >Determining and Monitoring the Docking State and Type</a>
Scott Main50e990c2012-06-21 17:14:39 -07001099 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001100 <li><a href="/training/monitoring-device-state/connectivity-monitoring.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001101 zh-cn-lang="确定和监控网络连接状态"
Scott Mainddab47b2012-10-02 17:48:11 -07001102 ja-lang="接続状態の特定と監視"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001103 es-lang="Cómo determinar y controlar el estado de la conectividad"
Scott Mainddab47b2012-10-02 17:48:11 -07001104 >Determining and Monitoring the Connectivity Status</a>
Scott Main50e990c2012-06-21 17:14:39 -07001105 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001106 <li><a href="/training/monitoring-device-state/manifest-receivers.html"
Dirk Doughertyb582c6782013-05-04 10:54:52 -07001107 zh-cn-lang="根据需要操作广播接收器"
Scott Mainddab47b2012-10-02 17:48:11 -07001108 ja-lang="オンデマンドでのブロードキャスト レシーバ操作"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001109 es-lang="Cómo manipular los receptores de emisión bajo demanda"
Scott Mainddab47b2012-10-02 17:48:11 -07001110 >Manipulating Broadcast Receivers On Demand</a>
Scott Main50e990c2012-06-21 17:14:39 -07001111 </li>
1112 </ul>
1113 </li>
Joe Malin8dd62752012-11-26 14:06:35 -08001114 <li class="nav-section">
1115 <div class="nav-section-header">
1116 <a href="<?cs var:toroot ?>training/multiple-threads/index.html"
1117 description=
1118 "How to improve the performance and scalability of long-running operations by
1119 dispatching work to multiple threads.">
1120 Sending Operations to Multiple Threads</a>
1121 </div>
1122 <ul>
1123 <li><a href="<?cs var:toroot ?>training/multiple-threads/define-runnable.html">
1124 Specifying the Code to Run on a Thread
1125 </a>
1126 </li>
1127 <li><a href="<?cs var:toroot ?>training/multiple-threads/create-threadpool.html">
1128 Creating a Manager for Multiple Threads
1129 </a>
1130 </li>
1131 <li><a href="<?cs var:toroot ?>training/multiple-threads/run-code.html">
1132 Running Code on a Thread Pool Thread
1133 </a>
1134 </li>
1135 <li><a href="<?cs var:toroot ?>training/multiple-threads/communicate-ui.html">
1136 Communicating with the UI Thread
1137 </a>
1138 </li>
1139 </ul>
1140 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001141
Scott Main22cc2762012-11-07 16:35:16 -08001142 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001143 <a href="<?cs var:toroot ?>training/articles/perf-anr.html"
Scott Main22cc2762012-11-07 16:35:16 -08001144 description=
1145 "How to keep your app responsive to user interaction so the UI does not lock-up and
1146 display an &quot;Application Not Responding&quot; dialog."
1147 >Keeping Your App Responsive</a>
Scott Main50e990c2012-06-21 17:14:39 -07001148 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001149
Scott Main22cc2762012-11-07 16:35:16 -08001150 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001151 <a href="<?cs var:toroot ?>training/articles/perf-jni.html"
Scott Main22cc2762012-11-07 16:35:16 -08001152 description=
1153 "How to efficiently use the Java Native Interface with the Android NDK."
1154 >JNI Tips</a>
1155 </li>
Dirk Doughertyd5894212012-11-28 18:53:10 -08001156 <li>
1157 <a href="<?cs var:toroot ?>training/articles/smp.html"
1158 description=
1159 "Tips for coding Android apps on symmetric multiprocessor systems."
1160 >SMP Primer for Android</a>
1161 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001162 </ul>
1163 </li> <!-- end of Performance -->
Joe Malin3ddba7e2013-03-04 10:33:30 -08001164
1165
Scott Main50e990c2012-06-21 17:14:39 -07001166
Scott Main22cc2762012-11-07 16:35:16 -08001167 <li class="nav-section">
1168 <div class="nav-section-header">
1169 <a href="<?cs var:toroot ?>training/best-security.html">
1170 <span class="small">Best Practices for</span><br/>
1171 Security &amp; Privacy
1172 </a>
1173 </div>
1174 <ul>
1175
1176 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001177 <a href="<?cs var:toroot ?>training/articles/security-tips.html"
Scott Main22cc2762012-11-07 16:35:16 -08001178 description=
1179 "How to perform various tasks and keep your app's data and your user's data secure."
1180 >Security Tips</a>
1181 </li>
Scott Main00158362013-01-17 16:58:50 -08001182
1183 <li>
1184 <a href="<?cs var:toroot ?>training/articles/security-ssl.html"
1185 description=
1186 "How to ensure that your app is secure when performing network transactions."
1187 >Security with HTTPS and SSL</a>
1188 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001189
Scott Main50e990c2012-06-21 17:14:39 -07001190 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001191 <div class="nav-section-header">
1192 <a href="<?cs var:toroot ?>training/enterprise/index.html"
1193 description=
1194 "How to implement device management policies for enterprise-oriented apps."
1195 >Developing for Enterprise</a>
Scott Main50e990c2012-06-21 17:14:39 -07001196 </div>
1197 <ul>
Scott Main22cc2762012-11-07 16:35:16 -08001198 <li><a href="<?cs var:toroot ?>training/enterprise/device-management-policy.html">
1199 Enhancing Security with Device Management Policies
Scott Main50e990c2012-06-21 17:14:39 -07001200 </a>
1201 </li>
1202 </ul>
1203 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001204 </ul>
1205 </li>
1206 <!-- End security and user info -->
Scott Main50e990c2012-06-21 17:14:39 -07001207
Scott Main50e990c2012-06-21 17:14:39 -07001208
Scott Main22cc2762012-11-07 16:35:16 -08001209 <li class="nav-section">
1210 <div class="nav-section-header">
1211 <a href="<?cs var:toroot ?>training/distribute.html">
1212 <span class="small">Using Google Play to</span><br/>
1213 Distribute &amp; Monetize
1214 </a>
1215 </div>
1216 <ul>
Quddus Chong768dba62012-12-08 17:06:30 -08001217 <li class="nav-section">
1218 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/in-app-billing/index.html"
1219 description="How to sell in-app products from your application using In-app Billing.">
1220 Selling In-app Products
1221 </a></div>
1222 <ul>
1223 <li><a href="<?cs var:toroot ?>training/in-app-billing/preparing-iab-app.html">
1224 <span class="en">Preparing Your App</span>
1225 </a>
1226 </li>
1227 <li><a href="<?cs var:toroot ?>training/in-app-billing/list-iab-products.html">
1228 <span class="en">Establishing Products for Sale</span>
1229 </a>
1230 </li>
1231 <li><a href="<?cs var:toroot ?>training/in-app-billing/purchase-iab-products.html">
1232 <span class="en">Purchasing Products</span>
1233 </a>
1234 </li>
1235 <li><a href="<?cs var:toroot ?>training/in-app-billing/test-iab-app.html">
1236 <span class="en">Testing Your App</span>
1237 </a>
1238 </li>
1239 </ul>
1240 </li>
Joe Malin3ddba7e2013-03-04 10:33:30 -08001241
Scott Main50e990c2012-06-21 17:14:39 -07001242 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001243 <div class="nav-section-header">
1244 <a href="<?cs var:toroot ?>training/multiple-apks/index.html"
1245 description=
1246 "How to publish your app on Google Play with separate APKs that target
1247 different devices, while using a single app listing."
1248 >Maintaining Multiple APKs</a>
1249 </div>
Scott Main50e990c2012-06-21 17:14:39 -07001250 <ul>
1251 <li><a href="<?cs var:toroot ?>training/multiple-apks/api.html">
Scott Main22cc2762012-11-07 16:35:16 -08001252 Creating Multiple APKs for Different API Levels
Scott Main50e990c2012-06-21 17:14:39 -07001253 </a>
1254 </li>
1255 <li><a href="<?cs var:toroot ?>training/multiple-apks/screensize.html">
Scott Main22cc2762012-11-07 16:35:16 -08001256 Creating Multiple APKs for Different Screen Sizes
Scott Main50e990c2012-06-21 17:14:39 -07001257 </a>
1258 </li>
1259 <li><a href="<?cs var:toroot ?>training/multiple-apks/texture.html">
Scott Main22cc2762012-11-07 16:35:16 -08001260 Creating Multiple APKs for Different GL Textures
Scott Main50e990c2012-06-21 17:14:39 -07001261 </a>
1262 </li>
1263 <li><a href="<?cs var:toroot ?>training/multiple-apks/multiple.html">
Scott Main22cc2762012-11-07 16:35:16 -08001264 Creating Multiple APKs with 2+ Dimensions
Scott Main50e990c2012-06-21 17:14:39 -07001265 </a>
1266 </li>
1267 </ul>
1268 </li>
Scott Main50e990c2012-06-21 17:14:39 -07001269 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001270 <div class="nav-section-header">
1271 <a href="<?cs var:toroot ?>training/monetization/index.html"
1272 description=
1273 "How to implement monetization strategies for your app without compromising
1274 the user experience."
1275 >Monetizing Your App</a>
1276 </div>
Scott Main50e990c2012-06-21 17:14:39 -07001277 <ul>
1278 <li><a href="<?cs var:toroot ?>training/monetization/ads-and-ux.html">
Scott Main22cc2762012-11-07 16:35:16 -08001279 Advertising without Compromising User Experience
Scott Main50e990c2012-06-21 17:14:39 -07001280 </a>
1281 </li>
1282 </ul>
1283 </li>
Scott Main50e990c2012-06-21 17:14:39 -07001284 </ul>
1285 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001286 <!-- End best Publishing -->
1287
Scott Main50e990c2012-06-21 17:14:39 -07001288</ul><!-- nav -->
Scott Main50e990c2012-06-21 17:14:39 -07001289<script type="text/javascript">
1290<!--
1291 buildToggleLists();
1292 changeNavLang(getLangPref());
1293//-->
1294</script>