<ul id="nav"> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/index.html"> Getting Started </a> </div> <ul> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/basics/firstapp/index.html" description= "After you've installed the Android SDK, start with this class to learn the basics about Android app development." >Building Your First App</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/basics/firstapp/creating-project.html"> Creating an Android Project </a> </li> <li><a href="<?cs var:toroot ?>training/basics/firstapp/running-app.html"> Running Your Application </a> </li> <li><a href="<?cs var:toroot ?>training/basics/firstapp/building-ui.html"> Building a Simple User Interface </a> </li> <li><a href="<?cs var:toroot ?>training/basics/firstapp/starting-activity.html"> Starting Another Activity </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/basics/activity-lifecycle/index.html" description= "How Android activities live and die and how to create a seamless user experience by implementing lifecycle callback methods." >Managing the Activity Lifecycle</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/starting.html"> Starting an Activity </a> </li> <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/pausing.html"> Pausing and Resuming an Activity </a> </li> <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/stopping.html"> Stopping and Restarting an Activity </a> </li> <li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/recreating.html"> Recreating an Activity </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/basics/supporting-devices/index.html" description= "How to build your app with alternative resources that provide an optimized user experience on multiple device form factors using a single APK." >Supporting Different Devices</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/languages.html"> Supporting Different Languages </a> </li> <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/screens.html"> Supporting Different Screens </a> </li> <li><a href="<?cs var:toroot ?>training/basics/supporting-devices/platforms.html"> Supporting Different Platform Versions </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/basics/fragments/index.html" description= "How to build a user interface for your app that is flexible enough to present multiple UI components on large screens and a more constrained set of UI components on smaller screens—essential for building a single APK for both phones and tablets." >Building a Dynamic UI with Fragments</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/basics/fragments/support-lib.html"> Using the Support Library </a> </li> <li><a href="<?cs var:toroot ?>training/basics/fragments/creating.html"> Creating a Fragment </a> </li> <li><a href="<?cs var:toroot ?>training/basics/fragments/fragment-ui.html"> Building a Flexible UI </a> </li> <li><a href="<?cs var:toroot ?>training/basics/fragments/communicating.html"> Communicating with Other Fragments </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"><a href="<?cs var:toroot?>training/basics/data-storage/index.html" description= "How to save data on the device, whether it's temporary files, downloaded app assets, user media, structured data, or something else." >Saving Data</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/basics/data-storage/shared-preferences.html"> Saving Key-Value Sets </a> </li> <li><a href="<?cs var:toroot ?>training/basics/data-storage/files.html"> Saving Files </a> </li> <li><a href="<?cs var:toroot ?>training/basics/data-storage/databases.html"> Saving Data in SQL Databases </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/basics/intents/index.html" description= "How to build a user experience that leverages other apps available on the device to perform advanced user tasks, such as capture a photo or view an address on a map." >Interacting with Other Apps</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/basics/intents/sending.html"> Sending the User to Another App </a> </li> <li><a href="<?cs var:toroot ?>training/basics/intents/result.html"> Getting a Result from the Activity </a> </li> <li><a href="<?cs var:toroot ?>training/basics/intents/filters.html"> Allowing Other Apps to Start Your Activity </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/sharing/index.html" description= "How to take your app interaction to the next level by sharing information with other apps, receive information back, and provide a simple and scalable way to perform Share actions with user content." >Sharing Content</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/sharing/send.html"> Sending Content to Other Apps </a> </li> <li><a href="<?cs var:toroot ?>training/sharing/receive.html"> Receiving Content from Other Apps </a> </li> <li><a href="<?cs var:toroot ?>training/sharing/shareaction.html"> Adding an Easy Share Action </a> </li> </ul> </li> </ul> </li><!-- end getting started --> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/building-multimedia.html"> <span class="small">Building Apps with</span><br/>Multimedia </a> </div> <ul> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/managing-audio/index.html" description= "How to respond to hardware audio key presses, request audio focus when playing audio, and respond appropriately to changes in audio focus." >Managing Audio Playback</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/managing-audio/volume-playback.html"> Controlling Your App's Volume and Playback </a> </li> <li><a href="<?cs var:toroot ?>training/managing-audio/audio-focus.html"> Managing Audio Focus </a> </li> <li><a href="<?cs var:toroot ?>training/managing-audio/audio-output.html"> Dealing with Audio Output Hardware </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/camera/index.html" description= "How to leverage existing camera apps on the user's device to capture photos or control the camera hardware directly and build your own camera app." >Capturing Photos</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/camera/photobasics.html"> Taking Photos Simply </a> </li> <li><a href="<?cs var:toroot ?>training/camera/videobasics.html"> Recording Videos Simply </a> </li> <li><a href="<?cs var:toroot ?>training/camera/cameradirect.html"> Controlling the Camera </a> </li> </ul> </li> </ul> </li> <!-- End multimedia --> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/building-graphics.html"> <span class="small">Building Apps with</span><br/>Graphics & Animation </a> </div> <ul> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/displaying-bitmaps/index.html" description= "How to load and process bitmaps while keeping your user interface responsive and avoid exceeding memory limits." >Displaying Bitmaps Efficiently</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/load-bitmap.html"> Loading Large Bitmaps Efficiently </a> </li> <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/process-bitmap.html"> Processing Bitmaps Off the UI Thread </a> </li> <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/cache-bitmap.html"> Caching Bitmaps </a> </li> <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/display-bitmap.html"> Displaying Bitmaps in Your UI </a></li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot?>training/graphics/opengl/index.html" description= "How to create OpenGL graphics within the Android app framework and respond to touch input." >Displaying Graphics with OpenGL ES</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/graphics/opengl/environment.html"> Building an OpenGL ES Environment </a> </li> <li><a href="<?cs var:toroot ?>training/graphics/opengl/shapes.html"> Defining Shapes </a> </li> <li><a href="<?cs var:toroot ?>training/graphics/opengl/draw.html"> Drawing Shapes </a> </li> <li><a href="<?cs var:toroot ?>training/graphics/opengl/projection.html"> Applying Projection and Camera Views </a> </li> <li><a href="<?cs var:toroot ?>training/graphics/opengl/motion.html"> Adding Motion </a> </li> <li><a href="<?cs var:toroot ?>training/graphics/opengl/touch.html"> Responding to Touch Events </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"><a href="<?cs var:toroot ?>training/animation/index.html" description= "How to add transitional animations to your user interface."> Adding Animations </a></div> <ul> <li><a href="<?cs var:toroot ?>training/animation/crossfade.html"> Crossfading Two Views </a> </li> <li><a href="<?cs var:toroot ?>training/animation/screen-slide.html"> Using ViewPager for Screen Slide </a> </li> <li><a href="<?cs var:toroot ?>training/animation/cardflip.html"> Displaying Card Flip Animations </a> </li> <li><a href="<?cs var:toroot ?>training/animation/zoom.html"> Zooming a View </a> </li> <li><a href="<?cs var:toroot ?>training/animation/layout.html"> Animating Layout Changes </a> </li> </ul> </li> </ul> </li> <!-- End graphics and animation --> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/building-connectivity.html"> <span class="small">Building Apps with</span><br/> Connectivity & the Cloud </a> </div> <ul> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/connect-devices-wirelessly/index.html" description= "How to find and connect to local devices using Network Service Discovery and Wi-Fi Direct in order to create peer-to-peer connections." >Connecting Devices Wirelessly</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd.html"> Using Network Service Discovery </a> </li> <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/wifi-direct.html"> Connecting with Wi-Fi Direct </a> </li> <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd-wifi-direct.html"> Using Wi-Fi Direct for Service Discovery </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/basics/network-ops/index.html" description= "How to create a network connection, monitor the connection for changes in connectivity, and perform transactions with XML data." >Performing Network Operations</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/basics/network-ops/connecting.html"> Connecting to the Network </a> </li> <li><a href="<?cs var:toroot ?>training/basics/network-ops/managing.html"> Managing Network Usage </a> </li> <li><a href="<?cs var:toroot ?>training/basics/network-ops/xml.html"> Parsing XML Data </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/efficient-downloads/index.html" description= "How to minimize your app's impact on the battery when performing downloads and other network transactions." >Transferring Data Without Draining the Battery</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/efficient-downloads/efficient-network-access.html"> Optimizing Downloads for Efficient Network Access </a> </li> <li><a href="<?cs var:toroot ?>training/efficient-downloads/regular_updates.html"> Minimizing the Effect of Regular Updates </a> </li> <li><a href="<?cs var:toroot ?>training/efficient-downloads/redundant_redundant.html"> Redundant Downloads are Redundant </a> </li> <li><a href="<?cs var:toroot ?>training/efficient-downloads/connectivity_patterns.html"> Modifying Patterns Based on the Connectivity Type </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/cloudsync/index.html" description= "How to sync and back up app and user data to remote web services in the cloud and how to restore the data back to multiple devices." >Syncing to the Cloud</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/cloudsync/backupapi.html"> Using the Backup API </a> </li> <li><a href="<?cs var:toroot ?>training/cloudsync/gcm.html"> Making the Most of Google Cloud Messaging </a> </li> </ul> </li> </ul> </li> <!-- End connectivity and cloud --> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/building-userinfo.html"> <span class="small">Building Apps with</span><br/> User Info & Location </a> </div> <ul> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/id-auth/index.html" description= "How to remember the user by account, authenticate the user, acquire user permission for the user's online data, and create custom accounts on the device." >Remembering Users</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/id-auth/identify.html"> Remembering Your User </a> </li> <li><a href="<?cs var:toroot ?>training/id-auth/authenticate.html"> Authenticating to OAuth2 Services </a> </li> <li><a href="<?cs var:toroot ?>training/id-auth/custom_auth.html"> Creating a Custom Account Type </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/basics/location/index.html" description= "How to add location-aware features to your app by aqcuiring the user's current location." >Making Your App Location Aware</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/basics/location/locationmanager.html"> Using the Location Manager </a> </li> <li><a href="<?cs var:toroot ?>training/basics/location/currentlocation.html"> Obtaining the Current Location </a> </li> <li><a href="<?cs var:toroot ?>training/basics/location/geocoding.html"> Displaying a Location Address </a> </li> </ul> </li> </ul> </li> <!-- End privacy and location --> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/best-ux.html"> <span class="small">Best Practices for</span><br/> User Experience & UI </a> </div> <ul> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/design-navigation/index.html" description= "How to plan your app's screen hierarchy and forms of navigation so users can effectively and intuitively traverse your app content using various navigation patterns." >Designing Effective Navigation</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/design-navigation/screen-planning.html"> Planning Screens and Their Relationships </a> </li> <li><a href="<?cs var:toroot ?>training/design-navigation/multiple-sizes.html"> Planning for Multiple Touchscreen Sizes </a> </li> <li><a href="<?cs var:toroot ?>training/design-navigation/descendant-lateral.html"> Providing Descendant and Lateral Navigation </a> </li> <li><a href="<?cs var:toroot ?>training/design-navigation/ancestral-temporal.html"> Providing Ancestral and Temporal Navigation </a> </li> <li><a href="<?cs var:toroot ?>training/design-navigation/wireframing.html"> Putting it All Together: Wireframing the Example App </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/implementing-navigation/index.html" description= "How to implement various navigation patterns such as swipe views and up navigation." >Implementing Effective Navigation</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/implementing-navigation/lateral.html"> Implementing Lateral Navigation </a> </li> <li><a href="<?cs var:toroot ?>training/implementing-navigation/ancestral.html"> Implementing Ancestral Navigation </a> </li> <li><a href="<?cs var:toroot ?>training/implementing-navigation/temporal.html"> Implementing Temporal Navigation </a> </li> <li><a href="<?cs var:toroot ?>training/implementing-navigation/descendant.html"> Implementing Descendant Navigation </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/notify-user/index.html" description= "How to display messages called notifications outside of your application's UI." >Notifying the User</a> </div> <ul> <li> <a href="<?cs var:toroot ?>training/notify-user/build-notification.html"> Building a Notification </a> </li> <li> <a href="<?cs var:toroot ?>training/notify-user/navigation.html"> Preserving Navigation when Starting an Activity </a> </li> <li> <a href="<?cs var:toroot ?>training/notify-user/managing.html"> Updating Notifications </a> </li> <li> <a href="<?cs var:toroot ?>training/notify-user/expanded.html"> Using Big View Styles </a> </li> <li> <a href="<?cs var:toroot ?>training/notify-user/display-progress.html"> Displaying Progress in a Notification </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/search/index.html" description= "How to properly add a search interface to your app and create a searchable database." >Adding Search Functionality</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/search/setup.html"> Setting up the Search Interface </a> </li> <li><a href="<?cs var:toroot ?>training/search/search.html"> Storing and Searching for Data </a> </li> <li><a href="<?cs var:toroot ?>training/search/backward-compat.html"> Remaining Backward Compatible </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="/training/multiscreen/index.html" zh-CN-lang="针对多种屏幕进行设计" ja-lang="複数画面のデザイン" es-lang="Cómo diseñar aplicaciones para varias pantallas" description= "How to build a user interface that's flexible enough to fit perfectly on any screen and how to create different interaction patterns that are optimized for different screen sizes." >Designing for Multiple Screens</a> </div> <ul> <li><a href="/training/multiscreen/screensizes.html" zh-CN-lang="支持各种屏幕尺寸" ko-lang="다양한 화면 크기 지원" ja-lang="さまざまな画面サイズのサポート" es-lang="Cómo admitir varios tamaños de pantalla" >Supporting Different Screen Sizes</a> </li> <li><a href="/training/multiscreen/screendensities.html" zh-CN-lang="支持各种屏幕密度" ja-lang="さまざまな画面密度のサポート" es-lang="Cómo admitir varias densidades de pantalla" >Supporting Different Screen Densities</a> </li> <li><a href="/training/multiscreen/adaptui.html" zh-CN-lang="实施自适应用户界面流程" ja-lang="順応性のある UI フローの実装" es-lang="Cómo implementar interfaces de usuario adaptables" >Implementing Adaptive UI Flows</a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"><a href="<?cs var:toroot ?>training/tv/index.html" description= "How to optimize your app's user interface and user input for the "ten foot experience" of a TV screen." >Designing for TV</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/tv/optimizing-layouts-tv.html"> Optimizing Layouts for TV </a> </li> <li><a href="<?cs var:toroot ?>training/tv/optimizing-navigation-tv.html"> Optimizing Navigation for TV </a> </li> <li><a href="<?cs var:toroot ?>training/tv/unsupported-features-tv.html"> Handling Features Not Supported on TV </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/custom-views/index.html" description= "How to build custom UI widgets that are interactive and smooth." >Creating Custom Views</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/custom-views/create-view.html"> Creating a Custom View Class </a> </li> <li><a href="<?cs var:toroot ?>training/custom-views/custom-drawing.html"> Implementing Custom Drawing </a> </li> <li><a href="<?cs var:toroot ?>training/custom-views/making-interactive.html"> Making the View Interactive </a> </li> <li><a href="<?cs var:toroot ?>training/custom-views/optimizing-view.html"> Optimizing the View </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/backward-compatible-ui/index.html" description= "How to use UI components and other APIs from the more recent versions of Android while remaining compatible with older versions of the platform." >Creating Backward-Compatible UIs</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/abstracting.html"> Abstracting the New APIs </a> </li> <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/new-implementation.html"> Proxying to the New APIs </a> </li> <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/older-implementation.html"> Creating an Implementation with Older APIs </a> </li> <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/using-component.html"> Using the Version-Aware Component </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/accessibility/index.html" description= "How to make your app accessible to users with vision impairment or other physical disabilities." >Implementing Accessibility</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/accessibility/accessible-app.html"> Developing Accessible Applications </a> </li> <li><a href="<?cs var:toroot ?>training/accessibility/service.html"> Developing Accessibility Services </a> </li> </ul> </li> </ul> </li> <!-- End best UX and UI --> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/best-performance.html"> <span class="small">Best Practices for</span><br/> User Input </a> </div> <ul> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/gestures/index.html" description= "How to write apps that allow users to interact with the touch screen via touch gestures." >Using Touch Gestures</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/gestures/detector.html"> Detecting Common Gestures </a> </li> <li><a href="<?cs var:toroot ?>training/gestures/movement.html"> Tracking Movement </a> </li> <li><a href="<?cs var:toroot ?>training/gestures/scroll.html"> Animating a Scroll Gesture </a> </li> <li><a href="<?cs var:toroot ?>training/gestures/multi.html"> Handling Multi-Touch Gestures </a> </li> <li><a href="<?cs var:toroot ?>training/gestures/scale.html"> Dragging and Scaling </a> </li> <li><a href="<?cs var:toroot ?>training/gestures/viewgroup.html"> Managing Touch Events in a ViewGroup </a> </li> </ul> </li> </ul> </li> <!-- end of User Input --> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/best-performance.html"> <span class="small">Best Practices for</span><br/> Performance </a> </div> <ul> <li> <a href="<?cs var:toroot ?>training/articles/perf-tips.html" description= "How to optimize your app's performance in various ways to improve its responsiveness and battery efficiency." >Performance Tips</a> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/improving-layouts/index.html" description= "How to identify problems in your app's layout performance and improve the UI responsiveness." >Improving Layout Performance</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/improving-layouts/optimizing-layout.html"> Optimizing Layout Hierarchies </a> </li> <li><a href="<?cs var:toroot ?>training/improving-layouts/reusing-layouts.html"> Re-using Layouts with <include/> </a> </li> <li><a href="<?cs var:toroot ?>training/improving-layouts/loading-ondemand.html"> Loading Views On Demand </a> </li> <li><a href="<?cs var:toroot ?>training/improving-layouts/smooth-scrolling.html"> Making ListView Scrolling Smooth </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/run-background-service/index.html" description= "How to improve UI performance and responsiveness by sending work to a Service running in the background" >Running in a Background Service</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/run-background-service/create-service.html"> Creating a Background Service </a> </li> <li><a href="<?cs var:toroot ?>training/run-background-service/send-request.html"> Sending Work Requests to the Background Service </a> </li> <li><a href="<?cs var:toroot ?>training/run-background-service/report-status.html"> Reporting Work Status </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/load-data-background/index.html" description="How to use CursorLoader to query data without affecting UI responsiveness." >Loading Data in the Background</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/load-data-background/setup-loader.html"> Running a Query with a CursorLoader</a> </li> <li><a href="<?cs var:toroot ?>training/load-data-background/handle-results.html"> Handling the Results</a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="/training/monitoring-device-state/index.html" zh-CN-lang="优化电池使用时间" ja-lang="電池消費量の最適化" es-lang="Cómo optimizar la duración de la batería" description= "How to minimize the amount of power your app requires by adapting to current power conditions and performing power-hungry tasks at proper intervals." >Optimizing Battery Life</a> </div> <ul> <li><a href="/training/monitoring-device-state/battery-monitoring.html" zh-CN-lang="监控电池电量和充电状态" ja-lang="電池残量と充電状態の監視" es-lang="Cómo controlar el nivel de batería y el estado de carga" >Monitoring the Battery Level and Charging State</a> </li> <li><a href="/training/monitoring-device-state/docking-monitoring.html" zh-CN-lang="确定和监控基座对接状态和类型" ja-lang="ホルダーの装着状態とタイプの特定と監視" es-lang="Cómo determinar y controlar el tipo de conector y el estado de la conexión" >Determining and Monitoring the Docking State and Type</a> </li> <li><a href="/training/monitoring-device-state/connectivity-monitoring.html" zh-CN-lang="确定和监控网络连接状态" ja-lang="接続状態の特定と監視" es-lang="Cómo determinar y controlar el estado de la conectividad" >Determining and Monitoring the Connectivity Status</a> </li> <li><a href="/training/monitoring-device-state/manifest-receivers.html" zh-CN-lang="根据需要操作广播接收器" ja-lang="オンデマンドでのブロードキャスト レシーバ操作" es-lang="Cómo manipular los receptores de emisión bajo demanda" >Manipulating Broadcast Receivers On Demand</a> </li> </ul> </li> <li> <a href="<?cs var:toroot ?>training/articles/perf-anr.html" description= "How to keep your app responsive to user interaction so the UI does not lock-up and display an "Application Not Responding" dialog." >Keeping Your App Responsive</a> </li> <li> <a href="<?cs var:toroot ?>training/articles/perf-jni.html" description= "How to efficiently use the Java Native Interface with the Android NDK." >JNI Tips</a> </li> <li> <a href="<?cs var:toroot ?>training/articles/smp.html" description= "Tips for coding Android apps on symmetric multiprocessor systems." >SMP Primer for Android</a> </li> </ul> </li> <!-- end of Performance --> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/best-security.html"> <span class="small">Best Practices for</span><br/> Security & Privacy </a> </div> <ul> <li> <a href="<?cs var:toroot ?>training/articles/security-tips.html" description= "How to perform various tasks and keep your app's data and your user's data secure." >Security Tips</a> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/enterprise/index.html" description= "How to implement device management policies for enterprise-oriented apps." >Developing for Enterprise</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/enterprise/device-management-policy.html"> Enhancing Security with Device Management Policies </a> </li> </ul> </li> </ul> </li> <!-- End security and user info --> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/distribute.html"> <span class="small">Using Google Play to</span><br/> Distribute & Monetize </a> </div> <ul> <li class="nav-section"> <div class="nav-section-header"><a href="<?cs var:toroot ?>training/in-app-billing/index.html" description="How to sell in-app products from your application using In-app Billing."> Selling In-app Products </a></div> <ul> <li><a href="<?cs var:toroot ?>training/in-app-billing/preparing-iab-app.html"> <span class="en">Preparing Your App</span> </a> </li> <li><a href="<?cs var:toroot ?>training/in-app-billing/list-iab-products.html"> <span class="en">Establishing Products for Sale</span> </a> </li> <li><a href="<?cs var:toroot ?>training/in-app-billing/purchase-iab-products.html"> <span class="en">Purchasing Products</span> </a> </li> <li><a href="<?cs var:toroot ?>training/in-app-billing/test-iab-app.html"> <span class="en">Testing Your App</span> </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/multiple-apks/index.html" description= "How to publish your app on Google Play with separate APKs that target different devices, while using a single app listing." >Maintaining Multiple APKs</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/multiple-apks/api.html"> Creating Multiple APKs for Different API Levels </a> </li> <li><a href="<?cs var:toroot ?>training/multiple-apks/screensize.html"> Creating Multiple APKs for Different Screen Sizes </a> </li> <li><a href="<?cs var:toroot ?>training/multiple-apks/texture.html"> Creating Multiple APKs for Different GL Textures </a> </li> <li><a href="<?cs var:toroot ?>training/multiple-apks/multiple.html"> Creating Multiple APKs with 2+ Dimensions </a> </li> </ul> </li> <li class="nav-section"> <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/monetization/index.html" description= "How to implement monetization strategies for your app without compromising the user experience." >Monetizing Your App</a> </div> <ul> <li><a href="<?cs var:toroot ?>training/monetization/ads-and-ux.html"> Advertising without Compromising User Experience </a> </li> </ul> </li> </ul> </li> <!-- End best Publishing --> </ul><!-- nav --> <script type="text/javascript"> <!-- buildToggleLists(); changeNavLang(getLangPref()); //--> </script>