Elliot Waite fe1d89f339 Change colons to equals for custom_link_attributes.
Change-Id: I9f4ca9d0df9e7b358af28ded8cf6d992e38a0650
2016-03-24 14:57:24 -07:00

1211 lines
57 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

toc:
- title: Getting Started
path: /training/index.html
section:
- title: Building Your First App
path: /training/basics/firstapp/index.html
custom_link_attributes:
- description="After you've installed the Android SDK, start with this class to learn the basics about Android app development."
section:
- title: Creating an Android Project
path: /training/basics/firstapp/creating-project.html
- title: Running Your Application
path: /training/basics/firstapp/running-app.html
- title: Building a Simple User Interface
path: /training/basics/firstapp/building-ui.html
- title: Starting Another Activity
path: /training/basics/firstapp/starting-activity.html
- title: Supporting Different Devices
path: /training/basics/supporting-devices/index.html
custom_link_attributes:
- description="How to build your app with alternative resources that provide an optimized user experience on multiple device form factors using a single APK."
section:
- title: Supporting Different Languages
path: /training/basics/supporting-devices/languages.html
- title: Supporting Different Screens
path: /training/basics/supporting-devices/screens.html
- title: Supporting Different Platform Versions
path: /training/basics/supporting-devices/platforms.html
- title: Managing the Activity Lifecycle
path: /training/basics/activity-lifecycle/index.html
custom_link_attributes:
- ja-lang="アクティビティのライフサイクル 管理"
- ko-lang="액티비티 수명 주기 관리하기"
- pt-br-lang="Como gerenciar o ciclo de vida da atividade"
- ru-lang="Управление жизненным циклом операций"
- zh-cn-lang="管理活动生命周期"
- zh-tw-lang="管理應用行為顯示生命週期"
- description="How Android activities live and die and how to create a seamless user experience by implementing lifecycle callback methods."
section:
- title: Starting an Activity
path: /training/basics/activity-lifecycle/starting.html
custom_link_attributes:
- ja-lang="アクティビティを開始する"
- ko-lang="액티비티 시작하기"
- pt-br-lang="Iniciando uma atividade"
- ru-lang="Запуск операции"
- zh-cn-lang="开始活动"
- zh-tw-lang="啟動應用行為顯示"
- title: Pausing and Resuming an Activity
path: /training/basics/activity-lifecycle/pausing.html
- title: Stopping and Restarting an Activity
path: /training/basics/activity-lifecycle/stopping.html
custom_link_attributes:
- ja-lang="アクティビティの一時停止と再開"
- ko-lang="액티비티 일시정지 및 재개하기"
- pt-br-lang="Pausando e reiniciando uma atividade"
- ru-lang="Приостановка и возобновление операции"
- zh-cn-lang="暂停和继续活动"
- zh-tw-lang="暫停並繼續應用行為顯示"
- title: Recreating an Activity
path: /training/basics/activity-lifecycle/recreating.html
custom_link_attributes:
- ja-lang="アクティビティを再作成する"
- ko-lang="액티비티 재생성하기"
- pt-br-lang="Recriando uma atividade"
- ru-lang="Воссоздание операции"
- zh-cn-lang="重新创建活动"
- zh-tw-lang="重新建立應用行為顯示"
- title: Building a Dynamic UI with Fragments
path: /training/basics/fragments/index.html
custom_link_attributes:
- 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."
section:
- title: Creating a Fragment
path: /training/basics/fragments/creating.html
- title: Building a Flexible UI
path: /training/basics/fragments/fragment-ui.html
custom_link_attributes:
- zh-cn-lang="构建灵活的界面"
- title: Communicating with Other Fragments
path: /training/basics/fragments/communicating.html
- title: Saving Data
path: /training/basics/data-storage/index.html
custom_link_attributes:
- ja-lang="データの保存"
- ko-lang="데이터 저장하기"
- pt-br-lang="Salvando dados"
- ru-lang="Сохранение данных"
- zh-cn-lang="保存数据"
- zh-tw-lang="儲存資料"
- description="How to save data on the device, whether it's temporary files, downloaded app assets, user media, structured data, or something else."
section:
- title: Saving Key-Value Sets
path: /training/basics/data-storage/shared-preferences.html
custom_link_attributes:
- ja-lang="キー値セットを保存する"
- ko-lang="키-값 세트 저장하기"
- pt-br-lang="Salvando conjuntos de valor-chave"
- ru-lang="Сохранение наборов \"ключ-значение\""
- zh-cn-lang="保存键值集"
- zh-tw-lang="儲存索引鍵值組"
- title: Saving Files
path: /training/basics/data-storage/files.html
custom_link_attributes:
- ja-lang="ファイルを保存する"
- ko-lang="파일 저장하기"
- pt-br-lang="Salvando arquivos"
- ru-lang="Сохранение файлов"
- zh-cn-lang="保存文件"
- zh-tw-lang="儲存檔案"
- title: Saving Data in SQL Databases
path: /training/basics/data-storage/databases.html
custom_link_attributes:
- ja-lang="SQL データベースにデータを保存する"
- ko-lang="SQL 데이터베이스에 데이터 저장하기"
- pt-br-lang="Salvando dados em bancos de dados do SQL"
- ru-lang="Сохранение данных в базах данных SQL"
- zh-cn-lang="在 SQL 数据库中保存数据"
- zh-tw-lang="在 SQL 資料庫中儲存資料"
- title: Interacting with Other Apps
path: /training/basics/intents/index.html
custom_link_attributes:
- ja-lang="他のアプリとの相互操作"
- ko-lang="액티비티 수명 주기 관리하기"
- pt-br-lang="Interagindo com outros aplicativos"
- ru-lang="Взаимодействие с другими приложениями"
- zh-cn-lang="与其他应用交互"
- zh-tw-lang="與其他應用程式互動"
- 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."
section:
- title: Sending the User to Another App
path: /training/basics/intents/sending.html
custom_link_attributes:
- ja-lang="別のアプリにユーザーを送る"
- ko-lang="다른 앱으로 사용자 보내기"
- pt-br-lang="Enviando o usuário para outro aplicativo"
- ru-lang="Направление пользователя в другое приложение"
- zh-cn-lang="向另一个应用发送用户"
- zh-tw-lang="將使用者傳送至其他應用程式"
- title: Getting a Result from the Activity
path: /training/basics/intents/result.html
custom_link_attributes:
- ja-lang="アクティビティから結果を取得する"
- ko-lang="액티비티로부터 결과 가져오기"
- pt-br-lang="Obtendo resultados de uma atividade"
- ru-lang="Получение результата операции"
- zh-cn-lang="获取活动的结果"
- zh-tw-lang="從應用行為顯示取得結果"
- title: Allowing Other Apps to Start Your Activity
path: /training/basics/intents/filters.html
custom_link_attributes:
- ja-lang="他のアプリからのアクティビティの開始を許可する"
- ko-lang="다른 앱이 자신의 액티비티를 시작하도록 허용하기"
- pt-br-lang="Permitindo que outros aplicativos iniciem sua atividade"
- ru-lang="Разрешение другим приложениям на запуск вашей операции"
- zh-cn-lang="允许其他应用开始您的活动"
- zh-tw-lang="允許其他應用程式啟動您的應用行為顯示"
- title: Working with System Permissions
path: /training/permissions/index.html
custom_link_attributes:
- description="How to declare that your app needs access to features and resources outside of its 'sandbox', and how to request those privileges at runtime."
section:
- title: Declaring Permissions
path: /training/permissions/declaring.html
- title: Requesting Permissions at Run Time
path: /training/permissions/requesting.html
- title: Best Practices for Runtime Permissions
path: /training/permissions/best-practices.html
- title: Building Apps with Content Sharing
path: /training/building-content-sharing.html
section:
- title: Sharing Simple Data
path: /training/sharing/index.html
custom_link_attributes:
- 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."
section:
- title: Sending Simple Data to Other Apps
path: /training/sharing/send.html
- title: Receiving Simple Data from Other Apps
path: /training/sharing/receive.html
- title: Adding an Easy Share Action
path: /training/sharing/shareaction.html
- title: Sharing Files
path: /training/secure-file-sharing/index.html
custom_link_attributes:
- description="How to provide secure access to a file associated with your app using a content URI and temporary access permissions."
section:
- title: Setting Up File Sharing
path: /training/secure-file-sharing/setup-sharing.html
- title: Sharing a File
path: /training/secure-file-sharing/share-file.html
- title: Requesting a Shared File
path: /training/secure-file-sharing/request-file.html
- title: Retrieving File Information
path: /training/secure-file-sharing/retrieve-info.html
- title: Sharing Files with NFC
path: /training/beam-files/index.html
custom_link_attributes:
- description="How to transfer files between devices using the NFC Android Beam feature."
section:
- title: Sending Files to Another Device
path: /training/beam-files/send-files.html
- title: Receiving Files from Another Device
path: /training/beam-files/receive-files.html
- title: Building Apps with Multimedia
path: /training/building-multimedia.html
section:
- title: Managing Audio Playback
path: /training/managing-audio/index.html
custom_link_attributes:
- description="How to respond to hardware audio key presses, request audio focus when playing audio, and respond appropriately to changes in audio focus."
section:
- title: Controlling Your App's Volume and Playback
path: /training/managing-audio/volume-playback.html
- title: Managing Audio Focus
path: /training/managing-audio/audio-focus.html
- title: Dealing with Audio Output Hardware
path: /training/managing-audio/audio-output.html
- title: Capturing Photos
path: /training/camera/index.html
custom_link_attributes:
- 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."
section:
- title: Taking Photos Simply
path: /training/camera/photobasics.html
- title: Recording Videos Simply
path: /training/camera/videobasics.html
- title: Controlling the Camera
path: /training/camera/cameradirect.html
- title: Printing Content
path: /training/printing/index.html
custom_link_attributes:
- description="How to print photos, HTML documents, and custom documents from your app."
section:
- title: Photos
path: /training/printing/photos.html
- title: HTML Documents
path: /training/printing/html-docs.html
- title: Custom Documents
path: /training/printing/custom-docs.html
- title: Building Apps with Graphics & Animation
path: /training/building-graphics.html
section:
- title: Displaying Bitmaps Efficiently
path: /training/displaying-bitmaps/index.html
custom_link_attributes:
- description="How to load and process bitmaps while keeping your user interface responsive and avoid exceeding memory limits."
section:
- title: Loading Large Bitmaps Efficiently
path: /training/displaying-bitmaps/load-bitmap.html
- title: Processing Bitmaps Off the UI Thread
path: /training/displaying-bitmaps/process-bitmap.html
- title: Caching Bitmaps
path: /training/displaying-bitmaps/cache-bitmap.html
- title: Managing Bitmap Memory
path: /training/displaying-bitmaps/manage-memory.html
- title: Displaying Bitmaps in Your UI
path: /training/displaying-bitmaps/display-bitmap.html
- title: Displaying Graphics with OpenGL ES
path: /training/graphics/opengl/index.html
custom_link_attributes:
- description="How to create OpenGL graphics within the Android app framework and respond to touch input."
section:
- title: Building an OpenGL ES Environment
path: /training/graphics/opengl/environment.html
- title: Defining Shapes
path: /training/graphics/opengl/shapes.html
- title: Drawing Shapes
path: /training/graphics/opengl/draw.html
- title: Applying Projection and Camera Views
path: /training/graphics/opengl/projection.html
- title: Adding Motion
path: /training/graphics/opengl/motion.html
- title: Responding to Touch Events
path: /training/graphics/opengl/touch.html
- title: Animating Views Using Scenes and Transitions
path: /training/transitions/index.html
custom_link_attributes:
- description="How to animate state changes in a view hierarchy using transitions."
section:
- title: The Transitions Framework
path: /training/transitions/overview.html
- title: Creating a Scene
path: /training/transitions/scenes.html
- title: Applying a Transition
path: /training/transitions/transitions.html
- title: Creating Custom Transitions
path: /training/transitions/custom-transitions.html
- title: Adding Animations
path: /training/animation/index.html
custom_link_attributes:
- description="How to add transitional animations to your user interface."
section:
- title: Crossfading Two Views
path: /training/animation/crossfade.html
- title: Using ViewPager for Screen Slide
path: /training/animation/screen-slide.html
- title: Displaying Card Flip Animations
path: /training/animation/cardflip.html
- title: Zooming a View
path: /training/animation/zoom.html
- title: Animating Layout Changes
path: /training/animation/layout.html
- title: Building Apps with Connectivity & the Cloud
path: /training/building-connectivity.html
section:
- title: Connecting Devices Wirelessly
path: /training/connect-devices-wirelessly/index.html
custom_link_attributes:
- description="How to find and connect to local devices using Network Service Discovery and how to create peer-to-peer connections with Wi-Fi."
section:
- title: Using Network Service Discovery
path: /training/connect-devices-wirelessly/nsd.html
- title: Creating P2P Connections with Wi-Fi
path: /training/connect-devices-wirelessly/wifi-direct.html
- title: Using Wi-Fi P2P for Service Discovery
path: /training/connect-devices-wirelessly/nsd-wifi-direct.html
- title: Performing Network Operations
path: /training/basics/network-ops/index.html
custom_link_attributes:
- description="How to create a network connection, monitor the connection for changes in connectivity, and perform transactions with XML data."
section:
- title: Connecting to the Network
path: /training/basics/network-ops/connecting.html
- title: Managing Network Usage
path: /training/basics/network-ops/managing.html
- title: Parsing XML Data
path: /training/basics/network-ops/xml.html
- title: Transferring Data Without Draining the Battery
path: /training/efficient-downloads/index.html
custom_link_attributes:
- description="How to minimize your app's impact on the battery when performing downloads and other network transactions."
section:
- title: Optimizing Downloads for Efficient Network Access
path: /training/efficient-downloads/efficient-network-access.html
- title: Minimizing the Effect of Regular Updates
path: /training/efficient-downloads/regular_updates.html
- title: Redundant Downloads are Redundant
path: /training/efficient-downloads/redundant_redundant.html
- title: Modifying Patterns Based on the Connectivity Type
path: /training/efficient-downloads/connectivity_patterns.html
- title: Syncing to the Cloud
path: /training/backup/index.html
custom_link_attributes:
- 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."
section:
- title: Configuring Auto Backup
path: /training/backup/autosyncapi.html
- title: Using the Backup API
path: /training/backup/backupapi.html
- title: Resolving Cloud Save Conflicts
path: /training/cloudsave/conflict-res.html
custom_link_attributes:
- description="How to design a robust conflict resolution strategy for apps that save data to the cloud."
- title: Transferring Data Using Sync Adapters
path: /training/sync-adapters/index.html
custom_link_attributes:
- description="How to transfer data between the cloud and the device using the Android sync adapter framework"
section:
- title: Creating a Stub Authenticator
path: /training/sync-adapters/creating-authenticator.html
- title: Creating a Stub Content Provider
path: /training/sync-adapters/creating-stub-provider.html
- title: Creating a Sync Adapter
path: /training/sync-adapters/creating-sync-adapter.html
- title: Running a Sync Adapter
path: /training/sync-adapters/running-sync-adapter.html
- title: Transmitting Network Data Using Volley
path: /training/volley/index.html
custom_link_attributes:
- description="How to perform fast, scalable UI operations over the network using Volley"
section:
- title: Sending a Simple Request
path: /training/volley/simple.html
- title: Setting Up a RequestQueue
path: /training/volley/requestqueue.html
- title: Making a Standard Request
path: /training/volley/request.html
- title: Implementing a Custom Request
path: /training/volley/request-custom.html
- title: Building Apps with Location & Maps
path: /training/building-location.html
section:
- title: Making Your App Location-Aware
path: /training/location/index.html
custom_link_attributes:
- description="How to add location-aware features to your app by getting the user's current location."
section:
- title: Getting the Last Known Location
path: /training/location/retrieve-current.html
- title: Changing Location Settings
path: /training/location/change-location-settings.html
- title: Receiving Location Updates
path: /training/location/receive-location-updates.html
- title: Displaying a Location Address
path: /training/location/display-address.html
- title: Creating and Monitoring Geofences
path: /training/location/geofencing.html
- title: Adding Maps
path: /training/maps/index.html
custom_link_attributes:
- description="How to add maps and mapping information to your app."
- title: Building Apps with User Info & Sign-In
path: /training/building-userinfo.html
section:
- title: Accessing Contacts Data
path: /training/contacts-provider/index.html
custom_link_attributes:
- description="How to use Android's central address book, the Contacts Provider, to display contacts and their details and modify contact information."
section:
- title: Retrieving a List of Contacts
path: /training/contacts-provider/retrieve-names.html
- title: Retrieving Details for a Contact
path: /training/contacts-provider/retrieve-details.html
- title: Modifying Contacts Using Intents
path: /training/contacts-provider/modify-data.html
- title: Displaying the Quick Contact Badge
path: /training/contacts-provider/display-contact-badge.html
- title: Adding Sign-In
path: /training/sign-in/index.html
custom_link_attributes:
- description="How to add user sign-in functionality to your app."
- title: Building Apps for Wearables
path: /training/building-wearables.html
section:
- title: Adding Wearable Features to Notifications
path: /training/wearables/notifications/index.html
custom_link_attributes:
- description="How to build handheld notifications that are synced to and look great on wearables."
section:
- title: Creating a Notification
path: /training/wearables/notifications/creating.html
- title: Receiving Voice Input in a Notification
path: /training/wearables/notifications/voice-input.html
- title: Adding Pages to a Notification
path: /training/wearables/notifications/pages.html
- title: Stacking Notifications
path: /training/wearables/notifications/stacks.html
- title: Creating Wearable Apps
path: /training/wearables/apps/index.html
custom_link_attributes:
- description="How to build apps that run directly on wearables."
section:
- title: Creating and Running a Wearable App
path: /training/wearables/apps/creating.html
- title: Creating Custom Layouts
path: /training/wearables/apps/layouts.html
- title: Keeping Your App Visible
path: /training/wearables/apps/always-on.html
- title: Adding Voice Capabilities
path: /training/wearables/apps/voice.html
- title: Packaging Wearable Apps
path: /training/wearables/apps/packaging.html
- title: Debugging over Bluetooth
path: /training/wearables/apps/bt-debugging.html
- title: Creating Custom UIs
path: /training/wearables/ui/index.html
custom_link_attributes:
- description="How to create custom user interfaces for wearable apps."
section:
- title: Defining Layouts
path: /training/wearables/ui/layouts.html
- title: Creating Cards
path: /training/wearables/ui/cards.html
- title: Creating Lists
path: /training/wearables/ui/lists.html
- title: Creating a 2D Picker
path: /training/wearables/ui/2d-picker.html
- title: Showing Confirmations
path: /training/wearables/ui/confirm.html
- title: Exiting Full-Screen Activities
path: /training/wearables/ui/exit.html
- title: Sending and Syncing Data
path: /training/wearables/data-layer/index.html
custom_link_attributes:
- description="How to sync data between handhelds and wearables."
section:
- title: Accessing the Wearable Data Layer
path: /training/wearables/data-layer/accessing.html
- title: Syncing Data Items
path: /training/wearables/data-layer/data-items.html
- title: Transferring Assets
path: /training/wearables/data-layer/assets.html
- title: Sending and Receiving Messages
path: /training/wearables/data-layer/messages.html
- title: Handling Data Layer Events
path: /training/wearables/data-layer/events.html
- title: Creating Watch Faces
path: /training/wearables/watch-faces/index.html
custom_link_attributes:
- description="How to create watch faces for wearables."
section:
- title: Designing Watch Faces
path: /training/wearables/watch-faces/designing.html
- title: Building a Watch Face Service
path: /training/wearables/watch-faces/service.html
- title: Drawing Watch Faces
path: /training/wearables/watch-faces/drawing.html
- title: Showing Information in Watch Faces
path: /training/wearables/watch-faces/information.html
- title: Creating Interactive Watch Faces
path: /training/wearables/watch-faces/interacting.html
- title: Providing Configuration Activities
path: /training/wearables/watch-faces/configuration.html
- title: Addressing Common Issues
path: /training/wearables/watch-faces/issues.html
- title: Optimizing Performance and Battery Life
path: /training/wearables/watch-faces/performance.html
- title: Detecting Location
path: /training/articles/wear-location-detection.html
custom_link_attributes:
- description="How to detect location data on Android Wear devices."
- title: Requesting Permissions
path: /training/articles/wear-permissions.html
custom_link_attributes:
- description="How to request permissions on Android Wear devices."
- title: Using the Speaker
path: /training/wearables/wearable-sounds.html
custom_link_attributes:
- description="How to use the speaker on Android Wear devices."
- title: Building Apps for TV
path: /training/tv/index.html
section:
- title: Building TV Apps
path: /training/tv/start/index.html
custom_link_attributes:
- ja-lang="TV アプリのビルド"
- description="How to start building TV apps or extend your existing app to run on TV devices."
section:
- title: Getting Started with TV Apps
path: /training/tv/start/start.html
custom_link_attributes:
- ja-lang="TV アプリのビルドを開始する"
- title: Handling TV Hardware
path: /training/tv/start/hardware.html
custom_link_attributes:
- ja-lang="TV ハードウェアを処理する"
- title: Building TV Layouts
path: /training/tv/start/layouts.html
custom_link_attributes:
- ja-lang="TV 向けレイアウトをビルドする"
- title: Creating TV Navigation
path: /training/tv/start/navigation.html
custom_link_attributes:
- ja-lang="TV 用のナビゲーションを作成する"
- title: Building TV Playback Apps
path: /training/tv/playback/index.html
custom_link_attributes:
- ja-lang="TV 再生アプリのビルド"
- description="How to build apps that provide media catalogs and play content."
section:
- title: Creating a Catalog Browser
path: /training/tv/playback/browse.html
custom_link_attributes:
- ja-lang="カタログ ブラウザを作成する"
- title: Providing a Card View
path: /training/tv/playback/card.html
- title: Building a Details View
path: /training/tv/playback/details.html
custom_link_attributes:
- ja-lang="詳細ビューをビルドする"
- title: Displaying a Now Playing Card
path: /training/tv/playback/now-playing.html
custom_link_attributes:
- ja-lang="再生中カードを表示する"
- title: Adding a Guided Step
path: /training/tv/playback/guided-step.html
- title: Enabling Background Playback
path: /training/tv/playback/options.html
- title: Helping Users Find Content on TV
path: /training/tv/discovery/index.html
custom_link_attributes:
- description="How to help users discover content from your app."
section:
- title: Recommending TV Content
path: /training/tv/discovery/recommendations.html
- title: Making TV Apps Searchable
path: /training/tv/discovery/searchable.html
- title: Searching within TV Apps
path: /training/tv/discovery/in-app-search.html
- title: Building TV Games
path: /training/tv/games/index.html
custom_link_attributes:
- description="How to build games for TV."
- title: Building TV Channels
path: /training/tv/tif/index.html
custom_link_attributes:
- description="How to build channels for TV."
section:
- title: Developing a TV Input Service
path: /training/tv/tif/tvinput.html
- title: Working with Channel Data
path: /training/tv/tif/channel.html
- title: Managing User Interaction
path: /training/tv/tif/ui.html
- title: TV Apps Checklist
path: /training/tv/publishing/checklist.html
custom_link_attributes:
- description="An itemized list of requirements for TV apps."
- title: Building Apps for Auto
path: /training/auto/index.html
section:
- title: Getting Started with Auto
path: /training/auto/start/index.html
custom_link_attributes:
- description="How to start building or extending apps that work with Auto devices."
- title: Playing Audio for Auto
path: /training/auto/audio/index.html
custom_link_attributes:
- description="How to extend audio apps to play content on Auto devices."
- title: Messaging for Auto
path: /training/auto/messaging/index.html
custom_link_attributes:
- description="How to extend text messaging apps to work with Auto devices."
- title: Building Apps for Work
path: /training/enterprise/index.html
section:
- title: Ensuring Compatibility with Managed Profiles
path: /training/enterprise/app-compatibility.html
- title: Implementing App Restrictions
path: /training/enterprise/app-restrictions.html
- title: Building a Device Policy Controller
path: /training/enterprise/work-policy-ctrl.html
- title: Configuring Corporate-Owned, Single-Use Devices
path: /training/enterprise/cosu.html
- title: Best Practices for Interaction & Engagement
path: /training/best-ux.html
section:
- title: Designing Effective Navigation
path: /training/design-navigation/index.html
custom_link_attributes:
- 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."
section:
- title: Planning Screens and Their Relationships
path: /training/design-navigation/screen-planning.html
- title: Planning for Multiple Touchscreen Sizes
path: /training/design-navigation/multiple-sizes.html
- title: Providing Descendant and Lateral Navigation
path: /training/design-navigation/descendant-lateral.html
- title: Providing Ancestral and Temporal Navigation
path: /training/design-navigation/ancestral-temporal.html
- title: "Putting it All Together: Wireframing the Example App"
path: /training/design-navigation/wireframing.html
- title: Implementing Effective Navigation
path: /training/implementing-navigation/index.html
custom_link_attributes:
- description="How to implement various navigation patterns such as swipe views, a navigation drawer, and up navigation."
section:
- title: Creating Swipe Views with Tabs
path: /training/implementing-navigation/lateral.html
- title: Creating a Navigation Drawer
path: /training/implementing-navigation/nav-drawer.html
- title: Providing Up Navigation
path: /training/implementing-navigation/ancestral.html
- title: Providing Proper Back Navigation
path: /training/implementing-navigation/temporal.html
- title: Implementing Descendant Navigation
path: /training/implementing-navigation/descendant.html
- title: Notifying the User
path: /training/notify-user/index.html
custom_link_attributes:
- description="How to display messages called notifications outside of your application's UI."
section:
- title: Building a Notification
path: /training/notify-user/build-notification.html
- title: Preserving Navigation when Starting an Activity
path: /training/notify-user/navigation.html
- title: Updating Notifications
path: /training/notify-user/managing.html
- title: Using Big View Styles
path: /training/notify-user/expanded.html
- title: Displaying Progress in a Notification
path: /training/notify-user/display-progress.html
- title: Supporting Swipe-to-Refresh
path: /training/swipe/index.html
custom_link_attributes:
- description="How to modify your app's layout to support manual content updates triggered by the swipe-to-refresh gesture."
section:
- title: Adding Swipe-to-Refresh To Your App
path: /training/swipe/add-swipe-interface.html
- title: Responding to a Refresh Gesture
path: /training/swipe/respond-refresh-request.html
- title: Adding Search Functionality
path: /training/search/index.html
custom_link_attributes:
- description="How to properly add a search interface to your app and create a searchable database."
section:
- title: Setting up the Search Interface
path: /training/search/setup.html
- title: Storing and Searching for Data
path: /training/search/search.html
- title: Remaining Backward Compatible
path: /training/search/backward-compat.html
- title: Making Your App Content Searchable by Google
path: /training/app-indexing/index.html
custom_link_attributes:
- description="How to enable deep linking and indexing of your application content so that users can open this content directly from their mobile search results."
section:
- title: Enabling Deep Links for App Content
path: /training/app-indexing/deep-linking.html
- title: Specifying App Content for Indexing
path: /training/app-indexing/enabling-app-indexing.html
- title: Optimizing Content for the Assistant
path: /training/articles/assistant.html
custom_link_attributes:
- description="Support contextually relevant actions through the Assist API."
- title: Handling App Links
path: /training/app-links/index.html
custom_link_attributes:
- description="How to enable the system to handle web requests by taking the user directly to your app instead of your website."
- title: Best Practices for User Interface
path: /training/best-ui.html
section:
- title: Designing for Multiple Screens
path: /training/multiscreen/index.html
custom_link_attributes:
- es-lang="Cómo diseñar aplicaciones para varias pantallas"
- ja-lang="複数画面のデザイン"
- zh-cn-lang="针对多种屏幕进行设计"
- 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."
section:
- title: Supporting Different Screen Sizes
path: /training/multiscreen/screensizes.html
custom_link_attributes:
- es-lang="Cómo admitir varios tamaños de pantalla"
- ja-lang="さまざまな画面サイズのサポート"
- ko-lang="다양한 화면 크기 지원"
- zh-cn-lang="支持各种屏幕尺寸"
- title: Supporting Different Screen Densities
path: /training/multiscreen/screendensities.html
custom_link_attributes:
- es-lang="Cómo admitir varias densidades de pantalla"
- ja-lang="さまざまな画面密度のサポート"
- zh-cn-lang="支持各种屏幕密度"
- title: Implementing Adaptive UI Flows
path: /training/multiscreen/adaptui.html
custom_link_attributes:
- es-lang="Cómo implementar interfaces de usuario adaptables"
- ja-lang="順応性のある UI フローの実装"
- zh-cn-lang="实施自适应用户界面流程"
- title: Adding the App Bar
path: /training/appbar/index.html
custom_link_attributes:
- description="How to use the support library's toolbar widget to implement an app bar that displays properly on a wide range of devices."
section:
- title: Setting Up the App Bar
path: /training/appbar/setting-up.html
- title: Adding and Handling Actions
path: /training/appbar/actions.html
- title: Adding an Up Action
path: /training/appbar/up-action.html
- title: Action Views and Action Providers
path: /training/appbar/action-views.html
- title: Showing Pop-Up Messages
path: /training/snackbar/index.html
custom_link_attributes:
- description="How to use the support library's Snackbar widget to display a brief pop-up message."
section:
- title: Building and Displaying a Pop-Up Message
path: /training/snackbar/showing.html
- title: Adding an Action to a Message
path: /training/snackbar/action.html
- title: Creating Custom Views
path: /training/custom-views/index.html
custom_link_attributes:
- description="How to build custom UI widgets that are interactive and smooth."
section:
- title: Creating a Custom View Class
path: /training/custom-views/create-view.html
- title: Implementing Custom Drawing
path: /training/custom-views/custom-drawing.html
- title: Making the View Interactive
path: /training/custom-views/making-interactive.html
- title: Optimizing the View
path: /training/custom-views/optimizing-view.html
- title: Creating Backward-Compatible UIs
path: /training/backward-compatible-ui/index.html
custom_link_attributes:
- 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."
section:
- title: Abstracting the New APIs
path: /training/backward-compatible-ui/abstracting.html
- title: Proxying to the New APIs
path: /training/backward-compatible-ui/new-implementation.html
- title: Creating an Implementation with Older APIs
path: /training/backward-compatible-ui/older-implementation.html
- title: Using the Version-Aware Component
path: /training/backward-compatible-ui/using-component.html
- title: Implementing Accessibility
path: /training/accessibility/index.html
custom_link_attributes:
- description="How to make your app accessible to users with vision impairment or other physical disabilities."
section:
- title: Developing Accessible Applications
path: /training/accessibility/accessible-app.html
- title: Developing Accessibility Services
path: /training/accessibility/service.html
- title: Accessibility Testing Checklist
path: /training/accessibility/testing.html
- title: Managing the System UI
path: /training/system-ui/index.html
custom_link_attributes:
- description="How to hide and show status and navigation bars across different versions of Android, while managing the display of other screen components."
section:
- title: Dimming the System Bars
path: /training/system-ui/dim.html
- title: Hiding the Status Bar
path: /training/system-ui/status.html
- title: Hiding the Navigation Bar
path: /training/system-ui/navigation.html
- title: Using Immersive Full-Screen Mode
path: /training/system-ui/immersive.html
- title: Responding to UI Visibility Changes
path: /training/system-ui/visibility.html
- title: Creating Apps with Material Design
path: /training/material/index.html
custom_link_attributes:
- es-lang="Crear aplicaciones con Material Design"
- in-lang="Desain Bahan untuk Pengembang"
- ja-lang="マテリアル デザインでのアプリ作成"
- ko-lang="개발자를 위한 머티리얼 디자인"
- pt-br-lang="Material Design para desenvolvedores"
- ru-lang="Создание приложений с помощью Material Design"
- vi-lang="Material Design cho Nhà phát triển"
- zh-cn-lang="面向开发者的材料设计"
- zh-tw-lang="開發人員材料設計"
- description="How to implement material design on Android."
section:
- title: Getting Started
path: /training/material/get-started.html
custom_link_attributes:
- es-lang="Comencemos"
- in-lang="Memulai"
- ja-lang="スタート ガイド"
- ko-lang="시작하기"
- pt-br-lang="Como iniciar"
- ru-lang="Начало работы"
- vi-lang="Bắt đầu"
- zh-cn-lang="入门指南"
- zh-tw-lang="開始使用"
- title: Using the Material Theme
path: /training/material/theme.html
custom_link_attributes:
- es-lang="Usar el tema Material"
- in-lang="Menggunakan Tema Bahan"
- ja-lang="マテリアル テーマの使用"
- ko-lang="머티어리얼 테마 사용"
- pt-br-lang="Como usar o tema do Material"
- ru-lang="Использование темы Material Design"
- vi-lang="Sử dụng Chủ đề Material"
- zh-cn-lang="使用材料主题"
- zh-tw-lang="使用材料設計風格"
- title: Creating Lists and Cards
path: /training/material/lists-cards.html
custom_link_attributes:
- es-lang="Crear listas y tarjetas"
- in-lang="Membuat Daftar dan Kartu"
- ja-lang="リストとカードの作成"
- ko-lang="목록 및 카드 생성"
- pt-br-lang="Como criar listas e cartões"
- ru-lang="Создание списков и подсказок"
- vi-lang="Tạo Danh sách và Thẻ"
- zh-cn-lang="创建列表与卡片"
- zh-tw-lang="建立清單和卡片"
- title: Defining Shadows and Clipping Views
path: /training/material/shadows-clipping.html
custom_link_attributes:
- es-lang="Definir vistas de recorte y sombras"
- in-lang="Mendefinisikan Bayangan dan Memangkas Tampilan"
- ja-lang="シャドウとクリッピング ビューの定義"
- ko-lang="그림자 정의 및 뷰 클리핑"
- pt-br-lang="Como definir sombras e recortar visualizações"
- ru-lang="Определение теней и обрезка представлений"
- vi-lang="Định nghĩa Đổ bóng và Dạng xem Cắt hình"
- zh-cn-lang="定义阴影与裁剪视图"
- zh-tw-lang="定義陰影和裁剪檢視"
- title: Working with Drawables
path: /training/material/drawables.html
custom_link_attributes:
- es-lang="Trabajar con interfaces dibujables"
- in-lang="Bekerja dengan Drawable"
- ja-lang="ドローアブルの使用"
- ko-lang="Drawable 사용"
- pt-br-lang="Como trabalhar com desenháveis"
- ru-lang="Работа с элементами дизайна"
- vi-lang="Làm việc với Nội dung vẽ được"
- zh-cn-lang="使用 Drawables"
- zh-tw-lang="使用可繪項目"
- title: Defining Custom Animations
path: /training/material/animations.html
custom_link_attributes:
- es-lang="Definir animaciones personalizadas"
- in-lang="Mendefinisikan Animasi Custom"
- ja-lang="カスタム アニメーションの定義"
- ko-lang="사용자지정 애니메이션 정의"
- pt-br-lang="Como definir animações personalizadas"
- ru-lang="Определение настраиваемой анимации"
- vi-lang="Định nghĩa Hoạt hình Tùy chỉnh"
- zh-cn-lang="定义定制动画"
- zh-tw-lang="定義自訂動畫"
- title: Maintaining Compatibility
path: /training/material/compatibility.html
custom_link_attributes:
- es-lang="Mantener la compatibilidad"
- in-lang="Mempertahankan Kompatibilitas"
- ja-lang="互換性の維持"
- ko-lang="호환성 유지"
- pt-br-lang="Como manter a compatibilidade"
- ru-lang="Обеспечение совместимости"
- vi-lang="Duy trì Tính tương thích"
- zh-cn-lang="维护兼容性"
- zh-tw-lang="維持相容性"
- title: Best Practices for User Input
path: /training/best-user-input.html
section:
- title: Using Touch Gestures
path: /training/gestures/index.html
custom_link_attributes:
- description="How to write apps that allow users to interact with the touch screen via touch gestures."
section:
- title: Detecting Common Gestures
path: /training/gestures/detector.html
- title: Tracking Movement
path: /training/gestures/movement.html
- title: Animating a Scroll Gesture
path: /training/gestures/scroll.html
- title: Handling Multi-Touch Gestures
path: /training/gestures/multi.html
- title: Dragging and Scaling
path: /training/gestures/scale.html
- title: Managing Touch Events in a ViewGroup
path: /training/gestures/viewgroup.html
- title: Handling Keyboard Input
path: /training/keyboard-input/index.html
custom_link_attributes:
- description="How to specify the appearance and behaviors of soft input methods (such as on-screen keyboards) and how to optimize the experience with hardware keyboards."
section:
- title: Specifying the Input Method Type
path: /training/keyboard-input/style.html
- title: Handling Input Method Visibility
path: /training/keyboard-input/visibility.html
- title: Supporting Keyboard Navigation
path: /training/keyboard-input/navigation.html
- title: Handling Keyboard Actions
path: /training/keyboard-input/commands.html
- title: Supporting Game Controllers
path: /training/game-controllers/index.html
custom_link_attributes:
- description="How to write apps that support game controllers."
section:
- title: Handling Controller Actions
path: /training/game-controllers/controller-input.html
- title: Supporting Controllers Across Android Versions
path: /training/game-controllers/compatibility.html
- title: Supporting Multiple Game Controllers
path: /training/game-controllers/multiple-controllers.html
- title: Best Practices for Background Jobs
path: /training/best-background.html
section:
- title: Running in a Background Service
path: /training/run-background-service/index.html
custom_link_attributes:
- description="How to improve UI performance and responsiveness by sending work to a Service running in the background"
section:
- title: Creating a Background Service
path: /training/run-background-service/create-service.html
- title: Sending Work Requests to the Background Service
path: /training/run-background-service/send-request.html
- title: Reporting Work Status
path: /training/run-background-service/report-status.html
- title: Loading Data in the Background
path: /training/load-data-background/index.html
custom_link_attributes:
- description="How to use CursorLoader to query data without affecting UI responsiveness."
section:
- title: Running a Query with a CursorLoader
path: /training/load-data-background/setup-loader.html
- title: Handling the Results
path: /training/load-data-background/handle-results.html
- title: Managing Device Awake State
path: /training/scheduling/index.html
custom_link_attributes:
- description="How to use repeating alarms and wake locks to run background jobs."
section:
- title: Keeping the Device Awake
path: /training/scheduling/wakelock.html
- title: Scheduling Repeating Alarms
path: /training/scheduling/alarms.html
- title: Best Practices for Performance
path: /training/best-performance.html
section:
- title: Managing Your App's Memory
path: /training/articles/memory.html
custom_link_attributes:
- description="How to keep your app's memory footprint small in order to improve performance on a variety of mobile devices."
- title: Performance Tips
path: /training/articles/perf-tips.html
custom_link_attributes:
- description="How to optimize your app's performance in various ways to improve its responsiveness and battery efficiency."
- title: Improving Layout Performance
path: /training/improving-layouts/index.html
custom_link_attributes:
- description="How to identify problems in your app's layout performance and improve the UI responsiveness."
section:
- title: Optimizing Layout Hierarchies
path: /training/improving-layouts/optimizing-layout.html
- title: Re-using Layouts with <include/>
path: /training/improving-layouts/reusing-layouts.html
- title: Loading Views On Demand
path: /training/improving-layouts/loading-ondemand.html
- title: Making ListView Scrolling Smooth
path: /training/improving-layouts/smooth-scrolling.html
- title: Optimizing Battery Life
path: /training/monitoring-device-state/index.html
custom_link_attributes:
- es-lang="Cómo optimizar la duración de la batería"
- ja-lang="電池消費量の最適化"
- zh-cn-lang="优化电池使用时间"
- 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."
section:
- title: Reducing Network Battery Drain
path: /training/performance/battery/network/index.html
section:
- title: Collecting Network Traffic Data
path: /training/performance/battery/network/gather-data.html
- title: Analyzing Network Traffic Data
path: /training/performance/battery/network/analyze-data.html
- title: Optimizing User-Initiated Network Use
path: /training/performance/battery/network/action-user-traffic.html
- title: Optimizing App-Initiated Network Use
path: /training/performance/battery/network/action-app-traffic.html
- title: Optimizing Server-Initiated Network Use
path: /training/performance/battery/network/action-server-traffic.html
- title: Optimizing General Network Use
path: /training/performance/battery/network/action-any-traffic.html
- title: Optimizing for Doze and App Standby
path: /training/monitoring-device-state/doze-standby.html
- title: Monitoring the Battery Level and Charging State
path: /training/monitoring-device-state/battery-monitoring.html
custom_link_attributes:
- es-lang="Cómo controlar el nivel de batería y el estado de carga"
- ja-lang="電池残量と充電状態の監視"
- zh-cn-lang="监控电池电量和充电状态"
- title: Determining and Monitoring the Docking State and Type
path: /training/monitoring-device-state/docking-monitoring.html
custom_link_attributes:
- es-lang="Cómo determinar y controlar el tipo de conector y el estado de la conexión"
- ja-lang="ホルダーの装着状態とタイプの特定と監視"
- zh-cn-lang="确定和监控基座对接状态和类型"
- title: Determining and Monitoring the Connectivity Status
path: /training/monitoring-device-state/connectivity-monitoring.html
custom_link_attributes:
- es-lang="Cómo determinar y controlar el estado de la conectividad"
- ja-lang="接続状態の特定と監視"
- zh-cn-lang="确定和监控网络连接状态"
- title: Manipulating Broadcast Receivers On Demand
path: /training/monitoring-device-state/manifest-receivers.html
custom_link_attributes:
- es-lang="Cómo manipular los receptores de emisión bajo demanda"
- ja-lang="オンデマンドでのブロードキャスト レシーバ操作"
- zh-cn-lang="根据需要操作广播接收器"
- title: Sending Operations to Multiple Threads
path: /training/multiple-threads/index.html
custom_link_attributes:
- description="How to improve the performance and scalability of long-running operations by dispatching work to multiple threads."
section:
- title: Specifying the Code to Run on a Thread
path: /training/multiple-threads/define-runnable.html
- title: Creating a Manager for Multiple Threads
path: /training/multiple-threads/create-threadpool.html
- title: Running Code on a Thread Pool Thread
path: /training/multiple-threads/run-code.html
- title: Communicating with the UI Thread
path: /training/multiple-threads/communicate-ui.html
- title: Keeping Your App Responsive
path: /training/articles/perf-anr.html
custom_link_attributes:
- description="How to keep your app responsive to user interaction so the UI does not lock-up and display an \"Application Not Responding\" dialog."
- title: JNI Tips
path: /training/articles/perf-jni.html
custom_link_attributes:
- description="How to efficiently use the Java Native Interface with the Android NDK."
- title: SMP Primer for Android
path: /training/articles/smp.html
custom_link_attributes:
- description="Tips for coding Android apps on symmetric multiprocessor systems."
- title: Best Practices for Security & Privacy
path: /training/best-security.html
section:
- title: Security Tips
path: /training/articles/security-tips.html
custom_link_attributes:
- description="How to perform various tasks and keep your app's data and your user's data secure."
- title: Security with HTTPS and SSL
path: /training/articles/security-ssl.html
custom_link_attributes:
- description="How to ensure that your app is secure when performing network transactions."
- title: Updating Your Security Provider to Protect Against SSL Exploits
path: /training/articles/security-gms-provider.html
custom_link_attributes:
- description="How to use and update Google Play services security provider, to protect against SSL exploits."
- title: Checking Device Compatibility with SafetyNet
path: /training/safetynet/index.html
custom_link_attributes:
- description="How to use the SafetyNet service to analyze a device where your app is running and get information about its compatibility with your app."
- title: Enhancing Security with Device Management Policies
path: /training/enterprise/device-management-policy.html
custom_link_attributes:
- description="How to create an application that enforces security policies on devices."
- title: Best Practices for Permissions & Identifiers
path: /training/best-permissions-ids.html
section:
- title: Permissions and User Data
path: /training/articles/user-data-overview.html
custom_link_attributes:
- description="Overview of app permissions on Android and how they affect your users."
- title: Best Practices for App Permissions
path: /training/articles/user-data-permissions.html
custom_link_attributes:
- description="How to manage permissions the right way for users."
- title: Best Practices for Unique Identifiers
path: /training/articles/user-data-ids.html
custom_link_attributes:
- description="Unique identifiers available and how to choose the right one for your use case."
- title: Best Practices for Testing
path: /training/testing/index.html
section:
- title: Getting Started with Testing
path: /training/testing/start/index.html
custom_link_attributes:
- description="How to get started with testing your Android applications."
- title: Building Effective Unit Tests
path: /training/testing/unit-testing/index.html
custom_link_attributes:
- description="How to build effective unit tests for Android apps."
section:
- title: Building Local Unit Tests
path: /training/testing/unit-testing/local-unit-tests.html
- title: Building Instrumented Unit Tests
path: /training/testing/unit-testing/instrumented-unit-tests.html
- title: Automating UI Tests
path: /training/testing/ui-testing/index.html
custom_link_attributes:
- description="How to automate your user interface tests for Android apps."
section:
- title: Testing UI for a Single App
path: /training/testing/ui-testing/espresso-testing.html
- title: Testing UI for Multiple Apps
path: /training/testing/ui-testing/uiautomator-testing.html
- title: Testing App Component Integrations
path: /training/testing/integration-testing/index.html
custom_link_attributes:
- description="How to build effective integration tests for Android apps."
section:
- title: Testing Your Service
path: /training/testing/integration-testing/service-testing.html
- title: Testing Your Content Provider
path: /training/testing/integration-testing/content-provider-testing.html
- title: Testing Display Performance
path: /training/testing/performance.html
custom_link_attributes:
- description="How to automate UI performance testing."
- title: Using Google Play to Distribute & Monetize
path: /training/distribute.html
section:
- title: Selling In-app Products
path: /training/in-app-billing/index.html
custom_link_attributes:
- description="How to sell in-app products from your application using In-app Billing."
section:
- title: Preparing Your App
path: /training/in-app-billing/preparing-iab-app.html
- title: Establishing Products for Sale
path: /training/in-app-billing/list-iab-products.html
- title: Purchasing Products
path: /training/in-app-billing/purchase-iab-products.html
- title: Testing Your App
path: /training/in-app-billing/test-iab-app.html
- title: Maintaining Multiple APKs
path: /training/multiple-apks/index.html
custom_link_attributes:
- description="How to publish your app on Google Play with separate APKs that target different devices, while using a single app listing."
section:
- title: Creating Multiple APKs for Different API Levels
path: /training/multiple-apks/api.html
- title: Creating Multiple APKs for Different Screen Sizes
path: /training/multiple-apks/screensize.html
- title: Creating Multiple APKs for Different GL Textures
path: /training/multiple-apks/texture.html
- title: Creating Multiple APKs with 2+ Dimensions
path: /training/multiple-apks/multiple.html