1211 lines
57 KiB
YAML
1211 lines
57 KiB
YAML
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
|