blob: 73e81fe444a342c997e7e722c85a9c2c39e55942 [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">
42 <a href="<?cs var:toroot ?>training/basics/activity-lifecycle/index.html"
43 description=
44 "How Android activities live and die and how to create
45 a seamless user experience by implementing lifecycle callback methods."
46 >Managing the Activity Lifecycle</a>
47 </div>
Scott Main50e990c2012-06-21 17:14:39 -070048 <ul>
49 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/starting.html">
Scott Main22cc2762012-11-07 16:35:16 -080050 Starting an Activity
Scott Main50e990c2012-06-21 17:14:39 -070051 </a>
52 </li>
53 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/pausing.html">
Scott Main22cc2762012-11-07 16:35:16 -080054 Pausing and Resuming an Activity
Scott Main50e990c2012-06-21 17:14:39 -070055 </a>
56 </li>
57 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/stopping.html">
Scott Main22cc2762012-11-07 16:35:16 -080058 Stopping and Restarting an Activity
Scott Main50e990c2012-06-21 17:14:39 -070059 </a>
60 </li>
61 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/recreating.html">
Scott Main22cc2762012-11-07 16:35:16 -080062 Recreating an Activity
Scott Main50e990c2012-06-21 17:14:39 -070063 </a>
64 </li>
65 </ul>
66 </li>
Joe Malin50c22752012-10-20 12:41:40 -070067
Scott Main50e990c2012-06-21 17:14:39 -070068 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -080069 <div class="nav-section-header">
70 <a href="<?cs var:toroot ?>training/basics/supporting-devices/index.html"
71 description=
72 "How to build your app with alternative resources that provide an
73 optimized user experience on multiple device form factors using a single APK."
74 >Supporting Different Devices</a>
75 </div>
Scott Main50e990c2012-06-21 17:14:39 -070076 <ul>
77 <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/languages.html">
Scott Main22cc2762012-11-07 16:35:16 -080078 Supporting Different Languages
Scott Main50e990c2012-06-21 17:14:39 -070079 </a>
80 </li>
81 <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/screens.html">
Scott Main22cc2762012-11-07 16:35:16 -080082 Supporting Different Screens
Scott Main50e990c2012-06-21 17:14:39 -070083 </a>
84 </li>
85 <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/platforms.html">
Scott Main22cc2762012-11-07 16:35:16 -080086 Supporting Different Platform Versions
Scott Main50e990c2012-06-21 17:14:39 -070087 </a>
88 </li>
89 </ul>
90 </li>
Joe Malin50c22752012-10-20 12:41:40 -070091
Scott Main50e990c2012-06-21 17:14:39 -070092 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -080093 <div class="nav-section-header">
94 <a href="<?cs var:toroot ?>training/basics/fragments/index.html"
95 description=
96 "How to build a user interface for your app that is flexible enough
97 to present multiple UI components on large screens and a more constrained set of
98 UI components on smaller screens&mdash;essential for building a single APK for both
99 phones and tablets."
100 >Building a Dynamic UI with Fragments</a>
101 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700102 <ul>
103 <li><a href="<?cs var:toroot ?>training/basics/fragments/support-lib.html">
Scott Main22cc2762012-11-07 16:35:16 -0800104 Using the Support Library
Scott Main50e990c2012-06-21 17:14:39 -0700105 </a>
106 </li>
107 <li><a href="<?cs var:toroot ?>training/basics/fragments/creating.html">
Scott Main22cc2762012-11-07 16:35:16 -0800108 Creating a Fragment
Scott Main50e990c2012-06-21 17:14:39 -0700109 </a>
110 </li>
111 <li><a href="<?cs var:toroot ?>training/basics/fragments/fragment-ui.html">
Scott Main22cc2762012-11-07 16:35:16 -0800112 Building a Flexible UI
Scott Main50e990c2012-06-21 17:14:39 -0700113 </a>
114 </li>
115 <li><a href="<?cs var:toroot ?>training/basics/fragments/communicating.html">
Scott Main22cc2762012-11-07 16:35:16 -0800116 Communicating with Other Fragments
Scott Main50e990c2012-06-21 17:14:39 -0700117 </a>
118 </li>
119 </ul>
120 </li>
121
122 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800123 <div class="nav-section-header"><a href="<?cs var:toroot?>training/basics/data-storage/index.html"
124 description=
125 "How to save data on the device, whether it's temporary files, downloaded
126 app assets, user media, structured data, or something else."
127 >Saving Data</a>
128 </div>
Scott Main11f03b42012-09-07 15:26:39 -0700129 <ul>
130 <li><a href="<?cs var:toroot ?>training/basics/data-storage/shared-preferences.html">
Scott Main22cc2762012-11-07 16:35:16 -0800131 Saving Key-Value Sets
Scott Main11f03b42012-09-07 15:26:39 -0700132 </a>
133 </li>
134 <li><a href="<?cs var:toroot ?>training/basics/data-storage/files.html">
Scott Main22cc2762012-11-07 16:35:16 -0800135 Saving Files
Scott Main11f03b42012-09-07 15:26:39 -0700136 </a>
137 </li>
138 <li><a href="<?cs var:toroot ?>training/basics/data-storage/databases.html">
Scott Main22cc2762012-11-07 16:35:16 -0800139 Saving Data in SQL Databases
Scott Main11f03b42012-09-07 15:26: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">
147 <a href="<?cs var:toroot ?>training/basics/intents/index.html"
148 description=
149 "How to build a user experience that leverages other apps available
150 on the device to perform advanced user tasks, such as capture a photo or view
151 an address on a map."
152 >Interacting with Other Apps</a>
153 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700154 <ul>
155 <li><a href="<?cs var:toroot ?>training/basics/intents/sending.html">
Scott Main22cc2762012-11-07 16:35:16 -0800156 Sending the User to Another App
Scott Main50e990c2012-06-21 17:14:39 -0700157 </a>
158 </li>
159 <li><a href="<?cs var:toroot ?>training/basics/intents/result.html">
Scott Main22cc2762012-11-07 16:35:16 -0800160 Getting a Result from the Activity
Scott Main50e990c2012-06-21 17:14:39 -0700161 </a>
162 </li>
163 <li><a href="<?cs var:toroot ?>training/basics/intents/filters.html">
Scott Main22cc2762012-11-07 16:35:16 -0800164 Allowing Other Apps to Start Your Activity
Scott Main50e990c2012-06-21 17:14:39 -0700165 </a>
166 </li>
167 </ul>
168 </li>
169
Scott Main22cc2762012-11-07 16:35:16 -0800170 <li class="nav-section">
171 <div class="nav-section-header">
172 <a href="<?cs var:toroot ?>training/sharing/index.html"
173 description=
174 "How to take your app interaction to the next level by sharing
175 information with other apps, receive information back, and provide a simple and
176 scalable way to perform Share actions with user content."
177 >Sharing Content</a>
178 </div>
179 <ul>
180 <li><a href="<?cs var:toroot ?>training/sharing/send.html">
181 Sending Content to Other Apps
182 </a>
183 </li>
184 <li><a href="<?cs var:toroot ?>training/sharing/receive.html">
185 Receiving Content from Other Apps
186 </a>
187 </li>
188 <li><a href="<?cs var:toroot ?>training/sharing/shareaction.html">
189 Adding an Easy Share Action
190 </a>
191 </li>
192 </ul>
193 </li>
Scott Main50e990c2012-06-21 17:14:39 -0700194 </ul>
Joe Malinf0f5efb2012-10-27 11:16:19 -0700195 </li><!-- end getting started -->
Scott Main22cc2762012-11-07 16:35:16 -0800196
Scott Mainc8a6f8a2012-12-05 16:13:25 -0800197
198
Scott Main22cc2762012-11-07 16:35:16 -0800199
Scott Main50e990c2012-06-21 17:14:39 -0700200 <li class="nav-section">
201 <div class="nav-section-header">
Scott Main22cc2762012-11-07 16:35:16 -0800202 <a href="<?cs var:toroot ?>training/building-multimedia.html">
203 <span class="small">Building Apps with</span><br/>Multimedia
204 </a>
205 </div>
206 <ul>
207
208 <li class="nav-section">
209 <div class="nav-section-header">
210 <a href="<?cs var:toroot ?>training/managing-audio/index.html"
211 description=
212 "How to respond to hardware audio key presses, request audio focus
213 when playing audio, and respond appropriately to changes in audio focus."
214 >Managing Audio Playback</a>
215 </div>
216 <ul>
217 <li><a href="<?cs var:toroot ?>training/managing-audio/volume-playback.html">
218 Controlling Your App's Volume and Playback
219 </a>
220 </li>
221 <li><a href="<?cs var:toroot ?>training/managing-audio/audio-focus.html">
222 Managing Audio Focus
223 </a>
224 </li>
225 <li><a href="<?cs var:toroot ?>training/managing-audio/audio-output.html">
226 Dealing with Audio Output Hardware
227 </a>
228 </li>
229 </ul>
230 </li>
231
232 <li class="nav-section">
233 <div class="nav-section-header">
234 <a href="<?cs var:toroot ?>training/camera/index.html"
235 description=
236 "How to leverage existing camera apps on the user's device to capture
237 photos or control the camera hardware directly and build your own camera app."
238 >Capturing Photos</a>
239 </div>
240 <ul>
241 <li><a href="<?cs var:toroot ?>training/camera/photobasics.html">
242 Taking Photos Simply
243 </a>
244 </li>
245 <li><a href="<?cs var:toroot ?>training/camera/videobasics.html">
246 Recording Videos Simply
247 </a>
248 </li>
249 <li><a href="<?cs var:toroot ?>training/camera/cameradirect.html">
250 Controlling the Camera
251 </a>
252 </li>
253 </ul>
254 </li>
255 </ul>
256 </li>
257 <!-- End multimedia -->
258
259
260
261 <li class="nav-section">
262 <div class="nav-section-header">
263 <a href="<?cs var:toroot ?>training/building-graphics.html">
264 <span class="small">Building Apps with</span><br/>Graphics &amp; Animation
265 </a>
266 </div>
267 <ul>
268
269 <li class="nav-section">
270 <div class="nav-section-header">
271 <a href="<?cs var:toroot ?>training/displaying-bitmaps/index.html"
272 description=
273 "How to load and process bitmaps while keeping your user interface
274 responsive and avoid exceeding memory limits."
275 >Displaying Bitmaps Efficiently</a>
276 </div>
277 <ul>
278 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/load-bitmap.html">
279 Loading Large Bitmaps Efficiently
280 </a>
281 </li>
282 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/process-bitmap.html">
283 Processing Bitmaps Off the UI Thread
284 </a>
285 </li>
286 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/cache-bitmap.html">
287 Caching Bitmaps
288 </a>
289 </li>
kmccormick75715422013-03-04 15:25:40 -0800290 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/manage-memory.html">
291 Managing Bitmap Memory
292 </a>
293 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800294 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/display-bitmap.html">
295 Displaying Bitmaps in Your UI
296 </a></li>
297 </ul>
298 </li>
299
300 <li class="nav-section">
301 <div class="nav-section-header">
302 <a href="<?cs var:toroot?>training/graphics/opengl/index.html"
303 description=
304 "How to create OpenGL graphics within the Android app framework
305 and respond to touch input."
306 >Displaying Graphics with OpenGL ES</a>
307 </div>
308 <ul>
309 <li><a href="<?cs var:toroot ?>training/graphics/opengl/environment.html">
310 Building an OpenGL ES Environment
311 </a>
312 </li>
313 <li><a href="<?cs var:toroot ?>training/graphics/opengl/shapes.html">
314 Defining Shapes
315 </a>
316 </li>
317 <li><a href="<?cs var:toroot ?>training/graphics/opengl/draw.html">
318 Drawing Shapes
319 </a>
320 </li>
321 <li><a href="<?cs var:toroot ?>training/graphics/opengl/projection.html">
322 Applying Projection and Camera Views
323 </a>
324 </li>
325 <li><a href="<?cs var:toroot ?>training/graphics/opengl/motion.html">
326 Adding Motion
327 </a>
328 </li>
329 <li><a href="<?cs var:toroot ?>training/graphics/opengl/touch.html">
330 Responding to Touch Events
331 </a>
332 </li>
333 </ul>
334 </li>
335 <li class="nav-section">
336 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/animation/index.html"
337 description=
338 "How to add transitional animations to your user interface.">
339 Adding Animations
340 </a></div>
341 <ul>
342 <li><a href="<?cs var:toroot ?>training/animation/crossfade.html">
343 Crossfading Two Views
344 </a>
345 </li>
346 <li><a href="<?cs var:toroot ?>training/animation/screen-slide.html">
347 Using ViewPager for Screen Slide
348 </a>
349 </li>
350 <li><a href="<?cs var:toroot ?>training/animation/cardflip.html">
351 Displaying Card Flip Animations
352 </a>
353 </li>
354 <li><a href="<?cs var:toroot ?>training/animation/zoom.html">
355 Zooming a View
356 </a>
357 </li>
358 <li><a href="<?cs var:toroot ?>training/animation/layout.html">
359 Animating Layout Changes
360 </a>
361 </li>
362 </ul>
363 </li>
364 </ul>
365 </li>
366 <!-- End graphics and animation -->
367
368
369 <li class="nav-section">
370 <div class="nav-section-header">
371 <a href="<?cs var:toroot ?>training/building-connectivity.html">
372 <span class="small">Building Apps with</span><br/>
373 Connectivity &amp; the Cloud
374 </a>
375 </div>
376 <ul>
377
378
379 <li class="nav-section">
380 <div class="nav-section-header">
381 <a href="<?cs var:toroot ?>training/connect-devices-wirelessly/index.html"
382 description=
383 "How to find and connect to local devices using Network Service
384 Discovery and Wi-Fi Direct in order to create peer-to-peer connections."
385 >Connecting Devices Wirelessly</a>
386 </div>
387 <ul>
388 <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd.html">
389 Using Network Service Discovery
390 </a>
391 </li>
392 <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/wifi-direct.html">
393 Connecting with Wi-Fi Direct
394 </a>
395 </li>
396 <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd-wifi-direct.html">
397 Using Wi-Fi Direct for Service Discovery
398 </a>
399 </li>
400 </ul>
401 </li>
402
403 <li class="nav-section">
404 <div class="nav-section-header">
405 <a href="<?cs var:toroot ?>training/basics/network-ops/index.html"
406 description=
407 "How to create a network connection, monitor the connection for changes
408 in connectivity, and perform transactions with XML data."
409 >Performing Network Operations</a>
410 </div>
411 <ul>
412 <li><a href="<?cs var:toroot ?>training/basics/network-ops/connecting.html">
413 Connecting to the Network
414 </a>
415 </li>
416 <li><a href="<?cs var:toroot ?>training/basics/network-ops/managing.html">
417 Managing Network Usage
418 </a>
419 </li>
420 <li><a href="<?cs var:toroot ?>training/basics/network-ops/xml.html">
421 Parsing XML Data
422 </a>
423 </li>
424 </ul>
425 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800426 <li class="nav-section">
427 <div class="nav-section-header">
428 <a href="<?cs var:toroot ?>training/efficient-downloads/index.html"
429 description=
430 "How to minimize your app's impact on the battery when performing downloads
431 and other network transactions."
432 >Transferring Data Without Draining the Battery</a>
433 </div>
434 <ul>
435 <li><a href="<?cs var:toroot ?>training/efficient-downloads/efficient-network-access.html">
436 Optimizing Downloads for Efficient Network Access
437 </a>
438 </li>
439 <li><a href="<?cs var:toroot ?>training/efficient-downloads/regular_updates.html">
440 Minimizing the Effect of Regular Updates
441 </a>
442 </li>
443 <li><a href="<?cs var:toroot ?>training/efficient-downloads/redundant_redundant.html">
444 Redundant Downloads are Redundant
445 </a>
446 </li>
447 <li><a href="<?cs var:toroot ?>training/efficient-downloads/connectivity_patterns.html">
448 Modifying Patterns Based on the Connectivity Type
449 </a>
450 </li>
451 </ul>
452 </li>
453
454 <li class="nav-section">
455 <div class="nav-section-header">
456 <a href="<?cs var:toroot ?>training/cloudsync/index.html"
457 description=
458 "How to sync and back up app and user data to remote web services in the
459 cloud and how to restore the data back to multiple devices."
460 >Syncing to the Cloud</a>
461 </div>
462 <ul>
463 <li><a href="<?cs var:toroot ?>training/cloudsync/backupapi.html">
464 Using the Backup API
465 </a>
466 </li>
467 <li><a href="<?cs var:toroot ?>training/cloudsync/gcm.html">
468 Making the Most of Google Cloud Messaging
469 </a>
470 </li>
471 </ul>
472 </li>
473 </ul>
474 </li>
475 <!-- End connectivity and cloud -->
476
477
478
479 <li class="nav-section">
480 <div class="nav-section-header">
481 <a href="<?cs var:toroot ?>training/building-userinfo.html">
482 <span class="small">Building Apps with</span><br/>
483 User Info &amp; Location
484 </a>
485 </div>
486 <ul>
487
488 <li class="nav-section">
489 <div class="nav-section-header">
490 <a href="<?cs var:toroot ?>training/id-auth/index.html"
491 description=
492 "How to remember the user by account, authenticate the user, acquire user permission
493 for the user's online data, and create custom accounts on the device."
494 >Remembering Users</a>
495 </div>
496 <ul>
497 <li><a href="<?cs var:toroot ?>training/id-auth/identify.html">
498 Remembering Your User
499 </a>
500 </li>
501 <li><a href="<?cs var:toroot ?>training/id-auth/authenticate.html">
502 Authenticating to OAuth2 Services
503 </a>
504 </li>
505 <li><a href="<?cs var:toroot ?>training/id-auth/custom_auth.html">
506 Creating a Custom Account Type
507 </a>
508 </li>
509 </ul>
510 </li>
511
512 <li class="nav-section">
513 <div class="nav-section-header">
514 <a href="<?cs var:toroot ?>training/basics/location/index.html"
515 description=
516 "How to add location-aware features to your app by aqcuiring the user's current
517 location."
518 >Making Your App Location Aware</a>
519 </div>
520 <ul>
521 <li><a href="<?cs var:toroot ?>training/basics/location/locationmanager.html">
522 Using the Location Manager
523 </a>
524 </li>
525 <li><a href="<?cs var:toroot ?>training/basics/location/currentlocation.html">
526 Obtaining the Current Location
527 </a>
528 </li>
529 <li><a href="<?cs var:toroot ?>training/basics/location/geocoding.html">
530 Displaying a Location Address
531 </a>
532 </li>
533 </ul>
534 </li>
535 </ul>
536 </li>
537 <!-- End privacy and location -->
538
539
540
541 <li class="nav-section">
542 <div class="nav-section-header">
543 <a href="<?cs var:toroot ?>training/best-ux.html">
544 <span class="small">Best Practices for</span><br/>
545 User Experience &amp; UI
Scott Main50e990c2012-06-21 17:14:39 -0700546 </a>
547 </div>
548 <ul>
549
550 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800551 <div class="nav-section-header">
552 <a href="<?cs var:toroot ?>training/design-navigation/index.html"
553 description=
554 "How to plan your app's screen hierarchy and forms of navigation so users can
555 effectively and intuitively traverse your app content using various navigation
556 patterns."
557 >Designing Effective Navigation</a>
Scott Mainddab47b2012-10-02 17:48:11 -0700558 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700559 <ul>
Scott Main22cc2762012-11-07 16:35:16 -0800560 <li><a href="<?cs var:toroot ?>training/design-navigation/screen-planning.html">
561 Planning Screens and Their Relationships
562 </a>
563 </li>
564 <li><a href="<?cs var:toroot ?>training/design-navigation/multiple-sizes.html">
565 Planning for Multiple Touchscreen Sizes
566 </a>
567 </li>
568 <li><a href="<?cs var:toroot ?>training/design-navigation/descendant-lateral.html">
569 Providing Descendant and Lateral Navigation
570 </a>
571 </li>
572 <li><a href="<?cs var:toroot ?>training/design-navigation/ancestral-temporal.html">
573 Providing Ancestral and Temporal Navigation
574 </a>
575 </li>
576 <li><a href="<?cs var:toroot ?>training/design-navigation/wireframing.html">
577 Putting it All Together: Wireframing the Example App
578 </a>
579 </li>
580 </ul>
581 </li>
582
583 <li class="nav-section">
584 <div class="nav-section-header">
585 <a href="<?cs var:toroot ?>training/implementing-navigation/index.html"
586 description=
587 "How to implement various navigation patterns such as swipe views and up navigation."
588 >Implementing Effective Navigation</a>
589 </div>
590 <ul>
591 <li><a href="<?cs var:toroot ?>training/implementing-navigation/lateral.html">
592 Implementing Lateral Navigation
593 </a>
594 </li>
595 <li><a href="<?cs var:toroot ?>training/implementing-navigation/ancestral.html">
596 Implementing Ancestral Navigation
597 </a>
598 </li>
599 <li><a href="<?cs var:toroot ?>training/implementing-navigation/temporal.html">
600 Implementing Temporal Navigation
601 </a>
602 </li>
603 <li><a href="<?cs var:toroot ?>training/implementing-navigation/descendant.html">
604 Implementing Descendant Navigation
605 </a>
606 </li>
607 </ul>
608 </li>
&& repo sync -j80aae0002012-10-04 16:34:23 -0700609
610 <li class="nav-section">
611 <div class="nav-section-header">
612 <a href="<?cs var:toroot ?>training/notify-user/index.html"
613 description=
Joe Malinf0f5efb2012-10-27 11:16:19 -0700614 "How to display messages called notifications outside of
&& repo sync -j80aae0002012-10-04 16:34:23 -0700615 your application's UI."
616 >Notifying the User</a>
617 </div>
618 <ul>
619 <li>
620 <a href="<?cs var:toroot ?>training/notify-user/build-notification.html">
621 Building a Notification
622 </a>
623 </li>
624 <li>
625 <a href="<?cs var:toroot ?>training/notify-user/navigation.html">
626 Preserving Navigation when Starting an Activity
627 </a>
628 </li>
629 <li>
630 <a href="<?cs var:toroot ?>training/notify-user/managing.html">
631 Updating Notifications
632 </a>
633 </li>
634 <li>
635 <a href="<?cs var:toroot ?>training/notify-user/expanded.html">
636 Using Big View Styles
637 </a>
638 </li>
639 <li>
640 <a href="<?cs var:toroot ?>training/notify-user/display-progress.html">
641 Displaying Progress in a Notification
642 </a>
643 </li>
644 </ul>
645 </li>
646
647 <li class="nav-section">
648 <div class="nav-section-header">
649 <a href="<?cs var:toroot ?>training/search/index.html"
650 description=
651 "How to properly add a search interface to your app and create a searchable database."
652 >Adding Search Functionality</a>
653 </div>
654 <ul>
655 <li><a href="<?cs var:toroot ?>training/search/setup.html">
656 Setting up the Search Interface
657 </a>
658 </li>
659 <li><a href="<?cs var:toroot ?>training/search/search.html">
660 Storing and Searching for Data
661 </a>
662 </li>
663 <li><a href="<?cs var:toroot ?>training/search/backward-compat.html">
664 Remaining Backward Compatible
665 </a>
666 </li>
667 </ul>
668 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800669
670
671 <li class="nav-section">
672 <div class="nav-section-header">
673 <a href="/training/multiscreen/index.html"
674 zh-CN-lang="针对多种屏幕进行设计"
675 ja-lang="複数画面のデザイン"
676 es-lang="Cómo diseñar aplicaciones para varias pantallas"
677 description=
678 "How to build a user interface that's flexible enough to
679 fit perfectly on any screen and how to create different interaction
680 patterns that are optimized for different screen sizes."
681 >Designing for Multiple Screens</a>
682 </div>
683 <ul>
684 <li><a href="/training/multiscreen/screensizes.html"
Scott Mainddab47b2012-10-02 17:48:11 -0700685 zh-CN-lang="支持各种屏幕尺寸"
686 ko-lang="다양한 화면 크기 지원"
687 ja-lang="さまざまな画面サイズのサポート"
Joe Malinf0f5efb2012-10-27 11:16:19 -0700688 es-lang="Cómo admitir varios tamaños de pantalla"
Scott Main22cc2762012-11-07 16:35:16 -0800689 >Supporting Different Screen Sizes</a>
Scott Main50e990c2012-06-21 17:14:39 -0700690 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800691 <li><a href="/training/multiscreen/screendensities.html"
Scott Mainddab47b2012-10-02 17:48:11 -0700692 zh-CN-lang="支持各种屏幕密度"
693 ja-lang="さまざまな画面密度のサポート"
Joe Malinf0f5efb2012-10-27 11:16:19 -0700694 es-lang="Cómo admitir varias densidades de pantalla"
Scott Mainddab47b2012-10-02 17:48:11 -0700695 >Supporting Different Screen Densities</a>
Scott Main50e990c2012-06-21 17:14:39 -0700696 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800697 <li><a href="/training/multiscreen/adaptui.html"
Scott Mainddab47b2012-10-02 17:48:11 -0700698 zh-CN-lang="实施自适应用户界面流程"
699 ja-lang="順応性のある UI フローの実装"
Joe Malinf0f5efb2012-10-27 11:16:19 -0700700 es-lang="Cómo implementar interfaces de usuario adaptables"
Scott Mainddab47b2012-10-02 17:48:11 -0700701 >Implementing Adaptive UI Flows</a>
Scott Main50e990c2012-06-21 17:14:39 -0700702 </li>
703 </ul>
704 </li>
Joe Malin50c22752012-10-20 12:41:40 -0700705
Scott Main50e990c2012-06-21 17:14:39 -0700706 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800707 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/tv/index.html"
708 description=
709 "How to optimize your app's user interface and user input for
710 the &quot;ten foot experience&quot; of a TV screen."
711 >Designing for TV</a>
712 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700713 <ul>
Scott Main22cc2762012-11-07 16:35:16 -0800714 <li><a href="<?cs var:toroot ?>training/tv/optimizing-layouts-tv.html">
715 Optimizing Layouts for TV
Scott Main50e990c2012-06-21 17:14:39 -0700716 </a>
717 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800718 <li><a href="<?cs var:toroot ?>training/tv/optimizing-navigation-tv.html">
719 Optimizing Navigation for TV
Scott Main50e990c2012-06-21 17:14:39 -0700720 </a>
721 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800722 <li><a href="<?cs var:toroot ?>training/tv/unsupported-features-tv.html">
723 Handling Features Not Supported on TV
Scott Main50e990c2012-06-21 17:14:39 -0700724 </a>
725 </li>
726 </ul>
727 </li>
728
729 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800730 <div class="nav-section-header">
731 <a href="<?cs var:toroot ?>training/custom-views/index.html"
732 description=
733 "How to build custom UI widgets that are interactive and smooth."
734 >Creating Custom Views</a>
735 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700736 <ul>
Scott Main22cc2762012-11-07 16:35:16 -0800737 <li><a href="<?cs var:toroot ?>training/custom-views/create-view.html">
738 Creating a Custom View Class
Scott Main50e990c2012-06-21 17:14:39 -0700739 </a>
740 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800741 <li><a href="<?cs var:toroot ?>training/custom-views/custom-drawing.html">
742 Implementing Custom Drawing
Scott Main50e990c2012-06-21 17:14:39 -0700743 </a>
744 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800745 <li><a href="<?cs var:toroot ?>training/custom-views/making-interactive.html">
746 Making the View Interactive
747 </a>
748 </li>
749 <li><a href="<?cs var:toroot ?>training/custom-views/optimizing-view.html">
750 Optimizing the View
Scott Main50e990c2012-06-21 17:14:39 -0700751 </a>
752 </li>
753 </ul>
754 </li>
Joe Malin50c22752012-10-20 12:41:40 -0700755
Scott Main50e990c2012-06-21 17:14:39 -0700756 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -0800757 <div class="nav-section-header">
758 <a href="<?cs var:toroot ?>training/backward-compatible-ui/index.html"
759 description=
760 "How to use UI components and other APIs from the more recent versions of Android
761 while remaining compatible with older versions of the platform."
762 >Creating Backward-Compatible UIs</a>
Scott Mainddab47b2012-10-02 17:48:11 -0700763 </div>
Scott Main50e990c2012-06-21 17:14:39 -0700764 <ul>
Scott Main22cc2762012-11-07 16:35:16 -0800765 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/abstracting.html">
766 Abstracting the New APIs
767 </a>
768 </li>
769 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/new-implementation.html">
770 Proxying to the New APIs
771 </a>
772 </li>
773 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/older-implementation.html">
774 Creating an Implementation with Older APIs
775 </a>
776 </li>
777 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/using-component.html">
778 Using the Version-Aware Component
779 </a>
780 </li>
781 </ul>
782 </li>
783
784 <li class="nav-section">
785 <div class="nav-section-header">
786 <a href="<?cs var:toroot ?>training/accessibility/index.html"
787 description=
788 "How to make your app accessible to users with vision
789 impairment or other physical disabilities."
790 >Implementing Accessibility</a>
791 </div>
792 <ul>
793 <li><a href="<?cs var:toroot ?>training/accessibility/accessible-app.html">
794 Developing Accessible Applications
795 </a>
796 </li>
797 <li><a href="<?cs var:toroot ?>training/accessibility/service.html">
798 Developing Accessibility Services
799 </a>
800 </li>
801 </ul>
802 </li>
803
804 </ul>
805 </li>
806 <!-- End best UX and UI -->
807
Scott Mainc8a6f8a2012-12-05 16:13:25 -0800808
&& repo sync -j8518edbf2012-11-30 16:28:27 -0800809 <li class="nav-section">
810 <div class="nav-section-header">
Scott Mainc8a6f8a2012-12-05 16:13:25 -0800811 <a href="<?cs var:toroot ?>training/best-user-input.html">
&& repo sync -j8518edbf2012-11-30 16:28:27 -0800812 <span class="small">Best Practices for</span><br/>
813 User Input
814 </a>
815 </div>
816 <ul>
817
818 <li class="nav-section">
819 <div class="nav-section-header">
820 <a href="<?cs var:toroot ?>training/gestures/index.html"
821 description=
822 "How to write apps that allow users to interact with the touch screen via touch gestures."
823 >Using Touch Gestures</a>
824 </div>
825 <ul>
826 <li><a href="<?cs var:toroot ?>training/gestures/detector.html">
827 Detecting Common Gestures
828 </a>
829 </li>
830 <li><a href="<?cs var:toroot ?>training/gestures/movement.html">
831 Tracking Movement
832 </a>
833 </li>
834 <li><a href="<?cs var:toroot ?>training/gestures/scroll.html">
835 Animating a Scroll Gesture
836 </a>
837 </li>
838 <li><a href="<?cs var:toroot ?>training/gestures/multi.html">
839 Handling Multi-Touch Gestures
840 </a>
841 </li>
842 <li><a href="<?cs var:toroot ?>training/gestures/scale.html">
843 Dragging and Scaling
844 </a>
845 </li>
846 <li><a href="<?cs var:toroot ?>training/gestures/viewgroup.html">
847 Managing Touch Events in a ViewGroup
848 </a>
849 </li>
850 </ul>
Scott Mainc8a6f8a2012-12-05 16:13:25 -0800851 </li>
852
853 <li class="nav-section">
854 <div class="nav-section-header">
855 <a href="<?cs var:toroot ?>training/keyboard-input/index.html"
856 description=
857 "How to specify the appearance and behaviors of soft input methods (such
858 as on-screen keyboards) and how to optimize the experience with
859 hardware keyboards."
860 >Handling Keyboard Input</a>
861 </div>
862 <ul>
863 <li><a href="<?cs var:toroot ?>training/keyboard-input/style.html">
864 Specifying the Input Method Type
865 </a>
866 </li>
867 <li><a href="<?cs var:toroot ?>training/keyboard-input/visibility.html">
868 Handling Input Method Visibility
869 </a>
870 </li>
871 <li><a href="<?cs var:toroot ?>training/keyboard-input/navigation.html">
872 Supporting Keyboard Navigation
873 </a>
874 </li>
875 <li><a href="<?cs var:toroot ?>training/keyboard-input/commands.html">
876 Handling Keyboard Actions
877 </a>
878 </li>
879 </ul>
880 </li>
881 </ul>
&& repo sync -j8518edbf2012-11-30 16:28:27 -0800882 </li> <!-- end of User Input -->
Scott Main22cc2762012-11-07 16:35:16 -0800883
884 <li class="nav-section">
885 <div class="nav-section-header">
886 <a href="<?cs var:toroot ?>training/best-performance.html">
887 <span class="small">Best Practices for</span><br/>
888 Performance
889 </a>
890 </div>
891 <ul>
892
893 <li>
Scott Main33e499e2012-11-16 08:54:27 -0800894 <a href="<?cs var:toroot ?>training/articles/perf-tips.html"
Scott Main22cc2762012-11-07 16:35:16 -0800895 description=
896 "How to optimize your app's performance in various ways to improve its
897 responsiveness and battery efficiency."
898 >Performance Tips</a>
899 </li>
900
901 <li class="nav-section">
902 <div class="nav-section-header">
903 <a href="<?cs var:toroot ?>training/improving-layouts/index.html"
904 description=
905 "How to identify problems in your app's layout performance and improve the UI
906 responsiveness."
907 >Improving Layout Performance</a>
908 </div>
909 <ul>
910 <li><a href="<?cs var:toroot ?>training/improving-layouts/optimizing-layout.html">
911 Optimizing Layout Hierarchies
912 </a>
913 </li>
914 <li><a href="<?cs var:toroot ?>training/improving-layouts/reusing-layouts.html">
915 Re-using Layouts with &lt;include/&gt;
916 </a>
917 </li>
918 <li><a href="<?cs var:toroot ?>training/improving-layouts/loading-ondemand.html">
919 Loading Views On Demand
920 </a>
921 </li>
922 <li><a href="<?cs var:toroot ?>training/improving-layouts/smooth-scrolling.html">
923 Making ListView Scrolling Smooth
924 </a>
925 </li>
926 </ul>
927 </li>
Scott Main8ac78802012-12-14 11:39:03 -0800928
Joe Malinf0f5efb2012-10-27 11:16:19 -0700929 <li class="nav-section">
930 <div class="nav-section-header">
931 <a href="<?cs var:toroot ?>training/run-background-service/index.html"
932 description=
933 "How to improve UI performance and responsiveness by sending work to a
Scott Main8ac78802012-12-14 11:39:03 -0800934 Service running in the background"
935 >Running in a Background Service</a>
Joe Malinf0f5efb2012-10-27 11:16:19 -0700936 </div>
937 <ul>
938 <li><a href="<?cs var:toroot ?>training/run-background-service/create-service.html">
939 Creating a Background Service
940 </a>
941 </li>
942 <li><a href="<?cs var:toroot ?>training/run-background-service/send-request.html">
943 Sending Work Requests to the Background Service
944 </a>
945 </li>
946 <li><a href="<?cs var:toroot ?>training/run-background-service/report-status.html">
947 Reporting Work Status
948 </a>
949 </li>
950 </ul>
951 </li>
Scott Main8ac78802012-12-14 11:39:03 -0800952
953 <li class="nav-section">
954 <div class="nav-section-header">
955 <a href="<?cs var:toroot ?>training/load-data-background/index.html"
956 description="How to use CursorLoader to query data without
957 affecting UI responsiveness."
958 >Loading Data in the Background</a>
959 </div>
960 <ul>
961 <li><a href="<?cs var:toroot ?>training/load-data-background/setup-loader.html">
962 Running a Query with a CursorLoader</a>
963 </li>
964 <li><a href="<?cs var:toroot ?>training/load-data-background/handle-results.html">
965 Handling the Results</a>
966 </li>
967 </ul>
968 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800969
970 <li class="nav-section">
971 <div class="nav-section-header">
972 <a href="/training/monitoring-device-state/index.html"
973 zh-CN-lang="优化电池使用时间"
974 ja-lang="電池消費量の最適化"
975 es-lang="Cómo optimizar la duración de la batería"
976 description=
977 "How to minimize the amount of power your app requires by adapting to current
978 power conditions and performing power-hungry tasks at proper intervals."
979 >Optimizing Battery Life</a>
980 </div>
981 <ul>
982 <li><a href="/training/monitoring-device-state/battery-monitoring.html"
Scott Mainddab47b2012-10-02 17:48:11 -0700983 zh-CN-lang="监控电池电量和充电状态"
984 ja-lang="電池残量と充電状態の監視"
Joe Malinf0f5efb2012-10-27 11:16:19 -0700985 es-lang="Cómo controlar el nivel de batería y el estado de carga"
Scott Mainddab47b2012-10-02 17:48:11 -0700986 >Monitoring the Battery Level and Charging State</a>
Scott Main50e990c2012-06-21 17:14:39 -0700987 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800988 <li><a href="/training/monitoring-device-state/docking-monitoring.html"
Scott Mainddab47b2012-10-02 17:48:11 -0700989 zh-CN-lang="确定和监控基座对接状态和类型"
990 ja-lang="ホルダーの装着状態とタイプの特定と監視"
Joe Malinf0f5efb2012-10-27 11:16:19 -0700991 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 -0700992 >Determining and Monitoring the Docking State and Type</a>
Scott Main50e990c2012-06-21 17:14:39 -0700993 </li>
Scott Main22cc2762012-11-07 16:35:16 -0800994 <li><a href="/training/monitoring-device-state/connectivity-monitoring.html"
Scott Mainddab47b2012-10-02 17:48:11 -0700995 zh-CN-lang="确定和监控网络连接状态"
996 ja-lang="接続状態の特定と監視"
Joe Malinf0f5efb2012-10-27 11:16:19 -0700997 es-lang="Cómo determinar y controlar el estado de la conectividad"
Scott Mainddab47b2012-10-02 17:48:11 -0700998 >Determining and Monitoring the Connectivity Status</a>
Scott Main50e990c2012-06-21 17:14:39 -0700999 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001000 <li><a href="/training/monitoring-device-state/manifest-receivers.html"
Scott Mainddab47b2012-10-02 17:48:11 -07001001 zh-CN-lang="根据需要操作广播接收器"
1002 ja-lang="オンデマンドでのブロードキャスト レシーバ操作"
Joe Malinf0f5efb2012-10-27 11:16:19 -07001003 es-lang="Cómo manipular los receptores de emisión bajo demanda"
Scott Mainddab47b2012-10-02 17:48:11 -07001004 >Manipulating Broadcast Receivers On Demand</a>
Scott Main50e990c2012-06-21 17:14:39 -07001005 </li>
1006 </ul>
1007 </li>
Joe Malin8dd62752012-11-26 14:06:35 -08001008 <li class="nav-section">
1009 <div class="nav-section-header">
1010 <a href="<?cs var:toroot ?>training/multiple-threads/index.html"
1011 description=
1012 "How to improve the performance and scalability of long-running operations by
1013 dispatching work to multiple threads.">
1014 Sending Operations to Multiple Threads</a>
1015 </div>
1016 <ul>
1017 <li><a href="<?cs var:toroot ?>training/multiple-threads/define-runnable.html">
1018 Specifying the Code to Run on a Thread
1019 </a>
1020 </li>
1021 <li><a href="<?cs var:toroot ?>training/multiple-threads/create-threadpool.html">
1022 Creating a Manager for Multiple Threads
1023 </a>
1024 </li>
1025 <li><a href="<?cs var:toroot ?>training/multiple-threads/run-code.html">
1026 Running Code on a Thread Pool Thread
1027 </a>
1028 </li>
1029 <li><a href="<?cs var:toroot ?>training/multiple-threads/communicate-ui.html">
1030 Communicating with the UI Thread
1031 </a>
1032 </li>
1033 </ul>
1034 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001035
1036 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001037 <a href="<?cs var:toroot ?>training/articles/perf-anr.html"
Scott Main22cc2762012-11-07 16:35:16 -08001038 description=
1039 "How to keep your app responsive to user interaction so the UI does not lock-up and
1040 display an &quot;Application Not Responding&quot; dialog."
1041 >Keeping Your App Responsive</a>
Scott Main50e990c2012-06-21 17:14:39 -07001042 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001043
1044 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001045 <a href="<?cs var:toroot ?>training/articles/perf-jni.html"
Scott Main22cc2762012-11-07 16:35:16 -08001046 description=
1047 "How to efficiently use the Java Native Interface with the Android NDK."
1048 >JNI Tips</a>
1049 </li>
Dirk Doughertyd5894212012-11-28 18:53:10 -08001050 <li>
1051 <a href="<?cs var:toroot ?>training/articles/smp.html"
1052 description=
1053 "Tips for coding Android apps on symmetric multiprocessor systems."
1054 >SMP Primer for Android</a>
1055 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001056 </ul>
1057 </li> <!-- end of Performance -->
1058
1059
Scott Main50e990c2012-06-21 17:14:39 -07001060
Scott Main22cc2762012-11-07 16:35:16 -08001061 <li class="nav-section">
1062 <div class="nav-section-header">
1063 <a href="<?cs var:toroot ?>training/best-security.html">
1064 <span class="small">Best Practices for</span><br/>
1065 Security &amp; Privacy
1066 </a>
1067 </div>
1068 <ul>
1069
1070 <li>
Scott Main33e499e2012-11-16 08:54:27 -08001071 <a href="<?cs var:toroot ?>training/articles/security-tips.html"
Scott Main22cc2762012-11-07 16:35:16 -08001072 description=
1073 "How to perform various tasks and keep your app's data and your user's data secure."
1074 >Security Tips</a>
1075 </li>
1076
Scott Main50e990c2012-06-21 17:14:39 -07001077 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001078 <div class="nav-section-header">
1079 <a href="<?cs var:toroot ?>training/enterprise/index.html"
1080 description=
1081 "How to implement device management policies for enterprise-oriented apps."
1082 >Developing for Enterprise</a>
Scott Main50e990c2012-06-21 17:14:39 -07001083 </div>
1084 <ul>
Scott Main22cc2762012-11-07 16:35:16 -08001085 <li><a href="<?cs var:toroot ?>training/enterprise/device-management-policy.html">
1086 Enhancing Security with Device Management Policies
Scott Main50e990c2012-06-21 17:14:39 -07001087 </a>
1088 </li>
1089 </ul>
1090 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001091 </ul>
1092 </li>
1093 <!-- End security and user info -->
Scott Main50e990c2012-06-21 17:14:39 -07001094
Scott Main50e990c2012-06-21 17:14:39 -07001095
Scott Main22cc2762012-11-07 16:35:16 -08001096 <li class="nav-section">
1097 <div class="nav-section-header">
1098 <a href="<?cs var:toroot ?>training/distribute.html">
1099 <span class="small">Using Google Play to</span><br/>
1100 Distribute &amp; Monetize
1101 </a>
1102 </div>
1103 <ul>
Quddus Chong768dba62012-12-08 17:06:30 -08001104 <li class="nav-section">
1105 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/in-app-billing/index.html"
1106 description="How to sell in-app products from your application using In-app Billing.">
1107 Selling In-app Products
1108 </a></div>
1109 <ul>
1110 <li><a href="<?cs var:toroot ?>training/in-app-billing/preparing-iab-app.html">
1111 <span class="en">Preparing Your App</span>
1112 </a>
1113 </li>
1114 <li><a href="<?cs var:toroot ?>training/in-app-billing/list-iab-products.html">
1115 <span class="en">Establishing Products for Sale</span>
1116 </a>
1117 </li>
1118 <li><a href="<?cs var:toroot ?>training/in-app-billing/purchase-iab-products.html">
1119 <span class="en">Purchasing Products</span>
1120 </a>
1121 </li>
1122 <li><a href="<?cs var:toroot ?>training/in-app-billing/test-iab-app.html">
1123 <span class="en">Testing Your App</span>
1124 </a>
1125 </li>
1126 </ul>
1127 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001128
Scott Main50e990c2012-06-21 17:14:39 -07001129 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001130 <div class="nav-section-header">
1131 <a href="<?cs var:toroot ?>training/multiple-apks/index.html"
1132 description=
1133 "How to publish your app on Google Play with separate APKs that target
1134 different devices, while using a single app listing."
1135 >Maintaining Multiple APKs</a>
1136 </div>
Scott Main50e990c2012-06-21 17:14:39 -07001137 <ul>
1138 <li><a href="<?cs var:toroot ?>training/multiple-apks/api.html">
Scott Main22cc2762012-11-07 16:35:16 -08001139 Creating Multiple APKs for Different API Levels
Scott Main50e990c2012-06-21 17:14:39 -07001140 </a>
1141 </li>
1142 <li><a href="<?cs var:toroot ?>training/multiple-apks/screensize.html">
Scott Main22cc2762012-11-07 16:35:16 -08001143 Creating Multiple APKs for Different Screen Sizes
Scott Main50e990c2012-06-21 17:14:39 -07001144 </a>
1145 </li>
1146 <li><a href="<?cs var:toroot ?>training/multiple-apks/texture.html">
Scott Main22cc2762012-11-07 16:35:16 -08001147 Creating Multiple APKs for Different GL Textures
Scott Main50e990c2012-06-21 17:14:39 -07001148 </a>
1149 </li>
1150 <li><a href="<?cs var:toroot ?>training/multiple-apks/multiple.html">
Scott Main22cc2762012-11-07 16:35:16 -08001151 Creating Multiple APKs with 2+ Dimensions
Scott Main50e990c2012-06-21 17:14:39 -07001152 </a>
1153 </li>
1154 </ul>
1155 </li>
Scott Main50e990c2012-06-21 17:14:39 -07001156 <li class="nav-section">
Scott Main22cc2762012-11-07 16:35:16 -08001157 <div class="nav-section-header">
1158 <a href="<?cs var:toroot ?>training/monetization/index.html"
1159 description=
1160 "How to implement monetization strategies for your app without compromising
1161 the user experience."
1162 >Monetizing Your App</a>
1163 </div>
Scott Main50e990c2012-06-21 17:14:39 -07001164 <ul>
1165 <li><a href="<?cs var:toroot ?>training/monetization/ads-and-ux.html">
Scott Main22cc2762012-11-07 16:35:16 -08001166 Advertising without Compromising User Experience
Scott Main50e990c2012-06-21 17:14:39 -07001167 </a>
1168 </li>
1169 </ul>
1170 </li>
Scott Main50e990c2012-06-21 17:14:39 -07001171 </ul>
1172 </li>
Scott Main22cc2762012-11-07 16:35:16 -08001173 <!-- End best Publishing -->
1174
Scott Main50e990c2012-06-21 17:14:39 -07001175</ul><!-- nav -->
Scott Main50e990c2012-06-21 17:14:39 -07001176<script type="text/javascript">
1177<!--
1178 buildToggleLists();
1179 changeNavLang(getLangPref());
1180//-->
1181</script>