1 <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"> 7 Getting Started 8 </a> 9 </div> 10 11 <ul> 12 <li class="nav-section"> 13 <div class="nav-section-header"> 14 <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> 19 </div> 20 <ul> 21 <li><a href="<?cs var:toroot ?>training/basics/firstapp/creating-project.html"> 22 Creating an Android Project 23 </a> 24 </li> 25 <li><a href="<?cs var:toroot ?>training/basics/firstapp/running-app.html"> 26 Running Your Application 27 </a> 28 </li> 29 <li><a href="<?cs var:toroot ?>training/basics/firstapp/building-ui.html"> 30 Building a Simple User Interface 31 </a> 32 </li> 33 <li><a href="<?cs var:toroot ?>training/basics/firstapp/starting-activity.html"> 34 Starting Another Activity 35 </a> 36 </li> 37 </ul> 38 </li> 39 40 <li class="nav-section"> 41 <div class="nav-section-header"> 42 <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 45 app's activities. Although first introduced with API level 11, you can use the Support Library to 46 include 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"> 71 <a href="<?cs var:toroot ?>training/basics/supporting-devices/index.html" 72 description= 73 "How to build your app with alternative resources that provide an 74 optimized user experience on multiple device form factors using a single APK." 75 >Supporting Different Devices</a> 76 </div> 77 <ul> 78 <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/languages.html"> 79 Supporting Different Languages 80 </a> 81 </li> 82 <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/screens.html"> 83 Supporting Different Screens 84 </a> 85 </li> 86 <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/platforms.html"> 87 Supporting Different Platform Versions 88 </a> 89 </li> 90 </ul> 91 </li> 92 93 <li class="nav-section"> 94 <div class="nav-section-header"> 95 <a href="<?cs var:toroot ?>training/basics/activity-lifecycle/index.html" 96 description= 97 "How Android activities live and die and how to create 98 a seamless user experience by implementing lifecycle callback methods." 99 >Managing the Activity Lifecycle</a> 100 </div> 101 <ul> 102 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/starting.html"> 103 Starting an Activity 104 </a> 105 </li> 106 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/pausing.html"> 107 Pausing and Resuming an Activity 108 </a> 109 </li> 110 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/stopping.html"> 111 Stopping and Restarting an Activity 112 </a> 113 </li> 114 <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/recreating.html"> 115 Recreating an Activity 116 </a> 117 </li> 118 </ul> 119 </li> 120 121 <li class="nav-section"> 122 <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—essential for building a single APK for both 128 phones and tablets." 129 >Building a Dynamic UI with Fragments</a> 130 </div> 131 <ul> 132 <li><a href="<?cs var:toroot ?>training/basics/fragments/creating.html"> 133 Creating a Fragment 134 </a> 135 </li> 136 <li><a href="<?cs var:toroot ?>training/basics/fragments/fragment-ui.html"> 137 Building a Flexible UI 138 </a> 139 </li> 140 <li><a href="<?cs var:toroot ?>training/basics/fragments/communicating.html"> 141 Communicating with Other Fragments 142 </a> 143 </li> 144 </ul> 145 </li> 146 147 <li class="nav-section"> 148 <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> 154 <ul> 155 <li><a href="<?cs var:toroot ?>training/basics/data-storage/shared-preferences.html"> 156 Saving Key-Value Sets 157 </a> 158 </li> 159 <li><a href="<?cs var:toroot ?>training/basics/data-storage/files.html"> 160 Saving Files 161 </a> 162 </li> 163 <li><a href="<?cs var:toroot ?>training/basics/data-storage/databases.html"> 164 Saving Data in SQL Databases 165 </a> 166 </li> 167 </ul> 168 </li> 169 170 <li class="nav-section"> 171 <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> 179 <ul> 180 <li><a href="<?cs var:toroot ?>training/basics/intents/sending.html"> 181 Sending the User to Another App 182 </a> 183 </li> 184 <li><a href="<?cs var:toroot ?>training/basics/intents/result.html"> 185 Getting a Result from the Activity 186 </a> 187 </li> 188 <li><a href="<?cs var:toroot ?>training/basics/intents/filters.html"> 189 Allowing Other Apps to Start Your Activity 190 </a> 191 </li> 192 </ul> 193 </li> 194 195 </ul> 196 </li><!-- end getting started --> 197 <li class="nav-section"> 198 <div class="nav-section-header"> 199 <a href="<?cs var:toroot ?>training/building-content-sharing.html"> 200 <span class="small">Building Apps with</span><br/>Content Sharing 201 </a> 202 </div> 203 <ul> 204 <li class="nav-section"> 205 <div class="nav-section-header"> 206 <a href="<?cs var:toroot ?>training/sharing/index.html" 207 description= 208 "How to take your app interaction to the next level by sharing 209 information with other apps, receive information back, and provide a simple and 210 scalable way to perform Share actions with user content." 211 >Sharing Simple Data</a> 212 </div> 213 <ul> 214 <li> 215 <a href="<?cs var:toroot ?>training/sharing/send.html"> 216 Sending Simple Data to Other Apps 217 </a> 218 </li> 219 <li> 220 <a href="<?cs var:toroot ?>training/sharing/receive.html"> 221 Receiving Simple Data from Other Apps 222 </a> 223 </li> 224 <li> 225 <a href="<?cs var:toroot ?>training/sharing/shareaction.html"> 226 Adding an Easy Share Action 227 </a> 228 </li> 229 </ul> 230 </li> 231 <li class="nav-section"> 232 <div class="nav-section-header"> 233 <a href="<?cs var:toroot?>training/secure-file-sharing/index.html" 234 description= 235 "How to provide secure access to a file associated with your app using a content 236 URI and temporary access permissions." 237 >Sharing Files</a> 238 </div> 239 <ul> 240 <li> 241 <a href="<?cs var:toroot ?>training/secure-file-sharing/setup-sharing.html"> 242 Setting Up File Sharing 243 </a> 244 </li> 245 <li> 246 <a href="<?cs var:toroot ?>training/secure-file-sharing/share-file.html"> 247 Sharing a File 248 </a> 249 </li> 250 <li> 251 <a href="<?cs var:toroot ?>training/secure-file-sharing/request-file.html"> 252 Requesting a Shared File 253 </a> 254 </li> 255 <li> 256 <a href="<?cs var:toroot ?>training/secure-file-sharing/retrieve-info.html"> 257 Retrieving File Information 258 </a> 259 </li> 260 </ul> 261 </li> 262 <li class="nav-section"> 263 <div class="nav-section-header"> 264 <a href="<?cs var:toroot ?>training/beam-files/index.html" 265 description= 266 "How to transfer files between devices using the NFC Android Beam feature." 267 >Sharing Files with NFC</a> 268 </div> 269 <ul> 270 <li> 271 <a href="<?cs var:toroot ?>training/beam-files/send-files.html" 272 >Sending Files to Another Device</a> 273 </li> 274 <li><a href="<?cs var:toroot ?>training/beam-files/receive-files.html" 275 >Receiving Files from Another Device</a></li> 276 </ul> 277 </li> 278 </ul> 279 </li> 280 281 282 283 <li class="nav-section"> 284 <div class="nav-section-header"> 285 <a href="<?cs var:toroot ?>training/building-multimedia.html"> 286 <span class="small">Building Apps with</span><br/>Multimedia 287 </a> 288 </div> 289 <ul> 290 291 <li class="nav-section"> 292 <div class="nav-section-header"> 293 <a href="<?cs var:toroot ?>training/managing-audio/index.html" 294 description= 295 "How to respond to hardware audio key presses, request audio focus 296 when playing audio, and respond appropriately to changes in audio focus." 297 >Managing Audio Playback</a> 298 </div> 299 <ul> 300 <li><a href="<?cs var:toroot ?>training/managing-audio/volume-playback.html"> 301 Controlling Your App's Volume and Playback 302 </a> 303 </li> 304 <li><a href="<?cs var:toroot ?>training/managing-audio/audio-focus.html"> 305 Managing Audio Focus 306 </a> 307 </li> 308 <li><a href="<?cs var:toroot ?>training/managing-audio/audio-output.html"> 309 Dealing with Audio Output Hardware 310 </a> 311 </li> 312 </ul> 313 </li> 314 315 <li class="nav-section"> 316 <div class="nav-section-header"> 317 <a href="<?cs var:toroot ?>training/camera/index.html" 318 description= 319 "How to leverage existing camera apps on the user's device to capture 320 photos or control the camera hardware directly and build your own camera app." 321 >Capturing Photos</a> 322 </div> 323 <ul> 324 <li><a href="<?cs var:toroot ?>training/camera/photobasics.html"> 325 Taking Photos Simply 326 </a> 327 </li> 328 <li><a href="<?cs var:toroot ?>training/camera/videobasics.html"> 329 Recording Videos Simply 330 </a> 331 </li> 332 <li><a href="<?cs var:toroot ?>training/camera/cameradirect.html"> 333 Controlling the Camera 334 </a> 335 </li> 336 </ul> 337 </li> 338 339 <li class="nav-section"> 340 <div class="nav-section-header"> 341 <a href="<?cs var:toroot ?>training/printing/index.html" 342 description= 343 "How to print photos, HTML documents, and custom documents from your app." 344 >Printing Content</a> 345 </div> 346 <ul> 347 <li><a href="<?cs var:toroot ?>training/printing/photos.html"> 348 Photos 349 </a> 350 </li> 351 <li><a href="<?cs var:toroot ?>training/printing/html-docs.html"> 352 HTML Documents 353 </a> 354 </li> 355 <li><a href="<?cs var:toroot ?>training/printing/custom-docs.html"> 356 Custom Documents 357 </a> 358 </li> 359 </ul> 360 </li> 361 362 </ul> 363 </li> 364 <!-- End multimedia --> 365 366 367 368 <li class="nav-section"> 369 <div class="nav-section-header"> 370 <a href="<?cs var:toroot ?>training/building-graphics.html"> 371 <span class="small">Building Apps with</span><br/>Graphics & Animation 372 </a> 373 </div> 374 <ul> 375 376 <li class="nav-section"> 377 <div class="nav-section-header"> 378 <a href="<?cs var:toroot ?>training/displaying-bitmaps/index.html" 379 description= 380 "How to load and process bitmaps while keeping your user interface 381 responsive and avoid exceeding memory limits." 382 >Displaying Bitmaps Efficiently</a> 383 </div> 384 <ul> 385 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/load-bitmap.html"> 386 Loading Large Bitmaps Efficiently 387 </a> 388 </li> 389 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/process-bitmap.html"> 390 Processing Bitmaps Off the UI Thread 391 </a> 392 </li> 393 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/cache-bitmap.html"> 394 Caching Bitmaps 395 </a> 396 </li> 397 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/manage-memory.html"> 398 Managing Bitmap Memory 399 </a> 400 </li> 401 <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/display-bitmap.html"> 402 Displaying Bitmaps in Your UI 403 </a></li> 404 </ul> 405 </li> 406 407 <li class="nav-section"> 408 <div class="nav-section-header"> 409 <a href="<?cs var:toroot?>training/graphics/opengl/index.html" 410 description= 411 "How to create OpenGL graphics within the Android app framework 412 and respond to touch input." 413 >Displaying Graphics with OpenGL ES</a> 414 </div> 415 <ul> 416 <li><a href="<?cs var:toroot ?>training/graphics/opengl/environment.html"> 417 Building an OpenGL ES Environment 418 </a> 419 </li> 420 <li><a href="<?cs var:toroot ?>training/graphics/opengl/shapes.html"> 421 Defining Shapes 422 </a> 423 </li> 424 <li><a href="<?cs var:toroot ?>training/graphics/opengl/draw.html"> 425 Drawing Shapes 426 </a> 427 </li> 428 <li><a href="<?cs var:toroot ?>training/graphics/opengl/projection.html"> 429 Applying Projection and Camera Views 430 </a> 431 </li> 432 <li><a href="<?cs var:toroot ?>training/graphics/opengl/motion.html"> 433 Adding Motion 434 </a> 435 </li> 436 <li><a href="<?cs var:toroot ?>training/graphics/opengl/touch.html"> 437 Responding to Touch Events 438 </a> 439 </li> 440 </ul> 441 </li> 442 <li class="nav-section"> 443 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/animation/index.html" 444 description= 445 "How to add transitional animations to your user interface."> 446 Adding Animations 447 </a></div> 448 <ul> 449 <li><a href="<?cs var:toroot ?>training/animation/crossfade.html"> 450 Crossfading Two Views 451 </a> 452 </li> 453 <li><a href="<?cs var:toroot ?>training/animation/screen-slide.html"> 454 Using ViewPager for Screen Slide 455 </a> 456 </li> 457 <li><a href="<?cs var:toroot ?>training/animation/cardflip.html"> 458 Displaying Card Flip Animations 459 </a> 460 </li> 461 <li><a href="<?cs var:toroot ?>training/animation/zoom.html"> 462 Zooming a View 463 </a> 464 </li> 465 <li><a href="<?cs var:toroot ?>training/animation/layout.html"> 466 Animating Layout Changes 467 </a> 468 </li> 469 </ul> 470 </li> 471 </ul> 472 </li> 473 <!-- End graphics and animation --> 474 475 476 <li class="nav-section"> 477 <div class="nav-section-header"> 478 <a href="<?cs var:toroot ?>training/building-connectivity.html"> 479 <span class="small">Building Apps with</span><br/> 480 Connectivity & the Cloud 481 </a> 482 </div> 483 <ul> 484 485 <li class="nav-section"> 486 <div class="nav-section-header"> 487 <a href="<?cs var:toroot ?>training/connect-devices-wirelessly/index.html" 488 description= 489 "How to find and connect to local devices using Network Service 490 Discovery and how to create peer-to-peer connections with Wi-Fi." 491 >Connecting Devices Wirelessly</a> 492 </div> 493 <ul> 494 <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd.html"> 495 Using Network Service Discovery 496 </a> 497 </li> 498 <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/wifi-direct.html"> 499 Creating P2P Connections with Wi-Fi 500 </a> 501 </li> 502 <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd-wifi-direct.html"> 503 Using Wi-Fi P2P for Service Discovery 504 </a> 505 </li> 506 </ul> 507 </li> 508 <li class="nav-section"> 509 <div class="nav-section-header"> 510 <a href="<?cs var:toroot ?>training/basics/network-ops/index.html" 511 description= 512 "How to create a network connection, monitor the connection for changes 513 in connectivity, and perform transactions with XML data." 514 >Performing Network Operations</a> 515 </div> 516 <ul> 517 <li><a href="<?cs var:toroot ?>training/basics/network-ops/connecting.html"> 518 Connecting to the Network 519 </a> 520 </li> 521 <li><a href="<?cs var:toroot ?>training/basics/network-ops/managing.html"> 522 Managing Network Usage 523 </a> 524 </li> 525 <li><a href="<?cs var:toroot ?>training/basics/network-ops/xml.html"> 526 Parsing XML Data 527 </a> 528 </li> 529 </ul> 530 </li> 531 <li class="nav-section"> 532 <div class="nav-section-header"> 533 <a href="<?cs var:toroot ?>training/efficient-downloads/index.html" 534 description= 535 "How to minimize your app's impact on the battery when performing downloads 536 and other network transactions." 537 >Transferring Data Without Draining the Battery</a> 538 </div> 539 <ul> 540 <li><a href="<?cs var:toroot ?>training/efficient-downloads/efficient-network-access.html"> 541 Optimizing Downloads for Efficient Network Access 542 </a> 543 </li> 544 <li><a href="<?cs var:toroot ?>training/efficient-downloads/regular_updates.html"> 545 Minimizing the Effect of Regular Updates 546 </a> 547 </li> 548 <li><a href="<?cs var:toroot ?>training/efficient-downloads/redundant_redundant.html"> 549 Redundant Downloads are Redundant 550 </a> 551 </li> 552 <li><a href="<?cs var:toroot ?>training/efficient-downloads/connectivity_patterns.html"> 553 Modifying Patterns Based on the Connectivity Type 554 </a> 555 </li> 556 </ul> 557 </li> 558 559 <li class="nav-section"> 560 <div class="nav-section-header"> 561 <a href="<?cs var:toroot ?>training/cloudsync/index.html" 562 description= 563 "How to sync and back up app and user data to remote web services in the 564 cloud and how to restore the data back to multiple devices." 565 >Syncing to the Cloud</a> 566 </div> 567 <ul> 568 <li><a href="<?cs var:toroot ?>training/cloudsync/backupapi.html"> 569 Using the Backup API 570 </a> 571 </li> 572 <li><a href="<?cs var:toroot ?>training/cloudsync/gcm.html"> 573 Making the Most of Google Cloud Messaging 574 </a> 575 </li> 576 </ul> 577 <li><a href="<?cs var:toroot ?>training/cloudsave/conflict-res.html" 578 description= 579 "How to design a robust conflict resolution strategy for apps that save data to the cloud." 580 >Resolving Cloud Save Conflicts 581 </a> 582 </li> 583 </li> 584 <li class="nav-section"> 585 <div class="nav-section-header"> 586 <a href="<?cs var:toroot ?>training/sync-adapters/index.html" 587 description="How to transfer data between the cloud and the device using the Android 588 sync adapter framework" 589 >Transferring Data Using Sync Adapters</a> 590 </div> 591 <ul> 592 <li> 593 <a href="<?cs var:toroot ?>training/sync-adapters/creating-authenticator.html"> 594 Creating a Stub Authenticator 595 </a> 596 </li> 597 <li> 598 <a href="<?cs var:toroot ?>training/sync-adapters/creating-stub-provider.html"> 599 Creating a Stub Content Provider 600 </a> 601 </li> 602 <li> 603 <a href="<?cs var:toroot ?>training/sync-adapters/creating-sync-adapter.html"> 604 Creating a Sync Adapter 605 </a> 606 </li> 607 <li> 608 <a href="<?cs var:toroot ?>training/sync-adapters/running-sync-adapter.html"> 609 Running a Sync Adapter 610 </a> 611 </li> 612 </ul> 613 </li> 614 615 </ul> 616 </li> 617 <!-- End connectivity and cloud --> 618 619 620 621 <li class="nav-section"> 622 <div class="nav-section-header"> 623 <a href="<?cs var:toroot ?>training/building-userinfo.html"> 624 <span class="small">Building Apps with</span><br/> 625 User Info & Location 626 </a> 627 </div> 628 <ul> 629 <li class="nav-section"> 630 <div class="nav-section-header"> 631 <a href="<?cs var:toroot ?>training/contacts-provider/index.html" 632 description= 633 "How to use Android's central address book, the Contacts Provider, to 634 display contacts and their details and modify contact information."> 635 Accessing Contacts Data</a> 636 </div> 637 <ul> 638 <li> 639 <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-names.html"> 640 Retrieving a List of Contacts 641 </a> 642 </li> 643 <li> 644 <a href="<?cs var:toroot ?>training/contacts-provider/retrieve-details.html"> 645 Retrieving Details for a Contact 646 </a> 647 </li> 648 <li> 649 <a href="<?cs var:toroot ?>training/contacts-provider/modify-data.html"> 650 Modifying Contacts Using Intents 651 </a> 652 </li> 653 <li> 654 <a href="<?cs var:toroot ?>training/contacts-provider/display-contact-badge.html"> 655 Displaying the Quick Contact Badge 656 </a> 657 </li> 658 </ul> 659 </li> 660 661 <li class="nav-section"> 662 <div class="nav-section-header"> 663 <a href="<?cs var:toroot ?>training/location/index.html" 664 description="How to add location-aware features to your app by getting the user's current location."> 665 Making Your App Location-Aware 666 </a> 667 </div> 668 <ul> 669 <li> 670 <a href="<?cs var:toroot ?>training/location/retrieve-current.html"> 671 Retrieving the Current Location 672 </a> 673 </li> 674 <li> 675 <a href="<?cs var:toroot ?>training/location/receive-location-updates.html"> 676 Receiving Location Updates 677 </a> 678 </li> 679 <li> 680 <a href="<?cs var:toroot ?>training/location/display-address.html"> 681 Displaying a Location Address 682 </a> 683 </li> 684 <li><a href="<?cs var:toroot ?>training/location/geofencing.html"> 685 Creating and Monitoring Geofences 686 </a> 687 </li> 688 <li><a href="<?cs var:toroot ?>training/location/activity-recognition.html"> 689 Recognizing the User's Current Activity 690 </a> 691 </li> 692 <li><a href="<?cs var:toroot ?>training/location/location-testing.html"> 693 Testing Using Mock Locations 694 </a> 695 </li> 696 </ul> 697 </li> 698 </ul> 699 </li> 700 <!-- End privacy and location --> 701 702 703 704 <li class="nav-section"> 705 <div class="nav-section-header"> 706 <a href="<?cs var:toroot ?>training/best-ux.html"> 707 <span class="small">Best Practices for</span><br/> 708 User Experience & UI 709 </a> 710 </div> 711 <ul> 712 713 <li class="nav-section"> 714 <div class="nav-section-header"> 715 <a href="<?cs var:toroot ?>training/design-navigation/index.html" 716 description= 717 "How to plan your app's screen hierarchy and forms of navigation so users can 718 effectively and intuitively traverse your app content using various navigation 719 patterns." 720 >Designing Effective Navigation</a> 721 </div> 722 <ul> 723 <li><a href="<?cs var:toroot ?>training/design-navigation/screen-planning.html"> 724 Planning Screens and Their Relationships 725 </a> 726 </li> 727 <li><a href="<?cs var:toroot ?>training/design-navigation/multiple-sizes.html"> 728 Planning for Multiple Touchscreen Sizes 729 </a> 730 </li> 731 <li><a href="<?cs var:toroot ?>training/design-navigation/descendant-lateral.html"> 732 Providing Descendant and Lateral Navigation 733 </a> 734 </li> 735 <li><a href="<?cs var:toroot ?>training/design-navigation/ancestral-temporal.html"> 736 Providing Ancestral and Temporal Navigation 737 </a> 738 </li> 739 <li><a href="<?cs var:toroot ?>training/design-navigation/wireframing.html"> 740 Putting it All Together: Wireframing the Example App 741 </a> 742 </li> 743 </ul> 744 </li> 745 746 <li class="nav-section"> 747 <div class="nav-section-header"> 748 <a href="<?cs var:toroot ?>training/implementing-navigation/index.html" 749 description= 750 "How to implement various navigation patterns such as swipe views, 751 a navigation drawer, and up navigation." 752 >Implementing Effective Navigation</a> 753 </div> 754 <ul> 755 <li><a href="<?cs var:toroot ?>training/implementing-navigation/lateral.html"> 756 Creating Swipe Views with Tabs 757 </a> 758 </li> 759 <li><a href="<?cs var:toroot ?>training/implementing-navigation/nav-drawer.html"> 760 Creating a Navigation Drawer 761 </a> 762 </li> 763 <li><a href="<?cs var:toroot ?>training/implementing-navigation/ancestral.html"> 764 Providing Up Navigation 765 </a> 766 </li> 767 <li><a href="<?cs var:toroot ?>training/implementing-navigation/temporal.html"> 768 Providing Proper Back Navigation 769 </a> 770 </li> 771 <li><a href="<?cs var:toroot ?>training/implementing-navigation/descendant.html"> 772 Implementing Descendant Navigation 773 </a> 774 </li> 775 </ul> 776 </li> 777 778 <li class="nav-section"> 779 <div class="nav-section-header"> 780 <a href="<?cs var:toroot ?>training/notify-user/index.html" 781 description= 782 "How to display messages called notifications outside of 783 your application's UI." 784 >Notifying the User</a> 785 </div> 786 <ul> 787 <li> 788 <a href="<?cs var:toroot ?>training/notify-user/build-notification.html"> 789 Building a Notification 790 </a> 791 </li> 792 <li> 793 <a href="<?cs var:toroot ?>training/notify-user/navigation.html"> 794 Preserving Navigation when Starting an Activity 795 </a> 796 </li> 797 <li> 798 <a href="<?cs var:toroot ?>training/notify-user/managing.html"> 799 Updating Notifications 800 </a> 801 </li> 802 <li> 803 <a href="<?cs var:toroot ?>training/notify-user/expanded.html"> 804 Using Big View Styles 805 </a> 806 </li> 807 <li> 808 <a href="<?cs var:toroot ?>training/notify-user/display-progress.html"> 809 Displaying Progress in a Notification 810 </a> 811 </li> 812 </ul> 813 </li> 814 815 <li class="nav-section"> 816 <div class="nav-section-header"> 817 <a href="<?cs var:toroot ?>training/search/index.html" 818 description= 819 "How to properly add a search interface to your app and create a searchable database." 820 >Adding Search Functionality</a> 821 </div> 822 <ul> 823 <li><a href="<?cs var:toroot ?>training/search/setup.html"> 824 Setting up the Search Interface 825 </a> 826 </li> 827 <li><a href="<?cs var:toroot ?>training/search/search.html"> 828 Storing and Searching for Data 829 </a> 830 </li> 831 <li><a href="<?cs var:toroot ?>training/search/backward-compat.html"> 832 Remaining Backward Compatible 833 </a> 834 </li> 835 </ul> 836 </li> 837 838 839 <li class="nav-section"> 840 <div class="nav-section-header"> 841 <a href="/training/multiscreen/index.html" 842 zh-cn-lang="" 843 ja-lang="" 844 es-lang="Cmo disear aplicaciones para varias pantallas" 845 description= 846 "How to build a user interface that's flexible enough to 847 fit perfectly on any screen and how to create different interaction 848 patterns that are optimized for different screen sizes." 849 >Designing for Multiple Screens</a> 850 </div> 851 <ul> 852 <li><a href="/training/multiscreen/screensizes.html" 853 zh-cn-lang="" 854 ko-lang=" " 855 ja-lang="" 856 es-lang="Cmo admitir varios tamaos de pantalla" 857 >Supporting Different Screen Sizes</a> 858 </li> 859 <li><a href="/training/multiscreen/screendensities.html" 860 zh-cn-lang="" 861 ja-lang="" 862 es-lang="Cmo admitir varias densidades de pantalla" 863 >Supporting Different Screen Densities</a> 864 </li> 865 <li><a href="/training/multiscreen/adaptui.html" 866 zh-cn-lang="" 867 ja-lang=" UI " 868 es-lang="Cmo implementar interfaces de usuario adaptables" 869 >Implementing Adaptive UI Flows</a> 870 </li> 871 </ul> 872 </li> 873 874 <li class="nav-section"> 875 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/tv/index.html" 876 description= 877 "How to optimize your app's user interface and user input for 878 the "ten foot experience" of a TV screen." 879 >Designing for TV</a> 880 </div> 881 <ul> 882 <li><a href="<?cs var:toroot ?>training/tv/optimizing-layouts-tv.html"> 883 Optimizing Layouts for TV 884 </a> 885 </li> 886 <li><a href="<?cs var:toroot ?>training/tv/optimizing-navigation-tv.html"> 887 Optimizing Navigation for TV 888 </a> 889 </li> 890 <li><a href="<?cs var:toroot ?>training/tv/unsupported-features-tv.html"> 891 Handling Features Not Supported on TV 892 </a> 893 </li> 894 </ul> 895 </li> 896 897 <li class="nav-section"> 898 <div class="nav-section-header"> 899 <a href="<?cs var:toroot ?>training/custom-views/index.html" 900 description= 901 "How to build custom UI widgets that are interactive and smooth." 902 >Creating Custom Views</a> 903 </div> 904 <ul> 905 <li><a href="<?cs var:toroot ?>training/custom-views/create-view.html"> 906 Creating a Custom View Class 907 </a> 908 </li> 909 <li><a href="<?cs var:toroot ?>training/custom-views/custom-drawing.html"> 910 Implementing Custom Drawing 911 </a> 912 </li> 913 <li><a href="<?cs var:toroot ?>training/custom-views/making-interactive.html"> 914 Making the View Interactive 915 </a> 916 </li> 917 <li><a href="<?cs var:toroot ?>training/custom-views/optimizing-view.html"> 918 Optimizing the View 919 </a> 920 </li> 921 </ul> 922 </li> 923 924 <li class="nav-section"> 925 <div class="nav-section-header"> 926 <a href="<?cs var:toroot ?>training/backward-compatible-ui/index.html" 927 description= 928 "How to use UI components and other APIs from the more recent versions of Android 929 while remaining compatible with older versions of the platform." 930 >Creating Backward-Compatible UIs</a> 931 </div> 932 <ul> 933 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/abstracting.html"> 934 Abstracting the New APIs 935 </a> 936 </li> 937 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/new-implementation.html"> 938 Proxying to the New APIs 939 </a> 940 </li> 941 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/older-implementation.html"> 942 Creating an Implementation with Older APIs 943 </a> 944 </li> 945 <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/using-component.html"> 946 Using the Version-Aware Component 947 </a> 948 </li> 949 </ul> 950 </li> 951 952 <li class="nav-section"> 953 <div class="nav-section-header"> 954 <a href="<?cs var:toroot ?>training/accessibility/index.html" 955 description= 956 "How to make your app accessible to users with vision 957 impairment or other physical disabilities." 958 >Implementing Accessibility</a> 959 </div> 960 <ul> 961 <li><a href="<?cs var:toroot ?>training/accessibility/accessible-app.html"> 962 Developing Accessible Applications 963 </a> 964 </li> 965 <li><a href="<?cs var:toroot ?>training/accessibility/service.html"> 966 Developing Accessibility Services 967 </a> 968 </li> 969 </ul> 970 </li> 971 972 <li class="nav-section"> 973 <div class="nav-section-header"> 974 <a href="<?cs var:toroot ?>training/system-ui/index.html" 975 description= 976 "How to hide and show status and navigation bars across different versions of Android, 977 while managing the display of other screen components." 978 >Managing the System UI</a> 979 </div> 980 <ul> 981 <li><a href="<?cs var:toroot ?>training/system-ui/dim.html"> 982 Dimming the System Bars 983 </a> 984 </li> 985 <li><a href="<?cs var:toroot ?>training/system-ui/status.html"> 986 Hiding the Status Bar 987 </a> 988 </li> 989 <li><a href="<?cs var:toroot ?>training/system-ui/navigation.html"> 990 Hiding the Navigation Bar 991 </a> 992 </li> 993 <li><a href="<?cs var:toroot ?>training/system-ui/visibility.html"> 994 Responding to UI Visibility Changes 995 </a> 996 </li> 997 </ul> 998 </li> 999 1000 </ul> 1001 </li> 1002 <!-- End best UX and UI --> 1003 1004 1005 <li class="nav-section"> 1006 <div class="nav-section-header"> 1007 <a href="<?cs var:toroot ?>training/best-user-input.html"> 1008 <span class="small">Best Practices for</span><br/> 1009 User Input 1010 </a> 1011 </div> 1012 <ul> 1013 1014 <li class="nav-section"> 1015 <div class="nav-section-header"> 1016 <a href="<?cs var:toroot ?>training/gestures/index.html" 1017 description= 1018 "How to write apps that allow users to interact with the touch screen via touch gestures." 1019 >Using Touch Gestures</a> 1020 </div> 1021 <ul> 1022 <li><a href="<?cs var:toroot ?>training/gestures/detector.html"> 1023 Detecting Common Gestures 1024 </a> 1025 </li> 1026 <li><a href="<?cs var:toroot ?>training/gestures/movement.html"> 1027 Tracking Movement 1028 </a> 1029 </li> 1030 <li><a href="<?cs var:toroot ?>training/gestures/scroll.html"> 1031 Animating a Scroll Gesture 1032 </a> 1033 </li> 1034 <li><a href="<?cs var:toroot ?>training/gestures/multi.html"> 1035 Handling Multi-Touch Gestures 1036 </a> 1037 </li> 1038 <li><a href="<?cs var:toroot ?>training/gestures/scale.html"> 1039 Dragging and Scaling 1040 </a> 1041 </li> 1042 <li><a href="<?cs var:toroot ?>training/gestures/viewgroup.html"> 1043 Managing Touch Events in a ViewGroup 1044 </a> 1045 </li> 1046 </ul> 1047 </li> 1048 1049 <li class="nav-section"> 1050 <div class="nav-section-header"> 1051 <a href="<?cs var:toroot ?>training/keyboard-input/index.html" 1052 description= 1053 "How to specify the appearance and behaviors of soft input methods (such 1054 as on-screen keyboards) and how to optimize the experience with 1055 hardware keyboards." 1056 >Handling Keyboard Input</a> 1057 </div> 1058 <ul> 1059 <li><a href="<?cs var:toroot ?>training/keyboard-input/style.html"> 1060 Specifying the Input Method Type 1061 </a> 1062 </li> 1063 <li><a href="<?cs var:toroot ?>training/keyboard-input/visibility.html"> 1064 Handling Input Method Visibility 1065 </a> 1066 </li> 1067 <li><a href="<?cs var:toroot ?>training/keyboard-input/navigation.html"> 1068 Supporting Keyboard Navigation 1069 </a> 1070 </li> 1071 <li><a href="<?cs var:toroot ?>training/keyboard-input/commands.html"> 1072 Handling Keyboard Actions 1073 </a> 1074 </li> 1075 </ul> 1076 </li> 1077 </ul> 1078 </li> <!-- end of User Input --> 1079 1080 <li class="nav-section"> 1081 <div class="nav-section-header"> 1082 <a href="<?cs var:toroot ?>training/best-background.html"> 1083 <span class="small">Best Practices for</span><br/> 1084 Background Jobs 1085 </a> 1086 </div> 1087 <ul> 1088 1089 <li class="nav-section"> 1090 <div class="nav-section-header"> 1091 <a href="<?cs var:toroot ?>training/run-background-service/index.html" 1092 description= 1093 "How to improve UI performance and responsiveness by sending work to a 1094 Service running in the background" 1095 >Running in a Background Service</a> 1096 </div> 1097 <ul> 1098 <li><a href="<?cs var:toroot ?>training/run-background-service/create-service.html"> 1099 Creating a Background Service 1100 </a> 1101 </li> 1102 <li><a href="<?cs var:toroot ?>training/run-background-service/send-request.html"> 1103 Sending Work Requests to the Background Service 1104 </a> 1105 </li> 1106 <li><a href="<?cs var:toroot ?>training/run-background-service/report-status.html"> 1107 Reporting Work Status 1108 </a> 1109 </li> 1110 </ul> 1111 </li> 1112 1113 <li class="nav-section"> 1114 <div class="nav-section-header"> 1115 <a href="<?cs var:toroot ?>training/load-data-background/index.html" 1116 description="How to use CursorLoader to query data without 1117 affecting UI responsiveness." 1118 >Loading Data in the Background</a> 1119 </div> 1120 <ul> 1121 <li><a href="<?cs var:toroot ?>training/load-data-background/setup-loader.html"> 1122 Running a Query with a CursorLoader</a> 1123 </li> 1124 <li><a href="<?cs var:toroot ?>training/load-data-background/handle-results.html"> 1125 Handling the Results</a> 1126 </li> 1127 </ul> 1128 </li> 1129 1130 <li class="nav-section"> 1131 <div class="nav-section-header"> 1132 <a href="<?cs var:toroot ?>training/scheduling/index.html" 1133 description="How to use repeating alarms and wake locks 1134 to run background jobs." 1135 >Managing Device Awake State</a> 1136 </div> 1137 <ul> 1138 <li><a href="<?cs var:toroot ?>training/scheduling/wakelock.html"> 1139 Keeping the Device Awake</a> 1140 </li> 1141 <li><a href="<?cs var:toroot ?>training/scheduling/alarms.html"> 1142 Scheduling Repeating Alarms</a> 1143 </li> 1144 </ul> 1145 </li> 1146 </ul> 1147 </li> <!-- end of Background Jobs --> 1148 1149 <li class="nav-section"> 1150 <div class="nav-section-header"> 1151 <a href="<?cs var:toroot ?>training/best-performance.html"> 1152 <span class="small">Best Practices for</span><br/> 1153 Performance 1154 </a> 1155 </div> 1156 <ul> 1157 1158 <li> 1159 <a href="<?cs var:toroot ?>training/articles/memory.html" 1160 description= 1161 "How to keep your app's memory footprint small in order to improve performance 1162 on a variety of mobile devices." 1163 >Managing Your App's Memory</a> 1164 </li> 1165 1166 <li> 1167 <a href="<?cs var:toroot ?>training/articles/perf-tips.html" 1168 description= 1169 "How to optimize your app's performance in various ways to improve its 1170 responsiveness and battery efficiency." 1171 >Performance Tips</a> 1172 </li> 1173 1174 <li class="nav-section"> 1175 <div class="nav-section-header"> 1176 <a href="<?cs var:toroot ?>training/improving-layouts/index.html" 1177 description= 1178 "How to identify problems in your app's layout performance and improve the UI 1179 responsiveness." 1180 >Improving Layout Performance</a> 1181 </div> 1182 <ul> 1183 <li><a href="<?cs var:toroot ?>training/improving-layouts/optimizing-layout.html"> 1184 Optimizing Layout Hierarchies 1185 </a> 1186 </li> 1187 <li><a href="<?cs var:toroot ?>training/improving-layouts/reusing-layouts.html"> 1188 Re-using Layouts with <include/> 1189 </a> 1190 </li> 1191 <li><a href="<?cs var:toroot ?>training/improving-layouts/loading-ondemand.html"> 1192 Loading Views On Demand 1193 </a> 1194 </li> 1195 <li><a href="<?cs var:toroot ?>training/improving-layouts/smooth-scrolling.html"> 1196 Making ListView Scrolling Smooth 1197 </a> 1198 </li> 1199 </ul> 1200 </li> 1201 1202 <li class="nav-section"> 1203 <div class="nav-section-header"> 1204 <a href="/training/monitoring-device-state/index.html" 1205 zh-cn-lang="" 1206 ja-lang="" 1207 es-lang="Cmo optimizar la duracin de la batera" 1208 description= 1209 "How to minimize the amount of power your app requires by adapting to current 1210 power conditions and performing power-hungry tasks at proper intervals." 1211 >Optimizing Battery Life</a> 1212 </div> 1213 <ul> 1214 <li><a href="/training/monitoring-device-state/battery-monitoring.html" 1215 zh-cn-lang="" 1216 ja-lang="" 1217 es-lang="Cmo controlar el nivel de batera y el estado de carga" 1218 >Monitoring the Battery Level and Charging State</a> 1219 </li> 1220 <li><a href="/training/monitoring-device-state/docking-monitoring.html" 1221 zh-cn-lang="" 1222 ja-lang="" 1223 es-lang="Cmo determinar y controlar el tipo de conector y el estado de la conexin" 1224 >Determining and Monitoring the Docking State and Type</a> 1225 </li> 1226 <li><a href="/training/monitoring-device-state/connectivity-monitoring.html" 1227 zh-cn-lang="" 1228 ja-lang="" 1229 es-lang="Cmo determinar y controlar el estado de la conectividad" 1230 >Determining and Monitoring the Connectivity Status</a> 1231 </li> 1232 <li><a href="/training/monitoring-device-state/manifest-receivers.html" 1233 zh-cn-lang="" 1234 ja-lang=" " 1235 es-lang="Cmo manipular los receptores de emisin bajo demanda" 1236 >Manipulating Broadcast Receivers On Demand</a> 1237 </li> 1238 </ul> 1239 </li> 1240 <li class="nav-section"> 1241 <div class="nav-section-header"> 1242 <a href="<?cs var:toroot ?>training/multiple-threads/index.html" 1243 description= 1244 "How to improve the performance and scalability of long-running operations by 1245 dispatching work to multiple threads."> 1246 Sending Operations to Multiple Threads</a> 1247 </div> 1248 <ul> 1249 <li><a href="<?cs var:toroot ?>training/multiple-threads/define-runnable.html"> 1250 Specifying the Code to Run on a Thread 1251 </a> 1252 </li> 1253 <li><a href="<?cs var:toroot ?>training/multiple-threads/create-threadpool.html"> 1254 Creating a Manager for Multiple Threads 1255 </a> 1256 </li> 1257 <li><a href="<?cs var:toroot ?>training/multiple-threads/run-code.html"> 1258 Running Code on a Thread Pool Thread 1259 </a> 1260 </li> 1261 <li><a href="<?cs var:toroot ?>training/multiple-threads/communicate-ui.html"> 1262 Communicating with the UI Thread 1263 </a> 1264 </li> 1265 </ul> 1266 </li> 1267 1268 <li> 1269 <a href="<?cs var:toroot ?>training/articles/perf-anr.html" 1270 description= 1271 "How to keep your app responsive to user interaction so the UI does not lock-up and 1272 display an "Application Not Responding" dialog." 1273 >Keeping Your App Responsive</a> 1274 </li> 1275 1276 <li> 1277 <a href="<?cs var:toroot ?>training/articles/perf-jni.html" 1278 description= 1279 "How to efficiently use the Java Native Interface with the Android NDK." 1280 >JNI Tips</a> 1281 </li> 1282 <li> 1283 <a href="<?cs var:toroot ?>training/articles/smp.html" 1284 description= 1285 "Tips for coding Android apps on symmetric multiprocessor systems." 1286 >SMP Primer for Android</a> 1287 </li> 1288 </ul> 1289 </li> <!-- end of Performance --> 1290 1291 1292 1293 <li class="nav-section"> 1294 <div class="nav-section-header"> 1295 <a href="<?cs var:toroot ?>training/best-security.html"> 1296 <span class="small">Best Practices for</span><br/> 1297 Security & Privacy 1298 </a> 1299 </div> 1300 <ul> 1301 <li> 1302 <a href="<?cs var:toroot ?>training/articles/security-tips.html" 1303 description= 1304 "How to perform various tasks and keep your app's data and your user's data secure." 1305 >Security Tips</a> 1306 </li> 1307 1308 <li> 1309 <a href="<?cs var:toroot ?>training/articles/security-ssl.html" 1310 description= 1311 "How to ensure that your app is secure when performing network transactions." 1312 >Security with HTTPS and SSL</a> 1313 </li> 1314 1315 <li class="nav-section"> 1316 <div class="nav-section-header"> 1317 <a href="<?cs var:toroot ?>training/enterprise/index.html" 1318 description= 1319 "How to implement device management policies for enterprise-oriented apps." 1320 >Developing for Enterprise</a> 1321 </div> 1322 <ul> 1323 <li><a href="<?cs var:toroot ?>training/enterprise/device-management-policy.html"> 1324 Enhancing Security with Device Management Policies 1325 </a> 1326 </li> 1327 </ul> 1328 </li> 1329 </ul> 1330 </li> 1331 <!-- End security and user info --> 1332 1333 <li class="nav-section"> 1334 <div class="nav-section-header"> 1335 <a href="<?cs var:toroot ?>training/testing.html"> 1336 <span class="small">Best Practices for</span><br/> 1337 Testing 1338 </a> 1339 </div> 1340 <ul> 1341 <li class="nav-section"> 1342 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/activity-testing/index.html" 1343 description="How to test Activities in your Android applications."> 1344 Testing Your Activity 1345 </a></div> 1346 <ul> 1347 <li><a href="<?cs var:toroot ?>training/activity-testing/preparing-activity-testing.html"> 1348 <span class="en">Setting Up Your Test Environment</span> 1349 </a> 1350 </li> 1351 <li><a href="<?cs var:toroot ?>training/activity-testing/activity-basic-testing.html"> 1352 <span class="en">Creating and Running a Test Case</span> 1353 </a> 1354 </li> 1355 <li><a href="<?cs var:toroot ?>training/activity-testing/activity-ui-testing.html"> 1356 <span class="en">Testing UI Components</span> 1357 </a> 1358 </li> 1359 <li><a href="<?cs var:toroot ?>training/activity-testing/activity-unit-testing.html"> 1360 <span class="en">Creating Unit Tests</span> 1361 </a> 1362 </li> 1363 <li><a href="<?cs var:toroot ?>training/activity-testing/activity-functional-testing.html"> 1364 <span class="en">Creating Functional Tests</span> 1365 </a> 1366 </li> 1367 </ul> 1368 </li> 1369 </ul> 1370 </li> 1371 <!-- End best Testing --> 1372 1373 <li class="nav-section"> 1374 <div class="nav-section-header"> 1375 <a href="<?cs var:toroot ?>training/distribute.html"> 1376 <span class="small">Using Google Play to</span><br/> 1377 Distribute & Monetize 1378 </a> 1379 </div> 1380 <ul> 1381 <li class="nav-section"> 1382 <div class="nav-section-header"><a href="<?cs var:toroot ?>training/in-app-billing/index.html" 1383 description="How to sell in-app products from your application using In-app Billing."> 1384 Selling In-app Products 1385 </a></div> 1386 <ul> 1387 <li><a href="<?cs var:toroot ?>training/in-app-billing/preparing-iab-app.html"> 1388 <span class="en">Preparing Your App</span> 1389 </a> 1390 </li> 1391 <li><a href="<?cs var:toroot ?>training/in-app-billing/list-iab-products.html"> 1392 <span class="en">Establishing Products for Sale</span> 1393 </a> 1394 </li> 1395 <li><a href="<?cs var:toroot ?>training/in-app-billing/purchase-iab-products.html"> 1396 <span class="en">Purchasing Products</span> 1397 </a> 1398 </li> 1399 <li><a href="<?cs var:toroot ?>training/in-app-billing/test-iab-app.html"> 1400 <span class="en">Testing Your App</span> 1401 </a> 1402 </li> 1403 </ul> 1404 </li> 1405 1406 <li class="nav-section"> 1407 <div class="nav-section-header"> 1408 <a href="<?cs var:toroot ?>training/multiple-apks/index.html" 1409 description= 1410 "How to publish your app on Google Play with separate APKs that target 1411 different devices, while using a single app listing." 1412 >Maintaining Multiple APKs</a> 1413 </div> 1414 <ul> 1415 <li><a href="<?cs var:toroot ?>training/multiple-apks/api.html"> 1416 Creating Multiple APKs for Different API Levels 1417 </a> 1418 </li> 1419 <li><a href="<?cs var:toroot ?>training/multiple-apks/screensize.html"> 1420 Creating Multiple APKs for Different Screen Sizes 1421 </a> 1422 </li> 1423 <li><a href="<?cs var:toroot ?>training/multiple-apks/texture.html"> 1424 Creating Multiple APKs for Different GL Textures 1425 </a> 1426 </li> 1427 <li><a href="<?cs var:toroot ?>training/multiple-apks/multiple.html"> 1428 Creating Multiple APKs with 2+ Dimensions 1429 </a> 1430 </li> 1431 </ul> 1432 </li> 1433 <li class="nav-section"> 1434 <div class="nav-section-header"> 1435 <a href="<?cs var:toroot ?>training/monetization/index.html" 1436 description= 1437 "How to implement monetization strategies for your app without compromising 1438 the user experience." 1439 >Monetizing Your App</a> 1440 </div> 1441 <ul> 1442 <li><a href="<?cs var:toroot ?>training/monetization/ads-and-ux.html"> 1443 Advertising without Compromising User Experience 1444 </a> 1445 </li> 1446 </ul> 1447 </li> 1448 </ul> 1449 </li> 1450 <!-- End best Publishing --> 1451 1452 </ul><!-- nav --> 1453 <script type="text/javascript"> 1454 <!-- 1455 buildToggleLists(); 1456 changeNavLang(getLangPref()); 1457 //--> 1458 </script> 1459