Home | History | Annotate | Download | only in training
      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&mdash;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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &quot;ten foot experience&quot; 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 &lt;include/&gt;
   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 &quot;Application Not Responding&quot; 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 &amp; 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 &amp; 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