Merge "Docs: Updated localizations for N Developer Preview docs." into nyc-dev
342
docs/html-intl/intl/es/preview/_book.yaml
Normal file
@@ -0,0 +1,342 @@
|
|||||||
|
toc:
|
||||||
|
- title: Información general del programa
|
||||||
|
path: /preview/overview.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Información general del programa
|
||||||
|
- name: in-lang
|
||||||
|
value: Ikhtisar Program
|
||||||
|
- name: ja-lang
|
||||||
|
value: プログラム概要
|
||||||
|
- name: ko-lang
|
||||||
|
value: 프로그램 개요
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Visão geral do programa
|
||||||
|
- name: ru-lang
|
||||||
|
value: Обзор программы
|
||||||
|
- name: vi-lang
|
||||||
|
value: Tổng quan về Chương trình
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 计划概览
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 程式總覽
|
||||||
|
|
||||||
|
- title: Compatibilidad y notas de la versión
|
||||||
|
path: /preview/support.html
|
||||||
|
|
||||||
|
- title: Configuración de Preview
|
||||||
|
path: /preview/setup-sdk.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Configurar el SDK de la versión preliminar
|
||||||
|
- name: in-lang
|
||||||
|
value: Menyiapkan Preview
|
||||||
|
- name: ja-lang
|
||||||
|
value: Preview SDK のセットアップ
|
||||||
|
- name: ko-lang
|
||||||
|
value: 미리 보기 SDK 설정하기
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Configuração do Preview SDK
|
||||||
|
- name: ru-lang
|
||||||
|
value: Настройка пакета SDK Preview
|
||||||
|
- name: vi-lang
|
||||||
|
value: Kiểm thử trên Thiết bị
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 设置预览版 SDK
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 設定預覽版 SDK
|
||||||
|
|
||||||
|
- title: Probar en un dispositivo
|
||||||
|
path: /preview/download.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Probar en un dispositivo
|
||||||
|
- name: in-lang
|
||||||
|
value: Menguji pada Perangkat
|
||||||
|
- name: ja-lang
|
||||||
|
value: デバイス上でテストする
|
||||||
|
- name: ko-lang
|
||||||
|
value: 기기에서 테스트
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Testar em um dispositivo
|
||||||
|
- name: ru-lang
|
||||||
|
value: Тестирование на устройстве
|
||||||
|
- name: vi-lang
|
||||||
|
value: Kiểm thử trên Thiết bị
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 在设备上测试
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 在裝置上測試
|
||||||
|
|
||||||
|
- title: Cambios en los comportamientos
|
||||||
|
path: /preview/behavior-changes.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Cambios en los comportamientos
|
||||||
|
- name: in-lang
|
||||||
|
value: Perubahan Perilaku
|
||||||
|
- name: ja-lang
|
||||||
|
value: 動作の変更点
|
||||||
|
- name: ko-lang
|
||||||
|
value: 동작 변경
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Mudanças de comportamento
|
||||||
|
- name: ru-lang
|
||||||
|
value: Изменения в работе
|
||||||
|
- name: vi-lang
|
||||||
|
value: Các thay đổi Hành vi
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 行为变更
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 行為變更
|
||||||
|
section:
|
||||||
|
- title: Background Optimizations
|
||||||
|
path: /preview/features/background-optimization.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Optimizaciones en segundo plano
|
||||||
|
- name: in-lang
|
||||||
|
value: Optimisasi Latar Belakang
|
||||||
|
- name: ja-lang
|
||||||
|
value: バックグラウンド処理の最適化
|
||||||
|
- name: ko-lang
|
||||||
|
value: 백그라운드 최적화
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Otimizações em segundo plano
|
||||||
|
- name: ru-lang
|
||||||
|
value: Оптимизация фоновых процессов
|
||||||
|
- name: vi-lang
|
||||||
|
value: Tối ưu hóa Chạy ngầm
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 后台优化
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 背景最佳化
|
||||||
|
- title: Idioma y configuración regional
|
||||||
|
path: /preview/features/multilingual-support.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Idioma y configuración regional
|
||||||
|
- name: in-lang
|
||||||
|
value: Bahasa dan Lokal
|
||||||
|
- name: ja-lang
|
||||||
|
value: 言語とロケール
|
||||||
|
- name: ko-lang
|
||||||
|
value: 언어 및 로케일
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Idioma e localidade
|
||||||
|
- name: ru-lang
|
||||||
|
value: Язык и языковой стандарт
|
||||||
|
- name: vi-lang
|
||||||
|
value: Ngôn ngữ và Bản địa
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 语言和区域设置
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 語言和地區設定
|
||||||
|
|
||||||
|
- title: Android N for Developers
|
||||||
|
path: /preview/api-overview.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Información general de la API
|
||||||
|
- name: in-lang
|
||||||
|
value: Android N untuk Pengembang
|
||||||
|
- name: ja-lang
|
||||||
|
value: API の概要
|
||||||
|
- name: ko-lang
|
||||||
|
value: API 개요
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Visão geral da API
|
||||||
|
- name: ru-lang
|
||||||
|
value: Обзор API-интерфейсов
|
||||||
|
- name: vi-lang
|
||||||
|
value: Android N cho Nhà phát triển
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: API 概览
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: API 總覽
|
||||||
|
section:
|
||||||
|
- title: Compatibilidad con ventanas múltiples
|
||||||
|
path: /preview/features/multi-window.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Compatibilidad con ventanas múltiples
|
||||||
|
- name: in-lang
|
||||||
|
value: Dukungan Multi-Jendela
|
||||||
|
- name: ja-lang
|
||||||
|
value: マルチ ウィンドウのサポート
|
||||||
|
- name: ko-lang
|
||||||
|
value: 다중 창 지원
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Suporte a várias janelas
|
||||||
|
- name: ru-lang
|
||||||
|
value: Поддержка многооконного режима
|
||||||
|
- name: vi-lang
|
||||||
|
value: Hỗ trợ đa cửa sổ
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 多窗口支持
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 多視窗支援
|
||||||
|
- title: Notificaciones
|
||||||
|
path: /preview/features/notification-updates.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Notificaciones
|
||||||
|
- name: in-lang
|
||||||
|
value: Pemberitahuan
|
||||||
|
- name: ja-lang
|
||||||
|
value: 通知
|
||||||
|
- name: ko-lang
|
||||||
|
value: 알림
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Notificações
|
||||||
|
- name: ru-lang
|
||||||
|
value: Уведомления
|
||||||
|
- name: vi-lang
|
||||||
|
value: Thông báo
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 通知
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 通知
|
||||||
|
- title: Ahorro de datos
|
||||||
|
path: /preview/features/data-saver.html
|
||||||
|
- title: Grabación de TV
|
||||||
|
path: /preview/features/tv-recording-api.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Grabación de TV
|
||||||
|
- name: in-lang
|
||||||
|
value: Perekaman TV
|
||||||
|
- name: ja-lang
|
||||||
|
value: TV の録画
|
||||||
|
- name: ko-lang
|
||||||
|
value: TV 녹화
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Gravação para TV
|
||||||
|
- name: ru-lang
|
||||||
|
value: Запись ТВ
|
||||||
|
- name: vi-lang
|
||||||
|
value: Ghi lại TV
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: TV 录制
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 電視錄製
|
||||||
|
- title: Configuración de seguridad de la red
|
||||||
|
path: /preview/features/security-config.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Configuración de seguridad de la red
|
||||||
|
- name: ja-lang
|
||||||
|
value: ネットワーク セキュリティ構成
|
||||||
|
- name: ko-lang
|
||||||
|
value: 네트워크 보안 구성
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Configurações de segurança de rede
|
||||||
|
- name: ru-lang
|
||||||
|
value: Конфигурация сетевой безопасности
|
||||||
|
- name: vi-lang
|
||||||
|
value: Cấu hình Bảo mật mạng
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 网络安全配置
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 網路安全性設定
|
||||||
|
- title: Compatibilidad con ICU4J
|
||||||
|
path: /preview/features/icu4j-framework.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: API de ICU4J del framework de Android
|
||||||
|
- name: in-lang
|
||||||
|
value: ICU4J Android Framework API
|
||||||
|
- name: ja-lang
|
||||||
|
value: ICU4J Android フレームワーク API
|
||||||
|
- name: ko-lang
|
||||||
|
value: ICU4J Android 프레임워크 API
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: APIs de estrutura do Android para ICU4J
|
||||||
|
- name: ru-lang
|
||||||
|
value: API-интерфейсы ICU4J в платформе Android
|
||||||
|
- name: vi-lang
|
||||||
|
value: API Khuôn khổ Android ICU4J
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: ICU4J Android 框架 API
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: ICU4J Android 架構 API
|
||||||
|
- title: Funciones del lenguaje Java 8
|
||||||
|
path: /preview/j8-jack.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Funciones del lenguaje Java 8
|
||||||
|
- name: in-lang
|
||||||
|
value: Fitur Bahasa Java 8
|
||||||
|
- name: ja-lang
|
||||||
|
value: Java 8 の機能
|
||||||
|
- name: ko-lang
|
||||||
|
value: Java 8 언어 기능
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Recursos de linguagem do Java 8
|
||||||
|
- name: ru-lang
|
||||||
|
value: Возможности языка Java 8
|
||||||
|
- name: vi-lang
|
||||||
|
value: Tính năng của Ngôn ngữ Java 8
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: Java 8 语言功能
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: Java 8 語言功能
|
||||||
|
- title: Actualizaciones para Android for Work
|
||||||
|
path: /preview/features/afw.html
|
||||||
|
- title: Acceso a directorios determinados
|
||||||
|
path: /preview/features/scoped-folder-access.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Acceso a directorios determinados
|
||||||
|
- name: ja-lang
|
||||||
|
value: 特定のディレクトリへのアクセス
|
||||||
|
- name: ko-lang
|
||||||
|
value: 범위가 지정된 디렉터리 액세스
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Acesso a diretórios com escopo
|
||||||
|
- name: ru-lang
|
||||||
|
value: Доступ к выделенным каталогам
|
||||||
|
- name: vi-lang
|
||||||
|
value: Truy cập Thư mục theo Phạm vi
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 作用域目录访问
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 限定範圍目錄存取
|
||||||
|
|
||||||
|
- title: Ejemplos
|
||||||
|
path: /preview/samples.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Ejemplos
|
||||||
|
- name: in-lang
|
||||||
|
value: Contoh
|
||||||
|
- name: ja-lang
|
||||||
|
value: サンプル
|
||||||
|
- name: ko-lang
|
||||||
|
value: 샘플
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Exemplos
|
||||||
|
- name: ru-lang
|
||||||
|
value: Примеры
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 示例
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 範例
|
||||||
|
|
||||||
|
- title: Contrato de licencia
|
||||||
|
path: /preview/license.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Contrato de licencia
|
||||||
|
- name: ja-lang
|
||||||
|
value: 使用許諾契約
|
||||||
|
- name: ko-lang
|
||||||
|
value: 라이선스 계약
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Contrato de licença
|
||||||
|
- name: ru-lang
|
||||||
|
value: Лицензионное соглашение
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 许可协议
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 授權協議
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Android N para desarrolladores
|
page.title=Android N for Developers
|
||||||
meta.tags=“preview”, “Android N”
|
meta.tags="preview", "androidn"
|
||||||
page.tags="preview", "developer preview"
|
page.tags="preview", "developer preview"
|
||||||
page.image=images/cards/card-n-apis_2x.png
|
page.image=images/cards/card-n-apis_2x.png
|
||||||
@jd:body
|
@jd:body
|
||||||
@@ -16,13 +16,15 @@ page.image=images/cards/card-n-apis_2x.png
|
|||||||
<li><a href="#notification_enhancements">Notificaciones</a></li>
|
<li><a href="#notification_enhancements">Notificaciones</a></li>
|
||||||
<li><a href="#jit_aot">Compilación de JIT y AOT</a></li>
|
<li><a href="#jit_aot">Compilación de JIT y AOT</a></li>
|
||||||
<li><a href="#quick_path_to_app_install">Acceso rápido a la instalación de aplicaciones</a></li>
|
<li><a href="#quick_path_to_app_install">Acceso rápido a la instalación de aplicaciones</a></li>
|
||||||
<li><a href="#doze_on_the_go">Doze en movimiento</a></li>
|
<li><a href="#doze_on_the_go">Descanso en movimiento</a></li>
|
||||||
<li><a href="#background_optimizations">Optimizaciones en segundo plano</a></li>
|
<li><a href="#background_optimizations">Optimizaciones en segundo plano</a></li>
|
||||||
<li><a href="#data_saver">Ahorro de datos</a></li>
|
<li><a href="#data_saver">Ahorro de datos</a></li>
|
||||||
<li><a href="#tile_api">API para Mosaico de Configuración rápida</a></li>
|
<li><a href="#vulkan">API Vulkan</a></li>
|
||||||
|
<li><a href="#tile_api">API para mosaicos de Quick Settings</a></li>
|
||||||
<li><a href="#number-blocking">Bloqueo de números</a></li>
|
<li><a href="#number-blocking">Bloqueo de números</a></li>
|
||||||
<li><a href="#call_screening">Filtración de llamadas</a></li>
|
<li><a href="#call_screening">Filtración de llamadas</a></li>
|
||||||
<li><a href="#multi-locale_languages">Configuraciones regionales e idiomas</a></li>
|
<li><a href="#multi-locale_languages">Configuraciones regionales e idiomas</a></li>
|
||||||
|
<li><a href="#emoji">Nuevos emojis</a></li>
|
||||||
<li><a href="#icu4">API de ICU4J en Android</a></li>
|
<li><a href="#icu4">API de ICU4J en Android</a></li>
|
||||||
<li><a href="#gles_32">API de OpenGL ES 3.2</a></li>
|
<li><a href="#gles_32">API de OpenGL ES 3.2</a></li>
|
||||||
<li><a href="#android_tv_recording">Grabación de Android TV</a></li>
|
<li><a href="#android_tv_recording">Grabación de Android TV</a></li>
|
||||||
@@ -32,8 +34,14 @@ page.image=images/cards/card-n-apis_2x.png
|
|||||||
<li><a href="#key_attestation">Atestación de claves</a></li>
|
<li><a href="#key_attestation">Atestación de claves</a></li>
|
||||||
<li><a href="#network_security_config">Configuración de seguridad de la red</a></li>
|
<li><a href="#network_security_config">Configuración de seguridad de la red</a></li>
|
||||||
<li><a href="#default_trusted_ca">CA de confianza predeterminada</a></li>
|
<li><a href="#default_trusted_ca">CA de confianza predeterminada</a></li>
|
||||||
<li><a href="apk_signature_v2">Esquema de firma de APK v2</a></li>
|
<li><a href="#apk_signature_v2">Esquema de firma de APK v2</a></li>
|
||||||
<li><a href="#scoped_directory_access">Acceso a directorios determinados</a></li>
|
<li><a href="#scoped_directory_access">Acceso a directorios determinados</a></li>
|
||||||
|
<li><a href="#keyboard_shortcuts_helper">Ayuda en los métodos abreviados del teclado</a></li>
|
||||||
|
<li><a href="#sustained_performance_api">API de rendimiento sostenido</a></li>
|
||||||
|
<li><a href="#vr">Soporte de RV</a></li>
|
||||||
|
<li><a href="#print_svc">Mejoras del servicio de impresión</a></li>
|
||||||
|
<li><a href="#virtual_files">Archivos virtuales</a></li>
|
||||||
|
<li><a href="#framemetrics_api">API FrameMetricsListener</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -64,9 +72,9 @@ con Android N, los usuarios pueden ejecutar dos aplicaciones en paralelo
|
|||||||
una encima otra en el modo de pantalla dividida. También tienen la posibilidad de modificar el tamaño de las aplicaciones arrastrando
|
una encima otra en el modo de pantalla dividida. También tienen la posibilidad de modificar el tamaño de las aplicaciones arrastrando
|
||||||
la línea divisoria que se encuentra entre ellas. </li>
|
la línea divisoria que se encuentra entre ellas. </li>
|
||||||
|
|
||||||
<li>En los dispositivos con Android TV, las aplicaciones pueden habilitar en forma automática el <a href="{@docRoot}preview/features/picture-in-picture.html">modo "picture-in
|
<li>En los dispositivos con Android TV, las aplicaciones pueden habilitar en forma automática el <a href="{@docRoot}preview/features/picture-in-picture.html">modo
|
||||||
-picture"</a>. Esto les permite continuar mostrando contenido mientras el usuario explora otras
|
"picture-in-picture"</a>. Esto les permite continuar mostrando contenido mientras el usuario explora otras
|
||||||
aplicaciones o interactúa con ellas. Consulta las secciones siguientes para obtener más información. </li>
|
aplicaciones o interactúa con ellas.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="col-4of10">
|
<div class="col-4of10">
|
||||||
@@ -74,47 +82,55 @@ aplicaciones o interactúa con ellas. Consulta las secciones siguientes para obt
|
|||||||
<p class="img-caption">
|
<p class="img-caption">
|
||||||
<strong>Figura 1:</strong> Aplicaciones en ejecución en el modo de pantalla dividida.
|
<strong>Figura 1:</strong> Aplicaciones en ejecución en el modo de pantalla dividida.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>En las tabletas, en particular, y en otros dispositivos de pantallas más grandes, la compatibilidad con ventanas múltiples
|
<p>En las tabletas, en particular, y en otros dispositivos de pantallas más grandes, la compatibilidad con ventanas múltiples
|
||||||
ofrece nuevas maneras de captar a los usuarios. Puedes, incluso, habilitar acciones de arrastrar y soltar en
|
ofrece nuevas maneras de atraer a los usuarios Puedes, habilitar acciones de arrastrar y soltar en
|
||||||
tu aplicación para que los usuarios arrastren contenido hacia tu aplicación o desde ella; es una excelente
|
tu aplicación para que los usuarios arrastren contenido hacia tu aplicación —o desde ella; es una excelente
|
||||||
manera de mejorar su experiencia. </p>
|
manera de mejorar su experiencia. </p>
|
||||||
|
|
||||||
<p>Es sencillo agregar compatibilidad con ventanas múltiples a tu aplicación y configurar la manera en que
|
<p>Es sencillo agregar compatibilidad con ventanas múltiples a tu aplicación y configurar la manera en que
|
||||||
administra la visualización de estas ventanas. Por ejemplo, puedes especificar las dimensiones mínimas
|
administra la visualización de estas ventanas. Por ejemplo, puedes especificar las dimensiones mínimas
|
||||||
permitidas de tu actividad, y evitar así que los usuarios den a la actividad un tamaño inferior
|
permitidas de tu actividad y evitar así que los usuarios den a la actividad un
|
||||||
al que establecen estas. También puedes deshabilitar la visualización de ventanas múltiples para tu aplicación, lo cual
|
tamaño inferior. También puedes inhabilitar la visualización de ventanas múltiples para tu aplicación, lo que
|
||||||
garantiza que en el sistema solo se muestre tu aplicación en el modo de pantalla completa.</p>
|
garantiza que el sistema solo muestre tu aplicación en modo de pantalla completa.</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para obtener más información, consulta la documentación sobre <a href="{@docRoot}preview/features/multi-window.html">Compatibilidad con ventanas múltiples</a>
|
Para obtener más información, consulta la documentación <a href="{@docRoot}preview/features/multi-window.html">Compatibilidad con ventanas múltiples</a>
|
||||||
para desarrolladores.
|
para desarrolladores.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="notification_enhancements">Mejoras en las notificaciones</h2>
|
<h2 id="notification_enhancements">Mejoras en las notificaciones</h2>
|
||||||
|
|
||||||
<p>En Android N, hemos rediseñado las notificaciones para facilitar y agilizar su
|
<p>En Android N, hemos rediseñado las notificaciones para facilitar y agilizar su
|
||||||
uso. Entre los cambios se incluyen los siguientes:</p>
|
uso. Entre los cambios, se incluyen los siguientes:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<strong>Actualizaciones en las plantillas</strong>: actualizaremos las plantillas de notificaciones para
|
<strong>Actualizaciones de plantillas</strong>: estamos actualizando las plantillas de notificaciones para
|
||||||
poner nuevo énfasis en la imagen de héroe y el avatar. Los desarrolladores podrán
|
poner nuevo énfasis en la imagen de héroe y el avatar. Los desarrolladores podrán
|
||||||
aprovechar las nuevas plantillas con una cantidad mínima de ajustes en su código.
|
aprovechar las nuevas plantillas con una cantidad mínima de ajustes en el código.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<strong>Personalización del estilo de mensaje</strong>: puedes personalizar más etiquetas
|
||||||
|
de la interfaz de usuario asociadas con tus notificaciones utilizando la clase
|
||||||
|
<code>MessageStyle</code>. Puedes configurar el mensaje, el título de
|
||||||
|
la conversación y la vista del contenido.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<strong>Notificaciones agrupadas</strong>: el sistema puede agrupar mensajes
|
<strong>Notificaciones agrupadas</strong>: el sistema puede agrupar mensajes
|
||||||
(por ejemplo, por tema) y mostrar el grupo. Un usuario puede
|
(por ejemplo, por tema) y mostrar el grupo. Un usuario puede
|
||||||
aplicar acciones, como “Dismiss” o “Archive”, en ellos. Si
|
aplicar acciones, como Dismiss o Archive, en ellos. Si
|
||||||
has implementado notificaciones para Android Wear, ya estarás familiarizado con
|
has implementado notificaciones para Android Wear, ya estarás familiarizado con
|
||||||
este modelo.
|
este modelo.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<strong>Respuesta directa</strong>: en el caso de las aplicaciones de comunicación en tiempo real, el
|
<strong>Respuesta directa</strong>: en el caso de las aplicaciones de comunicación en tiempo real, el
|
||||||
sistema de Android admite respuestas en línea para que los usuarios puedan responder en forma rápida a
|
sistema de Android admite respuestas en línea para que los usuarios puedan responder rápidamente a
|
||||||
un mensaje SMS o de texto directamente dentro en la interfaz de notificaciones.
|
un mensaje SMS o de texto directamente dentro en la interfaz de notificaciones.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@@ -143,75 +159,75 @@ uso. Entre los cambios se incluyen los siguientes:</p>
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>Para obtener información acerca de cómo implementar las nuevas funciones, consulta la guía
|
<p>Para obtener información acerca de cómo implementar las nuevas funciones, consulta la guía
|
||||||
|
<a href="{@docRoot}preview/features/notification-updates.html">Notificaciones</a>.
|
||||||
<a href="{@docRoot}preview/features/notification-updates.html">Notificaciones</a>.</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2 id="jit_aot">Compilación de JIT y AOT guiada por perfiles</h2>
|
<h2 id="jit_aot">Compilación de JIT y AOT guiada por perfiles</h2>
|
||||||
|
|
||||||
<p>En Android N, agregamos un compilador “Just in Time” (JIT) con generación de perfiles de código para
|
<p>En Android N, agregamos un compilador Just in Time (JIT) con generación de perfiles de código para
|
||||||
ART, lo cual le permite mejorar constantemente el rendimiento de las aplicaciones de Android mientras se
|
ART, lo cual te permite mejorar constantemente el rendimiento de las aplicaciones con Android mientras se
|
||||||
ejecutan. El compilador JIT complementa al compilador “Ahead of Time” (AOT) actual de ART
|
ejecutan. El compilador JIT complementa el compilador Ahead of Time (AOT) actual de ART
|
||||||
y permite mejorar el rendimiento del tiempo de ejecución, ahorrar espacio de almacenamiento y acelerar las actualizaciones
|
y permite mejorar el rendimiento del tiempo de ejecución, ahorrar espacio de almacenamiento y acelerar las actualizaciones
|
||||||
de aplicaciones y del sistema.</p>
|
de aplicaciones y del sistema.</p>
|
||||||
|
|
||||||
<p>La compilación guiada por perfiles permite que ART maneje la compilación de AOT y JIT de cada aplicación
|
<p>La compilación guiada por perfiles permite que ART maneje la compilación de AOT y JIT de cada aplicación
|
||||||
conforme a su uso real, además de las condiciones en el dispositivo. Por
|
conforme a su uso real, además de las condiciones en el dispositivo. Por
|
||||||
ejemplo, conserva un perfil de los métodos directos de cada aplicación, y puede compilar previamente
|
ejemplo, ART conserva un perfil de los métodos directos de cada aplicación, y puede compilar previamente
|
||||||
y almacenar en el caché dichos métodos para obtener el mejor rendimiento. A su vez, deja otras partes de la aplicación
|
y almacenar en caché dichos métodos para obtener el mejor rendimiento. A su vez, deja otras partes de la aplicación
|
||||||
sin compilar hasta que se aplican verdaderamente.</p>
|
sin compilar hasta que se usan realmente.</p>
|
||||||
|
|
||||||
<p>Además de mejorar el rendimiento de partes claves de la aplicación, la compilación guiada por
|
<p>Además de mejorar el rendimiento de partes claves de la aplicación, la compilación guiada por
|
||||||
perfiles permite reducir la superficie de memora RAM total de una aplicación, incluidos los archivos binarios
|
perfiles permite reducir la superficie de memora RAM total de una aplicación, incluidos los archivos binarios
|
||||||
asociados. Esta función tiene particular importancia en los dispositivos de memoria reducida.</p>
|
asociados. Esta función tiene particular importancia en los dispositivos de memoria reducida.</p>
|
||||||
|
|
||||||
<p>ART administra la compilación guiada por perfiles de una manera que minimiza el impacto sobre la batería
|
<p>ART administra la compilación guiada por perfiles de una manera que minimiza el impacto en la batería
|
||||||
del dispositivo. Realiza compilaciones previas únicamente cuando el dispositivo se encuentra inactivo y
|
del dispositivo. Realiza compilaciones previas únicamente cuando el dispositivo se encuentra inactivo y
|
||||||
en proceso de carga, con lo cual permite ahorrar tiempo y batería al hacer el trabajo en forma anticipada.</p>
|
en proceso de carga, lo cual permite ahorrar tiempo y batería haciendo el trabajo de manera anticipada.</p>
|
||||||
|
|
||||||
<h2 id="quick_path_to_app_install">Acceso rápido a la instalación de aplicaciones</h2>
|
<h2 id="quick_path_to_app_install">Acceso rápido a la instalación de aplicaciones</h2>
|
||||||
|
|
||||||
<p>Uno de los beneficios más palpables del compilador JIT de ART es la velocidad de instalación de las
|
<p>Uno de los beneficios más palpables del compilador JIT de ART es la velocidad de instalación de las
|
||||||
aplicaciones y de actualización del sistema. Incluso las aplicaciones de mayor tamaño, en cuyos casos se necesitaban varios minutos para la
|
aplicaciones y de actualización del sistema. Incluso las aplicaciones de mayor tamaño, en las que se necesitaban varios minutos para la
|
||||||
optimización y la instalación en Android 6.0, ahora pueden instalarse en cuestión de
|
optimización y la instalación en Android 6.0, ahora pueden instalarse en cuestión de
|
||||||
segundos. Las actualizaciones del sistema también son más rápidas debido a que ya no hay paso de optimización. </p>
|
segundos. Las actualizaciones del sistema también son más rápidas, debido a que ya no hay un paso de optimización. </p>
|
||||||
|
|
||||||
<h2 id="doze_on_the_go">Doze en movimiento...</h2>
|
<h2 id="doze_on_the_go">Descanso en movimiento...</h2>
|
||||||
|
|
||||||
<p>En Android 6.0 se presentó Doze, un modo de sistema que ahorra batería al aplazar
|
<p>En Android 6.0, se presentó Descanso, un modo de sistema que ahorra batería aplazando
|
||||||
actividades de CPU y red de las aplicaciones cuando el dispositivo se encuentra inactivo; por ejemplo, al hallarse
|
actividades de CPU y red de las aplicaciones cuando el dispositivo se encuentra inactivo; por ejemplo, al hallarse
|
||||||
sobre una mesa o en un cajón. </p>
|
sobre una mesa o en un cajón. </p>
|
||||||
|
|
||||||
<p>Ahora, en Android N, el modo Doze ofrece el beneficio adicional de ahorrar batería en movimiento.
|
<p>Ahora, en Android N, el modo Descanso ofrece el beneficio adicional de ahorrar batería en movimiento.
|
||||||
Siempre que la pantalla permanezca apagada durante un tiempo y el dispositivo esté desenchufado,
|
Siempre que la pantalla permanezca apagada durante un tiempo y el dispositivo esté desenchufado,
|
||||||
Doze aplicará un subconjunto de las restricciones de CPU y red conocidas a las aplicaciones.
|
Descanso aplicará un subconjunto de las restricciones de CPU y red conocidas a las aplicaciones.
|
||||||
Esto significa que los usuarios pueden ahorrar batería aun cuando lleven sus dispositivos
|
Esto significa que los usuarios pueden ahorrar batería aun cuando lleven sus dispositivos
|
||||||
en los bolsillos.</p>
|
en los bolsillos.</p>
|
||||||
|
|
||||||
|
|
||||||
<img src="/preview/images/doze-diagram-1.png" alt="" id="figure1" />
|
<img src="/preview/images/doze-diagram-1.png" alt="" id="figure1" />
|
||||||
<p class="img-caption">
|
<p class="img-caption">
|
||||||
<strong>Figura 3:</strong> Doze ahora aplica
|
<strong>Figura 3:</strong> Descanso ahora aplica
|
||||||
restricciones para prolongar la duración de la batería aun cuando el dispositivo no está quieto.
|
restricciones para prolongar la duración de la batería aun cuando el dispositivo no está quieto.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p>Poco tiempo después de que la pantalla se apaga, cuando el dispositivo no está enchufado, Doze
|
<p>Poco tiempo después de que la pantalla se apaga, cuando el dispositivo no está enchufado, Descanso
|
||||||
restringe el acceso a la red y aplaza tareas y sincronizaciones. Durante períodos de mantenimiento
|
restringe el acceso a la red y aplaza tareas y sincronizaciones. Durante períodos de mantenimiento
|
||||||
breves, las aplicaciones tienen acceso a la red y se ejecutan todas sus
|
breves, las aplicaciones tienen acceso a la red y se ejecutan todas las
|
||||||
tareas y sincronizaciones aplazadas. Al encenderse la pantalla o enchufarse el dispositivo se desactiva el modo
|
tareas y sincronizaciones aplazadas. Ten en cuenta que, cuando se activa la pantalla o se enchufa el dispositivo, se
|
||||||
Doze del dispositivo.</p>
|
desactiva el modo Descanso.</p>
|
||||||
|
|
||||||
<p>Cuando el dispositivo vuelve a estar quieto, desenchufado y con la pantalla apagada durante un
|
<p>Cuando el dispositivo vuelve a estar quieto, desenchufado y con la pantalla apagada durante un
|
||||||
tiempo, Doze aplica todas las restricciones de CPU y redes en {@link
|
tiempo, Descanso aplica todas las restricciones de CPU y redes en {@link
|
||||||
android.os.PowerManager.WakeLock}, alarmas de {@link android.app.AlarmManager} y análisis de
|
android.os.PowerManager.WakeLock}, alarmas de {@link android.app.AlarmManager} y análisis de
|
||||||
GPS o Wi-Fi.</p>
|
GPS o Wi-Fi.</p>
|
||||||
|
|
||||||
<p>Las prácticas recomendadas para adaptar tu aplicación a Doze no varían si el
|
<p>Las prácticas recomendadas para adaptar tu aplicación a Descanso no varían si el
|
||||||
dispositivo estará en movimiento o no. Por lo tanto, si ya actualizaste tu aplicación para que administre
|
dispositivo estará en movimiento o no. Por lo tanto, si ya actualizaste tu aplicación para que administre
|
||||||
Doze en forma equilibrada, estarás listo. Si no lo hiciste, comienza a <a href="{@docRoot}training/monitoring-device-state/doze-standby.html#assessing_your_app">adaptarla
|
Descanso correctamente, no tienes nada más que hacer. Si no lo hiciste, comienza a <a href="{@docRoot}training/monitoring-device-state/doze-standby.html#assessing_your_app">adaptarla
|
||||||
a Doze</a> ahora.</p>
|
a Descanso</a> ahora.</p>
|
||||||
|
|
||||||
<h2 id="background_optimizations">Project Svelte: Optimizaciones en segundo plano</h2>
|
<h2 id="background_optimizations">Project Svelte: Optimizaciones en segundo plano</h2>
|
||||||
|
|
||||||
@@ -220,7 +236,7 @@ en los diferentes dispositivos Android del ecosistema. En Android N, el objetivo
|
|||||||
Svelte es optimizar la manera en que las aplicaciones se ejecutan en segundo plano. </p>
|
Svelte es optimizar la manera en que las aplicaciones se ejecutan en segundo plano. </p>
|
||||||
|
|
||||||
<p>El procesamiento en segundo plano es una parte esencial de la mayoría de las aplicaciones. Cuando se maneja en forma adecuada, puede
|
<p>El procesamiento en segundo plano es una parte esencial de la mayoría de las aplicaciones. Cuando se maneja en forma adecuada, puede
|
||||||
hacer que la experiencia de tu usuario sea increíble (inmediata, rápida y pertinente al contexto).
|
hacer que la experiencia de tu usuario sea increíble —(inmediata, rápida y pertinente al contexto).
|
||||||
Cuando no se maneja de tal manera, el procesamiento en segundo plano puede suponer un consumo innecesario de memoria RAM (y
|
Cuando no se maneja de tal manera, el procesamiento en segundo plano puede suponer un consumo innecesario de memoria RAM (y
|
||||||
batería), y afectar el rendimiento del sistema para otras aplicaciones. </p>
|
batería), y afectar el rendimiento del sistema para otras aplicaciones. </p>
|
||||||
|
|
||||||
@@ -242,18 +258,18 @@ simpleza, y nuestro deseo es que todas las aplicaciones lo usen. </p>
|
|||||||
casos de uso de tus aplicaciones; por ejemplo, en Android N ahora puedes programar procesos
|
casos de uso de tus aplicaciones; por ejemplo, en Android N ahora puedes programar procesos
|
||||||
en segundo plano según los cambios de los proveedores de contenido. Al mismo tiempo, comenzaremos a
|
en segundo plano según los cambios de los proveedores de contenido. Al mismo tiempo, comenzaremos a
|
||||||
dejar de usar algunos de los patrones anteriores que pueden reducir el rendimiento del sistema,
|
dejar de usar algunos de los patrones anteriores que pueden reducir el rendimiento del sistema,
|
||||||
en especial en dispositivos de memoria reducida.</p>
|
en especial, en dispositivos de memoria reducida.</p>
|
||||||
|
|
||||||
<p>En Android N, eliminaremos tres difusiones implícitas que se usan normalmente (
|
<p>En Android N, eliminaremos tres transmisiones implícitas que se usan normalmente —(
|
||||||
{@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}, {@link
|
{@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}, {@link
|
||||||
android.hardware.Camera#ACTION_NEW_PICTURE} y {@link
|
android.hardware.Camera#ACTION_NEW_PICTURE} y {@link
|
||||||
android.hardware.Camera#ACTION_NEW_VIDEO}), ya que pueden activar los
|
android.hardware.Camera#ACTION_NEW_VIDEO}), ya que pueden activar los
|
||||||
procesos en segundo plano de varias aplicaciones al mismo tiempo, y así exigir la memoria y la batería. Si
|
procesos en segundo plano de varias aplicaciones al mismo tiempo, y así exigir la memoria y la batería. Si
|
||||||
tu aplicación recibe estas difusiones, aprovecha la N Developer Preview y
|
tu aplicación recibe estas transmisiones, aprovecha la N Developer Preview y
|
||||||
realiza la migración a <code>JobScheduler</code> y hacia las API relacionadas, como alternativa. </p>
|
realiza la migración a <code>JobScheduler</code> y las API relacionadas, como alternativa. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para obtener información detallada, consulta la documentación de <a href="{@docRoot}preview/features/background-optimization.html">Optimizaciones
|
Para obtener información detallada, consulta la documentación <a href="{@docRoot}preview/features/background-optimization.html">Optimizaciones
|
||||||
en segundo plano</a>.
|
en segundo plano</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -268,31 +284,76 @@ tu aplicación recibe estas difusiones, aprovecha la N Developer Preview y
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Durante la vida útil de un dispositivo móvil, el costo de un plan de datos móviles normalmente
|
<p>Durante la vida útil de un dispositivo móvil, el costo de un plan de datos móviles puede
|
||||||
superará el costo del propio dispositivo. Para muchos usuarios, los datos móviles son un
|
superar fácilmente el costo del propio dispositivo. Para muchos usuarios, los datos móviles son un
|
||||||
recurso costoso que desean conservar. </p>
|
recurso costoso que desean conservar. </p>
|
||||||
|
|
||||||
<p>En Android N se presenta el modo de ahorro de datos, un nuevo servicio del sistema que permite reducir
|
<p>En Android N, se presenta el modo de ahorro de datos, un nuevo servicio del sistema que permite reducir
|
||||||
el uso de datos móviles de las aplicaciones, ya sea con servicio de itinerancia, cerca del final del ciclo de facturación
|
el uso de datos móviles de las aplicaciones, ya sea con servicio de itinerancia, cerca del final del ciclo de facturación
|
||||||
o con un paquete de datos prepagos. El ahorro de datos permite que los usuarios controlen la manera en que las aplicaciones
|
o con un paquete de datos prepagos. El ahorro de datos permite que los usuarios controlen la manera en que las aplicaciones
|
||||||
usan los datos móviles y que los desarrolladores brinden un servicio más eficaz cuando el ahorro
|
usan los datos móviles y que los desarrolladores brinden un servicio más eficaz cuando el ahorro
|
||||||
de datos se encuentra activo. </p>
|
de datos se encuentra activo. </p>
|
||||||
|
|
||||||
<p>Cuando un usuario habilita el ahorro de datos en <strong>Settings</strong> y el dispositivo está
|
<p>Cuando un usuario habilita el ahorro de datos en <strong>Settings</strong> y el dispositivo está
|
||||||
conectado a una red de uso medido, el sistema bloquea el uso de datos en segundo plano y ordena a las aplicaciones
|
conectado a una red o, el sistema bloquea el uso de datos en segundo plano y ordena a las aplicaciones
|
||||||
usar menos datos en primer plano siempre que sea posible (por ejemplo, limitando
|
usar menos datos en primer plano siempre que sea posible (por ejemplo, limitando
|
||||||
la tasa de bits para la transmisión, reduciendo la calidad de la imagen y aplazando el valor optimista de almacenamiento previo en caché,
|
la tasa de bits para la transmisión, reduciendo la calidad de la imagen y aplazando el valor optimista de almacenamiento previo en caché,
|
||||||
entre otras posibilidades). Los usuarios pueden permitir que aplicaciones específicas habiliten el uso de datos medidos en segundo plano
|
entre otras posibilidades). Los usuarios pueden incluir aplicaciones específicas en la lista blanca para
|
||||||
aun cuando esté activo el ahorro de datos.</p>
|
permitir el uso de datos medidos en segundo plano, incluso cuando está activado el ahorro de datos.</p>
|
||||||
|
|
||||||
<p>Android N extiende {@link android.net.ConnectivityManager} para que las aplicaciones
|
<p>Android N extiende {@link android.net.ConnectivityManager} para que las aplicaciones
|
||||||
tengan una manera de <a href="{@docRoot}preview/features/data-saver.html#status">recuperar las
|
tengan una manera de <a href="{@docRoot}preview/features/data-saver.html#status">recuperar las
|
||||||
preferencias de ahorro de datos del usuario</a> y los <a href="{@docRoot}preview/features/data-saver.html#monitor-changes">monitor
|
preferencias de ahorro de datos del usuario</a> y<a href="{@docRoot}preview/features/data-saver.html#monitor-changes"> monitorear
|
||||||
cambios en estas</a>. Todas las aplicaciones deben verificar si el usuario habilitó el ahorro de
|
cambios en estas</a>. Todas las aplicaciones deben verificar si el usuario habilitó el ahorro
|
||||||
datos e intentar limitar el uso de datos en primer y segundo plano.</p>
|
de datos e intentar limitar el uso de datos en primer y segundo plano.</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="tile_api">API para Mosaico de Configuración rápida</h2>
|
<h2 id="vulkan">API Vulkan</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android N integra <a href="http://www.khronos.org/vulkan" class="external-link">Vulkan™</a>, una nueva API de visualización 3D, en la plataforma. Al igual que
|
||||||
|
<a href="https://www.khronos.org/opengles/" class="external-link">OpenGL™
|
||||||
|
ES</a>, Vulkan es un estándar abierto para gráficos y visualización 3D, cuyo mantenimiento está a cargo de
|
||||||
|
Khronos Group.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Vulkan se diseñó desde el principio para minimizar la sobrecarga de CPU en el controlador,
|
||||||
|
y permite que tu aplicación controle el funcionamiento de la unidad de procesamiento de gráficos más directamente. También
|
||||||
|
hace posible contar con un mejor trabajo en paralelo, ya que permite que varios subprocesos diversos realicen
|
||||||
|
trabajos, como la construcción del búfer de comandos, a la vez.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Las herramientas y las bibliotecas de desarrollo de Vulkan son parte del NDK de Android. Esto
|
||||||
|
incluye lo siguiente:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Encabezados
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>Capas de validación (bibliotecas de depuración)
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>Compilador SPIR-V
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>Biblioteca de compilación de tiempo de ejecución de SPIR-V
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Vulkan solo está disponible en las aplicaciones en dispositivos con hardware compatible con Vulkan,
|
||||||
|
como Nexus 5X, Nexus 6P y Nexus Player. Estamos trabajando estrechamente con nuestros
|
||||||
|
socios para que Vulkan se pueda utilizar en más dispositivos lo más pronto posible.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para obtener más información, consulta la <a href="{@docRoot}ndk/guides/graphics/index.html">documentación de la API</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="tile_api">API para mosaicos de Quick Settings</h2>
|
||||||
|
|
||||||
|
|
||||||
<div style="float:right;max-width:320px">
|
<div style="float:right;max-width:320px">
|
||||||
@@ -305,7 +366,7 @@ datos e intentar limitar el uso de datos en primer y segundo plano.</p>
|
|||||||
|
|
||||||
</div><p>Quick Settings es una manera popular y simple de exhibir configuraciones y acciones claves
|
</div><p>Quick Settings es una manera popular y simple de exhibir configuraciones y acciones claves
|
||||||
directamente desde el panel de notificaciones. En Android N, expandimos el alcance de
|
directamente desde el panel de notificaciones. En Android N, expandimos el alcance de
|
||||||
Quick Settings para que sea más útil y práctico. </p>
|
Quick Settings para que sea todavía más útil y práctico. </p>
|
||||||
|
|
||||||
<p>Agregamos más espacio para mosaicos adicionales de Quick Settings, a los cuales los usuarios pueden
|
<p>Agregamos más espacio para mosaicos adicionales de Quick Settings, a los cuales los usuarios pueden
|
||||||
acceder desde un área de visualización paginada deslizando el dedo hacia la izquierda o la derecha. También permitimos
|
acceder desde un área de visualización paginada deslizando el dedo hacia la izquierda o la derecha. También permitimos
|
||||||
@@ -327,8 +388,8 @@ se mostrarán; pueden agregar o mover mosaicos con solo arrastrarlos y soltarlos
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para obtener información sobre la creación de un mosaico de aplicación, consulta
|
Para obtener información sobre la creación de un mosaico de aplicación, consulta la documentación de
|
||||||
<code>android.service.quicksettings.Tile</code> en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia de la API</a> descargable.
|
<code>android.service.quicksettings.Tile</code> en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">referencia de la API</a> descargable.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
@@ -342,7 +403,7 @@ escritura en la lista de números bloqueados. Otras aplicaciones no pueden acced
|
|||||||
|
|
||||||
<p>Al hacer que el bloqueo de números sea una función estándar de la plataforma, Android permite que las
|
<p>Al hacer que el bloqueo de números sea una función estándar de la plataforma, Android permite que las
|
||||||
aplicaciones admitan de manera uniforme el bloqueo de números en una amplia variedad de
|
aplicaciones admitan de manera uniforme el bloqueo de números en una amplia variedad de
|
||||||
dispositivos. Entre los demás beneficios que pueden aprovecharse en las aplicaciones, se encuentran los siguientes:</p>
|
dispositivos. Entre los demás beneficios que pueden aprovechar las aplicaciones, se encuentran los siguientes:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li> Los números bloqueados en las llamadas también se bloquean en los mensajes de texto.
|
<li> Los números bloqueados en las llamadas también se bloquean en los mensajes de texto.
|
||||||
@@ -358,7 +419,7 @@ por cualquier medio, como terminales VOIP o teléfonos con transferencia de llam
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para obtener más información, consulta <code>android.provider.BlockedNumberContract</code>
|
Para obtener más información, consulta <code>android.provider.BlockedNumberContract</code>
|
||||||
en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia de la API
|
en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">referencia de la API
|
||||||
</a>descargable.
|
</a>descargable.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -379,7 +440,7 @@ por cualquier medio, como terminales VOIP o teléfonos con transferencia de llam
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para obtener más información, consulta <code>android.telecom.CallScreeningService</code>
|
Para obtener más información, consulta <code>android.telecom.CallScreeningService</code>
|
||||||
en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia de la API
|
en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">referencia de la API
|
||||||
</a>descargable.
|
</a>descargable.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -389,31 +450,73 @@ por cualquier medio, como terminales VOIP o teléfonos con transferencia de llam
|
|||||||
|
|
||||||
<p>Android N permite a los usuarios seleccionar <strong>varias configuraciones regionales</strong> en Settings,
|
<p>Android N permite a los usuarios seleccionar <strong>varias configuraciones regionales</strong> en Settings,
|
||||||
para brindar una mejor compatibilidad con casos de uso de dos idiomas. Las aplicaciones pueden usar
|
para brindar una mejor compatibilidad con casos de uso de dos idiomas. Las aplicaciones pueden usar
|
||||||
una nueva API para obtener las configuraciones regionales seleccionadas del usuario y luego ofrecer experiencias
|
una nueva API para obtener las configuraciones regionales seleccionadas del usuario y luego ofrecer experiencias más sofisticadas
|
||||||
más sofisticadas para usuarios que usen varias configuraciones regionales; por ejemplo, pueden mostrar resultados de búsqueda en
|
para usuarios que usen varias configuraciones regionales; por ejemplo, pueden mostrar resultados de búsqueda en
|
||||||
varios idiomas y no ofrecer traducciones de páginas web con idiomas que el
|
varios idiomas y no ofrecer traducciones de páginas web con idiomas que el
|
||||||
usuario conozca.</p>
|
usuario conozca.</p>
|
||||||
|
|
||||||
<p>Además de la compatibilidad con varias configuraciones regionales, en Android N también se amplía la variedad de idiomas
|
<p>Además de la compatibilidad con varias configuraciones regionales, en Android N también se amplía la variedad de idiomas
|
||||||
disponibles para los usuarios. Se ofrecen 25 variantes, cada una de ellas para idiomas de uso
|
disponibles para los usuarios. Se ofrecen más de 25 variantes, cada una de ellas para idiomas de uso
|
||||||
común, como el inglés, el español, el francés y el árabe. También se agrega compatibilidad
|
común, como el inglés, el español, el francés y el árabe. También se agrega compatibilidad
|
||||||
parcial con más de 100 idiomas nuevos.</p>
|
parcial con más de 100 idiomas nuevos.</p>
|
||||||
|
|
||||||
<p>Las aplicaciones pueden obtener la lista de configuraciones regionales establecida por el usuario llamando a <code>LocaleList.GetDefault()</code>. A fin de admitir la cantidad ampliada de configuraciones regionales, en Android N se modificará la forma de
|
<p>Las aplicaciones pueden obtener la lista de configuraciones regionales establecida por el usuario llamando a
|
||||||
resolver recursos. Asegúrate de controlar que tus aplicaciones
|
<code>LocaleList.GetDefault()</code>. A fin de admitir la cantidad ampliada de configuraciones regionales, en Android N, se
|
||||||
|
modificará la forma de resolver recursos. Asegúrate de controlar que tus aplicaciones
|
||||||
funcionen de la manera esperada con la nueva lógica de resolución de recursos.</p>
|
funcionen de la manera esperada con la nueva lógica de resolución de recursos.</p>
|
||||||
|
|
||||||
<p>Para obtener información sobre el nuevo comportamiento de resolución de recursos y las prácticas recomendadas que
|
<p>Para obtener información sobre el nuevo comportamiento de resolución de recursos y las prácticas recomendadas que
|
||||||
debes aplicar, consulta <a href="{@docRoot}preview/features/multilingual-support.html">Compatibilidad con varios idiomas</a>.</p>
|
debes aplicar, consulta <a href="{@docRoot}preview/features/multilingual-support.html">Compatibilidad con varios idiomas</a>.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2 id="emoji">Nuevos emojis</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android N presenta más emojis y funciones relacionadas con estos, como
|
||||||
|
emojis con diferentes tonos de piel y compatibilidad con selectores de
|
||||||
|
variación. Si tu aplicación admite emojis,
|
||||||
|
sigue las pautas a continuación para aprovechar estas funciones relacionadas con emojis.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<strong>Comprueba que el dispositivo contenga el emoji antes de insertarlo.</strong>
|
||||||
|
Para corroborar qué emojis tiene la fuente del
|
||||||
|
sistema, usa el método {@link android.graphics.Paint#hasGlyph(String)}.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<strong>Comprueba que el emoji admita los selectores de variación.</strong>
|
||||||
|
Los selectores de variación te permiten
|
||||||
|
presentar determinados emojis en color o en blanco y negro.
|
||||||
|
En los dispositivos móviles, las aplicaciones deben representar los emojis en color, en lugar de hacerlo en blanco y negro. Sin embargo,
|
||||||
|
si tu aplicación muestra los emojis alineados con el texto, debe usar la variación de blanco y negro.
|
||||||
|
A fin de determinar si un emoji tiene una variación, usa el selector de variación.
|
||||||
|
Para conocer la lista completa de caracteres con variaciones, consulta la sección de
|
||||||
|
<em>secuencias de variación de emojis</em> de la
|
||||||
|
<a class="external-link" href="http://www.unicode.org/Public/9.0.0/ucd/StandardizedVariants-9.0.0d1.txt">
|
||||||
|
documentación de Unicode sobre variaciones</a>.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<strong>Comprueba que el emoji admita tonos de piel.</strong> Android N permite que los usuarios modifiquen el
|
||||||
|
tono de piel presentado de los emojis según su preferencia. Las aplicaciones de teclado deben brindar indicaciones
|
||||||
|
visuales para los emojis que tienen múltiples tonos de piel y permitir que los usuarios
|
||||||
|
seleccionen el tono que prefieran. Para determinar qué emojis del sistema tienen
|
||||||
|
modificadores del tono de piel, usa el método {@link android.graphics.Paint#hasGlyph(String)}.
|
||||||
|
Puedes determinar qué emojis usan tonos de piel leyendo la
|
||||||
|
<a class="external-link" href="http://unicode.org/emoji/charts/full-emoji-list.html">
|
||||||
|
documentación de Unicode</a>.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="icu4">API de ICU4J en Android</h2>
|
<h2 id="icu4">API de ICU4J en Android</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Android N ahora ofrece un subconjunto de API de <a href="http://site.icu-project.org/">ICU4J</a> dentro del framework de Android, en el paquete
|
Android N ahora ofrece un subconjunto de las API de <a href="http://site.icu-project.org/">ICU4J</a> dentro del framework de Android, en
|
||||||
<code>android.icu</code>. La migración es sencilla y en mayor medida implica
|
el paquete <code>android.icu</code>. La migración es sencilla y en mayor medida implica
|
||||||
simplemente un cambio del espacio de nombres <code>com.java.icu</code> a
|
simplemente un cambio del espacio de nombres <code>com.java.icu</code> a
|
||||||
<code>android.icu</code>. Si ya usas el paquete ICU4J en tus
|
<code>android.icu</code>. Si ya usas el paquete ICU4J en tus
|
||||||
aplicaciones, el cambio a las API de <code>android.icu</code> en el framework de Android
|
aplicaciones, el cambio a las API <code>android.icu</code> en el framework de Android
|
||||||
puede reducir notablemente el tamaño del APK.
|
puede reducir notablemente el tamaño del APK.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -428,7 +531,8 @@ debes aplicar, consulta <a href="{@docRoot}preview/features/multilingual-support
|
|||||||
<p>En Android N se agregan interfaces de framework y compatibilidad con plataformas para OpenGL ES 3.2, entre las que se incluye lo siguiente:</p>
|
<p>En Android N se agregan interfaces de framework y compatibilidad con plataformas para OpenGL ES 3.2, entre las que se incluye lo siguiente:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li> todas las extensiones del <a class="external-link" href="https://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt">paquete de extensiones de Android</a></a> (AEP), a excepción de <code>EXT_texture_sRGB_decode</code>;
|
<li> todas las extensiones del <a class="external-link" href="https://www.khronos.org/registry/gles/extensions/ANDROID/ANDROID_extension_pack_es31a.txt">
|
||||||
|
paquete de extensiones de Android</a></a> (AEP), a excepción de <code>EXT_texture_sRGB_decode</code>;
|
||||||
<li> búferes de fotogramas de punto flotante para HDR y sombreado aplazado;
|
<li> búferes de fotogramas de punto flotante para HDR y sombreado aplazado;
|
||||||
<li> llamadas a draw a través de BaseVertex para mejorar el procesamiento por lotes y la transmisión;
|
<li> llamadas a draw a través de BaseVertex para mejorar el procesamiento por lotes y la transmisión;
|
||||||
<li> sólido control de acceso a búfer para reducir la sobrecarga de WebGL.
|
<li> sólido control de acceso a búfer para reducir la sobrecarga de WebGL.
|
||||||
@@ -445,7 +549,7 @@ versión de OpenGL ES que admite el dispositivo durante el tiempo de ejecución,
|
|||||||
|
|
||||||
<h2 id="android_tv_recording">Grabación de Android TV</h2>
|
<h2 id="android_tv_recording">Grabación de Android TV</h2>
|
||||||
|
|
||||||
<p>En Android N se agrega la capacidad de grabar y reproducir contenido de servicios
|
<p>En Android N, se agrega la capacidad de grabar y reproducir contenido de servicios
|
||||||
de entrada de Android TV a través de las nuevas API de grabación. Aprovechando las mejoras existentes de las API time shifting
|
de entrada de Android TV a través de las nuevas API de grabación. Aprovechando las mejoras existentes de las API time shifting
|
||||||
, los servicios de entrada de TV pueden controlar los datos de canales que pueden grabarse y la manera
|
, los servicios de entrada de TV pueden controlar los datos de canales que pueden grabarse y la manera
|
||||||
en que se guardan las sesiones grabadas, y administrar la interacción del usuario con el contenido grabado. </p>
|
en que se guardan las sesiones grabadas, y administrar la interacción del usuario con el contenido grabado. </p>
|
||||||
@@ -456,14 +560,15 @@ en que se guardan las sesiones grabadas, y administrar la interacción del usuar
|
|||||||
<h2 id="android_for_work">Android for Work</h2>
|
<h2 id="android_for_work">Android for Work</h2>
|
||||||
|
|
||||||
<p>Android for Work suma muchas funciones y API nuevas para dispositivos con Android N.
|
<p>Android for Work suma muchas funciones y API nuevas para dispositivos con Android N.
|
||||||
A continuación, se muestran algunos aspectos destacados. Para hallar una lista completa de actualizaciones de Android for Work
|
A continuación, se muestran algunos aspectos destacados. Para ver la lista completa de cambios, consulta
|
||||||
relacionadas con Android N, consulta la sección de cambios en Android for Work.</p>
|
<a href="{@docRoot}preview/features/afw.html">Actualizaciones de Android for Work</a>.</p>
|
||||||
|
|
||||||
<h3 id="work_profile_security_challenge">Comprobación de seguridad para perfiles de trabajo </h3>
|
<h3 id="work_profile_security_challenge">Comprobación de seguridad para perfiles de trabajo </h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Quienes posean perfiles pueden especificar una comprobación de seguridad separada para aplicaciones que se ejecuten en el
|
Los propietarios de perfiles orientados al SDK de Android N
|
||||||
perfil de trabajo. La comprobación para perfiles de trabajo se muestra cuando un usuario intenta abrir
|
pueden especificar una comprobación de seguridad independiente para las aplicaciones que se ejecutan en
|
||||||
|
el perfil de trabajo. La comprobación para perfiles de trabajo se muestra cuando un usuario intenta abrir
|
||||||
aplicaciones de trabajo. Cuando la comprobación de seguridad es exitosa, se desbloquea el
|
aplicaciones de trabajo. Cuando la comprobación de seguridad es exitosa, se desbloquea el
|
||||||
perfil de trabajo y se descifra si es necesario. Para quienes posean perfiles,
|
perfil de trabajo y se descifra si es necesario. Para quienes posean perfiles,
|
||||||
<code>ACTION_SET_NEW_PASSWORD</code> solicita al usuario establecer una comprobación de
|
<code>ACTION_SET_NEW_PASSWORD</code> solicita al usuario establecer una comprobación de
|
||||||
@@ -472,13 +577,13 @@ relacionadas con Android N, consulta la sección de cambios en Android for Work.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Quienes posean perfiles pueden establecer políticas de contraseñas diferentes
|
Quienes posean perfiles pueden establecer políticas de contraseñas diferentes para la comprobación de seguridad de trabajo
|
||||||
(por ejemplo, la extensión que debe tener el PIN o la posibilidad de usar una huella digital
|
(por ejemplo, la extensión que debe tener el PIN o la posibilidad de usar una huella digital
|
||||||
para desbloquear el perfil) usando <code>setPasswordQuality()</code>,
|
para desbloquear el perfil) usando <code>setPasswordQuality()</code>,
|
||||||
<code>setPasswordMinimumLength()</code> y métodos relacionados. También
|
<code>setPasswordMinimumLength()</code> y métodos relacionados. También
|
||||||
pueden establecer el bloqueo del dispositivo usando la instancia de <code>DevicePolicyManager</code>
|
pueden establecer el bloqueo del dispositivo usando la instancia de <code>DevicePolicyManager</code>
|
||||||
devuelta por el nuevo método <code>getParentProfileInstance()</code>.
|
devuelta por el nuevo método <code>getParentProfileInstance()</code>.
|
||||||
Además, tiene la posibilidad de personalizar la pantalla de credenciales de la
|
Además, tienen la posibilidad de personalizar la pantalla de credenciales de la
|
||||||
comprobación de trabajo usando los nuevos métodos <code>setOrganizationColor()</code> y
|
comprobación de trabajo usando los nuevos métodos <code>setOrganizationColor()</code> y
|
||||||
<code>setOrganizationName()</code>.
|
<code>setOrganizationName()</code>.
|
||||||
</p>
|
</p>
|
||||||
@@ -487,8 +592,8 @@ relacionadas con Android N, consulta la sección de cambios en Android for Work.
|
|||||||
<p>En dispositivos con perfil de trabajo, los usuarios pueden alternar el modo de trabajo. Cuando este último está
|
<p>En dispositivos con perfil de trabajo, los usuarios pueden alternar el modo de trabajo. Cuando este último está
|
||||||
inactivo, el usuario administrado queda deshabilitado temporalmente, con lo cual se desactivan las aplicaciones de perfiles
|
inactivo, el usuario administrado queda deshabilitado temporalmente, con lo cual se desactivan las aplicaciones de perfiles
|
||||||
de trabajo, la sincronización en segundo plano y las notificaciones. Esto incluye la aplicación del propietario del
|
de trabajo, la sincronización en segundo plano y las notificaciones. Esto incluye la aplicación del propietario del
|
||||||
perfil. Cuando el modo de trabajo está inactivo, en el sistema se muestra un icono de estado persistente
|
perfil. Cuando el modo de trabajo está inactivo, en el sistema se muestra un ícono
|
||||||
para recordar al usuario que no puede iniciar aplicaciones de trabajo. El lanzador
|
de estado persistente para recordar al usuario que no puede iniciar aplicaciones de trabajo. El launcher
|
||||||
indica que no es posible acceder a aplicaciones ni widgets de trabajo. </p>
|
indica que no es posible acceder a aplicaciones ni widgets de trabajo. </p>
|
||||||
|
|
||||||
<h3 id="always_on_vpn">Always on VPN </h3>
|
<h3 id="always_on_vpn">Always on VPN </h3>
|
||||||
@@ -505,8 +610,8 @@ inicio del dispositivo.</p>
|
|||||||
|
|
||||||
<p>Debido a que los servicios de VPN pueden enlazarse directamente a través del sistema sin interacción con
|
<p>Debido a que los servicios de VPN pueden enlazarse directamente a través del sistema sin interacción con
|
||||||
aplicaciones, los clientes de VPN deben administrar nuevos puntos de entrada para Always on VPN. Al igual que
|
aplicaciones, los clientes de VPN deben administrar nuevos puntos de entrada para Always on VPN. Al igual que
|
||||||
antes, los servicios se indican al sistema con una clase <code>android.net.VpnService</code> de acción de coincidencia de filtro
|
antes, los servicios se indican al sistema con una
|
||||||
de intenciones. </p>
|
clase <code>android.net.VpnService</code> de acción de coincidencia de filtro de intents. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Los usuarios también pueden establecer clientes Always on VPN que implementen métodos
|
Los usuarios también pueden establecer clientes Always on VPN que implementen métodos
|
||||||
@@ -514,48 +619,58 @@ de intenciones. </p>
|
|||||||
<strong>Settings > More > Vpn</strong>.
|
<strong>Settings > More > Vpn</strong>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<h3 id="custom_provisioning">Aprovisionamiento personalizado</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
En una aplicación, se pueden personalizar los flujos de aprovisionamiento
|
||||||
|
del propietario del perfil y del dispositivo con logos y colores corporativos.
|
||||||
|
<code>DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR</code> personaliza el
|
||||||
|
color del flujo. <code>DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI</code>
|
||||||
|
personaliza el flujo con un logotipo corporativo.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h2 id="accessibility_enhancements">Mejoras de accesibilidad</h2>
|
<h2 id="accessibility_enhancements">Mejoras de accesibilidad</h2>
|
||||||
|
|
||||||
<p>Android N ahora ofrece Vision Settings directamente en la pantalla de Bienvenida para la configuración de
|
<p>Android N ahora ofrece Vision Settings directamente en la pantalla de bienvenida para la configuración de
|
||||||
dispositivos nuevos. Esto permite a los usuarios descubrir y configurar de manera mucho más sencilla
|
dispositivos nuevos. Esto permite a los usuarios descubrir y configurar de manera mucho más sencilla
|
||||||
funciones de accesibilidad en sus dispositivos, como el gesto de ampliación, el tamaño
|
funciones de accesibilidad en sus dispositivos, como el gesto de ampliación, el tamaño
|
||||||
de fuente, el tamaño de pantalla y TalkBack. </p>
|
de fuente, el tamaño de pantalla y TalkBack. </p>
|
||||||
|
|
||||||
<p>Al tener estas funciones de accesibilidad una disposición más prominente, es más probable
|
<p>Al tener estas funciones de accesibilidad una disposición más prominente, es más probable
|
||||||
que tus usuarios prueben tu aplicación con ellas habilitadas. Asegúrate de probar tus aplicaciones
|
que tus usuarios prueben tu aplicación con ellas habilitadas. Asegúrate de probar tus aplicaciones
|
||||||
en forma anticipada con esta configuración habilitada. Puedes activarla en Settings >
|
anticipadamente con esta configuración habilitada. Puedes habilitarla en Settings >
|
||||||
Accessibility.</p>
|
Accessibility.</p>
|
||||||
|
|
||||||
<p>Otra posibilidad en Android N: los servicios de accesibilidad ahora pueden asistir a los usuarios con discapacidades
|
<p>Además, los servicios de accesibilidad de Android N ahora pueden asistir a los usuarios con discapacidades
|
||||||
motoras para el uso de la pantalla. La nueva API permite crear servicios con
|
motrices con el uso de la pantalla. La nueva API permite crear servicios con
|
||||||
funciones como el seguimiento de rostros u ojos y la exploración por puntos, entre otros, para satisfacer
|
funciones como el seguimiento de rostros u ojos y la exploración por puntos, entre otros, para satisfacer
|
||||||
las necesidades de estos usuarios.</p>
|
las necesidades de estos usuarios.</p>
|
||||||
|
|
||||||
<p>Para obtener más información, consulta <code>android.accessibilityservice.GestureDescription</code>
|
<p>Para obtener más información, consulta <code>android.accessibilityservice.GestureDescription</code>
|
||||||
en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia de la API </a>descargable.</p>
|
en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">referencia de la API</a> descargable.</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="direct_boot">Inicio directo</h2>
|
<h2 id="direct_boot">Inicio directo</h2>
|
||||||
|
|
||||||
<p>El inicio directo optimiza los tiempos de inicio del dispositivo y permite una funcionalidad
|
<p>El inicio directo optimiza los tiempos de inicio del dispositivo y permite una funcionalidad
|
||||||
limitada de las aplicaciones aun después de un reinicio inesperado.
|
limitada de las aplicaciones aun después de un reinicio inesperado.
|
||||||
Por ejemplo, si un dispositivo cifrado se reinicia mientras el usuario duerme,
|
Por ejemplo, si un dispositivo encriptado se reinicia mientras el usuario duerme,
|
||||||
este último puede continuar recibiendo en forma normal notificaciones de alarmas, llamadas entrantes y mensajes
|
este último puede continuar recibiendo en forma normal notificaciones de alarmas, llamadas entrantes y mensajes
|
||||||
registrados. Esto también significa que los servicios de accesibilidad también pueden estar
|
registrados. Esto también significa que los servicios de accesibilidad también pueden estar
|
||||||
disponibles de inmediato después de un reinicio.</p>
|
disponibles de inmediato después de un reinicio.</p>
|
||||||
|
|
||||||
<p>El inicio directo aprovecha el cifrado basado en archivos de Android N,
|
<p>El inicio directo aprovecha la encriptación basada en archivos de Android N,
|
||||||
a fin de habilitar políticas de cifrado específicas para datos del sistema y de aplicaciones.
|
a fin de habilitar políticas de encriptación específicas para datos del sistema y de aplicaciones.
|
||||||
El sistema usa un depósito cifrado por el dispositivo para datos de sistema seleccionados y datos de aplicaciones
|
El sistema usa un encriptado por el dispositivo para datos de sistema seleccionados y datos de aplicaciones
|
||||||
explícitamente registrados. En forma predeterminada, se usa un depósito cifrado con credenciales para los
|
explícitamente registrados. De forma predeterminada, se usa un depósito encriptado con credenciales para los
|
||||||
datos de sistema, los datos de usuario, las aplicaciones y los datos de aplicaciones restantes. </p>
|
datos de sistema, los datos de usuario, las aplicaciones y los datos de aplicaciones restantes. </p>
|
||||||
|
|
||||||
<p>Durante el inicio, el sistema se carga en un modo restringido con acceso únicamente
|
<p>Durante el inicio, el sistema se carga en un modo restringido con acceso únicamente
|
||||||
a datos cifrados por el dispositivo y sin acceso general a aplicaciones o datos.
|
a datos encriptados por el dispositivo y sin acceso general a aplicaciones o datos.
|
||||||
Si hay componentes que deseas ejecutar en este modo, puedes registrarlos
|
Si hay componentes que deseas ejecutar en este modo, puedes registrarlos
|
||||||
configurando un marcador en el manifiesto. Después del reinicio, el sistema activa
|
configurando un marcador en el manifiesto. Después del reinicio, el sistema activa
|
||||||
componentes registrados transmitiendo la intención
|
componentes registrados transmitiendo la intent <code>LOCKED_BOOT_COMPLETED</code>
|
||||||
<code>LOCKED_BOOT_COMPLETED</code>. El sistema garantiza que estén disponibles los datos de aplicaciones cifrados por el dispositivo
|
. El sistema garantiza que estén disponibles los datos de aplicaciones encriptados por el dispositivo
|
||||||
antes de la desactivación del bloqueo. No es posible acceder a los demás datos hasta que el usuario confirme sus credenciales de pantalla de
|
antes de la desactivación del bloqueo. No es posible acceder a los demás datos hasta que el usuario confirme sus credenciales de pantalla de
|
||||||
bloqueo para descifrarlos. </p>
|
bloqueo para descifrarlos. </p>
|
||||||
|
|
||||||
@@ -571,14 +686,14 @@ Linux, vulnerabilidades potenciales de Android y extracciones
|
|||||||
de dispositivos con derechos de administrador.</p>
|
de dispositivos con derechos de administrador.</p>
|
||||||
|
|
||||||
<p>Para hacer más sencillo y seguro el uso de depósitos de claves guardados en hardware,
|
<p>Para hacer más sencillo y seguro el uso de depósitos de claves guardados en hardware,
|
||||||
en Android N se presenta la atestación de claves. En las aplicaciones y en los servicios que no dependen de los dispositivos se puede usar la atestación
|
en Android N, se presenta la atestación de claves. En las aplicaciones y en los servicios que no dependen de los dispositivos se puede usar la atestación
|
||||||
de claves para determinar fehacientemente el almacenamiento de un par de claves RSA o EC se
|
de claves para determinar fehacientemente el almacenamiento de un par de claves RSA o EC se
|
||||||
en hardware, las propiedades de dicho par y las
|
en hardware, las propiedades de dicho par y las
|
||||||
limitaciones aplicadas a su uso y validez. </p>
|
limitaciones aplicadas a su uso y validez. </p>
|
||||||
|
|
||||||
<p>Los servicios que no dependen de los dispositivos y las aplicaciones pueden solicitar información acerca de un par de claves
|
<p>Los servicios que no dependen de los dispositivos y las aplicaciones pueden solicitar información acerca de un par de claves
|
||||||
a través de un certificado de atestación X.509 que debe firmarse con una clave de atestación
|
a través de un certificado de atestación X.509 que debe firmarse con una clave de atestación
|
||||||
válida. La claves de atestación es una clave de firma ECDSA que se
|
válida. La clave de atestación es una clave de firma ECDSA que se
|
||||||
inyecta en el depósito de claves guardado en hardware en la fábrica.
|
inyecta en el depósito de claves guardado en hardware en la fábrica.
|
||||||
Por lo tanto, un certificado de atestación firmado con una clave de atestación
|
Por lo tanto, un certificado de atestación firmado con una clave de atestación
|
||||||
válida confirma la existencia de un depósito de claves guardado en hardware y de información detallada
|
válida confirma la existencia de un depósito de claves guardado en hardware y de información detallada
|
||||||
@@ -609,17 +724,17 @@ convencionales, propensas a generar errores (p. ej., X509TrustManager).</p>
|
|||||||
|
|
||||||
<p>Funciones admitidas:</p>
|
<p>Funciones admitidas:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><b>Anclajes de veracidad personalizados:</b> permite personalizar a través a una aplicación las
|
<li><b>Anclajes de confianza personalizados.</b> Permite personalizar qué autoridades de
|
||||||
entidades de certificación (CA) de confianza para las conexiones protegidas; por
|
certificado (CA) son de confianza para las conexiones de seguridad de una aplicación. Por ejemplo,
|
||||||
ejemplo, certificados con firmas automáticas en particular o un conjunto de CA públicas.
|
confiar en certificados autofirmados particulares o un conjunto restringido de CA públicas.
|
||||||
</li>
|
</li>
|
||||||
<li><b>Anulaciones exclusivas de depuración:</b> permite que un desarrollador depure en forma segura
|
<li><b>Anulaciones de solo depuración.</b> Permite que el desarrollador de una aplicación depure en forma segura
|
||||||
conexiones protegidas de sus aplicaciones sin riesgos adicionales para la base
|
conexiones protegidas de su aplicación sin riesgos adicionales para la base
|
||||||
instalada.
|
instalada.
|
||||||
</li>
|
</li>
|
||||||
<li><b>Desactivación de tráfico de Cleartext:</b> permite que una aplicación se proteja a sí misma contra
|
<li><b>Desactivación del tráfico de Cleartext.</b> Permite que una aplicación se proteja a sí misma contra
|
||||||
el uso accidental de tráfico de Cleartext.</li>
|
el uso accidental de tráfico de Cleartext.</li>
|
||||||
<li><b>Fijación de certificados:</b> función avanzada que permite a una aplicación
|
<li><b>Fijación de certificados.</b> Esta es una función avanzada que permite a una aplicación
|
||||||
limitar las claves de servidores en las que se pueda confiar para conexiones protegidas.</li>
|
limitar las claves de servidores en las que se pueda confiar para conexiones protegidas.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
@@ -629,25 +744,60 @@ la red</a>.</p>
|
|||||||
<h2 id="default_trusted_ca">Entidad de certificación de confianza predeterminada</h2>
|
<h2 id="default_trusted_ca">Entidad de certificación de confianza predeterminada</h2>
|
||||||
|
|
||||||
<p>De manera predeterminada, en las aplicaciones orientadas a Android N solo se consideran como confiables los certificados proporcionados por el sistema
|
<p>De manera predeterminada, en las aplicaciones orientadas a Android N solo se consideran como confiables los certificados proporcionados por el sistema
|
||||||
y ya no se da esta misma consideración a las entidades de certificación (CA) añadidas por usuarios. En aquellas aplicaciones orientadas a Android
|
y ya no se da esta misma consideración a las entidades de certificación (CA) agregadas por usuarios. En aquellas aplicaciones orientadas a Android
|
||||||
N para las cuales se desee considerar tales CA como válidas, se debe usar la
|
N para las cuales se desee considerar tales CA como válidas, se debe usar la
|
||||||
<a href="{@docRoot}preview/features/security-config.html">Configuración de seguridad de la red</a> a fin de
|
<a href="{@docRoot}preview/features/security-config.html">Configuración de seguridad de la red</a> a fin de
|
||||||
especificar los términos de confianza de dichas CA.</p>
|
especificar los términos de confianza de dichas CA.</p>
|
||||||
|
|
||||||
<h2 id="apk_signature_v2">Esquema de firma de APK v2</h2>
|
<h2 id="apk_signature_v2">Esquema de firma de APK v2</h2>
|
||||||
|
|
||||||
<p>La clase PackageManager ahora admite la verificación de aplicaciones con el esquema
|
<p>
|
||||||
de firma de APK v2. Se trata de un esquema de firma de archivos completos
|
Android N presenta el esquema de firma de APK v2, un nuevo esquema de firma de aplicaciones que
|
||||||
que agiliza considerablemente la verificación y refuerza las garantías de
|
ofrece instalación más rápida de las aplicaciones y mayor protección contra alteraciones
|
||||||
integridad al detectar todos los cambios no autorizados en archivos APK.</p>
|
no autorizadas de archivos APK. De forma predeterminada, Android Studio 2.2 y el complemento de Android
|
||||||
|
para Gradle 2.2 firman tu aplicación con el esquema de firma de APK v2 y
|
||||||
|
el esquema de firma tradicional, que utiliza la firma JAR.
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>Para conservar la compatibilidad con versiones anteriores, se debe firmar un APK con el esquema de firma
|
<p>
|
||||||
v1 (esquema de firma JAR) antes de la firma con el esquema de firma v2.
|
Aunque recomendamos que implementes el esquema de firma de APK v2 en tu aplicación, este esquema
|
||||||
Si se usa este último, la verificación experimenta errores cuando se firma el APK con un
|
nuevo no es obligatorio. Si la aplicación no se compila correctamente con el
|
||||||
certificado adicional después de la firma con el esquema v2. </p>
|
esquema de firma de APK v2, puedes deshabilitar este esquema nuevo. Si se deshabilita el proceso,
|
||||||
|
Android Studio 2.2 y el complemento de Android para Gradle 2.2 firman tu
|
||||||
|
aplicación con el esquema de firma tradicional solamente. Para firmar solo con el
|
||||||
|
esquema tradicional, abre el archivo <code>build.gradle</code> del nivel del módulo, a continuación,
|
||||||
|
agrega la línea <code>v2SigningEnabled false</code> a la configuración de firma
|
||||||
|
de la versión:
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>Se ofrecerá disponibilidad con el esquema de firma de APK v2 más adelante en la N Developer
|
<pre>
|
||||||
Preview.</p>
|
android {
|
||||||
|
...
|
||||||
|
defaultConfig { ... }
|
||||||
|
signingConfigs {
|
||||||
|
release {
|
||||||
|
storeFile file("myreleasekey.keystore")
|
||||||
|
storePassword "password"
|
||||||
|
keyAlias "MyReleaseKey"
|
||||||
|
keyPassword "password"
|
||||||
|
<strong>v2SigningEnabled false</strong>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p class="caution"><strong>Advertencia: </strong> Si firmas la aplicación con el
|
||||||
|
esquema de firma de APK v2 y luego la modificas, se invalida
|
||||||
|
la firma de la aplicación. Por este motivo, usa herramientas como <code>zipalign</code>
|
||||||
|
antes de firmar la aplicación con el esquema de firma de APK v2, y no después.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para obtener más información, lee los documentos de Android Studio que describen cómo
|
||||||
|
<a href="{@docRoot}studio/publish/app-signing.html#release-mode">
|
||||||
|
firmar una aplicación</a> en Android Studio y cómo<a href="{@docRoot}studio/build/build-variants.html#signing"> configurar
|
||||||
|
el archivo de compilación para firmar aplicaciones</a> con el complemento de Android para Gradle.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h2 id="scoped_directory_access">Acceso a directorios determinados</h2>
|
<h2 id="scoped_directory_access">Acceso a directorios determinados</h2>
|
||||||
|
|
||||||
@@ -655,7 +805,7 @@ Preview.</p>
|
|||||||
externo</a> específicos, incluidos los directorios de medios extraíbles, como las tarjetas
|
externo</a> específicos, incluidos los directorios de medios extraíbles, como las tarjetas
|
||||||
SD. Las nuevas API simplifican enormemente la manera en que tu aplicación accede a directorios
|
SD. Las nuevas API simplifican enormemente la manera en que tu aplicación accede a directorios
|
||||||
de almacenamiento externo estándares, como <code>Pictures</code>. Las aplicaciones
|
de almacenamiento externo estándares, como <code>Pictures</code>. Las aplicaciones
|
||||||
de fotografía pueden usar estas API en lugar de
|
de fotografía, por ejemplo, pueden usar estas API en lugar de
|
||||||
<code>READ_EXTERNAL_STORAGE</code>, que otorga acceso a todos los directorios
|
<code>READ_EXTERNAL_STORAGE</code>, que otorga acceso a todos los directorios
|
||||||
de almacenamiento, o del framework de acceso a almacenamiento, con el cual el usuario debe navegar hasta
|
de almacenamiento, o del framework de acceso a almacenamiento, con el cual el usuario debe navegar hasta
|
||||||
el directorio.</p>
|
el directorio.</p>
|
||||||
@@ -665,12 +815,225 @@ externo. Cuando se usan las nuevas API, el sistema emplea una IU de
|
|||||||
permisos simple en la que se detallan claramente los directorios a los cuales
|
permisos simple en la que se detallan claramente los directorios a los cuales
|
||||||
la aplicación solicita acceso.</p>
|
la aplicación solicita acceso.</p>
|
||||||
|
|
||||||
<p>Para obtener más información, consulta la documentación sobre
|
<p>Para obtener más información, consulta la documentación
|
||||||
<a href="{@docRoot}preview/features/scoped-folder-access.html">Acceso
|
<a href="{@docRoot}preview/features/scoped-folder-access.html">Acceso
|
||||||
a directorios determinados</a> para desarrolladores.</p>
|
a directorios determinados</a> para desarrolladores.</p>
|
||||||
|
|
||||||
|
<h2 id="keyboard_shortcuts_helper">Ayuda en los métodos abreviados del teclado</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
En Android N, el usuario puede presionar "Alt + /" para activar una pantalla de <em>métodos abreviados del teclado</em>
|
||||||
|
que muestra todos los métodos abreviados disponibles, tanto para el
|
||||||
|
sistema como la aplicación que esté en primer plano. Estos se recuperan automáticamente del menú de la aplicación si
|
||||||
|
están disponibles, pero los desarrolladores pueden proporcionar sus propios métodos abreviados perfeccionados
|
||||||
|
para la pantalla. Puedes hacerlo anulando el nuevo método
|
||||||
|
<code>Activity.onProvideKeyboardShortcuts()</code>, lo que se describe en la
|
||||||
|
<a href="{@docRoot}preview/setup-sdk.html#docs-dl">referencia de la API</a> descargable.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para activar la ayuda en los métodos abreviados del teclado desde cualquier ubicación en la aplicación,
|
||||||
|
llama a {@code Activity.requestKeyboardShortcutsHelper()} para la actividad relevante.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="sustained_performance_api">API de rendimiento sostenido</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
El rendimiento puede fluctuar considerablemente en las aplicaciones de ejecución prolongada porque el
|
||||||
|
sistema limita los motores de sistemas en chip cuando los componentes del dispositivo alcanzan los
|
||||||
|
límites de temperatura. Esta fluctuación presenta un objetivo móvil para los desarrolladores
|
||||||
|
de aplicaciones que crean aplicaciones de alto rendimiento y ejecución prolongada.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android N incluye compatibilidad opcional para un
|
||||||
|
<em>modo de rendimiento sostenido</em>, que permite que los fabricantes de equipo original (OEM) arrojen datos sobre las capacidades de rendimiento del dispositivo
|
||||||
|
para las aplicaciones de ejecución prolongada. Los desarrolladores
|
||||||
|
de aplicaciones pueden usar estos datos para perfeccionar sus aplicaciones y alcanzar un nivel
|
||||||
|
uniforme y predecible de rendimiento en el dispositivo durante períodos prolongados.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los desarrolladores de aplicaciones solo pueden probar esta API nueva en la N Developer Preview instalada solo en dispositivos con
|
||||||
|
Nexus 6P. Para usar esta función,
|
||||||
|
establece el indicador de rendimiento sostenido de la ventana
|
||||||
|
que deseas ejecutar en el modo de rendimiento sostenido. Establece este indicador con el método
|
||||||
|
{@code Window.setSustainedPerformanceMode()}. El sistema deshabilita
|
||||||
|
automáticamente este modo cuando la ventana deja de estar en primer plano.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="vr">Soporte de RV</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android N agrega compatibilidad y optimizaciones de plataforma para un modo de RV nuevo, con el objetivo de que los
|
||||||
|
desarrolladores puedan forjar experiencias de RV móviles de alta calidad para los usuarios. Hay varias mejoras en el
|
||||||
|
rendimiento, entre las que se incluye el acceso a un núcleo de CPU exclusivo para aplicaciones de RV.
|
||||||
|
Dentro de tus aplicaciones, puedes aprovechar el seguimiento de cabeza inteligente
|
||||||
|
y las notificaciones en sonido estéreo que funcionan para la RV. Un dato muy importante es que Android N presenta
|
||||||
|
muy pocos gráficos de baja latencia. Para obtener información completa sobre el desarrollo de aplicaciones de RV para Android N,
|
||||||
|
consulta <a href="https://developers.google.com/vr/android/">Google VR SDK para Android</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2 id="print_svc">Mejoras del servicio de impresión</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
En Android N, los desarrolladores de servicios de impresión ahora pueden publicar información adicional
|
||||||
|
sobre impresoras y trabajos de impresión individuales.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Al enumerar las impresoras individuales, un servicio de impresión ahora puede establecer íconos
|
||||||
|
por impresora de dos maneras:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Puedes establecer un ícono desde el id. de un recurso llamando a
|
||||||
|
<code>PrinterInfo.Builder.setResourceIconId()</code>.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>Puedes mostrar un ícono de la red llamando a
|
||||||
|
<code>PrinterInfo.Builder.setHasCustomPrinterIcon()</code> y configurando un
|
||||||
|
callback para cuando se solicite el ícono con
|
||||||
|
<code>android.printservice.PrinterDiscoverySession.onRequestCustomPrinterIcon()</code>.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Además, puedes proporcionar las actividades por impresora para mostrar información
|
||||||
|
adicional llamando a <code>PrinterInfo.Builder.setInfoIntent()</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Puedes indicar el progreso y el estado de los trabajos de impresión en la notificación de
|
||||||
|
trabajo de impresión llamando a
|
||||||
|
<code>android.printservice.PrintJob.setProgress()</code> y
|
||||||
|
<code>android.printservice.PrintJob.setStatus()</code>, respectivamente.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para obtener más información sobre estos métodos, consulta la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">referencia de la API</a> descargable.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="framemetrics_api">API FrameMetricsListener</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
La API FrameMetricsListener permite que una aplicación monitoree el rendimiento de la representación
|
||||||
|
de la IU. La API brinda esta capacidad mediante la exposición de una transmisión de API Pub/Sub para transferir información sobre el tiempo
|
||||||
|
de los cuadros para la ventana actual de la aplicación. Los datos devueltos son
|
||||||
|
equivalentes a lo que muestra <code><a href="{@docRoot}tools/help/shell.html#shellcommands">adb shell</a>
|
||||||
|
dumpsys gfxinfo framestats</code>, pero no se limita a los últimos 120 cuadros.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Puedes usar FrameMetricsListener para medir el rendimiento de
|
||||||
|
la IU del nivel de interacción en producción sin contar con una conexión USB. Esta API
|
||||||
|
permite recopilar datos con una especificidad mayor que
|
||||||
|
{@code adb shell dumpsys gfxinfo}. Esta especificidad mayor es posible porque
|
||||||
|
el sistema puede recopilar datos para interacciones determinadas en la aplicación, sin que sea
|
||||||
|
necesario que el sistema obtenga un resumen global del
|
||||||
|
rendimiento de toda la aplicación o borre un estado global. Puedes usar esta
|
||||||
|
capacidad con el objetivo de recopilar datos de rendimiento e identificar regresiones en el rendimiento de la IU
|
||||||
|
para casos de uso reales dentro de una aplicación.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para monitorear una ventana, implementa el callback <code>FrameMetricsListener.onMetricsAvailable()</code>
|
||||||
|
y regístralo en esa ventana. Para obtener más información, consulta
|
||||||
|
la documentación de la clase {@code FrameMetricsListener}
|
||||||
|
en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">referencia de la API</a> descargable.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
La API proporciona un objeto {@code FrameMetrics}, que contiene datos de intervalos que
|
||||||
|
el subsistema de representación informa sobre varios hitos en el ciclo de vida de un marco.
|
||||||
|
Las métricas compatibles son {@code UNKNOWN_DELAY_DURATION},
|
||||||
|
{@code INPUT_HANDLING_DURATION}, {@code ANIMATION_DURATION},
|
||||||
|
{@code LAYOUT_MEASURE_DURATION}, {@code DRAW_DURATION}, {@code SYNC_DURATION},
|
||||||
|
{@code COMMAND_ISSUE_DURATION}, {@code SWAP_BUFFERS_DURATION},
|
||||||
|
{@code TOTAL_DURATION} y {@code FIRST_DRAW_FRAME}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2 id="virtual_files">Archivos virtuales</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
En versiones anteriores de Android, tu aplicación podía usar el framework
|
||||||
|
de acceso al almacenamiento para permitir a los usuarios seleccionar archivos de cuentas de almacenamiento en la nube,
|
||||||
|
como Google Drive. Sin embargo, no se podían representar los archivos que no
|
||||||
|
tenían una representación directa en código de bits; cada archivo debía brindar
|
||||||
|
un flujo de entrada.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android N incorpora el concepto de <em>archivos virtuales</em> al framework
|
||||||
|
de acceso al almacenamiento. La función de archivos virtuales permite que tu
|
||||||
|
{@link android.provider.DocumentsProvider} devuelva URI de documentos que se pueden
|
||||||
|
usar en una intent {@link android.content.Intent#ACTION_VIEW} incluso si
|
||||||
|
no tienen una representación directa en código de bits. Android N también te permite
|
||||||
|
ofrecer formatos alternativos para archivos del usuario, virtuales u otros.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para obtener un URI para un documento virtual en tu aplicación, primero crea una
|
||||||
|
{@link android.content.Intent} a fin de abrir la IU del selector de archivos. Como una aplicación
|
||||||
|
no puede abrir directamente un archivo virtual con el método
|
||||||
|
{@link android.content.ContentResolver#openInputStream(Uri) openInputStream()},
|
||||||
|
la aplicación no recibe ningún archivo virtual si incluyes la categoría
|
||||||
|
{@link android.content.Intent#CATEGORY_OPENABLE}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Cuando el usuario realiza una selección, el sistema llama al método
|
||||||
|
{@link android.app.Activity#onActivityResult onActivityResult()}.
|
||||||
|
La aplicación puede recuperar el URI del archivo virtual y obtener un flujo de entrada, como
|
||||||
|
se demuestra en el fragmento de código a continuación.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
// Other Activity code ...
|
||||||
|
|
||||||
|
final static private int REQUEST_CODE = 64;
|
||||||
|
|
||||||
|
// We listen to the OnActivityResult event to respond to the user's selection.
|
||||||
|
@Override
|
||||||
|
public void onActivityResult(int requestCode, int resultCode,
|
||||||
|
Intent resultData) {
|
||||||
|
try {
|
||||||
|
if (requestCode == REQUEST_CODE &&
|
||||||
|
resultCode == Activity.RESULT_OK) {
|
||||||
|
|
||||||
|
Uri uri = null;
|
||||||
|
|
||||||
|
if (resultData != null) {
|
||||||
|
uri = resultData.getData();
|
||||||
|
|
||||||
|
ContentResolver resolver = getContentResolver();
|
||||||
|
|
||||||
|
// Before attempting to coerce a file into a MIME type,
|
||||||
|
// check to see what alternative MIME types are available to
|
||||||
|
// coerce this file into.
|
||||||
|
String[] streamTypes =
|
||||||
|
resolver.getStreamTypes(uri, "*/*");
|
||||||
|
|
||||||
|
AssetFileDescriptor descriptor =
|
||||||
|
resolver.openTypedAssetFileDescriptor(
|
||||||
|
uri,
|
||||||
|
streamTypes[0],
|
||||||
|
null);
|
||||||
|
|
||||||
|
// Retrieve a stream to the virtual file.
|
||||||
|
InputStream inputStream = descriptor.createInputStream();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception ex) {
|
||||||
|
Log.e("EXCEPTION", "ERROR: ", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para obtener más información sobre el acceso a archivos del usuario, consulta la
|
||||||
|
<a href="{@docRoot}guide/topics/providers/document-provider.html">guía
|
||||||
|
Frameworks de acceso a almacenamiento</a>.
|
||||||
|
</p>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
page.title=Cambios en los comportamientos
|
page.title=Cambios en los comportamientos
|
||||||
page.keywords=preview,sdk,compatibility
|
page.keywords=versión preliminar,sdk,compatibilidad
|
||||||
meta.tags=“preview”, “compatibilidad”
|
meta.tags="preview", "compatibility"
|
||||||
page.tags="preview", "developer preview"
|
page.tags="preview", "developer preview"
|
||||||
page.image=images/cards/card-n-changes_2x.png
|
page.image=images/cards/card-n-changes_2x.png
|
||||||
@jd:body
|
@jd:body
|
||||||
@@ -9,24 +9,28 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
<div id="qv-wrapper">
|
<div id="qv-wrapper">
|
||||||
<div id="qv">
|
<div id="qv">
|
||||||
|
|
||||||
<h2>Contenido del documento</h2>
|
<h2>En este documento</h2>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#perf">Mejoras de rendimiento</a>
|
<li><a href="#perf">Mejoras de rendimiento</a>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#doze">Doze</a></li>
|
<li><a href="#doze">Descanso</a></li>
|
||||||
<li><a href="#bg-opt">Optimizaciones en segundo plano</a></li>
|
<li><a href="#bg-opt">Optimizaciones en segundo plano</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#perm">Cambios en los permisos</a></li>
|
<li><a href="#perm">Cambios en los permisos</a>
|
||||||
|
</li>
|
||||||
|
<li><a href="#sharing-files">Intercambio de archivos entre aplicaciones</a></li>
|
||||||
<li><a href="#accessibility">Mejoras de accesibilidad</a>
|
<li><a href="#accessibility">Mejoras de accesibilidad</a>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#screen-zoom">Zoom de la pantalla</a></li>
|
<li><a href="#screen-zoom">Zoom de la pantalla</a></li>
|
||||||
<li><a href="#vision-settings">Vision Settings en el asistente de configuración</a></li>
|
<li><a href="#vision-settings">Vision Settings en el asistente de configuración</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#ndk">Aplicaciones de NDK con vínculos a bibliotecas de plataformas</a></li>
|
<li><a href="#ndk">Aplicaciones del NDK con vínculos a bibliotecas de plataformas</a></li>
|
||||||
<li><a href="#afw">Android for Work</a></li>
|
<li><a href="#afw">Android for Work</a></li>
|
||||||
|
<li><a href="#annotations">Retención de anotaciones</a></li>
|
||||||
|
<li><a href="#other">Otros aspectos importantes</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<h2>Consulta también</h2>
|
<h2>Consulta también</h2>
|
||||||
@@ -40,9 +44,9 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Además de nuevas funciones y capacidades, en Android N
|
Además de nuevas características y capacidades, Android N
|
||||||
se incluyen varios cambios en el comportamiento del sistema y de las API. En este documento
|
incluye diversos cambios en el sistema y en los comportamientos de la API. En este documento,
|
||||||
se destacan algunos de los cambios principales que debes comprender y tener en cuenta
|
se destacan algunos de los cambios principales que debes comprender y justificar
|
||||||
en tus aplicaciones.
|
en tus aplicaciones.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -52,23 +56,22 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="perf">Mejoras de rendimiento</h2>
|
<h2 id="perf">Batería y memoria</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Android N contiene cambios en el comportamiento del sistema destinados a lograr mejoras en la duración
|
Android N incluye cambios en los comportamientos del sistema para mejorar la duración de la batería
|
||||||
de las baterías de los dispositivos, el uso de la memoria RAM y el rendimiento de las aplicaciones. Estos cambios pueden tener efecto en la
|
de los dispositivos y reducir el uso de la memoria RAM. Estos cambios pueden afectar el acceso de tu aplicación a
|
||||||
disponibilidad de recursos y notificaciones de sistema para tu aplicación. Debes
|
recursos del sistema, además de la manera en que tu aplicación interactúa con otras aplicaciones mediante
|
||||||
revisar estos cambios y evaluar las posibles formas en que tu aplicación deba adecuarse a
|
determinadas intents implícitas.
|
||||||
ellas.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="doze">Doze</h3>
|
<h3 id="doze">Descanso</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Doze, presentado en Android 6.0 (nivel de API 23), prolonga la duración de la batería
|
Descanso, presentado en Android 6.0 (nivel de API 23), prolonga la duración de la batería
|
||||||
aplazando actividades de CPU y red cuando un usuario deja un dispositivo desenchufado,
|
aplazando actividades de CPU y red cuando un usuario deja un dispositivo desenchufado,
|
||||||
quieto y con la pantalla apagada. En Android N se ofrecen más
|
quieto y con la pantalla apagada. En Android N se ofrecen más
|
||||||
mejoras para Doze a través de la aplicación de un subconjunto de restricciones de CPU y red
|
mejoras para Descanso a través de la aplicación de un subconjunto de restricciones de CPU y red
|
||||||
mientras el dispositivo se encuentra desenchufado y con la pantalla apagada, aunque no necesariamente
|
mientras el dispositivo se encuentra desenchufado y con la pantalla apagada, aunque no necesariamente
|
||||||
quieto; por ejemplo, al ir dentro del bolsillo de un usuario en movimiento.
|
quieto; por ejemplo, al ir dentro del bolsillo de un usuario en movimiento.
|
||||||
</p>
|
</p>
|
||||||
@@ -76,18 +79,18 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
|
|
||||||
<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
|
<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
|
||||||
<p class="img-caption">
|
<p class="img-caption">
|
||||||
<strong>Figura 1:</strong> Ilustración del modo en que Doze aplica un primer nivel de
|
<strong>Figura 1:</strong> Ilustración del modo en que Descanso aplica un primer nivel de
|
||||||
restricciones de actividad del sistema para prolongar la duración de la batería.
|
restricciones de actividad del sistema para prolongar la duración de la batería.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Cuando un dispositivo funciona con la batería y la pantalla permanece apagada durante un tiempo
|
Cuando un dispositivo funciona con la batería y la pantalla permanece apagada durante un tiempo
|
||||||
determinado, se activa en este el modo Doze y se aplica el primer subconjunto de restricciones: se desactiva
|
determinado, se activa en este el modo Descanso y se aplica el primer subconjunto de restricciones: se
|
||||||
el acceso de las aplicaciones a la red y se aplazan tareas y sincronizaciones. Si el dispositivo
|
desactiva el acceso de las aplicaciones a la red y se aplazan tareas y sincronizaciones. Si el dispositivo
|
||||||
permanece quieto durante un tiempo determinado tras activarse el modo Doze, el sistema aplica el
|
permanece quieto durante un tiempo determinado tras activarse el modo Descanso, el sistema aplica el
|
||||||
resto de las restricciones del modo a alarmas de {@link android.os.PowerManager.WakeLock},
|
resto de las restricciones del modo a {@link android.os.PowerManager.WakeLock},
|
||||||
{@link android.app.AlarmManager} y análisis de GPS o Wi-Fi. Independientemente de que
|
alarmas de {@link android.app.AlarmManager}, GPS y análisis de Wi-Fi. Independientemente de que
|
||||||
se apliquen algunas o todas las restricciones del modo Doze, el sistema activa el
|
se apliquen algunas o todas las restricciones del modo Descanso, el sistema activa el
|
||||||
dispositivo durante plazos de mantenimiento breves en los cuales las aplicaciones tienen
|
dispositivo durante plazos de mantenimiento breves en los cuales las aplicaciones tienen
|
||||||
acceso a la red y pueden ejecutar sincronizaciones o procesos aplazados.
|
acceso a la red y pueden ejecutar sincronizaciones o procesos aplazados.
|
||||||
</p>
|
</p>
|
||||||
@@ -95,49 +98,49 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
|
|
||||||
<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
|
<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
|
||||||
<p class="img-caption">
|
<p class="img-caption">
|
||||||
<strong>Figura 2:</strong> Ilustración del modo en que Doze aplica un segundo nivel de
|
<strong>Figura 2:</strong> Ilustración del modo en que Descanso aplica un segundo nivel de
|
||||||
restricciones de actividad del sistema después de que el dispositivo permanece quieto durante un tiempo determinado.
|
restricciones de actividad del sistema después de que el dispositivo permanece quieto durante un tiempo determinado.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Ten en cuenta que cuando se activar la pantalla o se enchufa el dispositivo se desactiva el modo Doze y
|
Ten en cuenta que, cuando se activa la pantalla o se enchufa el dispositivo, se desactiva el modo Descanso y
|
||||||
se retiran estas restricciones de procesamiento. El comportamiento adicional no
|
se retiran estas restricciones de procesamiento. El comportamiento adicional no
|
||||||
tiene efecto sobre las recomendaciones ni las prácticas recomendadas para adaptar tu aplicación a la versión
|
tiene efecto sobre las recomendaciones ni las prácticas recomendadas para adaptar tu aplicación a la versión
|
||||||
anterior de Doze, presentada en Android 6.0 (nivel de API 23), según lo descrito en
|
anterior de Descanso, presentada en Android 6.0 (nivel de API 23), según lo descrito en
|
||||||
<a href="{@docRoot}training/monitoring-device-state/doze-standby.html">
|
<a href="{@docRoot}training/monitoring-device-state/doze-standby.html">
|
||||||
Optimización para Doze y App Standby</a>. De todos modos, debes
|
Optimización para Descanso y App Standby</a>. De todos modos, debes
|
||||||
seguir las recomendaciones; por ejemplo, la de usar Google Cloud Messaging (GCM) para
|
seguir las recomendaciones; por ejemplo, la de usar Google Cloud Messaging (GCM) para
|
||||||
enviar y recibir mensajes, y la de planificar actualizaciones para considerar
|
enviar y recibir mensajes, y la de planificar actualizaciones para adaptar
|
||||||
el comportamiento adicional de Doze.
|
el comportamiento adicional de Descanso.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3 id="bg-opt">Project Svelte: Optimizaciones en segundo plano</h3>
|
<h3 id="bg-opt">Project Svelte: Optimizaciones en segundo plano</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En Android N se eliminan tres difusiones implícitas para optimizar el uso de la
|
En Android N, se eliminan tres transmisiones implícitas para ayudar a optimizar el uso de la
|
||||||
memoria y el consumo de energía. Este cambio es necesario porque las difusiones
|
memoria y el consumo de energía. Este cambio es necesario porque las transmisiones
|
||||||
implícitas a menudo inician aplicaciones que se registran para realizar un seguimiento de ellas en
|
implícitas a menudo inician aplicaciones que se registran para realizar un seguimiento de ellas en
|
||||||
segundo plano. La eliminación de estas difusiones puede mejorar sustancialmente el rendimiento
|
segundo plano. La eliminación de estas transmisiones puede mejorar sustancialmente el rendimiento del dispositivo
|
||||||
del dispositivo y la experiencia del usuario.
|
y la experiencia del usuario.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Los dispositivos móviles están sujetos a cambios de conectividad frecuentes
|
Los dispositivos móviles están sujetos a cambios de conectividad frecuentes
|
||||||
entre los modos de datos Wi-Fi y móviles. Actualmente, las aplicaciones pueden realizar controles en busca de cambios en la
|
entre los modos de datos Wi-Fi y móviles. Actualmente, las aplicaciones pueden realizar controles en busca de cambios en la
|
||||||
conectividad registrando un receptor para la difusión implícita {@link
|
conectividad registrando un receptor para la transmisión implícita {@link
|
||||||
android.net.ConnectivityManager#CONNECTIVITY_ACTION} en su
|
android.net.ConnectivityManager#CONNECTIVITY_ACTION} en su
|
||||||
manifiesto. Debido a que muchas aplicaciones se registran para recibir esta difusión, un cambio de
|
manifiesto. Debido a que muchas aplicaciones se registran para recibir esta transmisión, un cambio de
|
||||||
red puede hacer que todas se activen y procesen la difusión a la
|
red puede hacer que todas se activen y procesen la transmisión a la
|
||||||
vez.
|
vez.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Asimismo, las aplicaciones pueden registrarse para recibir las difusiones implícitas {@link
|
Asimismo, en versiones anteriores de Android, las aplicaciones podían registrarse para recibir las transmisiones implícitas {@link
|
||||||
android.hardware.Camera#ACTION_NEW_PICTURE} y {@link
|
android.hardware.Camera#ACTION_NEW_PICTURE} y {@link
|
||||||
android.hardware.Camera#ACTION_NEW_VIDEO} de otras aplicaciones, como la
|
android.hardware.Camera#ACTION_NEW_VIDEO} de otras aplicaciones, como la
|
||||||
cámara. Cuando un usuario toma una foto con la aplicación de la cámara, estas aplicaciones se activan
|
cámara. Cuando un usuario toma una foto con la aplicación de la cámara, estas aplicaciones se activan
|
||||||
para procesar la difusión.
|
para procesar la transmisión.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -146,71 +149,121 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Las aplicaciones orientadas a Android N no reciben difusiones {@link
|
<li>Las aplicaciones orientadas a Android N no reciben transmisiones {@link
|
||||||
android.net.ConnectivityManager#CONNECTIVITY_ACTION}, aún cuando contengan
|
android.net.ConnectivityManager#CONNECTIVITY_ACTION}, aun cuando contengan
|
||||||
entradas de manifiesto que les permitan solicitar notificaciones de estos eventos. No obstante, las aplicaciones que se ejecuten
|
entradas de manifiesto que les permitan solicitar notificaciones de estos eventos. Las aplicaciones que
|
||||||
en primer plano pueden realizar el seguimiento de {@code CONNECTIVITY_CHANGE} en sus subprocesos
|
se ejecutan aún pueden escuchar {@code CONNECTIVITY_CHANGE} en su subproceso principal
|
||||||
principales si solicitan notificación a través de {@link
|
si solicitan una notificación con un {@link android.content.BroadcastReceiver}.
|
||||||
android.content.BroadcastReceiver}.
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Las aplicaciones no pueden enviar ni recibir difusiones {@link
|
<li>Las aplicaciones no pueden enviar ni recibir transmisiones {@link
|
||||||
android.hardware.Camera#ACTION_NEW_PICTURE} ni {@link
|
android.hardware.Camera#ACTION_NEW_PICTURE} ni {@link
|
||||||
android.hardware.Camera#ACTION_NEW_VIDEO}. Esta optimización
|
android.hardware.Camera#ACTION_NEW_VIDEO}. Esta optimización
|
||||||
afecta a todas las aplicaciones, no solo a las que estén orientadas a Android N.
|
afecta a todas las aplicaciones, no solo a aquellas orientadas a Android N.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>Si la aplicación utiliza cualquiera de estas intents, debes quitar las dependencias
|
||||||
En versiones futuras de Android, es posible que dejen de usarse más difusiones implícitas y
|
en ellas lo antes posible a fin de poder orientar los dispositivos con Android N correctamente.
|
||||||
servicios en segundo plano no asociados. Por esta razón, debes evitar dependencias en receptores declarados en manifiestos para difusiones implícitas o
|
El framework de Android ofrece varias soluciones para mitigar la necesidad de
|
||||||
eliminarlas de ellos,
|
estas transmisiones implícitas. Por ejemplo, la API {@link
|
||||||
y aplicar lo mismo a los servicios en segundo plano.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
El framework de Android proporciona varias soluciones para reducir la necesidad de
|
|
||||||
difusiones implícitas o servicios en segundo plano. Por ejemplo, la API de {@link
|
|
||||||
android.app.job.JobScheduler} proporciona un mecanismo sólido para programar
|
android.app.job.JobScheduler} proporciona un mecanismo sólido para programar
|
||||||
operaciones de red cuando se cumplen condiciones especificadas, como la conexión a una red
|
operaciones de red cuando se cumplen las condiciones especificadas, como una conexión a una
|
||||||
de uso no medido. Puedes incluso usar {@link
|
red de uso no medido. Puedes usar {@link
|
||||||
android.app.job.JobScheduler} para responder a cambios de los proveedores de contenido.
|
android.app.job.JobScheduler} para responder a cambios en proveedores de contenido.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para obtener más información sobre este cambio en el comportamiento y la manera de adaptar tu aplicación,
|
Para obtener más información sobre optimizaciones en segundo plano en Android N y la manera de adaptar tu aplicación,
|
||||||
consulta <a href="{@docRoot}preview/features/background-optimization.html">Optimizaciones
|
consulta <a href="{@docRoot}preview/features/background-optimization.html">Optimizaciones
|
||||||
en segundo plano</a>.
|
en segundo plano</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="perm">Cambios en los permisos</h2>
|
<h2 id="perm">Cambios en los permisos</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En Android N se incorporan cambios en permisos que pueden tener efecto en tu aplicación.
|
En Android N, se incorporan cambios en permisos que pueden afectar tu aplicación.
|
||||||
Se incluyen cambios en permisos de cuentas de usuarios y un nuevo permiso para operaciones de escritura en
|
</p>
|
||||||
dispositivos de almacenamiento externo. A continuación, se ofrece un resumen de los permisos que se modificaron en
|
|
||||||
la muestra:
|
<h3 id="permfilesys">Cambios en los permisos del sistema de archivos</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para mejorar la seguridad de los archivos privados, el directorio privado de
|
||||||
|
las aplicaciones orientadas a Android N o versiones posteriores tiene acceso restringido. (<code>0700</code>).
|
||||||
|
Esta configuración evita la fuga de metadatos de archivos privados, como su tamaño
|
||||||
|
o existencia. Este cambio en los permisos tiene varios efectos secundarios:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>{@code GET_ACCOUNTS} (Obsoleto).
|
<li>
|
||||||
<p>
|
Los propietarios ya no pueden reducir los permisos de archivo de los archivos privados,
|
||||||
El permiso GET_ACCOUNTS ha quedado en desuso. El sistema ignora este
|
y un intento de hacerlo utilizando
|
||||||
permiso para las aplicaciones orientadas a Android N.
|
{@link android.content.Context#MODE_WORLD_READABLE} o
|
||||||
|
{@link android.content.Context#MODE_WORLD_WRITEABLE} activará una
|
||||||
|
{@link java.lang.SecurityException}.
|
||||||
|
<p class="note">
|
||||||
|
<strong>Nota:</strong> Desde ahora, esta restricción no se aplica planamente.
|
||||||
|
Las aplicaciones pueden seguir modificando los permisos para sus directorios privados con
|
||||||
|
las API nativas o la API {@link java.io.File File}. Sin embargo, desaconsejamos
|
||||||
|
reducir los permisos para el directorio privado.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
Pasar URI <code>file://</code> fuera del dominio del paquete puede dar al
|
||||||
|
receptor una ruta de acceso inaccesible. Por lo tanto, los intentos de pasar un
|
||||||
|
URI <code>file://</code> activan una
|
||||||
|
<code>FileUriExposedException</code>. La manera recomendada para compartir el
|
||||||
|
contenido de un archivo privado consiste en utilizar el {@link
|
||||||
|
android.support.v4.content.FileProvider}.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
El {@link android.app.DownloadManager} ya no puede compartir archivos
|
||||||
|
almacenados de manera privada por nombre de archivo. Las aplicaciones heredadas pueden terminar con una
|
||||||
|
ruta de acceso inaccesible cuando acceden a {@link
|
||||||
|
android.app.DownloadManager#COLUMN_LOCAL_FILENAME}. Las aplicaciones orientadas a
|
||||||
|
Android N o versiones posteriores activan una {@link java.lang.SecurityException} cuando
|
||||||
|
intentan acceder a
|
||||||
|
{@link android.app.DownloadManager#COLUMN_LOCAL_FILENAME}.
|
||||||
|
Las aplicaciones heredadas que establecen la ubicación de descarga en una ubicación pública
|
||||||
|
usando
|
||||||
|
{@link
|
||||||
|
android.app.DownloadManager.Request#setDestinationInExternalFilesDir
|
||||||
|
DownloadManager.Request.setDestinationInExternalFilesDir()} o
|
||||||
|
{@link
|
||||||
|
android.app.DownloadManager.Request#setDestinationInExternalPublicDir
|
||||||
|
DownloadManager.Request.setDestinationInExternalPublicDir()}
|
||||||
|
siguen teniendo acceso a la ruta de acceso en
|
||||||
|
{@link android.app.DownloadManager#COLUMN_LOCAL_FILENAME}; sin embargo, se desaconseja
|
||||||
|
seguir este método. El método preferido para acceder a un archivo
|
||||||
|
expuesto por el{@link android.app.DownloadManager} consiste en utilizar
|
||||||
|
{@link android.content.ContentResolver#openFileDescriptor
|
||||||
|
ContentResolver.openFileDescriptor()}.
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="sharing-files">Intercambio de archivos entre aplicaciones</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
En las aplicaciones orientadas a Android N, el framework de Android aplica
|
||||||
|
la política de la API {@link android.os.StrictMode} que prohíbe exponer URI {@code file://}
|
||||||
|
fuera de la aplicación. Si una intent con un URI de archivo sale de tu aplicación, la aplicación falla
|
||||||
|
con una excepción {@code FileUriExposedException}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para compartir archivos entre aplicaciones, debes enviar un URI {@code content://}
|
||||||
|
y otorgar un permiso de acceso temporal en el URI. La forma más sencilla de otorgar este permiso es
|
||||||
|
utilizando la clase {@link android.support.v4.content.FileProvider}. Para obtener más información
|
||||||
|
sobre permisos e intercambio de archivos,
|
||||||
|
consulta <a href="{@docRoot}training/secure-file-sharing/index.html">Intercambio de archivos</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h2 id="accessibility">Mejoras de accesibilidad</h2>
|
<h2 id="accessibility">Mejoras de accesibilidad</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En Android N se incluyen cambios destinados a mejorar la utilidad de la
|
En Android N, se incluyen cambios destinados a mejorar la usabilidad de la
|
||||||
plataforma para usuarios con defectos o discapacidades visuales. Estos cambios
|
plataforma para usuarios con defectos o discapacidades visuales. Estos cambios
|
||||||
generalmente no exigirán modificaciones en el código de tu aplicación. Sin embargo, debes revisar
|
generalmente no deben exigir modificaciones en el código de tu aplicación. Sin embargo, debes revisar
|
||||||
estas funciones y probarlas con tu aplicación para avaluar el posible impacto en la experiencia
|
estas funciones y probarlas con tu aplicación para avaluar el posible impacto en la experiencia
|
||||||
del usuario.
|
del usuario.
|
||||||
</p>
|
</p>
|
||||||
@@ -220,9 +273,9 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Android N permite a los usuarios configurar <strong>Display size</strong>, el ajuste que expande
|
Android N permite a los usuarios configurar <strong>Display size</strong>, el ajuste que expande
|
||||||
o contrae todos los elementos de la pantalla lo cual mejora la accesibilidad al dispositivo
|
o contrae todos los elementos de la pantalla, lo cual mejora la accesibilidad al dispositivo
|
||||||
para usuarios con poca visión. Estos no podrán superar el valor de zoom mínimo de zoom de
|
para usuarios con poca visión. Estos no podrán superar el valor de zoom
|
||||||
<a href="http://developer.android.com/guide/topics/resources/providing-resources.html">
|
mínimo de <a href="http://developer.android.com/guide/topics/resources/providing-resources.html">
|
||||||
sw320dp</a> para el ancho de pantalla, que es el ancho de un Nexus 4, un teléfono común de tamaño intermedio.
|
sw320dp</a> para el ancho de pantalla, que es el ancho de un Nexus 4, un teléfono común de tamaño intermedio.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -249,16 +302,16 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Si una aplicación se orienta hacia el nivel de API 23 o uno inferior, el sistema automáticamente finaliza
|
<li>Si una aplicación se orienta hacia el nivel de API 23 o uno inferior, el sistema automáticamente finaliza
|
||||||
todos sus procesos en segundo plano. Esto significa que si un usuario hace a un lado
|
todos los procesos en segundo plano. Esto significa que, si un usuario hace a un lado
|
||||||
dicha aplicación para abrir la pantalla <em>Settings</em> y cambiar la configuración de
|
dicha aplicación para abrir la pantalla <em>Settings</em> y cambiar la configuración de
|
||||||
<strong>Display size</strong>, el sistema finalizará la aplicación tal
|
<strong>Display size</strong>, el sistema finalizará la aplicación tal
|
||||||
como lo haría en una situación de bajos recursos de memoria. Si en la aplicación hay procesos en
|
como lo haría en una situación de bajos recursos de memoria. Si en la aplicación hay procesos en
|
||||||
primer plano activos, el sistema notifica a estos el cambio en la configuración como se
|
primer plano, el sistema notifica a estos procesos el cambio en la configuración como se
|
||||||
indica en <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Manejo de cambios
|
indica en <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Manejo de cambios
|
||||||
en tiempo de ejecución</a>, así como lo haría si cambiara la orientación del dispositivo.
|
en tiempo de ejecución</a>, así como lo haría si cambiara la orientación del dispositivo.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Si una aplicación se orienta hacia Android N, se notifica a todos sus procesos
|
<li>Si una aplicación se orienta hacia Android N, se notifica a todos los procesos
|
||||||
(en primer y segundo plano) el cambio en la configuración, como se
|
(en primer y segundo plano) el cambio en la configuración, como se
|
||||||
indica en <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Manejo de cambios
|
indica en <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Manejo de cambios
|
||||||
en tiempo de ejecución</a>.
|
en tiempo de ejecución</a>.
|
||||||
@@ -266,8 +319,8 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En la mayoría de las aplicaciones no se necesitan cambios para admitir esta función, ya que
|
En la mayoría de las aplicaciones, no se necesitan cambios para admitir esta función, si
|
||||||
en ellas rigen prácticas recomendadas de Android. Verificaciones específicas que deben realizarse:
|
en ellas se siguen las prácticas recomendadas de Android. Verificaciones específicas que deben realizarse:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
@@ -278,12 +331,12 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
|
|
||||||
<li>Cuando se modifique la configuración del dispositivo, actualiza la información almacenada en caché que
|
<li>Cuando se modifique la configuración del dispositivo, actualiza la información almacenada en caché que
|
||||||
dependa de la densidad, como los mapas de bits o recursos almacenados en caché que se carguen desde la
|
dependa de la densidad, como los mapas de bits o recursos almacenados en caché que se carguen desde la
|
||||||
red. Realiza una inspección en busca de cambios en la configuración cuando se reanude la actividad de la aplicación, después de la
|
red. Busca de cambios en la configuración cuando se reanude la actividad de la aplicación, después de la
|
||||||
pausa.
|
pausa.
|
||||||
<p class="note">
|
<p class="note">
|
||||||
<strong>Nota:</strong> Si almacenaste en caché datos que dependen de la configuración, te
|
<strong>Nota:</strong> Si almacenaste en caché datos que dependen de la configuración, te
|
||||||
convendrá incluir metadatos relacionados, como el tamaño de pantalla
|
convendrá incluir metadatos relacionados, como el tamaño de pantalla
|
||||||
correspondiente o la densidad de píxeles para dichos datos. Guardar estos metadatos de permite
|
correspondiente o la densidad de píxeles para dichos datos. Guardar estos metadatos te permite
|
||||||
decidir si necesitas actualizar los datos almacenados en caché después de un cambio en la
|
decidir si necesitas actualizar los datos almacenados en caché después de un cambio en la
|
||||||
configuración.
|
configuración.
|
||||||
</p>
|
</p>
|
||||||
@@ -299,7 +352,7 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Vision Settings se incluye en la pantalla de Bienvenida de Android N, en la cual los usuarios pueden
|
Vision Settings se incluye en la pantalla de Bienvenida de Android N, en la cual los usuarios pueden
|
||||||
pueden configurar los siguientes ajustes de accesibilidad para un nuevo dispositivo:
|
configurar los siguientes ajustes de accesibilidad para un nuevo dispositivo:
|
||||||
<strong>Magnification gesture</strong>, <strong>Font size</strong>,
|
<strong>Magnification gesture</strong>, <strong>Font size</strong>,
|
||||||
<strong>Display size</strong> y <strong>TalkBack</strong>. Este cambio
|
<strong>Display size</strong> y <strong>TalkBack</strong>. Este cambio
|
||||||
aumenta la visibilidad de errores relacionados con diferentes ajustes de pantalla. Para
|
aumenta la visibilidad de errores relacionados con diferentes ajustes de pantalla. Para
|
||||||
@@ -308,7 +361,7 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
Accessibility</strong>.
|
Accessibility</strong>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="ndk">Aplicaciones de NDK con vínculos a bibliotecas de plataformas</h2>
|
<h2 id="ndk">Aplicaciones del NDK con vínculos a bibliotecas de plataformas</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En Android N, se incluyen cambios en el espacio de nombres a fin de evitar la carga de API no públicas.
|
En Android N, se incluyen cambios en el espacio de nombres a fin de evitar la carga de API no públicas.
|
||||||
@@ -320,15 +373,15 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
<p>
|
<p>
|
||||||
Con el propósito de alertarte sobre el uso de API no públicas, las aplicaciones que funcionen en un dispositivo con
|
Con el propósito de alertarte sobre el uso de API no públicas, las aplicaciones que funcionen en un dispositivo con
|
||||||
Android N producirán un error de salida de logcat cuando una de ellas llame a una API no pública.
|
Android N producirán un error de salida de logcat cuando una de ellas llame a una API no pública.
|
||||||
Este error también aparecerá en la pantalla del dispositivo con forma de mensaje para
|
Este error también aparecerá en la pantalla del dispositivo como un mensaje para ayudar a
|
||||||
generar conciencia respecto de la situación. Debes revisar el código de tu aplicación para
|
generar conciencia respecto de la situación. Debes revisar el código de tu aplicación para
|
||||||
eliminar el uso de API de plataforma no públicas y probar por completo tus aplicaciones con
|
quitar el uso de API de plataformas no públicas y probar por completo tus aplicaciones con
|
||||||
un dispositivo de prueba o emulador.
|
un dispositivo de prueba o emulador.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Si tu aplicación depende de bibliotecas de plataformas, consulta la documentación sobre NDK para hallar
|
Si tu aplicación depende de bibliotecas de plataformas, consulta la documentación sobre el NDK a fin de hallar
|
||||||
soluciones típicas para el reemplazo de API privadas comunes por API equivalentes.
|
soluciones típicas para el reemplazo de API privadas comunes por API públicas equivalentes.
|
||||||
También es posible que establezcas vínculos con bibliotecas de plataformas sin notarlo,
|
También es posible que establezcas vínculos con bibliotecas de plataformas sin notarlo,
|
||||||
en especial si tu aplicación usa una biblioteca que forma parte de la plataforma (como
|
en especial si tu aplicación usa una biblioteca que forma parte de la plataforma (como
|
||||||
<code>libpng</code>), pero no del NDK. En ese caso, asegúrate de que
|
<code>libpng</code>), pero no del NDK. En ese caso, asegúrate de que
|
||||||
@@ -336,7 +389,7 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="caution">
|
<p class="caution">
|
||||||
<strong>Precaución:</strong> Algunas bibliotecas de terceros pueden establecer vínculos con API
|
<strong>Advertencia:</strong> Algunas bibliotecas de terceros pueden establecer vínculos con API
|
||||||
no públicas. Si tu aplicación usa estas bibliotecas, es probable que se bloquee al ejecutarse
|
no públicas. Si tu aplicación usa estas bibliotecas, es probable que se bloquee al ejecutarse
|
||||||
en la próxima versión oficial de Android.
|
en la próxima versión oficial de Android.
|
||||||
</p>
|
</p>
|
||||||
@@ -345,15 +398,15 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
Las aplicaciones no deben depender de bibliotecas nativas no incluidas en el NDK
|
Las aplicaciones no deben depender de bibliotecas nativas no incluidas en el NDK
|
||||||
ni usarlas, ya que pueden modificarse o eliminarse en la transición de una versión de Android a
|
ni usarlas, ya que pueden modificarse o eliminarse en la transición de una versión de Android a
|
||||||
otra. El cambio de OpenSSL a BoringSSL es un ejemplo de modificaciones como esta.
|
otra. El cambio de OpenSSL a BoringSSL es un ejemplo de modificaciones como esta.
|
||||||
A su vez, los diferentes dispositivos pueden ofrecer distintos niveles de compatibilidad debido a que
|
A su vez, los diferentes dispositivos pueden ofrecer distintos niveles de compatibilidad, debido a que
|
||||||
no existen requisitos de compatibilidad para bibliotecas de plataformas no incluidas
|
no existen requisitos de compatibilidad para bibliotecas de plataformas no incluidas
|
||||||
en el NDK. Si debes acceder a bibliotecas no relacionadas en dispositivos anteriores, haz que la
|
en el NDK. Si debes acceder a bibliotecas no relacionadas con el NDK en dispositivos anteriores, haz que la
|
||||||
carga dependa del nivel de la Android API.
|
carga dependa del nivel de la API de Android.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para ayudarte a diagnosticar estos tipos de problemas, a continuación se ofrecen ejemplos de errores de Java y
|
Para ayudarte a diagnosticar estos tipos de problemas, a continuación, se ofrecen ejemplos de errores de Java y
|
||||||
NDK que podrías hallar al intentar crear tu aplicación con Android N:
|
del NDK que podrías hallar al intentar compilar tu aplicación con Android N:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>Ejemplo de error de Java:</p>
|
<p>Ejemplo de error de Java:</p>
|
||||||
@@ -374,7 +427,7 @@ dlopen failed: cannot locate symbol "__system_property_get" referenced by ...
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>getJavaVM y getJNIEnv de libandroid_runtime.so pueden reemplazarse
|
<li>getJavaVM y getJNIEnv de libandroid_runtime.so pueden reemplazarse
|
||||||
por funciones de JNI:
|
por funciones estándares de JNI:
|
||||||
<pre class="no-pretty-print">
|
<pre class="no-pretty-print">
|
||||||
AndroidRuntime::getJavaVM -> GetJavaVM from <jni.h>
|
AndroidRuntime::getJavaVM -> GetJavaVM from <jni.h>
|
||||||
AndroidRuntime::getJNIEnv -> JavaVM::GetEnv or
|
AndroidRuntime::getJNIEnv -> JavaVM::GetEnv or
|
||||||
@@ -382,9 +435,9 @@ JavaVM::AttachCurrentThread from <jni.h>.
|
|||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>La utilización del símbolo {@code property_get} de {@code libcutils.so} puede
|
<li>El símbolo {@code property_get} de {@code libcutils.so} puede
|
||||||
reemplazarse por la alternativa pública {@code __system_property_get}.
|
reemplazarse por la API pública {@code alternative __system_property_get}.
|
||||||
Para hacerlo, usa {@code __system_property_get} con el siguiente include:
|
Para hacerlo, usa {@code __system_property_get} con el siguiente elemento include:
|
||||||
<pre>
|
<pre>
|
||||||
#include <sys/system_properties.h>
|
#include <sys/system_properties.h>
|
||||||
</pre>
|
</pre>
|
||||||
@@ -401,9 +454,9 @@ JavaVM::AttachCurrentThread from <jni.h>.
|
|||||||
<p>
|
<p>
|
||||||
Android N contiene cambios para aplicaciones orientadas a Android for Work, entre los que se incluyen
|
Android N contiene cambios para aplicaciones orientadas a Android for Work, entre los que se incluyen
|
||||||
modificaciones en la instalación de certificados, el restablecimiento de contraseñas, la gestión de usuarios
|
modificaciones en la instalación de certificados, el restablecimiento de contraseñas, la gestión de usuarios
|
||||||
secundarios y el acceso a identificadores de dispositivos. Si planeas crear aplicaciones para entornos de
|
secundarios y el acceso a identificadores de dispositivos. Si creas aplicaciones para entornos de
|
||||||
Android for Work, debes repasar estos cambios y modificar
|
Android for Work, debes estudiar estos cambios y modificar
|
||||||
tu aplicación de manera correspondiente.
|
tu aplicación según corresponda.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
@@ -416,23 +469,23 @@ JavaVM::AttachCurrentThread from <jni.h>.
|
|||||||
<code>IllegalArgumentException</code>.
|
<code>IllegalArgumentException</code>.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Las restricciones de contraseñas para administradores de dispositivos ahora se aplican a los propietarios de
|
<li>Las restricciones de restablecimiento de contraseñas para administradores de dispositivos ahora se aplican a los propietarios de
|
||||||
perfiles. Los administradores de dispositivos ya no pueden usar
|
perfiles. Los administradores de dispositivos ya no pueden usar
|
||||||
<code>DevicePolicyManager.resetPassword()</code> para borrar contraseñas ni modificar
|
{@code DevicePolicyManager.resetPassword()} para borrar contraseñas ni modificar
|
||||||
las que ya están establecidas. No obstante, pueden establecer una contraseña, aunque solo
|
las que ya están establecidas. No obstante, pueden establecer una contraseña, aunque solo
|
||||||
cuando el dispositivo no tiene contraseña, PIN ni patrón.
|
cuando el dispositivo no tiene contraseña, PIN ni patrón.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Los propietarios de dispositivos y perfiles pueden administrar cuentas aun cuando haya
|
<li>Los propietarios de dispositivos y perfiles pueden administrar cuentas aun cuando haya
|
||||||
restricciones. Tienen la posibilidad de llamar a las API de administración de cuentas
|
restricciones. Tienen la posibilidad de llamar a las API de administración de cuentas
|
||||||
incluso al haber restricciones de <code>DISALLOW_MODIFY_ACCOUNTS</code> para el usuario.
|
incluso al haber restricciones <code>DISALLOW_MODIFY_ACCOUNTS</code> para el usuario.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Los propietarios de dispositivos pueden administrar usuarios secundarios de manera más sencilla. Cuando un dispositivo
|
<li>Los propietarios de dispositivos pueden administrar usuarios secundarios de manera más sencilla. Cuando un dispositivo
|
||||||
funciona en el modo de propietario de dispositivo, se establece la restricción de <code>DISALLOW_ADD_USER</code>
|
funciona en el modo de propietario de dispositivo, automáticamente se establece la restricción <code>DISALLOW_ADD_USER</code>
|
||||||
en forma automática. Esto evita que los usuarios creen usuarios secundarios no
|
. Esto evita que los usuarios creen usuarios secundarios no
|
||||||
administrados. A su vez, los métodos <code>CreateUser()</code> y
|
administrados. A su vez, los métodos <code>CreateUser()</code> y
|
||||||
<code>createAndInitial()</code> han quedado en desuso; los reemplaza el nuevo método
|
<code>createAndInitializeUser()</code> han sido dados de baja; los reemplaza el nuevo método
|
||||||
<code>DevicePolicyManager.createAndManageUser()</code>.
|
<code>DevicePolicyManager.createAndManageUser()</code>.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@@ -441,6 +494,10 @@ JavaVM::AttachCurrentThread from <jni.h>.
|
|||||||
<code>DevicePolicyManagewr.getWifiMacAddress()</code>. Si nunca se habilitó la función Wi-Fi
|
<code>DevicePolicyManagewr.getWifiMacAddress()</code>. Si nunca se habilitó la función Wi-Fi
|
||||||
en el dispositivo, este método devuelve un valor {@code null}.
|
en el dispositivo, este método devuelve un valor {@code null}.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>La configuración Work Mode controla el acceso a las aplicaciones de trabajo. Cuando este ajuste está desactivado, el
|
||||||
|
launcher del sistema indica que las aplicaciones de trabajo no están disponibles atenuándolas. Para volver
|
||||||
|
a restaurar el comportamiento normal, habilita el modo de trabajo nuevamente.
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -448,10 +505,29 @@ JavaVM::AttachCurrentThread from <jni.h>.
|
|||||||
<a href="{@docRoot}preview/features/afw.html">Actualizaciones de Android for Work</a>.
|
<a href="{@docRoot}preview/features/afw.html">Actualizaciones de Android for Work</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<h2 id="annotations">Retención de anotaciones</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android N soluciona un error por el cual la visibilidad de las anotaciones se había ignorado.
|
||||||
|
Este problema permitió que el tiempo de ejecución accediera a anotaciones a las que no debía
|
||||||
|
tener acceso. Entre estas anotaciones se incluyen las siguientes:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>{@code VISIBILITY_BUILD}: destinada a ser visible solo en el momento de compilación.</li>
|
||||||
|
<li>{@code VISIBILITY_SYSTEM}: destinada a ser visible en el tiempo de ejecución, pero únicamente al
|
||||||
|
sistema subyacente.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Si tu aplicación se basa en este comportamiento, agrega una política de retención para las anotaciones que deben
|
||||||
|
estar disponibles en el tiempo de ejecución. Para ello, usa {@code @Retention(RetentionPolicy.RUNTIME)}.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h2 id="other">Otros aspectos importantes</h2>
|
<h2 id="other">Otros aspectos importantes</h2>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Cuando una aplicación funcione en Android N, esté orientada a un nivel de API inferior
|
<li>Cuando una aplicación funcione en Android N, pero esté orientada a un nivel de API inferior,
|
||||||
y el usuario modifique el tamaño de pantalla, el proceso de la aplicación finalizará. La aplicación
|
y el usuario modifique el tamaño de pantalla, el proceso de la aplicación finalizará. La aplicación
|
||||||
debe tener capacidad para manejar correctamente esta situación. De lo contrario, se bloqueará
|
debe tener capacidad para manejar correctamente esta situación. De lo contrario, se bloqueará
|
||||||
cuando el usuario la restaure desde Recents.
|
cuando el usuario la restaure desde Recents.
|
||||||
@@ -476,5 +552,59 @@ modificando el tamaño de la fuente (<strong>Setting</strong> >
|
|||||||
<strong>Display</strong> > <strong>Font size</strong>) y restaurándolas
|
<strong>Display</strong> > <strong>Font size</strong>) y restaurándolas
|
||||||
desde Recents.
|
desde Recents.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Debido a un error en versiones anteriores de Android, el sistema no indicaba la escritura
|
||||||
|
a un socket del TCP en el subproceso principal como una violación del modo strict. En Android N, se corrige este error.
|
||||||
|
Las aplicaciones que tienen este comportamiento, ahora emiten una {@code android.os.NetworkOnMainThreadException}.
|
||||||
|
Generalmente, realizar operaciones de red en el subproceso principal no es una buena idea porque estas operaciones
|
||||||
|
suelen tener una latencia alta de cola que genera mensajes que indican que la aplicación no responde y bloqueos.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
De manea predeterminada, la familia de métodos {@code Debug.startMethodTracing()} ahora
|
||||||
|
almacena los resultados en el directorio específico del paquete en el almacenamiento compartido,
|
||||||
|
en lugar de hacerlo en el nivel superior
|
||||||
|
de la tarjeta SD. Esto significa que las aplicaciones ya no tienen que solicitar el permiso {@code WRITE_EXTERNAL_STORAGE} para usar estas API.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Muchas API de la plataforma han comenzado a controlar en busca del envío de cargas grandes
|
||||||
|
a través de transacciones {@link android.os.Binder}. Además, el
|
||||||
|
sistema ahora vuelve a emitir {@code TransactionTooLargeExceptions}
|
||||||
|
como {@code RuntimeExceptions}, en lugar de registrarlas o suprimirlas silenciosamente. Un
|
||||||
|
ejemplo común es almacenar demasiados datos en
|
||||||
|
{@link android.app.Activity#onSaveInstanceState Activity.onSaveInstanceState()},
|
||||||
|
lo que hace que {@code ActivityThread.StopInfo} emita una
|
||||||
|
{@code RuntimeException} cuando la aplicación se orienta a Android N.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Si una aplicación publica tareas {@link java.lang.Runnable} en una {@link android.view.View}, y
|
||||||
|
la {@link android.view.View}
|
||||||
|
no está anexada a una ventana, el sistema
|
||||||
|
pone en cola la tarea {@link java.lang.Runnable} con la {@link android.view.View}.
|
||||||
|
La tarea {@link java.lang.Runnable} no se ejecuta hasta que la
|
||||||
|
{@link android.view.View} esté anexada
|
||||||
|
a una ventana. Este comportamiento soluciona los siguientes errores:
|
||||||
|
<ul>
|
||||||
|
<li>Si una aplicación publicaba una {@link android.view.View} desde un subproceso que no fuera el subproceso de la IU
|
||||||
|
de la ventana prevista, la tarea {@link java.lang.Runnable} podía ejecutarse en el subproceso incorrecto.
|
||||||
|
</li>
|
||||||
|
<li>Si la tarea {@link java.lang.Runnable} se publicaba desde un subproceso que no fuera
|
||||||
|
un subproceso de looper, la aplicación podía exponer la terea {@link java.lang.Runnable}.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Si una aplicación en Android N con el permiso
|
||||||
|
{@link android.Manifest.permission#DELETE_PACKAGES DELETE_PACKAGES}
|
||||||
|
intentaba borrar un paquete instalado por otra aplicación,
|
||||||
|
el sistema solicitaba la confirmación del usuario. En este escenario, las aplicaciones debían esperar recibir el estado
|
||||||
|
{@link android.content.pm.PackageInstaller#STATUS_PENDING_USER_ACTION STATUS_PENDING_USER_ACTION}
|
||||||
|
al invocar
|
||||||
|
{@link android.content.pm.PackageInstaller#uninstall PackageInstaller.uninstall()}.
|
||||||
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|||||||
324
docs/html-intl/intl/es/preview/download-ota.jd
Normal file
@@ -0,0 +1,324 @@
|
|||||||
|
page.title=Aplicación de imágenes inalámbricas de dispositivo
|
||||||
|
|
||||||
|
@jd:body
|
||||||
|
|
||||||
|
<div style="position:relative; min-height:600px">
|
||||||
|
|
||||||
|
<div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
|
||||||
|
|
||||||
|
<p class="sdk-terms-intro">Antes de descargar e instalar los componentes del
|
||||||
|
Android Preview SDK, debe aceptar los términos y las
|
||||||
|
condiciones que se describen a continuación.</p>
|
||||||
|
|
||||||
|
<h2 class="norule">Términos y condiciones</h2>
|
||||||
|
|
||||||
|
<div class="sdk-terms" onfocus="this.blur()" style="width:678px">
|
||||||
|
Este es el Contrato de licencia de la versión Android SDK Preview (el “Contrato de licencia”).
|
||||||
|
|
||||||
|
1. Introducción
|
||||||
|
|
||||||
|
1.1 Se le otorga la licencia de la versión Android SDK Preview (denominada “Preview” en el Contrato de licencia y que incluye específicamente los archivos de sistema de Android, las API agrupadas y los archivos de biblioteca de la Preview, si se encuentran disponibles), sujeto a los términos del Contrato de licencia. El Contrato de licencia establece una relación legal vinculante entre usted y Google en relación con el uso que realice de la Preview.
|
||||||
|
|
||||||
|
1.2 “Android” hace referencia al conjunto de soluciones Android para dispositivos, según se encuentre disponible en el Proyecto de código abierto de Android (Android Open Source Project), que se encuentra en la siguiente URL: http://source.android.com/, y según se actualiza periódicamente.
|
||||||
|
|
||||||
|
.1.3 “Compatible con Android” se refiere a cualquier implementación de Android que (i) cumpla con el documento Definición de compatibilidad de Android, disponible en el sitio web de compatibilidad de Android (http://source.android.com/compatibility) y que puede actualizarse esporádicamente; y (ii) apruebe satisfactoriamente la prueba de Compatibilidad con Android, "CTS” (en inglés, Android Compatibility Test Suite).
|
||||||
|
|
||||||
|
1.4 “Google” hace referencia a Google Inc., una corporación de Delaware, con sede principal en 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos.
|
||||||
|
|
||||||
|
2. Aceptación del Contrato de licencia
|
||||||
|
|
||||||
|
2.1 Para poder utilizar la Preview, primero debe aceptar el Contrato de licencia. Si no acepta el Contrato de licencia, no podrá utilizar la Preview.
|
||||||
|
|
||||||
|
2.2 Al hacer clic para aceptar o utilizar la Preview, por medio del presente, usted acepta los términos del Contrato de licencia.
|
||||||
|
|
||||||
|
2.3 No puede utilizar la Preview ni aceptar el Contrato de licencia si tiene prohibido recibir la Preview en virtud de las leyes de los Estados Unidos o de otros países, lo que incluye el país donde es residente o desde el que utilizará la Preview.
|
||||||
|
|
||||||
|
2.4 Si utilizará la Preview de forma interna, dentro de su empresa u organización, usted acepta quedar sujeto al Contrato de licencia en representación de su empleador u otra entidad, y expresa y garantiza que tiene plena autoridad legal para vincular a su empleador o a dicha entidad al Contrato de licencia. Si usted no posee la autoridad requerida, no podrá aceptar el Contrato de licencia ni utilizar la Preview en representación de su empleador u otra entidad.
|
||||||
|
|
||||||
|
3. Licencia de la Preview de Google
|
||||||
|
|
||||||
|
3.1 Conforme a los términos de este contrato de licencia, Google le otorga una licencia limitada, con validez mundial, libre de regalías, no asignable, no exclusiva y sin la posibilidad de otorgar una sublicencia, para utilizar la Preview con el único propósito de desarrollar aplicaciones para ejecutar en implementaciones compatibles de Android.
|
||||||
|
|
||||||
|
3.2 No puede utilizar esta Preview para desarrollar aplicaciones para otras plataformas (entre las que se incluyen implementaciones incompatibles de Android) o para desarrollar otro SDK. Desde luego, usted tiene la libertad para desarrollar aplicaciones para otras plataformas, entre las que se incluyen implementaciones incompatibles de Android, siempre y cuando esta Preview no se utilice con ese propósito.
|
||||||
|
|
||||||
|
3.3 Usted acepta que Google o terceros poseen todos los derechos legales, títulos e intereses en relación con la Preview, incluidos derechos de propiedad intelectual que existan en esta. "Derechos de propiedad intelectual" hace referencia a todos los derechos de la ley de patentes, la ley de derechos de autor, la ley de secreto comercial, la ley de marca comercial y cualquier otro derecho de propiedad. Google se reserva todos los derechos que no se le otorguen expresamente.
|
||||||
|
|
||||||
|
3.4 Usted no podrá utilizar la Preview para ningún otro propósito que no esté expresamente permitido en el Contrato de licencia. Excepto en la medida que lo exijan las licencias correspondientes de terceros, no podrá: (a) copiar (excepto con fines de copia de seguridad), modificar, adaptar, redistribuir, descompilar, utilizar técnicas de ingeniería inversa, desarmar ni crear trabajos derivados de la Preview ni de ninguna de sus partes; ni (b) cargar ninguna parte de la Preview en un teléfono móvil ni en ningún otro dispositivo de hardware (a excepción de una computadora personal), ni podrá combinar ninguna parte de la Preview con otro software, ni distribuir algún software o dispositivo que incorpore alguna parte de la Preview.
|
||||||
|
|
||||||
|
3.5 El uso, la reproducción y la distribución de los componentes de la Preview con licencia de software de código abierto están regidos exclusivamente por los términos de la licencia de ese software de código abierto y no de este Contrato de licencia. Usted acepta mantener la licencia en regla con respecto a dichas licencias de software de código abierto en virtud de todos los derechos otorgados y acepta abstenerte de realizar acción alguna que pudiera poner fin, suspender o violar dichos derechos.
|
||||||
|
|
||||||
|
3.6 Acepta que la forma y la naturaleza de la Preview que proporciona Google pueden cambiar sin tener que brindarle aviso previo, y que las versiones futuras de la Preview pueden ser incompatibles con las aplicaciones desarrolladas en versiones anteriores de la Preview. Usted acepta que Google, generalmente a su entera discreción, puede dejar de proporcionarle a usted o a los demás usuarios (de forma permanente o temporal) la Preview (o cualquiera de sus funciones) sin previo aviso.
|
||||||
|
|
||||||
|
3.7 Ninguna declaración de este Contrato de licencia le otorga el derecho de utilizar alguno de los nombres comerciales, las marcas comerciales, las marcas de servicio, los logotipos, los nombres de dominio ni otras características distintivas de marca de Google.
|
||||||
|
|
||||||
|
3.8 Usted acepta que no quitará, ocultará o alterará ninguna de las notificaciones de derechos de autor (entre las que se incluyen las notificaciones de copyright y marcas comercias) que pudieran estar anexadas o implícitas en la Preview.
|
||||||
|
|
||||||
|
4. Uso que usted realiza de la Preview
|
||||||
|
|
||||||
|
4.1 Google acepta que ninguna declaración del Contrato de licencia le concede a Google derecho, título o interés alguno de su parte (o de parte de sus licenciantes), en virtud del Contrato de licencia, con respecto a las aplicaciones de software que usted desarrolle mediante el uso de la Preview, lo que incluye los derechos de propiedad intelectual que conlleven esas aplicaciones.
|
||||||
|
|
||||||
|
4.2 Usted acepta utilizar la Preview y escribir aplicaciones únicamente conforme a lo que permite (a) este Contrato de licencia y (b) las leyes, regulaciones, o prácticas y pautas generalmente aceptadas y pertinentes en las jurisdicciones relevantes (entre las que se incluyen las leyes sobre la exportación de datos o software hacia los Estados Unidos u otros países relevantes y desde ellos).
|
||||||
|
|
||||||
|
4.3 Usted acepta que si utiliza la Preview para desarrollar aplicaciones, protegerá la privacidad y los derechos legales de los usuarios. Si los usuarios le proporcionan sus nombres de usuario, contraseñas u otra información de inicio de sesión o información personal, debe comunicarles que la información se encontrará disponible para su aplicación, y debe proporcionarles a dichos usuarios un aviso de privacidad con protección y validez legal. Si su aplicación almacena información personal o confidencial proporcionada por los usuarios, lo debe hacer de forma segura. Si los usuarios le proporcionan información sobre la cuenta de Google, su aplicación solo puede usar esa información para acceder a la cuenta de Google del usuario siempre que este le haya otorgado permiso para hacerlo y con los fines para los que se lo haya otorgado.
|
||||||
|
|
||||||
|
4.4 Usted acepta que no participará en ninguna actividad con la Versión preliminar (lo que incluye el desarrollo o la distribución de una aplicación) que interfiera, interrumpa, dañe o acceda sin autorización a servidores, redes u otras propiedades o servicios de Google o de algún tercero.
|
||||||
|
|
||||||
|
4.5 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de los datos, el contenido o los recursos que usted cree, transmita o muestre a través de Android o las aplicaciones para Android, y de las consecuencias de sus acciones (lo que incluye la pérdida o el daño que Google pudiera sufrir) al hacerlo.
|
||||||
|
|
||||||
|
4.6 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de cualquier incumplimiento de sus obligaciones en virtud de este Contrato de licencia, los contratos aplicables de terceros o los términos del servicio, o cualquier ley o regulación pertinentes, y de las consecuencias (lo que incluye las pérdidas o los daños que pudieran sufrir Google o algún tercero) de dichos incumplimientos.
|
||||||
|
|
||||||
|
4.7 La Versión preliminar se encuentra en desarrollo, y sus pruebas y comentarios son una parte importante del proceso de desarrollo. Al utilizar la Preview, usted reconoce que la implementación de algunas características aún se encuentra en desarrollo y que no debe confiar en que la Preview contará con todas las funcionalidades de una versión estable. Usted acepta no distribuir públicamente ni enviar ninguna aplicación que utilice esta Preview, dado que esta Preview ya no se admitirá tras el lanzamiento del Android SDK oficial.
|
||||||
|
|
||||||
|
5. Sus credenciales de desarrollador
|
||||||
|
|
||||||
|
5.1 Usted acepta que es responsable de mantener la confidencialidad de toda credencial de desarrollador que Google pudiera otorgarle o que pudiera escoger usted mismo, y que será el único responsable de todas las aplicaciones que se desarrollen con sus credenciales de desarrollador.
|
||||||
|
|
||||||
|
6. Privacidad e información
|
||||||
|
|
||||||
|
6.1 Con el objetivo de poder innovar y mejorar de forma continua la Preview, Google podría recopilar ciertas estadísticas de uso del software, entre las que se incluyen, de forma enunciativa, un identificador único, la dirección IP asociada, el número de versión del software e información sobre las herramientas o los servicios de la Preview que se estén utilizando y la manera en que se estén utilizando. Antes de que se recopile esta información, la Preview se lo notificará y le solicitará su permiso. Si no otorga su permiso, no se recopilará la información.
|
||||||
|
|
||||||
|
6.2 Los datos recopilados se analizan en el agregado para mejorar la Preview y se conservan de acuerdo con la política de privacidad de Google, que se encuentra en el sitio http://www.google.com/policies/privacy/.
|
||||||
|
|
||||||
|
7. Aplicaciones de terceros
|
||||||
|
|
||||||
|
7.1 Si utiliza la Preview para ejecutar aplicaciones desarrolladas por un tercero o que accedan a datos, contenido o recursos proporcionados por un tercero, usted acepta que Google no es responsable de esas aplicaciones, datos, contenido ni recursos. Usted comprende que todos los datos, contenidos o recursos a los que podría acceder a través de esas aplicaciones de terceros son exclusiva responsabilidad de la persona que los origina y que Google no es responsable de las pérdidas ni los daños que usted pudiera experimentar como consecuencia del uso o acceso de cualquiera de esas aplicaciones, datos, contenido o recursos de terceros.
|
||||||
|
|
||||||
|
7.2 Usted debe saber que los datos, el contenido y los recursos que se le presentan a través de esa aplicación de un tercero pueden estar protegidos por derechos de propiedad intelectual que les pertenecen a sus proveedores (o a otras personas o compañías en representación de estos). No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas basadas en esos datos, contenidos o recursos (en su totalidad o en parte), a menos que los propietarios pertinentes le hayan otorgado el permiso específico para hacerlo.
|
||||||
|
|
||||||
|
7.3 Usted acepta que el uso que haga de las aplicaciones, los datos, el contenido o los recursos de ese tercero puede estar sujeto a términos independientes entre usted y el tercero correspondiente.
|
||||||
|
|
||||||
|
Uso de las API de Google
|
||||||
|
|
||||||
|
8.1 API de Google
|
||||||
|
|
||||||
|
8.1.1 Si utiliza alguna API para recuperar datos de Google, usted acepta que los datos pueden estar protegidos por derechos de propiedad intelectual que le pertenecen a Google o a las partes que proporcionan esos datos (o a otras personas o empresas en representación de estos). El uso que realice de cualquiera de esas API puede estar sujeto a términos de servicio adicionales. No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas con base en esos datos (en su totalidad o en parte), a menos que los términos de servicio correspondientes lo permitan.
|
||||||
|
|
||||||
|
8.1.2 Si utiliza cualquier API para recuperar datos de un usuario de Google, usted acepta y acuerda que solo podrá recuperar datos con el consentimiento explícito del usuario y solo cuando, y para los fines limitados para los que, el usuario le haya otorgado permiso para hacerlo.
|
||||||
|
|
||||||
|
9. Finalización del Contrato de licencia
|
||||||
|
|
||||||
|
9.1 Este Contrato de licencia tendrá vigencia hasta que lo revoquen usted o Google, como se indica a continuación.
|
||||||
|
|
||||||
|
9.2 Si desea rescindir el Contrato de licencia, puede hacerlo al interrumpir el uso que realiza de la Preview y de las credenciales de desarrollador pertinentes.
|
||||||
|
|
||||||
|
9.3 Google puede, en cualquier momento, rescindir el Contrato de licencia, con causa o sin ella, luego de notificárselo.
|
||||||
|
|
||||||
|
9.4 El Contrato de licencia finalizará automáticamente, sin previo aviso ni acción alguna, tras la primera de las siguientes situaciones:
|
||||||
|
(A) cuando Google deje de proporcionar la Preview o ciertas partes de esta a los usuarios en el país donde usted reside o desde el que utiliza el servicio; y
|
||||||
|
(B) cuando Google emita una versión final del Android SDK.
|
||||||
|
|
||||||
|
9.5 Si el Contrato de licencia se rescinde, se revocará la licencia que usted recibió en virtud de dicho contrato; usted deberá suspender inmediatamente todo uso de la Preview, y las disposiciones de los párrafos 10, 11, 12 y 14 seguirán vigentes indefinidamente.
|
||||||
|
|
||||||
|
10. EXENCIONES DE RESPONSABILIDAD
|
||||||
|
|
||||||
|
10.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE EL USO QUE REALICE DE LA PREVIEW ES BAJO SU PROPIO RIESGO Y QUE LA PREVIEW SE PROPORCIONA “EN LAS CONDICIONES EN LAS QUE SE ENCUENTRA” Y “SUJETA A DISPONIBILIDAD” SIN GARANTÍAS DE NINGÚN TIPO POR PARTE DE GOOGLE.
|
||||||
|
|
||||||
|
10.2 EL USO QUE USTED REALICE DE LA PREVIEW Y DE TODO MATERIAL DESCARGADO U OBTENIDO DE ALGUNA OTRA MANERA MEDIANTE EL USO DE LA PREVIEW ES A SU ENTERO RIESGO Y DISCRECIÓN, Y USTED ES EL ÚNICO RESPONSABLE DE CUALQUIER DAÑO QUE PUDIERA SUFRIR SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO, O DE LA PÉRDIDA DE DATOS COMO CONSECUENCIA DE DICHO USO. SIN PERJUICIO DE LO MENCIONADO ANTERIORMENTE, USTED COMPRENDE QUE LA VERSIÓN PRELIMINAR NO ES UNA VERSIÓN ESTABLE, Y PUEDE CONTENER ERRORES, DEFECTOS Y VULNERABILIDADES DE SEGURIDAD QUE PUEDEN PROVOCAR DAÑOS SIGNIFICATIVOS, LO QUE INCLUYE LA PÉRDIDA COMPLETA E IRRECUPERABLE DEL USO DE SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO.
|
||||||
|
|
||||||
|
10.3 GOOGLE TAMBIÉN RECHAZA TODAS LAS GARANTÍAS Y CONDICIONES DE CUALQUIER TIPO, EXPRESAS O IMPLÍCITAS, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS Y CONDICIONES DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN DETERMINADO Y NO VIOLACIÓN.
|
||||||
|
|
||||||
|
11. LIMITACIÓN DE RESPONSABILIDADES
|
||||||
|
|
||||||
|
11.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE GOOGLE, SUS SUBSIDIARIAS Y FILIALES, Y SUS LICENCIANTES NO SERÁN RESPONSABLES ANTE USTED, EN VIRTUD DE NINGUNA TEORÍA DE RESPONSABILIDAD, POR NINGÚN DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, RESULTANTE NI PUNITIVO EN EL QUE PODRÍA HABER INCURRIDO, LO QUE INCLUYE LA PÉRDIDA DE DATOS, YA SEA QUE SE LE HAYA NOTIFICADO O NO A GOOGLE O A SUS REPRESENTANTES, O SOBRE CUYA POSIBILIDAD ESTOS DEBERÍAN HABER SABIDO.
|
||||||
|
|
||||||
|
12. Indemnización
|
||||||
|
|
||||||
|
12.1 Hasta el grado máximo que permita la ley, usted acepta defender, indemnizar y eximir de responsabilidades a Google, sus filiales y sus respectivos directores, funcionarios, empleados y agentes, de todo tipo de reclamo, acción legal y proceso judicial, así como de las pérdidas, responsabilidades, daños, costos y gastos (incluidos los honorarios razonables de abogados) que surjan o se acumulen (a) del uso que usted realiza de la Versión preliminar, (b) de cualquier aplicación que desarrolle en la Versión preliminar que infrinja algún derecho de propiedad intelectual de cualquier persona, o que difame a cualquier persona o viole sus derechos de publicidad o privacidad, y (c) del incumplimiento por su parte del Contrato de licencia.
|
||||||
|
|
||||||
|
13. Cambios en el Contrato de licencia
|
||||||
|
|
||||||
|
13.1 Google puede realizar cambios en el Contrato de licencia a medida que distribuye nuevas versiones de la Versión preliminar. Cuando se realicen esos cambios, Google emitirá una nueva versión del Contrato de licencia, que estará disponible en el sitio web donde se ponga a la venta la Versión preliminar.
|
||||||
|
|
||||||
|
14. Términos legales generales
|
||||||
|
|
||||||
|
14.1 El Contrato de licencia constituye el contrato legal integral entre usted y Google, y rige el uso que usted realice de la Versión preliminar (a excepción de los servicios que Google pueda proporcionarle en virtud de un contrato por escrito independiente), y reemplaza totalmente cualquier contrato anterior entre usted y Google en relación con la Versión preliminar.
|
||||||
|
|
||||||
|
14.2 Usted acepta que, si Google no ejerce ni impone un derecho o recurso legal especificados en el Contrato de licencia (o sobre el que Google tenga beneficios conforme a cualquier ley aplicable), esto no se considerará una renuncia formal a los derechos por parte de Google y Google aún seguirá recibiendo los beneficios de esos derechos o recursos legales.
|
||||||
|
|
||||||
|
14.3 Si algún tribunal judicial con jurisdicción para decidir sobre este asunto determina que alguna de las disposiciones de este Contrato de licencia no es válida, se eliminará esa disposición del Contrato de licencia sin que eso afecte la validez del resto del contrato. Las disposiciones restantes del Contrato de licencia continuarán siendo válidas y aplicables.
|
||||||
|
|
||||||
|
14.4 Usted reconoce y acepta que cada miembro del grupo de compañías de las que Google es la compañía central serán terceros beneficiarios del Contrato de licencia, y que esas otras empresas tendrán el derecho de imponer directamente cualquier disposición y ampararse en las disposiciones de este Contrato de licencia que les confieran un beneficio (o que confieran derechos a su favor). Además de esto, ninguna otra persona o compañía serán terceros beneficiarios del Contrato de licencia.
|
||||||
|
|
||||||
|
14.5 RESTRICCIONES DE EXPORTACIÓN. LA VERSIÓN PRELIMINAR ESTÁ SUJETA A LAS LEYES Y REGULACIONES DE EXPORTACIÓN DE LOS ESTADOS UNIDOS. DEBE CUMPLIR CON TODAS LAS LEYES Y REGULACIONES DE EXPORTACIÓN NACIONALES E INTERNACIONALES QUE SE APLIQUEN A LA VERSIÓN PRELIMINAR. ESTAS LEYES INCLUYEN RESTRICCIONES EN RELACIÓN CON LOS DESTINOS, USUARIOS FINALES Y USO FINAL.
|
||||||
|
|
||||||
|
14.6 Usted no puede asignar ni transferir el Contrato de licencia sin la aprobación previa por escrito de Google y todo intento de asignación sin dicha aprobación no tendrá validez. No podrá delegar sus responsabilidades u obligaciones otorgadas en virtud del Contrato de licencia sin la aprobación previa por escrito de Google.
|
||||||
|
|
||||||
|
14.7 El Contrato de licencia y su relación con Google conforme al Contrato de licencia se regirán por las leyes del estado de California, independientemente de los principios de conflictos entre leyes. Usted y Google aceptan presentarse ante la jurisdicción exclusiva de los tribunales del condado de Santa Clara, California, para resolver cualquier asunto legal que pudiera surgir del Contrato de licencia. Sin perjuicio de esto, usted acepta que Google aún podrá aplicar reparaciones conforme a mandato judicial (o a un tipo equivalente de desagravio legal) en cualquier jurisdicción.
|
||||||
|
</div><!-- sdk terms -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="sdk-terms-form">
|
||||||
|
<p>
|
||||||
|
<input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
|
||||||
|
<label id="agreeLabel" for="agree">He leído y acepto los términos y las condiciones anteriores.</label>
|
||||||
|
</p>
|
||||||
|
<p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div><!-- end TOS -->
|
||||||
|
|
||||||
|
|
||||||
|
<div id="landing">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Esta página cuenta con enlaces a imágenes de dispositivos inalámbricos y describe
|
||||||
|
cómo aplicar una actualización inalámbrica a un dispositivo de forma manual. Este procedimiento puede ser útil
|
||||||
|
para recuperar dispositivos que hayan recibido actualizaciones inalámbricas por medio del Programa
|
||||||
|
Android Beta y no enciendan luego de instalada la aplicación.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="install-ota">Instalar imágenes inalámbricas</h2>
|
||||||
|
|
||||||
|
<p></p>
|
||||||
|
|
||||||
|
<p>Para instalar un paquete inalámbrico en un dispositivo sigue estos pasos:</p>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>Descargar una imagen de dispositivo inalámbrico de la tabla que verás a continuación.</li>
|
||||||
|
<li>Reinicia el dispositivo en modo Recuperación. Para leer más información sobre cómo
|
||||||
|
aplicar este modo en dispositivos Nexus, visita la sección
|
||||||
|
<a href="https://support.google.com/nexus/answer/4596836">Reset your Nexus
|
||||||
|
device to factory settings</a>.
|
||||||
|
</li>
|
||||||
|
<li>En el dispositivo, selecciona <strong>ADB sideload</strong>.</li>
|
||||||
|
<li>Conecta el dispositivo a una computadora con el entorno de desarrollo Android
|
||||||
|
cargado y la herramienta Android Debug Bridge (ADB) instalada.</li>
|
||||||
|
<li>Ejecuta el comando siguiente:
|
||||||
|
<pre>adb sideload <em><ota-package></em></pre>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2 id="ota-images">Imágenes inalámbricas de dispositivo</h2>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">Dispositivo</th>
|
||||||
|
<th scope="col">Descarga/sumas de comprobación</th>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="bullhead">
|
||||||
|
<td>Nexus 5X <br>"bullhead"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">bullhead-ota-npd35k-b8cfbd80.zip</a><br>
|
||||||
|
MD5: 15fe2eba9b01737374196bdf0a792fe9<br>
|
||||||
|
SHA-1: 5014b2bba77f9e1a680ac3f90729621c85a14283
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="shamu">
|
||||||
|
<td>Nexus 6 <br>"shamu"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">shamu-ota-npd35k-078e6fa5.zip</a><br>
|
||||||
|
MD5: e8b12f7721c53af9a450f7058928a5fc<br>
|
||||||
|
SHA-1: b7a9b756f84a1d2e482ff9c16749d65f6e51425a
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="angler">
|
||||||
|
<td>Nexus 6P <br>"angler"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">angler-ota-npd35k-88457699.zip</a><br>
|
||||||
|
MD5: 3fac09fef759dde26e57cb80b20b6477<br>
|
||||||
|
SHA-1: 27d6caa786577d8a38b2da5bf94b33b4524a1a1c
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="volantis">
|
||||||
|
<td>Nexus 9 <br>"volantis"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">volantis-ota-npd35k-51dbae76.zip</a><br>
|
||||||
|
MD5: 58312c4a5971818ef5c77a3f446003da<br>
|
||||||
|
SHA-1: aad9005be33d3e2bab480509a6ab74c3c3b9d921
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="volantisg">
|
||||||
|
<td>Nexus 9G <br>"volantisg"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">volantisg-ota-npd35k-834f047f.zip</a><br>
|
||||||
|
MD5: 92b7d1fa252f7394e70f957c72d4aac8<br>
|
||||||
|
SHA-1: b6c057c84d90893630e303cbb60530e20ddb8361
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="fugu">
|
||||||
|
<td>Nexus Player <br>"fugu"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">fugu-ota-npd35k-6ac91298.zip</a><br>
|
||||||
|
MD5: 1461622ad53ea842b2722fa7b49b8172<br>
|
||||||
|
SHA-1: 409c061668ab270774877d7f3eae44fa48d2b931
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="ryu">
|
||||||
|
<td>Pixel C <br>"ryu"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">ryu-ota-npd35k-a0b2347f.zip</a><br>
|
||||||
|
MD5: c60117f3640cc6db12386fd632289c7d<br>
|
||||||
|
SHA-1: 87349c767c69efb4172c90ce1d88cf578c3d28b3
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="seed">
|
||||||
|
<td>General Mobile 4G (Android One) <br>"seed"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">seed_l8150-ota-npd35k-09897a1d.zip</a><br>
|
||||||
|
MD5: a55cf94f7cce0393ec6c0b35041766b7<br>
|
||||||
|
SHA-1: 6f33742290eb46f2561891f38ca2e754b4e50c6a
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
</div><!-- landing -->
|
||||||
|
|
||||||
|
</div><!-- relative wrapper -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/ota/";
|
||||||
|
function onDownload(link) {
|
||||||
|
|
||||||
|
$("#downloadForRealz").html("Download " + $(link).text());
|
||||||
|
$("#downloadForRealz").attr('href', urlRoot + $(link).text());
|
||||||
|
|
||||||
|
$("#tos").fadeIn('fast');
|
||||||
|
$("#landing").fadeOut('fast');
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function onAgreeChecked() {
|
||||||
|
/* verify that the TOS is agreed */
|
||||||
|
if ($("input#agree").is(":checked")) {
|
||||||
|
/* reveal the download button */
|
||||||
|
$("a#downloadForRealz").removeClass('disabled');
|
||||||
|
} else {
|
||||||
|
$("a#downloadForRealz").addClass('disabled');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onDownloadForRealz(link) {
|
||||||
|
if ($("input#agree").is(':checked')) {
|
||||||
|
/*
|
||||||
|
$("#tos").fadeOut('fast');
|
||||||
|
$("#landing").fadeIn('fast');
|
||||||
|
*/
|
||||||
|
|
||||||
|
ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
|
||||||
|
|
||||||
|
/*
|
||||||
|
location.hash = "";
|
||||||
|
*/
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(window).hashchange( function(){
|
||||||
|
if (location.hash == "") {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Pruebe en un dispositivo
|
page.title=Prueba en un dispositivo
|
||||||
meta.tags=“Versión preliminar”, “Nexus”,“imagen de sistema”
|
meta.tags="preview", "nexus","system image"
|
||||||
page.tags="preview", "androidn"
|
page.tags="preview", "androidn"
|
||||||
page.image=images/cards/card-n-downloads_2x.png
|
page.image=images/cards/card-n-downloads_2x.png
|
||||||
|
|
||||||
@@ -16,53 +16,53 @@ page.image=images/cards/card-n-downloads_2x.png
|
|||||||
<h2 class="norule">Términos y condiciones</h2>
|
<h2 class="norule">Términos y condiciones</h2>
|
||||||
|
|
||||||
<div class="sdk-terms" onfocus="this.blur()" style="width:678px">
|
<div class="sdk-terms" onfocus="this.blur()" style="width:678px">
|
||||||
Este es el Contrato de licencia de la versión preliminar del SDK de Android (el “Contrato de licencia”).
|
Este es el Contrato de licencia de la versión Android SDK Preview (el “Contrato de licencia”).
|
||||||
|
|
||||||
1. Introducción
|
1. Introducción
|
||||||
|
|
||||||
1.1 Se le otorga la licencia de la versión preliminar del SDK de Android (denominada “Versión preliminar” en el Contrato de licencia e incluye específicamente los archivos de sistema de Android, las API agrupadas y los archivos de biblioteca de la Versión preliminar, si se encuentran disponibles), sujeto a los términos del Contrato de licencia. El contrato de licencia establece una relación legal vinculante entre usted y Google, con respecto a la utilización que usted haga de la Preview.
|
1.1 Se le otorga la licencia de la versión Android SDK Preview (denominada “Preview” en el Contrato de licencia y que incluye específicamente los archivos de sistema de Android, las API agrupadas y los archivos de biblioteca de la Preview, si se encuentran disponibles), sujeto a los términos del Contrato de licencia. El Contrato de licencia establece una relación legal vinculante entre usted y Google en relación con el uso que realice de la Preview.
|
||||||
|
|
||||||
1.2 "Android" hace referencia al conjunto de software Android para dispositivos, tal como se encuentra disponible en el proyecto de código abierto de Android, ubicado en la siguiente dirección URL: http://source.android.com/, y sus actualizaciones frecuentes.
|
1.2 “Android” hace referencia al conjunto de soluciones Android para dispositivos, según se encuentre disponible en el Proyecto de código abierto de Android (Android Open Source Project), que se encuentra en la siguiente URL: http://source.android.com/, y según se actualiza periódicamente.
|
||||||
|
|
||||||
1.3 “Compatible con Android” se refiere a cualquier implementación de Android que (i) cumpla con el documento Definición de compatibilidad de Android, que está disponible en el sitio web de compatibilidad de Android (http://source.android.com/compatibility) y que puede actualizarse esporádicamente; y (ii) apruebe satisfactoriamente la prueba de Compatibilidad con Android, “CTS” (en inglés, Android Compatibility Test Suite).
|
.1.3 “Compatible con Android” se refiere a cualquier implementación de Android que (i) cumpla con el documento Definición de compatibilidad de Android, disponible en el sitio web de compatibilidad de Android (http://source.android.com/compatibility) y que puede actualizarse esporádicamente; y (ii) apruebe satisfactoriamente la prueba de Compatibilidad con Android, "CTS” (en inglés, Android Compatibility Test Suite).
|
||||||
|
|
||||||
1.4 "Google" significa Google Inc., una empresa de Delaware con su sede principal en 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos.
|
1.4 “Google” hace referencia a Google Inc., una corporación de Delaware, con sede principal en 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos.
|
||||||
|
|
||||||
2. Aceptación del Contrato de licencia
|
2. Aceptación del Contrato de licencia
|
||||||
|
|
||||||
2.1 Para poder utilizar la Versión preliminar, primero debe aceptar el Contrato de licencia. Si no acepta el Contrato de licencia, no podrá utilizar la Versión preliminar.
|
2.1 Para poder utilizar la Preview, primero debe aceptar el Contrato de licencia. Si no acepta el Contrato de licencia, no podrá utilizar la Preview.
|
||||||
|
|
||||||
2.2 Al hacer clic para aceptar o utilizar la Versión preliminar, por medio del presente, usted acepta los términos del Contrato de licencia.
|
2.2 Al hacer clic para aceptar o utilizar la Preview, por medio del presente, usted acepta los términos del Contrato de licencia.
|
||||||
|
|
||||||
2.3 Usted no puede utilizar la Versión preliminar ni aceptar el Contrato de licencia si tiene prohibido recibir la Versión preliminar en virtud de las leyes de los Estados Unidos o de otros países, lo que incluye el país donde es residente o desde el que utilizará la Versión preliminar.
|
2.3 No puede utilizar la Preview ni aceptar el Contrato de licencia si tiene prohibido recibir la Preview en virtud de las leyes de los Estados Unidos o de otros países, lo que incluye el país donde es residente o desde el que utilizará la Preview.
|
||||||
|
|
||||||
2.4 Si usted utilizará la Versión preliminar de forma interna, dentro de su compañía u organización, usted acepta quedar sujeto al Contrato de licencia en representación de su empleador u otra entidad, y expresa y garantiza que tiene plena autoridad legal para vincular a su empleador o a dicha entidad al Contrato de licencia. Si no posee la autoridad exigida, no podrá aceptar el Contrato de licencia ni usar la Versión preliminar en representación de su empleador u otra entidad.
|
2.4 Si utilizará la Preview de forma interna, dentro de su empresa u organización, usted acepta quedar sujeto al Contrato de licencia en representación de su empleador u otra entidad, y expresa y garantiza que tiene plena autoridad legal para vincular a su empleador o a dicha entidad al Contrato de licencia. Si usted no posee la autoridad requerida, no podrá aceptar el Contrato de licencia ni utilizar la Preview en representación de su empleador u otra entidad.
|
||||||
|
|
||||||
3. Licencia de la Preview de Google
|
3. Licencia de la Preview de Google
|
||||||
|
|
||||||
3.1 Conforme a los términos de este contrato de licencia, Google le otorga una licencia limitada, con validez mundial, libre de regalías, no asignable, no exclusiva y que no puede otorgar una sublicencia para utilizar la Preview con el único propósito de desarrollar aplicaciones para ejecutar en implementaciones compatibles de Android.
|
3.1 Conforme a los términos de este contrato de licencia, Google le otorga una licencia limitada, con validez mundial, libre de regalías, no asignable, no exclusiva y sin la posibilidad de otorgar una sublicencia, para utilizar la Preview con el único propósito de desarrollar aplicaciones para ejecutar en implementaciones compatibles de Android.
|
||||||
|
|
||||||
3.2 No puede utilizar esta Preview para desarrollar aplicaciones para otras plataformas (incluyendo implementaciones incompatibles de Android) o para desarrollar otro SDK. Por supuesto, usted tiene la libertad para desarrollar aplicaciones para otras plataformas, incluyendo implementaciones incompatibles de Android, siempre y cuando esta Preview no sea utilizada con ese propósito.
|
3.2 No puede utilizar esta Preview para desarrollar aplicaciones para otras plataformas (entre las que se incluyen implementaciones incompatibles de Android) o para desarrollar otro SDK. Desde luego, usted tiene la libertad para desarrollar aplicaciones para otras plataformas, entre las que se incluyen implementaciones incompatibles de Android, siempre y cuando esta Preview no se utilice con ese propósito.
|
||||||
|
|
||||||
3.3 Usted acepta que Google o terceros poseen todos los derechos legales, títulos e intereses en relación con la Preview, incluidos derechos de propiedad intelectual que existan en ésta. "Derechos de propiedad intelectual" hace referencia a todos los derechos de la ley de patentes, la ley de derechos de autor, la ley de secreto comercial, la ley de marca comercial y cualquier otro derecho de propiedad. Google se reserva todos los derechos que no se le otorguen expresamente.
|
3.3 Usted acepta que Google o terceros poseen todos los derechos legales, títulos e intereses en relación con la Preview, incluidos derechos de propiedad intelectual que existan en esta. "Derechos de propiedad intelectual" hace referencia a todos los derechos de la ley de patentes, la ley de derechos de autor, la ley de secreto comercial, la ley de marca comercial y cualquier otro derecho de propiedad. Google se reserva todos los derechos que no se le otorguen expresamente.
|
||||||
|
|
||||||
3.4 No podrá utilizar la Versión preliminar para ningún otro propósito que no esté expresamente permitido en el Contrato de licencia. Excepto en la medida que lo exijan las licencias correspondientes de terceros, no podrá: (a) copiar (excepto con fines de copia de seguridad), modificar, adaptar, redistribuir, descompilar, utilizar técnicas de ingeniería inversa, desarmar ni crear trabajos derivados de la Preview ni de ninguna de sus partes; ni (b) cargar ninguna parte de la Preview en un teléfono móvil ni en ningún otro dispositivo de hardware (a excepción de una computadora personal), ni podrá combinar ninguna parte de la Preview con otro software, ni distribuir algún software o dispositivo que incorpore alguna parte de la Preview.
|
3.4 Usted no podrá utilizar la Preview para ningún otro propósito que no esté expresamente permitido en el Contrato de licencia. Excepto en la medida que lo exijan las licencias correspondientes de terceros, no podrá: (a) copiar (excepto con fines de copia de seguridad), modificar, adaptar, redistribuir, descompilar, utilizar técnicas de ingeniería inversa, desarmar ni crear trabajos derivados de la Preview ni de ninguna de sus partes; ni (b) cargar ninguna parte de la Preview en un teléfono móvil ni en ningún otro dispositivo de hardware (a excepción de una computadora personal), ni podrá combinar ninguna parte de la Preview con otro software, ni distribuir algún software o dispositivo que incorpore alguna parte de la Preview.
|
||||||
|
|
||||||
3.5 El uso, la reproducción y la distribución de los componentes de la Preview con licencia de software de código abierto están regidos exclusivamente por los términos de la licencia de ese software de código abierto y no de este Contrato de licencia. Usted acepta mantener la licencia en buenas condiciones con respecto a dichas licencias de software de código abierto en virtud de todos los derechos otorgados y acepta abstenerse de realizar alguna acción que pueda poner fin, suspender o violar dichos derechos.
|
3.5 El uso, la reproducción y la distribución de los componentes de la Preview con licencia de software de código abierto están regidos exclusivamente por los términos de la licencia de ese software de código abierto y no de este Contrato de licencia. Usted acepta mantener la licencia en regla con respecto a dichas licencias de software de código abierto en virtud de todos los derechos otorgados y acepta abstenerte de realizar acción alguna que pudiera poner fin, suspender o violar dichos derechos.
|
||||||
|
|
||||||
3.6 Usted acepta que la forma y la naturaleza de la Versión preliminar que proporciona Google pueden cambiar sin brindarle aviso previo y que las versiones futuras de la Versión preliminar pueden ser incompatibles con las aplicaciones desarrolladas en versiones anteriores de la Versión preliminar. Usted acepta que Google puede (de forma permanente o temporal) dejar de proporcionarles la Versión preliminar (o cualquiera de las características incluidas en ella) a usted o a los usuarios, generalmente, a criterio exclusivo de Google, sin brindarle aviso previo.
|
3.6 Acepta que la forma y la naturaleza de la Preview que proporciona Google pueden cambiar sin tener que brindarle aviso previo, y que las versiones futuras de la Preview pueden ser incompatibles con las aplicaciones desarrolladas en versiones anteriores de la Preview. Usted acepta que Google, generalmente a su entera discreción, puede dejar de proporcionarle a usted o a los demás usuarios (de forma permanente o temporal) la Preview (o cualquiera de sus funciones) sin previo aviso.
|
||||||
|
|
||||||
3.7 Ninguna declaración de este Contrato de licencia le otorga el derecho de utilizar alguno de los nombres comerciales, las marcas comerciales, las marcas de servicio, los logotipos, los nombres de dominio ni otras características distintivas de marca de Google.
|
3.7 Ninguna declaración de este Contrato de licencia le otorga el derecho de utilizar alguno de los nombres comerciales, las marcas comerciales, las marcas de servicio, los logotipos, los nombres de dominio ni otras características distintivas de marca de Google.
|
||||||
|
|
||||||
3.8 Usted acepta que no eliminará, ocultará ni alterará ninguno de los avisos de derechos de propiedad (lo que incluye los avisos de marca comercial y derechos de autor) que pudieran estar anexados o incluidos en la Versión preliminar.
|
3.8 Usted acepta que no quitará, ocultará o alterará ninguna de las notificaciones de derechos de autor (entre las que se incluyen las notificaciones de copyright y marcas comercias) que pudieran estar anexadas o implícitas en la Preview.
|
||||||
|
|
||||||
4. Uso que usted realiza de la Versión preliminar 4.1 Google acepta que ninguna declaración del Contrato de licencia le concede a Google derecho, título o interés alguno de su parte (o de parte de sus licenciantes), en virtud del Contrato de licencia, con respecto a las aplicaciones de software que usted desarrolle mediante el uso de la Versión preliminar, lo que incluye los derechos de propiedad intelectual que conlleven esas aplicaciones. 4.2 Usted acepta utilizar la Versión preliminar y escribir aplicaciones únicamente conforme a lo que permite (a) este Contrato de licencia y (b) las leyes, regulaciones, o prácticas y pautas generalmente aceptadas pertinentes en las jurisdicciones relevantes (lo que incluye las leyes sobre la exportación de datos o software hacia los Estados Unidos u otros países relevantes y desde ellos). 4.3 Usted acepta que si utiliza la Versión preliminar para desarrollar aplicaciones, protegerá la privacidad y los derechos legales de los usuarios.
|
4. Uso que usted realiza de la Preview
|
||||||
|
|
||||||
|
4.1 Google acepta que ninguna declaración del Contrato de licencia le concede a Google derecho, título o interés alguno de su parte (o de parte de sus licenciantes), en virtud del Contrato de licencia, con respecto a las aplicaciones de software que usted desarrolle mediante el uso de la Preview, lo que incluye los derechos de propiedad intelectual que conlleven esas aplicaciones.
|
||||||
|
|
||||||
|
4.2 Usted acepta utilizar la Preview y escribir aplicaciones únicamente conforme a lo que permite (a) este Contrato de licencia y (b) las leyes, regulaciones, o prácticas y pautas generalmente aceptadas y pertinentes en las jurisdicciones relevantes (entre las que se incluyen las leyes sobre la exportación de datos o software hacia los Estados Unidos u otros países relevantes y desde ellos).
|
||||||
|
|
||||||
|
4.3 Usted acepta que si utiliza la Preview para desarrollar aplicaciones, protegerá la privacidad y los derechos legales de los usuarios. Si los usuarios le proporcionan sus nombres de usuario, contraseñas u otra información de inicio de sesión o información personal, debe comunicarles que la información se encontrará disponible para su aplicación, y debe proporcionarles a dichos usuarios un aviso de privacidad con protección y validez legal. Si su aplicación almacena información personal o confidencial proporcionada por los usuarios, lo debe hacer de forma segura. Si los usuarios le proporcionan información sobre la cuenta de Google, su aplicación solo puede usar esa información para acceder a la cuenta de Google del usuario siempre que este le haya otorgado permiso para hacerlo y con los fines para los que se lo haya otorgado.
|
||||||
|
|
||||||
Si los usuarios le proporcionan sus nombres de usuario, contraseñas u otra información de inicio de sesión o información personal, debe comunicarles a los usuarios que la información se encontrará disponible para su aplicación, y debe proporcionarles a dichos usuarios un aviso de privacidad con protección y validez legal. Si su aplicación almacena información personal o confidencial proporcionada por los usuarios, lo debe hacer de forma segura. Si los usuarios le proporcionan información sobre la cuenta de Google, su aplicación solo puede usar esa información para acceder a la cuenta de Google del usuario siempre que este le haya otorgado permiso para hacerlo y con los fines para los que se lo haya otorgado.
|
|
||||||
|
|
||||||
4.4 Usted acepta que no participará en ninguna actividad con la Versión preliminar (lo que incluye el desarrollo o la distribución de una aplicación) que interfiera, interrumpa, dañe o acceda sin autorización a servidores, redes u otras propiedades o servicios de Google o de algún tercero.
|
4.4 Usted acepta que no participará en ninguna actividad con la Versión preliminar (lo que incluye el desarrollo o la distribución de una aplicación) que interfiera, interrumpa, dañe o acceda sin autorización a servidores, redes u otras propiedades o servicios de Google o de algún tercero.
|
||||||
|
|
||||||
@@ -70,53 +70,53 @@ Este es el Contrato de licencia de la versión preliminar del SDK de Android (el
|
|||||||
|
|
||||||
4.6 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de cualquier incumplimiento de sus obligaciones en virtud de este Contrato de licencia, los contratos aplicables de terceros o los términos del servicio, o cualquier ley o regulación pertinentes, y de las consecuencias (lo que incluye las pérdidas o los daños que pudieran sufrir Google o algún tercero) de dichos incumplimientos.
|
4.6 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de cualquier incumplimiento de sus obligaciones en virtud de este Contrato de licencia, los contratos aplicables de terceros o los términos del servicio, o cualquier ley o regulación pertinentes, y de las consecuencias (lo que incluye las pérdidas o los daños que pudieran sufrir Google o algún tercero) de dichos incumplimientos.
|
||||||
|
|
||||||
4.7 La Versión preliminar se encuentra en desarrollo, y sus pruebas y comentarios son una parte importante del proceso de desarrollo. Al utilizar la Versión preliminar, usted reconoce que la implementación de algunas características aún se encuentra en desarrollo y que no debe confiar en que la Versión preliminar contará con todas las funcionalidades de una versión estable. Usted acepta no distribuir públicamente ni enviar ninguna aplicación que utilice esta Versión preliminar, ya que esta Versión preliminar ya no se admitirá tras el lanzamiento del SDK oficial de Android.
|
4.7 La Versión preliminar se encuentra en desarrollo, y sus pruebas y comentarios son una parte importante del proceso de desarrollo. Al utilizar la Preview, usted reconoce que la implementación de algunas características aún se encuentra en desarrollo y que no debe confiar en que la Preview contará con todas las funcionalidades de una versión estable. Usted acepta no distribuir públicamente ni enviar ninguna aplicación que utilice esta Preview, dado que esta Preview ya no se admitirá tras el lanzamiento del Android SDK oficial.
|
||||||
|
|
||||||
5. Sus credenciales de desarrollador
|
5. Sus credenciales de desarrollador
|
||||||
|
|
||||||
5.1 Usted acepta que es responsable de mantener la confidencialidad de toda credencial de desarrollador que Google pudiera otorgarle o que usted pudiera escoger, y que será el único responsable de todas las aplicaciones que se desarrollen con sus credenciales de desarrollador.
|
5.1 Usted acepta que es responsable de mantener la confidencialidad de toda credencial de desarrollador que Google pudiera otorgarle o que pudiera escoger usted mismo, y que será el único responsable de todas las aplicaciones que se desarrollen con sus credenciales de desarrollador.
|
||||||
|
|
||||||
6. Privacidad e información
|
6. Privacidad e información
|
||||||
|
|
||||||
6.1 A fin de poder innovar y mejorar de forma continua la Versión preliminar, Google podría recopilar ciertas estadísticas de uso del software, lo que incluye, entre otras características, un identificador único, la dirección IP asociada, el número de versión del software e información sobre las herramientas o los servicios de la Versión preliminar que se estén utilizando y la manera en que se estén utilizando. Antes de que se recopile esta información, la Versión preliminar se lo notificará y le solicitará su permiso. Si no otorga su permiso, no se recopilará la información.
|
6.1 Con el objetivo de poder innovar y mejorar de forma continua la Preview, Google podría recopilar ciertas estadísticas de uso del software, entre las que se incluyen, de forma enunciativa, un identificador único, la dirección IP asociada, el número de versión del software e información sobre las herramientas o los servicios de la Preview que se estén utilizando y la manera en que se estén utilizando. Antes de que se recopile esta información, la Preview se lo notificará y le solicitará su permiso. Si no otorga su permiso, no se recopilará la información.
|
||||||
|
|
||||||
6.2 Los datos recopilados se analizan en el agregado para mejorar la Versión preliminar y se conservan de acuerdo con la política de privacidad de Google que se encuentra en el sitio http://www.google.com/policies/privacy/.
|
6.2 Los datos recopilados se analizan en el agregado para mejorar la Preview y se conservan de acuerdo con la política de privacidad de Google, que se encuentra en el sitio http://www.google.com/policies/privacy/.
|
||||||
|
|
||||||
7. Aplicaciones de terceros
|
7. Aplicaciones de terceros
|
||||||
|
|
||||||
7.1 Si utiliza la Versión preliminar para ejecutar aplicaciones desarrolladas por un tercero o que accedan a datos, contenido o recursos proporcionados por un tercero, usted acepta que Google no es responsable de esas aplicaciones, datos, contenido ni recursos. Usted comprende que todos los datos, contenidos o recursos a los que podría acceder a través de esas aplicaciones de terceros son exclusiva responsabilidad de la persona que los origina y que Google no es responsable de las pérdidas ni los daños que usted pudiera experimentar como consecuencia del uso o acceso de cualquiera de esas aplicaciones, datos, contenido o recursos de terceros.
|
7.1 Si utiliza la Preview para ejecutar aplicaciones desarrolladas por un tercero o que accedan a datos, contenido o recursos proporcionados por un tercero, usted acepta que Google no es responsable de esas aplicaciones, datos, contenido ni recursos. Usted comprende que todos los datos, contenidos o recursos a los que podría acceder a través de esas aplicaciones de terceros son exclusiva responsabilidad de la persona que los origina y que Google no es responsable de las pérdidas ni los daños que usted pudiera experimentar como consecuencia del uso o acceso de cualquiera de esas aplicaciones, datos, contenido o recursos de terceros.
|
||||||
|
|
||||||
7.2 Usted debe saber que los datos, el contenido y los recursos que se le presentan a través de esa aplicación de un tercero pueden estar protegidos por derechos de propiedad intelectual que les pertenecen a sus proveedores (o a otras personas o compañías en representación de estos). No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas basadas en esos datos, contenidos o recursos (en su totalidad o en parte), a menos que los propietarios pertinentes le hayan otorgado permiso específicamente para hacerlo.
|
7.2 Usted debe saber que los datos, el contenido y los recursos que se le presentan a través de esa aplicación de un tercero pueden estar protegidos por derechos de propiedad intelectual que les pertenecen a sus proveedores (o a otras personas o compañías en representación de estos). No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas basadas en esos datos, contenidos o recursos (en su totalidad o en parte), a menos que los propietarios pertinentes le hayan otorgado el permiso específico para hacerlo.
|
||||||
|
|
||||||
7.3 Usted acepta que el uso que haga de las aplicaciones, los datos, el contenido o los recursos de ese tercero puede estar sujeto a términos independientes entre usted y el tercero correspondiente.
|
7.3 Usted acepta que el uso que haga de las aplicaciones, los datos, el contenido o los recursos de ese tercero puede estar sujeto a términos independientes entre usted y el tercero correspondiente.
|
||||||
|
|
||||||
8. Uso de las API de Google
|
Uso de las API de Google
|
||||||
|
|
||||||
8.1 API de Google
|
8.1 API de Google
|
||||||
|
|
||||||
8.1.1 Si utiliza alguna API para recuperar datos de Google, usted acepta que los datos pueden estar protegidos por derechos de propiedad intelectual que le pertenecen a Google o a las partes que proporcionan esos datos (o a otras personas o empresas en representación de estos). El uso que realice de cualquiera de esas API puede estar sujeto a términos de servicio adicionales. No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas basadas en esos datos (en su totalidad o en parte), a menos que los términos de servicio correspondientes lo permitan.
|
8.1.1 Si utiliza alguna API para recuperar datos de Google, usted acepta que los datos pueden estar protegidos por derechos de propiedad intelectual que le pertenecen a Google o a las partes que proporcionan esos datos (o a otras personas o empresas en representación de estos). El uso que realice de cualquiera de esas API puede estar sujeto a términos de servicio adicionales. No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas con base en esos datos (en su totalidad o en parte), a menos que los términos de servicio correspondientes lo permitan.
|
||||||
|
|
||||||
8.1.2 Si utiliza alguna API para recuperar datos de un usuario de Google, usted acepta y acuerda que solo podrá recuperar datos con el consentimiento explícito del usuario y solo con los fines limitados para los que el usuario le haya otorgado permiso para hacerlo.
|
8.1.2 Si utiliza cualquier API para recuperar datos de un usuario de Google, usted acepta y acuerda que solo podrá recuperar datos con el consentimiento explícito del usuario y solo cuando, y para los fines limitados para los que, el usuario le haya otorgado permiso para hacerlo.
|
||||||
|
|
||||||
9. Finalización del Contrato de licencia
|
9. Finalización del Contrato de licencia
|
||||||
|
|
||||||
9.1 Este Contrato de licencia tendrá vigencia hasta que lo revoquen usted o Google, como se indica a continuación.
|
9.1 Este Contrato de licencia tendrá vigencia hasta que lo revoquen usted o Google, como se indica a continuación.
|
||||||
|
|
||||||
9.2 Si desea rescindir el Contrato de licencia, puede hacerlo al interrumpir el uso que realiza de la Versión preliminar y de las credenciales de desarrollador pertinentes.
|
9.2 Si desea rescindir el Contrato de licencia, puede hacerlo al interrumpir el uso que realiza de la Preview y de las credenciales de desarrollador pertinentes.
|
||||||
|
|
||||||
9.3 Google puede, en cualquier momento, rescindir el Contrato de licencia, con causa o sin ella, después de notificárselo a usted.
|
9.3 Google puede, en cualquier momento, rescindir el Contrato de licencia, con causa o sin ella, luego de notificárselo.
|
||||||
|
|
||||||
9.4 El Contrato de licencia finalizará automáticamente, sin previo aviso ni acción alguna, tras la primera de las siguientes situaciones:
|
9.4 El Contrato de licencia finalizará automáticamente, sin previo aviso ni acción alguna, tras la primera de las siguientes situaciones:
|
||||||
(A) cuando Google deje de proporcionar la Versión preliminar o ciertas partes de esta a los usuarios en el país donde usted reside o desde el que utiliza el servicio; y
|
(A) cuando Google deje de proporcionar la Preview o ciertas partes de esta a los usuarios en el país donde usted reside o desde el que utiliza el servicio; y
|
||||||
(B) cuando Google emita una versión final del SDK de Android.
|
(B) cuando Google emita una versión final del Android SDK.
|
||||||
|
|
||||||
9.5 Si el Contrato de licencia se rescinde, se revocará la licencia que usted recibió en virtud de dicho contrato; usted deberá suspender inmediatamente todo uso de la Versión preliminar y las disposiciones de los párrafos 10, 11, 12 y 14 seguirán vigentes indefinidamente.
|
9.5 Si el Contrato de licencia se rescinde, se revocará la licencia que usted recibió en virtud de dicho contrato; usted deberá suspender inmediatamente todo uso de la Preview, y las disposiciones de los párrafos 10, 11, 12 y 14 seguirán vigentes indefinidamente.
|
||||||
|
|
||||||
10. EXENCIONES DE RESPONSABILIDAD
|
10. EXENCIONES DE RESPONSABILIDAD
|
||||||
|
|
||||||
10.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE EL USO QUE REALICE DE LA VERSIÓN PRELIMINAR ES BAJO SU PROPIO RIESGO Y QUE LA VERSIÓN PRELIMINAR SE PROPORCIONA “EN LAS CONDICIONES EN LAS QUE SE ENCUENTRA” Y “SUJETA A DISPONIBILIDAD” SIN GARANTÍAS DE NINGÚN TIPO POR PARTE DE GOOGLE.
|
10.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE EL USO QUE REALICE DE LA PREVIEW ES BAJO SU PROPIO RIESGO Y QUE LA PREVIEW SE PROPORCIONA “EN LAS CONDICIONES EN LAS QUE SE ENCUENTRA” Y “SUJETA A DISPONIBILIDAD” SIN GARANTÍAS DE NINGÚN TIPO POR PARTE DE GOOGLE.
|
||||||
|
|
||||||
10.2 EL USO QUE USTED REALICE DE LA VERSIÓN PRELIMINAR Y DE TODO MATERIAL DESCARGADO U OBTENIDO DE ALGUNA OTRA MANERA MEDIANTE EL USO DE LA VERSIÓN PRELIMINAR ES A SU ENTERO RIESGO Y DISCRECIÓN, Y USTED ES EL ÚNICO RESPONSABLE DE CUALQUIER DAÑO QUE PUDIERA SUFRIR SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO, O DE LA PÉRDIDA DE DATOS COMO CONSECUENCIA DE DICHO USO. SIN PERJUICIO DE LO MENCIONADO ANTERIORMENTE, USTED COMPRENDE QUE LA VERSIÓN PRELIMINAR NO ES UNA VERSIÓN ESTABLE, Y PUEDE CONTENER ERRORES, DEFECTOS Y VULNERABILIDADES DE SEGURIDAD QUE PUEDEN PROVOCAR DAÑOS SIGNIFICATIVOS, LO QUE INCLUYE LA PÉRDIDA COMPLETA E IRRECUPERABLE DEL USO DE SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO.
|
10.2 EL USO QUE USTED REALICE DE LA PREVIEW Y DE TODO MATERIAL DESCARGADO U OBTENIDO DE ALGUNA OTRA MANERA MEDIANTE EL USO DE LA PREVIEW ES A SU ENTERO RIESGO Y DISCRECIÓN, Y USTED ES EL ÚNICO RESPONSABLE DE CUALQUIER DAÑO QUE PUDIERA SUFRIR SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO, O DE LA PÉRDIDA DE DATOS COMO CONSECUENCIA DE DICHO USO. SIN PERJUICIO DE LO MENCIONADO ANTERIORMENTE, USTED COMPRENDE QUE LA VERSIÓN PRELIMINAR NO ES UNA VERSIÓN ESTABLE, Y PUEDE CONTENER ERRORES, DEFECTOS Y VULNERABILIDADES DE SEGURIDAD QUE PUEDEN PROVOCAR DAÑOS SIGNIFICATIVOS, LO QUE INCLUYE LA PÉRDIDA COMPLETA E IRRECUPERABLE DEL USO DE SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO.
|
||||||
|
|
||||||
10.3 GOOGLE TAMBIÉN RECHAZA TODAS LAS GARANTÍAS Y CONDICIONES DE CUALQUIER TIPO, EXPRESAS O IMPLÍCITAS, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS Y CONDICIONES DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN DETERMINADO Y NO VIOLACIÓN.
|
10.3 GOOGLE TAMBIÉN RECHAZA TODAS LAS GARANTÍAS Y CONDICIONES DE CUALQUIER TIPO, EXPRESAS O IMPLÍCITAS, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS Y CONDICIONES DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN DETERMINADO Y NO VIOLACIÓN.
|
||||||
|
|
||||||
@@ -142,7 +142,7 @@ Este es el Contrato de licencia de la versión preliminar del SDK de Android (el
|
|||||||
|
|
||||||
14.4 Usted reconoce y acepta que cada miembro del grupo de compañías de las que Google es la compañía central serán terceros beneficiarios del Contrato de licencia, y que esas otras empresas tendrán el derecho de imponer directamente cualquier disposición y ampararse en las disposiciones de este Contrato de licencia que les confieran un beneficio (o que confieran derechos a su favor). Además de esto, ninguna otra persona o compañía serán terceros beneficiarios del Contrato de licencia.
|
14.4 Usted reconoce y acepta que cada miembro del grupo de compañías de las que Google es la compañía central serán terceros beneficiarios del Contrato de licencia, y que esas otras empresas tendrán el derecho de imponer directamente cualquier disposición y ampararse en las disposiciones de este Contrato de licencia que les confieran un beneficio (o que confieran derechos a su favor). Además de esto, ninguna otra persona o compañía serán terceros beneficiarios del Contrato de licencia.
|
||||||
|
|
||||||
14.5 RESTRICCIONES DE EXPORTACIÓN. LA VERSIÓN PRELIMINAR ESTÁ SUJETA A LAS LEYES Y REGULACIONES DE EXPORTACIÓN DE LOS ESTADOS UNIDOS. DEBE CUMPLIR CON TODAS LAS LEYES Y REGULACIONES DE EXPORTACIÓN NACIONALES E INTERNACIONALES QUE SE APLIQUEN A LA VERSIÓN PRELIMINAR. ESAS LEYES INCLUYEN RESTRICCIONES EN RELACIÓN CON LOS DESTINOS, USUARIOS FINALES Y USO FINAL.
|
14.5 RESTRICCIONES DE EXPORTACIÓN. LA VERSIÓN PRELIMINAR ESTÁ SUJETA A LAS LEYES Y REGULACIONES DE EXPORTACIÓN DE LOS ESTADOS UNIDOS. DEBE CUMPLIR CON TODAS LAS LEYES Y REGULACIONES DE EXPORTACIÓN NACIONALES E INTERNACIONALES QUE SE APLIQUEN A LA VERSIÓN PRELIMINAR. ESTAS LEYES INCLUYEN RESTRICCIONES EN RELACIÓN CON LOS DESTINOS, USUARIOS FINALES Y USO FINAL.
|
||||||
|
|
||||||
14.6 Usted no puede asignar ni transferir el Contrato de licencia sin la aprobación previa por escrito de Google y todo intento de asignación sin dicha aprobación no tendrá validez. No podrá delegar sus responsabilidades u obligaciones otorgadas en virtud del Contrato de licencia sin la aprobación previa por escrito de Google.
|
14.6 Usted no puede asignar ni transferir el Contrato de licencia sin la aprobación previa por escrito de Google y todo intento de asignación sin dicha aprobación no tendrá validez. No podrá delegar sus responsabilidades u obligaciones otorgadas en virtud del Contrato de licencia sin la aprobación previa por escrito de Google.
|
||||||
|
|
||||||
@@ -167,7 +167,7 @@ Este es el Contrato de licencia de la versión preliminar del SDK de Android (el
|
|||||||
|
|
||||||
<div id="qv-wrapper">
|
<div id="qv-wrapper">
|
||||||
<div id="qv">
|
<div id="qv">
|
||||||
<h2>Contenido del documento</h2>
|
<h2>En este documento</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#device-preview">Configurar un dispositivo de hardware</a>
|
<li><a href="#device-preview">Configurar un dispositivo de hardware</a>
|
||||||
<ol>
|
<ol>
|
||||||
@@ -182,8 +182,8 @@ Este es el Contrato de licencia de la versión preliminar del SDK de Android (el
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para ejecutar y probar tu aplicación en la plataforma nueva necesitas configurar el tiempo de ejecución de Android N
|
Para ejecutar y probar tu aplicación en la plataforma nueva necesitas configurar el entorno de ejecución
|
||||||
. Puedes realizar eso de las siguientes maneras:
|
de Android N. Puedes llevar a cabo la configuración de las siguientes maneras:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
@@ -192,15 +192,15 @@ Este es el Contrato de licencia de la versión preliminar del SDK de Android (el
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Si deseas un entorno para realizarle pruebas básicas de compatibilidad a tu aplicación en la plataforma nueva
|
Si deseas un entorno para realizarle pruebas básicas de compatibilidad a tu aplicación en la
|
||||||
, todo lo que necesitas es tu actual APK y un dispositivo de hardware o
|
plataforma nueva, todo lo que necesitas es tu APK actual y un dispositivo de hardware o
|
||||||
emulador. No necesitas actualizar todo tu entorno de desarrollo
|
emulador. No necesitas actualizar todo tu entorno de desarrollo
|
||||||
para realizar pruebas básicas.
|
para realizar pruebas básicas.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Si deseas modificar tu aplicación para seleccionar como destino Android N o usar las API nuevas de Android N,
|
Si deseas modificar tu aplicación para seleccionar como destino Android N o usar las API nuevas de Android N,
|
||||||
debes configurar un entorno de desarrollo que esté actualizado para que admita
|
debes configurar un entorno de desarrollo actualizado y que seas compatible con
|
||||||
Android N. En <a href="{@docRoot}preview/setup-sdk.html">Configuración para el desarrollo de
|
Android N. En <a href="{@docRoot}preview/setup-sdk.html">Configuración para el desarrollo de
|
||||||
Android N</a> se ofrece información detallada.
|
Android N</a> se ofrece información detallada.
|
||||||
</p>
|
</p>
|
||||||
@@ -209,87 +209,87 @@ Este es el Contrato de licencia de la versión preliminar del SDK de Android (el
|
|||||||
<h2 id="device-preview">Configurar un dispositivo de hardware</h2>
|
<h2 id="device-preview">Configurar un dispositivo de hardware</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En la N Developer Preview se ofrecen actualizaciones del sistema para una variedad de dispositivos de hardware
|
En N Developer Preview se ofrecen actualizaciones del sistema para una variedad de dispositivos de hardware
|
||||||
que puedes usar para realizarle pruebas a tu aplicación, desde teléfonos hasta tablets y TV.
|
que puedes usar para realizarle pruebas a tu aplicación, desde teléfonos hasta tablets y TV.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Si tienes acceso a un dispositivo compatible, puedes actualizarlo a una versión "milestone" de la Developer Preview
|
Si tienes acceso a un dispositivo compatible, puedes actualizarlo a una compilación "milestone" de la Developer
|
||||||
de las siguientes maneras:
|
Preview de las siguientes maneras:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong>Registrar el dispositivo en actualizaciones automáticas del sistema vía OTA</strong> a través del
|
<li><strong>Registrar el dispositivo en actualizaciones automáticas inalámbricas</strong> a través del
|
||||||
<a href="https://g.co/androidbeta">Programa de Android beta</a>. Una vez registrado, tu dispositivo recibirá actualizaciones inalámbricas regulares (OTA)
|
<a href="https://g.co/androidbeta">Programa Android Beta</a>. Una vez registrado, tu dispositivo recibirá actualizaciones inalámbricas periódicas
|
||||||
de todas las compilaciones de hitos en la N Developer Preview. Se recomienda este
|
de todas las compilaciones "milestone" en la N Developer Preview. Se recomienda este
|
||||||
enfoque porque te permite realizar una transición sin inconvenientes desde tu entorno actual
|
enfoque porque te permite realizar una transición sin inconvenientes desde tu entorno
|
||||||
a través de varios lanzamientos de la N Developer Preview.</li>
|
actual a través de varios lanzamientos de la N Developer Preview.</li>
|
||||||
<li><strong>Descargar una imagen de sistema de la Developer Preview y actualizar el dispositivo</strong>.
|
<li><strong>Descargar una imagen de sistema de la Developer Preview y actualizar el dispositivo de manera manual</strong>.
|
||||||
Las actualizaciones OTA no se proporcionan de manera automática para los dispositivos que actualizas de manera manual, pero
|
Las actualizaciones inalámbricas no se proporcionan de manera automática para los dispositivos que actualizas de manera manual, pero
|
||||||
puedes registrar esos dispositivos en el Programa de Android beta para obtener actualizaciones OTA. </li>
|
puedes registrar esos dispositivos en el Programa de Android Beta para obtener actualizaciones inalámbricas. </li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3 id="ota">Registrar el dispositivo en actualizaciones automáticas OTA</h3>
|
<h3 id="ota">Registrar el dispositivo en actualizaciones automáticas inalámbricas</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Si tienes acceso a un dispositivo compatible (consulta la lista en la tabla de descargas
|
Si tienes acceso a un dispositivo compatible (consulta la lista en la tabla de
|
||||||
), puedes recibir actualizaciones inalámbricas para mostrar versiones de Android
|
descargas), puedes recibir actualizaciones inalámbricas para versiones de la Android Preview
|
||||||
registrando el dispositivo en el <a href="https://g.co/androidbeta">Programa de Android beta</a>. Estas actualizaciones
|
registrando el dispositivo en el <a href="https://g.co/androidbeta">Programa de Android Beta</a>. Estas actualizaciones
|
||||||
se descargan de manera automática y actualizarán tu dispositivo como otras
|
se descargan de manera automática y actualizarán tu dispositivo como otras actualizaciones
|
||||||
actualizaciones oficiales del sistema.
|
oficiales del sistema.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Puedes dar de baja el registro de un dispositivo en cualquier momento. El dispositivo recibirá una actualización OTA
|
Puedes dar de baja el dispositivo en cualquier momento. El dispositivo recibirá una actualización inalámbrica
|
||||||
para la versión de producción más reciente de Android que se encuentre disponible para ese dispositivo
|
para la versión de producción más reciente de Android que se encuentre disponible para ese dispositivo
|
||||||
(por ejemplo, Android 6.0 Marshmallow). La actualización requiere un restablecimiento completo del dispositivo
|
(por ejemplo, Android 6.0 Marshmallow). La actualización requiere un restablecimiento
|
||||||
, entonces se quitarán los datos del usuario en el dispositivo. Asegúrate de <strong>realizar una
|
completo del dispositivo, por lo que se eliminarán los datos del usuario del dispositivo. No te olvides de crear una <strong>copia
|
||||||
copia de seguridad de los datos importantes</strong> antes de dar de baja un dispositivo.
|
de seguridad de los datos importantes</strong> antes de dar de baja un dispositivo.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para obtener más información y para registrar tu dispositivo, consulta
|
Para obtener más información y para registrar tu dispositivo, consulta
|
||||||
el sitio web del <a href="https://g.co/androidbeta">Programa de Android beta</a> .
|
el sitio web del <a href="https://g.co/androidbeta">Programa de Android Beta</a> .
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="note"><strong>Nota:</strong>
|
<p class="note"><strong>Nota:</strong>
|
||||||
Dar de baja el registro requiere un restablecimiento completo del dispositivo. Realice una copia de seguridad de los
|
Dar de baja el registro requiere un restablecimiento completo del dispositivo. Crea una copia de seguridad
|
||||||
datos importantes primero.
|
de los datos importantes.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="flash">Actualizar un dispositivo manualmente</h3>
|
<h3 id="flash">Actualizar un dispositivo de forma manual</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En cualquier momento, puedes descargar las últimas imágenes de sistema de la Developer Preview y
|
En cualquier momento, puedes descargar la última imagen de sistema de la Developer Preview y
|
||||||
puedes actualizarlas manualmente en tu dispositivo. Consulta la siguiente tabla para descargar la imagen de
|
actualizarla de forma manual en tu dispositivo. Consulta la tabla siguiente para descargar la imagen
|
||||||
sistema para tu dispositivo de prueba. La actualización manual de un dispositivo es útil si necesitas
|
de sistema para tu dispositivo de prueba. La actualización manual de un dispositivo es útil si necesitas
|
||||||
un control preciso del entorno de prueba o necesitas reinstalar con frecuencia,
|
un control preciso del entorno de prueba o necesitas reinstalar con frecuencia,
|
||||||
como en pruebas automatizadas.
|
como en pruebas automatizadas.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- You can flash by ota or system image --><p>
|
<!-- You can flash by ota or system image --><p>
|
||||||
El proceso de instalación de una imagen de sistema en un dispositivo <strong>elimina todos los datos del
|
El proceso de instalación de una imagen de sistema en un dispositivo <strong>elimina todos los datos del
|
||||||
dispositivo</strong>, por lo tanto, deberás hacer una copia de seguridad de los datos en primer lugar.
|
dispositivo</strong>, por lo tanto, es recomendable crear una copia de seguridad de los datos.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Después de que realices una copia de seguridad y que descargues la siguiente imagen de sistema que
|
Después de que crees una copia de seguridad y descargues la siguiente imagen de sistema que
|
||||||
se adecua a tu dispositivo, sigue las instrucciones que se describen en <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
|
se adecua a tu dispositivo, sigue las instrucciones que se describen en <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
|
||||||
para actualizar la imagen en tu dispositivo.
|
para actualizar la imagen en tu dispositivo de manera manual.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Las imágenes de sistema actualizadas de manera manual <strong>no
|
Las imágenes de sistema actualizadas de manera manual <strong>no
|
||||||
reciben actualizaciones OTA de manera automática</strong> para posteriores "milestone"
|
reciben actualizaciones inalámbricas de forma automática</strong> para posteriores compilaciones "milestone"
|
||||||
de la Developer Preview. Asegúrate de mantener tu entorno actualizado y actualiza una
|
de la Developer Preview. No te olvides de mantener tu entorno actualizado y actualiza una
|
||||||
nueva imagen de sistema en cada "milestone" de la Developer Preview.
|
imagen de sistema nueva en cada versión "milestone" de la Developer Preview.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Si decides que quieres obtener actualizaciones OTA después de actualizar de manera manual un dispositivo,
|
Si decides que quieres obtener actualizaciones inalámbricas después de actualizar un dispositivo de manera manual,
|
||||||
lo único que debes hacer es registrar el dispositivo en el <a href="https://g.co/androidbeta">Programa
|
lo único que debes hacer es registrar el dispositivo en el <a href="https://g.co/androidbeta">Programa
|
||||||
de Android beta</a>. Puedes registrar el dispositivo en cualquier momento para recibir la siguiente actualización de la Preview
|
de Android Beta</a>. Puedes registrar el dispositivo en cualquier momento para recibir la siguiente actualización
|
||||||
vía inalámbrica.
|
de la Preview de manera inalámbrica.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
@@ -299,65 +299,73 @@ que puedes usar para realizarle pruebas a tu aplicación, desde teléfonos hasta
|
|||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="bullhead">
|
<tr id="bullhead">
|
||||||
<td>Nexus 5X <br>“bullhead”</td>
|
<td>Nexus 5X <br>"bullhead"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">bullhead-npc56p-preview-6c877a3d.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">bullhead-npd35k-factory-5ba40535.tgz</a><br>
|
||||||
MD5: b5cf874021023b398f5b983b24913f5d<br>
|
MD5: b6c5d79a21815ee21db41822dcf61e9f<br>
|
||||||
SHA-1: 6c877a3d9fae7ec8a1678448e325b77b7a7b143a
|
SHA-1: 5ba4053577007d15c96472206e3a79bc80ab194c
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="shamu">
|
<tr id="shamu">
|
||||||
<td>Nexus 6 <br>“shamu”</td>
|
<td>Nexus 6 <br>"shamu"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">shamu-npc56p-preview-54b13c67.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">shamu-npd35k-factory-a33bf20c.tgz</a><br>
|
||||||
MD5: af183638cf34e0eb944a1957d7696f60<br>
|
MD5: e1cf9c57cfb11bebe7f1f5bfbf05d7ab<br>
|
||||||
SHA-1: 54b13c6703d369cc79a8fd8728fe4103c6343973
|
SHA-1: a33bf20c719206bcf08d1edd8da6c0ff9d50f69c
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="angler">
|
<tr id="angler">
|
||||||
<td>Nexus 6P <br>“angler”</td>
|
<td>Nexus 6P <br>"angler"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">angler-npc56p-preview-85ffc1b1.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">angler-npd35k-factory-81c341d5.tgz</a><br>
|
||||||
MD5: bc4934ea7bd325753eee1606d3725a24<br>
|
MD5: e93de7949433339856124c3729c15ebb<br>
|
||||||
SHA-1: 85ffc1b1be402b1b96f9ba10929e86bba6c6c588
|
SHA-1: 81c341d57ef2cd139569b055d5d59e9e592a7abd
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="volantis">
|
<tr id="volantis">
|
||||||
<td>Nexus 9 <br>“volantis”</td>
|
<td>Nexus 9 <br>"volantis"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">volantis-npc56p-preview-0e8ec8ef.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">volantis-npd35k-factory-2b50e19d.tgz</a><br>
|
||||||
MD5: c901334c6158351e945f188167ae56f4<br>
|
MD5: 565be87ebb2d5937e2abe1a42645864b<br>
|
||||||
SHA-1: 0e8ec8ef98c7a8d4f58d15f90afc5176303efca4
|
SHA-1: 2b50e19dae2667b27f911e3c61ed64860caf43e1
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="volantisg">
|
<tr id="volantisg">
|
||||||
<td>Nexus 9G <br>“volantisg”</td>
|
<td>Nexus 9G <br>"volantisg"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">volantisg-npc56p-preview-1bafdbfb.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">volantisg-npd35k-factory-2e89ebe6.tgz</a><br>
|
||||||
MD5: 7bb95bebc478d7257cccb4652899d1b4<br>
|
MD5: a8464e15c6683fe2afa378a63e205fda<br>
|
||||||
SHA-1: 1bafdbfb502e979a9fe4c257a379c4c7af8a3ae6
|
SHA-1: 2e89ebe67a46b2f3beb050746c13341cd11fa678
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="fugu">
|
<tr id="fugu">
|
||||||
<td>Nexus Player <br>“fugu”</td>
|
<td>Nexus Player <br>"fugu"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">fugu-npc56r-preview-7027d5b6.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">fugu-npd35k-factory-1de74874.tgz</a><br>
|
||||||
MD5: f5d3d8f75836ccfe4c70e8162e498be4<br>
|
MD5: c0dbb7db671f61b2785da5001cedefcb<br>
|
||||||
SHA-1: 7027d5b662bceda4c80a91a0a14ef0e5a7ba795b
|
SHA-1: 1de74874f8d83e14d642f13b5a2130fc2aa55873
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="ryu">
|
<tr id="ryu">
|
||||||
<td>Pixel C <br>“ryu”</td>
|
<td>Pixel C <br>"ryu"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">ryu-npc56p-preview-335a86a4.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">ryu-npd35k-factory-b4eed85d.tgz</a><br>
|
||||||
MD5: 4e21fb183bbbf467bee91598d587fd2e<br>
|
MD5: bdcb6f770e753668b5fadff2a6678e0d<br>
|
||||||
SHA-1: 335a86a435ee51f18464de343ad2e071c38f0e92
|
SHA-1: b4eed85de0d42c200348a8629084f78e24f72ac2
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="seed">
|
<tr id="seed">
|
||||||
<td>4G móviles en general (Android One) <br>“seed”</td>
|
<td>General Mobile 4G (Android One) <br>"seed"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">seed_l8150-npc56p-preview-82472ebc.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">seed_l8150-npd35k-factory-5ab1212b.tgz</a><br>
|
||||||
MD5: 983e083bc7cd0c4a2d39d6ebaa20202a<br>
|
MD5: 7d34a9774fdd6e025d485ce6cfc23c4c<br>
|
||||||
SHA-1: 82472ebc9a6054a103f53cb400a1351913c95127
|
SHA-1: 5ab1212bc9417269d391aacf1e672fff24b4ecc5
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="xperia">
|
||||||
|
<td>Sony Xperia Z3 <br> (D6603 and D6653)</td>
|
||||||
|
<td>Descarga: <a class="external-link" href="http://support.sonymobile.com/xperiaz3/tools/xperia-companion/">Xperia Companion</a><br>
|
||||||
|
Para más información, visita la sección <a class="external-link" href="https://developer.sony.com/develop/smartphones-and-tablets/android-n-developer-preview/">Prueba la Android N Developer Preview en Xperia Z3</a>.
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
@@ -366,29 +374,29 @@ que puedes usar para realizarle pruebas a tu aplicación, desde teléfonos hasta
|
|||||||
<h3 id="revertDevice">Desinstalar la Preview de un dispositivo</h3>
|
<h3 id="revertDevice">Desinstalar la Preview de un dispositivo</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Si quieres desinstalar la Preview de un dispositivo, puedes hacerlo de las
|
Si quieres desinstalar la muestra desde un dispositivo, puedes hacerlo de las
|
||||||
siguientes maneras: </p>
|
siguientes maneras: </p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong>Obtener una imagen de sistema con las especificaciones de fábrica</strong> y luego actualízala de manera manual
|
<li><strong>Obtener una imagen de sistema con las especificaciones de fábrica</strong> y luego actualízala de manera manual
|
||||||
para el dispositivo.
|
para el dispositivo.
|
||||||
<ul>
|
<ul>
|
||||||
<li>Para <strong>los dispositivos Nexus y Pixel C</strong>, consulta la página
|
<li>Para <strong>los dispositivos Nexus y Pixel C</strong>, consulta
|
||||||
<a href="http://developers.google.com/android/nexus/images">Imágenes de fábrica para dispositivos Nexus
|
la página <a href="http://developers.google.com/android/nexus/images">Imágenes de fábrica
|
||||||
</a>para descargas. </li>
|
para dispositivos Nexus </a>para descargas. </li>
|
||||||
<li>Para <strong>otros dispositivos</strong>, comunícate directamente con el fabricante del dispositivo
|
<li>Para <strong>otros dispositivos</strong>, comunícate directamente con el fabricante del dispositivo
|
||||||
. De manera alternativa, si el dispositivo es compatible con
|
. Como alternativa, si el dispositivo es compatible con
|
||||||
el Programa de Android beta, puedes registrar el dispositivo en el
|
el Programa de Android Beta, puedes registrar el dispositivo en el
|
||||||
programa y luego darlo de baja (consulta a continuación).</li>
|
programa y luego darlo de baja (consulta a continuación).</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><strong>Dar de baja el dispositivo del Programa de Android beta</strong>. Si el
|
<li><strong>Dar de baja el dispositivo del Programa Android Beta</strong>. Si el
|
||||||
dispositivo se registra en el <a href="https://g.co/androidbeta">Programa de Android beta
|
dispositivo se registra en el <a href="https://g.co/androidbeta">Programa de Android
|
||||||
</a>, independientemente del dispositivo, puedes simplemente darlo de baja desde el programa.
|
Beta</a>, sin importar el dispositivo, puedes darlo de baja desde el programa fácilmente.
|
||||||
<p>
|
<p>
|
||||||
El dispositivo recibirá una actualización OTA para la versión de producción más reciente
|
El dispositivo recibirá una actualización inalámbricas para la versión de producción más reciente de
|
||||||
de Android que se encuentre disponible para ese dispositivo (por ejemplo, Android 6.0 Marshmallow).
|
Android que se encuentre disponible para ese dispositivo (por ejemplo, Android 6.0 Marshmallow).
|
||||||
La actualización requiere un restablecimiento completo del dispositivo, entonces se quitarán
|
La actualización requiere un restablecimiento completo del dispositivo, por lo que se eliminarán los datos del usuario del
|
||||||
los datos del usuario en el dispositivo. Asegúrate de <strong>realizar una copia de seguridad de los datos importantes</strong> antes
|
dispositivo. No te olvides de crear una <strong>copia de seguridad de los datos importantes</strong> antes
|
||||||
de dar de baja un dispositivo.
|
de dar de baja un dispositivo.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
@@ -397,22 +405,22 @@ que puedes usar para realizarle pruebas a tu aplicación, desde teléfonos hasta
|
|||||||
<p class="note"><strong>Nota:</strong>
|
<p class="note"><strong>Nota:</strong>
|
||||||
Desinstalar una imagen de sistema de la Developer Preview antes
|
Desinstalar una imagen de sistema de la Developer Preview antes
|
||||||
del final del programa requiere un restablecimiento completo del dispositivo y elimina todos los datos del usuario
|
del final del programa requiere un restablecimiento completo del dispositivo y elimina todos los datos del usuario
|
||||||
en el dispositivo.
|
que se encuentren en él.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="setupAVD">Configurar un emulador</h2>
|
<h2 id="setupAVD">Configurar un emulador</h2>
|
||||||
|
|
||||||
<p>Para usar el emulador de Android para la ejecución de la Android N Preview, necesitas
|
<p>Para usar el emulador de Android para la ejecución de la Android N Preview, necesitas
|
||||||
descargar Android N Preview SDK y crear un dispositivo virtual para el
|
descargar el Android N Preview SDK y crear un dispositivo virtual para el
|
||||||
emulador.</p>
|
emulador.</p>
|
||||||
|
|
||||||
<p>Primero, descarga Android N Preview SDK de la siguiente manera (si
|
<p>Primero, descarga el Android N Preview SDK de la siguiente manera (si
|
||||||
ya lo obtuviste durante <a href="{@docRoot}preview/setup-sdk.html">la configuración
|
ya la obtuviste durante <a href="{@docRoot}preview/setup-sdk.html">la configuración
|
||||||
para desarrollar Android N</a>, puedes omitir esta parte):
|
para desarrollar Android N</a>, puedes omitir esta parte):
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>En Android Studio, abre el diálogo de configuración
|
<li>En Android Studio, abre el cuadro de diálogo de configuración
|
||||||
(<strong>File > Settings</strong> en Windows y Linux, o
|
(<strong>File > Settings</strong> en Windows y Linux, o
|
||||||
<strong>Android Studio > Preferences</strong> en Mac). En el panel
|
<strong>Android Studio > Preferences</strong> en Mac). En el panel
|
||||||
izquierdo, selecciona <strong>Appearance & Behavior >
|
izquierdo, selecciona <strong>Appearance & Behavior >
|
||||||
@@ -448,27 +456,21 @@ ejecutar las imágenes de sistema x86_64 para Android N.</p>
|
|||||||
luego haz clic en <strong>Next</strong>.</li>
|
luego haz clic en <strong>Next</strong>.</li>
|
||||||
<li>Selecciona la imagen de sistema <strong>N</strong> (con la ABI
|
<li>Selecciona la imagen de sistema <strong>N</strong> (con la ABI
|
||||||
<strong>x86</strong>), luego haz clic en <strong>Next</strong>.
|
<strong>x86</strong>), luego haz clic en <strong>Next</strong>.
|
||||||
(Solo las imágenes de sistema x86 son actualmente compatibles con el emulador de Android
|
(De momento, solo las imágenes de sistema x86 son compatibles con el emulador de Android
|
||||||
para la Android N Preview).
|
para la Android N Preview).
|
||||||
<li>Completa el resto de la configuración AVD y haz clic en
|
<li>Completa el resto de la configuración AVD y haz clic en
|
||||||
<strong>Finish</strong>.</li>
|
<strong>Finish</strong>.</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<p>Ahora puedes lanzar el emulador de Android con el AVD de la Android N Preview.</p>
|
<p>Ahora puedes ejecutar el emulador de Android con el AVD de la Android N Preview.</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
A fin de garantizar la mejor experiencia en el emulador de Android, instala la
|
A fin de garantizar la mejor experiencia en el emulador de Android, verifica que estás utilizando
|
||||||
Android Studio 2.1 Preview, que admite el <a href="http://tools.android.com/tech-docs/emulator">emulador Android 2.0 Beta</a>
|
Android Studio 2.1 o una versión superior, compatible con el <a href="http://tools.android.com/tech-docs/emulator">emulador de Android 2.0</a>,
|
||||||
con mayor rendimiento en comparación con el emulador en
|
cuyo rendimiento es mayor si se lo compara con el emulador utilizado en
|
||||||
Android Studio 1.5.</p>
|
Android Studio 1.5.</p>
|
||||||
|
|
||||||
<p class="note"><strong>Nota:</strong>
|
<p>Para obtener más información sobre la creación de dispositivos virtuales, consulta <a href="{@docRoot}tools/devices/index.html">Administración de dispositivos virtuales</a>.
|
||||||
Si actualmente estás usando Android Studio 2.0 Beta, existe un problema conocido
|
|
||||||
que no te permite crear AVD con las imágenes de sistema de la N Preview;
|
|
||||||
por el momento necesitas usar la muestra de Android Studio 2.1 para crear AVD.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>Para obtener más información sobre la creación de dispositivos virtuales, consulte la <a href="{@docRoot}tools/devices/index.html">Administración de dispositivos virtuales.</a>
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
552
docs/html-intl/intl/es/preview/features/afw.jd
Normal file
@@ -0,0 +1,552 @@
|
|||||||
|
page.title=Actualizaciones de Android for Work
|
||||||
|
page.metaDescription=Nuevas API y funciones de Android for Work en Android N.
|
||||||
|
page.keywords="android for work", "android N", "enterprise", "QR code"
|
||||||
|
|
||||||
|
@jd:body
|
||||||
|
|
||||||
|
<div id="qv-wrapper">
|
||||||
|
<div id="qv">
|
||||||
|
<h2>En este documento</h2>
|
||||||
|
<ol>
|
||||||
|
<li><a href="#qr">Provisión de código QR
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#sec-challenge">Comprobación de seguridad para perfiles de trabajo
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#suspend">Inhabilitar acceso a aplicaciones
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#toggle-work">Activar o desactivar el modo de trabajo
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#always-on-vpn">VPN siempre visibles
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#contacts">Integración de contactos con el perfil de trabajo
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#remote-reboot">Reinicio remoto
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#disable-roaming">Inhabilitar roaming de datos
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#process-logging">Registros de procesos empresariales
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#bug-reports">Informes de errores remotos
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#remove-cert">Quitar un certificado de cliente
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#grant-cert-on-install">Otorgar acceso a certificado de cliente
|
||||||
|
en la instalación</a></li>
|
||||||
|
|
||||||
|
<li><a href="#ui-policy">Transparencia de la política de IU del sistema
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#restrictions-mgmt">Mejoras en la administración de restricciones de aplicaciones
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#location-off">Interruptor de desactivación de los servicios de ubicación
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#custom-provisioning">Provisión personalizada
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#multi-wifi-ca">Múltiples certificados de CA de Wi-Fi
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#custom-lock">Mensaje personalizado en la pantalla bloqueada
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#work-connectionservice">ConnectionService del perfil de trabajo
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#lock-wp">Bloquear fondo de pantalla
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#lock-user-icon">Bloquear ícono de usuario
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#health-monitoring">Control del estado del dispositivo
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<h2>Consulta también</h2>
|
||||||
|
<ul>
|
||||||
|
<li><a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia sobre N Preview SDK
|
||||||
|
</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>En este documento, se describen las nuevas funciones de Android for Work que se proporcionan en
|
||||||
|
Android N.</p>
|
||||||
|
|
||||||
|
<h2 id="qr">Provisión de código QR</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android for Work ahora es compatible con la utilización de códigos QR para aprovisionar dispositivos
|
||||||
|
de responsabilidad corporativa. Gracias al asistente de configuración, ahora puedes escanear un código QR para aprovisionar
|
||||||
|
el dispositivo.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="sec-challenge">Comprobación de seguridad para perfiles de trabajo</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de perfiles pueden solicitar que los usuarios especifiquen una comprobación de seguridad para las aplicaciones
|
||||||
|
que se ejecutan en el perfil de trabajo. Dicha comprobación se muestra en el sistema cuando el
|
||||||
|
usuario intenta abrir cualquier aplicación de trabajo. Si el usuario completa con éxito la
|
||||||
|
comprobación de seguridad, el sistema desbloquea el perfil de trabajo y lo descifra
|
||||||
|
si es necesario.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Si el propietario de un perfil envía una intent {@link
|
||||||
|
android.app.admin.DevicePolicyManager#ACTION_SET_NEW_PASSWORD}, el
|
||||||
|
sistema le pide al usuario que configure una comprobación de seguridad. El propietario del perfil también puede
|
||||||
|
enviar una intent <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code>
|
||||||
|
para que el usuario establezca un bloqueo de dispositivo.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de perfiles pueden elegir establecer las políticas de contraseña para la comprobación del perfil de trabajo de modo que sean
|
||||||
|
diferentes de aquellas para las contraseñas de otros dispositivos. Por ejemplo, la
|
||||||
|
longitud mínima para la respuesta de comprobación del dispositivo puede ser diferente de la
|
||||||
|
longitud necesaria para otras contraseñas. Los propietarios de perfiles establecen las políticas de
|
||||||
|
comprobación mediante los métodos {@link android.app.admin.DevicePolicyManager}
|
||||||
|
comunes, como por ejemplo, {@link
|
||||||
|
android.app.admin.DevicePolicyManager#setPasswordQuality
|
||||||
|
setPasswordQuality()} y {@link
|
||||||
|
android.app.admin.DevicePolicyManager#setPasswordMinimumLength
|
||||||
|
setPasswordMinimumLength()}. El propietario del perfil también puede establecer el bloqueo del dispositivo mediante
|
||||||
|
la utilización de la instancia de{@link android.app.admin.DevicePolicyManager} devuelta
|
||||||
|
por el nuevo método <code>DevicePolicyManager.getParentProfileInstance()</code>
|
||||||
|
. Además, los propietarios de perfiles pueden personalizar la pantalla de credenciales para
|
||||||
|
la comprobación de trabajo mediante la utilización de los nuevos métodos de la clase{@link android.app.admin.DevicePolicyManager}
|
||||||
|
<code>setOrganizationColor()</code> y
|
||||||
|
<code>setOrganizationName()</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para obtener detalles sobre los nuevos métodos y constantes, consulta la página de referencia de
|
||||||
|
<code>DevicePolicyManager</code> en la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia sobre N Preview SDK</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="suspend">Inhabilitar acceso a aplicaciones</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de perfiles y dispositivos pueden suspender temporariamente el acceso a los paquetes
|
||||||
|
mediante una llamada al nuevo método <code>DevicePolicyManager.setPackagesSuspended()</code>
|
||||||
|
. Los propietarios pueden utilizar el mismo método para volver a habilitar esos paquetes.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Mientras un paquete está suspendido, este no puede comenzar actividades, se suprimen las notificaciones al
|
||||||
|
paquete y se oculta la entrada de la aplicación en la <a href="{@docRoot}guide/components/recents.html">pantalla de información general</a>.
|
||||||
|
Los paquetes suspendidos no aparecen en la <a href="{@docRoot}guide/components/recents.html">pantalla de información general</a> y
|
||||||
|
no pueden mostrar diálogos (incluidos avisos y snackbars). Además, no pueden reproducir
|
||||||
|
audio ni hacer vibrar el dispositivo.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los lanzadores deben aplicar una IU distintiva para las aplicaciones suspendidas a fin de mostrar que las
|
||||||
|
aplicaciones no están actualmente disponibles; por ejemplo, el ícono de la aplicación puede aparecer en color
|
||||||
|
gris. Los lanzadores pueden averiguar si una aplicación está suspendida llamando al nuevo método
|
||||||
|
<code>DevicePolicyManager.getPackageSuspended()</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="toggle-work">Activar o desactivar el modo de trabajo</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
En dispositivos de perfil doble, los usuarios pueden activar o desactivar el modo de trabajo. Mientras este último está
|
||||||
|
desactivado, el perfil administrado se encuentra inactivo temporariamente. Se inhabilitan
|
||||||
|
todas las aplicaciones del perfil de trabajo, la sincronización en segundo plano y las notificaciones, incluida
|
||||||
|
la aplicación del propietario del perfil. Mientras el perfil de trabajo está deshabilitado, en el sistema
|
||||||
|
se muestra un ícono de estado persistente para recordarles a los usuarios que no pueden iniciar aplicaciones
|
||||||
|
de trabajo. El launcher del sistema indica que no se puede acceder a aplicaciones ni widgets
|
||||||
|
de trabajo.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="always-on-vpn">VPN siempre visibles</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de dispositivos y perfiles pueden solicitar que las aplicaciones de trabajo siempre se conecten a la red
|
||||||
|
a través de una VPN especificada. Si los propietarios establecen este requisito, el
|
||||||
|
dispositivo inicia automáticamente esa VPN en el inicio.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios pueden requerir el uso de una VPN llamando al nuevo método
|
||||||
|
<code>DevicePolicyManager.setAlwaysOnVpnPackage()</code>. Para averiguar
|
||||||
|
si el propietario ha establecido un requisito de VPN, llama al nuevo método
|
||||||
|
<code>DevicePolicyManager.GetAlwaysOnVpnPackage()</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Debido a que los servicios de VPN pueden enlazarse directamente a través del sistema sin interacción con aplicaciones,
|
||||||
|
los clientes de VPN deben administrar nuevos puntos de entrada para VPN siempre visibles. Como antes, puedes
|
||||||
|
encontrar servicios activos mediante la utilización de un filtro de intent que coincida con la acción
|
||||||
|
{@link android.net.VpnService android.net.VpnService}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para configurar manualmente un cliente de VPN que esté siempre visible y que implemente {@link
|
||||||
|
android.net.VpnService}, los usuarios deben ir a <strong>Settings > More >
|
||||||
|
pantalla VPN</strong>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="contacts">Integración de contactos con el perfil de trabajo</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de perfiles pueden permitir la búsqueda local y la búsqueda en directorio de los contactos de trabajo
|
||||||
|
a partir del usuario principal. Por ejemplo, un usuario puede acceder a contactos personales y laborales del directorio
|
||||||
|
desde el teléfono personal o la aplicación de contactos (si
|
||||||
|
así lo permite el administrador del perfil).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los desarrolladores que aprovechan el proveedor de contactos pueden utilizar la API de contactos empresariales
|
||||||
|
para acceder a las entradas del directorio del perfil de trabajo desde el usuario principal si así lo permiten
|
||||||
|
las siguientes políticas:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><code>ContactsContract.Phone.ENTERPRISE_CONTENT_FILTER_URI</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><code>ContactsContract.Email.ENTERPRISE_CONTENT_FILTER_URI</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><code>ContactsContract.Callable.ENTERPRISE_CONTENT_FILTER_URI</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><code>ContactsContract.Directory.ENTERPRISE_CONTENT_URI</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><code>ContactsContract.Directory.isEntepriseDirectoryId()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de perfiles pueden controlar la visibilidad de los contactos laborales en el usuario
|
||||||
|
principal por medio de los nuevos métodos a continuación:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>DevicePolicyManager.setCrossProfileContactsSearchDisabled()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DevicePolicyManager.getCrossProfileContactsSearchDisabled()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="remote-reboot">Reinicio remoto</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios pueden reiniciar sus dispositivos de forma remota. En algunos casos, no se puede acceder al botón de encendido de los dispositivos implementados en
|
||||||
|
lugares públicos dentro de recintos. Si se debe
|
||||||
|
reiniciar un dispositivo, los administradores pueden hacerlo utilizando el nuevo método
|
||||||
|
<code>DevicePolicyManager.reboot()</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="disable-roaming">Inhabilitar roaming de datos</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de dispositivos pueden inhabilitar el roaming de datos mediante la nueva restricción de usuario de {@link
|
||||||
|
android.os.UserManager} denominada <code>DISALLOW_DATA_ROAMING</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="process-logging">Registros de procesos empresariales</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de dispositivos pueden identificar actividades sospechosas mediante un rastreo remoto de la actividad del
|
||||||
|
dispositivo, incluidos inicios de aplicaciones, actividad adb y desbloqueos de pantalla. Los registros de
|
||||||
|
procesos no requieren del consentimiento del usuario. Para recuperar registros, los propietarios de dispositivos habilitan
|
||||||
|
los registros de dispositivos mediante <code>DevicePolicyManager.setSecurityLoggingEnabled()</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Entre los cambios en la API, se incluyen los siguientes:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
La nueva clase <code>android.app.admin.SecurityLog</code> y sus
|
||||||
|
métodos
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>void DevicePolicyManager.setSecurityLoggingEnabled()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>boolean DevicePolicyManager.isSecurityLoggingEnabled()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>List<SecurityEvent>
|
||||||
|
DevicePolicyManager.retrieveSecurityLogs()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>List<SecurityEvent>
|
||||||
|
DevicePolicyManager.retrievePreRebootSecurityLogs()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>void DeviceAdminReceiver.onSecurityLogsAvailable()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="bug-reports">Informes de errores remotos</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de dispositivos pueden activar y recuperar de forma remota un informe de errores que contenga un
|
||||||
|
archivo de descarga sobre el estado del dispositivo, lo que permite llevar a cabo una investigación forense de un
|
||||||
|
incidente conocido o un dispositivo afectado. Debido a la naturaleza detallada del informe de errores,
|
||||||
|
se requiere el consentimiento del usuario.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android N incluye los siguientes agregados de API para ofrecer compatibilidad con esta función. Para obtener
|
||||||
|
detalles, consulte la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia sobre N Preview SDK
|
||||||
|
</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>DevicePolicyManager.requestBugreport()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DeviceAdminReceiver.onBugreportFailed()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DeviceAdminReceiver.onBugreportShared()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DeviceAdminReceiver.onBugreportSharingDeclined()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DeviceAdminReceiver.BUGREPORT_FAILURE_FAILED_COMPLETING</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DeviceAdminReceiver.BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="remove-cert">Quitar un certificado de cliente</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de perfiles y dispositivos ahora pueden quitar certificados de cliente que se
|
||||||
|
instalaron a través de {@link android.app.admin.DevicePolicyManager#installKeyPair
|
||||||
|
installKeyPair()} llamando al nuevo método
|
||||||
|
<code>DevicePolicyManager.removeKeyPair()</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="grant-cert-on-install">Otorgar acceso a certificado de cliente
|
||||||
|
en la instalación</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Si un propietario de perfil o dispositivo otorga a una aplicación de terceros la capacidad de
|
||||||
|
administrar certificados, dicha aplicación puede acceder por sí sola a los certificados que
|
||||||
|
instala sin intervención alguna por parte del propietario.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
La API existente para administrar certificados se extiende para incluir lo siguiente:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><code>DevicePolicyManager.installKeyPair()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="ui-policy">Transparencia de la política de IU del sistema</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Las políticas que afectan la experiencia del usuario o restringen las configuraciones del usuario se divulgan
|
||||||
|
en su totalidad al usuario, y los propietarios de perfiles y dispositivos pueden atribuir la
|
||||||
|
política al departamento de TI de la empresa. Además de un mensaje “Action
|
||||||
|
not allowed” consistente en Settings, los administradores de TI pueden configurar un
|
||||||
|
mensaje de soporte específico para la organización en la configuración del dispositivo con los nuevos
|
||||||
|
métodos{@link android.app.admin.DevicePolicyManager} a continuación:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>DevicePolicyManager.setShortSupportMessage()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DevicePolicyManager.setLongSupportMessage()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="restrictions-mgmt">Mejoras en la administración de las restricciones de aplicaciones</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
El propietario del dispositivo o perfil puede habilitar otra aplicación para que administre las restricciones de
|
||||||
|
aplicaciones mediante el nuevo método
|
||||||
|
<code>DevicePolicyManager.setApplicationRestrictionsManagingPackage()</code>
|
||||||
|
. La aplicación nominada puede controlar si se otorgó este permiso
|
||||||
|
llamando a
|
||||||
|
<code>DevicePolicyManager.isCallerApplicationRestrictionsManagingPackage()</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Una aplicación nominada para administrar restricciones de aplicaciones puede llamar a {@link
|
||||||
|
android.app.admin.DevicePolicyManager#setApplicationRestrictions
|
||||||
|
setApplicationRestrictions()} y {@link
|
||||||
|
android.app.admin.DevicePolicyManager#getApplicationRestrictions
|
||||||
|
getApplicationRestrictions()} para cualquier paquete dentro de ese usuario o perfil.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="location-off">Interruptor de desactivación de los servicios de ubicación</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los usuarios pueden inhabilitar los permisos de ubicación para las aplicaciones de trabajo mientras continúan
|
||||||
|
accediendo a información sobre ubicación en sus aplicaciones personales. Mediante un interruptor independiente de acceso
|
||||||
|
a información de ubicación en Location Settings, los usuarios pueden denegar las actualizaciones de ubicación o
|
||||||
|
las consultas de última ubicación para las aplicaciones que se ejecutan en el perfil de trabajo.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Gracias al interruptor de desactivación de servicios de ubicación de nivel superior, se inhabilita el acceso a este tipo de información para
|
||||||
|
el perfil principal y el perfil administrado.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="custom-provisioning">Aprovisionamiento personalizado</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
En una aplicación se pueden personalizar los flujos de provisión
|
||||||
|
del propietario del perfil y del propietario del dispositivo con logos y colores corporativos.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<code>DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR</code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Permite personalizar el color del flujo.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
<code>DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI</code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Permite personalizar el flujo con un logo corporativo.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<h2 id="multi-wifi-ca">Múltiples certificados de CA de Wi-Fi</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de perfiles y dispositivos pueden configurar múltiples certificados de CA para una configuración
|
||||||
|
de Wi-Fi determinada. Cuando las redes de Wi-Fi corporativas tienen CA independientes para
|
||||||
|
diferentes puntos de acceso con el mismo SSID, los administradores de TI pueden incluir todas las
|
||||||
|
CA relevantes en la configuración Wi-Fi utilizando el nuevo método
|
||||||
|
<code>setCaCertificates()</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Las API que se agregaron son las siguientes:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>WifiEnterpriseConfig.setCaCertificates()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>WifiEnterpriseConfig.getCaCertificates()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="custom-lock">Mensaje personalizado en la pantalla bloqueada</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de dispositivos pueden proporcionar información de propietario para que aparezca en la pantalla bloqueada.
|
||||||
|
Esta información prevalece sobre el mensaje de la pantalla bloqueada del usuario (si se configuró
|
||||||
|
uno). Los nuevos métodos {@link android.app.admin.DevicePolicyManager} son los siguientes:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>setDeviceOwnerLockScreenInfo()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>getDeviceOwnerLockScreenInfo()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="work-connectionservice">ConnectionService del perfil de trabajo</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Los propietarios de perfiles pueden especificar una aplicación de teléfono de trabajo que utilice un
|
||||||
|
{@link android.telecom.ConnectionService} específico del trabajo para el backend
|
||||||
|
de llamadas (cuentas de llamadas). El teléfono de trabajo lleva únicamente un registro de llamadas de trabajo
|
||||||
|
y depende solo de contactos laborales. Los usuarios tienen una experiencia de IU
|
||||||
|
de llamada entrante consistente independientemente de la aplicación de marcación. Las llamadas laborales que ingresan en las
|
||||||
|
cuentas de llamadas de trabajo se distinguen de las llamadas personales que ingresan en
|
||||||
|
las cuentas de llamadas personales.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
El teléfono debe controlar el nuevo marcador
|
||||||
|
<code>android.telecom.Call.PROPERTY_WORK_CALL</code> para determinar si una llamada es
|
||||||
|
de tipo laboral. Si se trata de una llamada laboral, el teléfono debe indicarlo
|
||||||
|
, por ejemplo, mediante el agregado de una insignia de trabajo.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="lock-wp">Bloquear fondo de pantalla</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Mediante una nueva restricción de usuario (<code>DISALLOW_SET_WALLPAPER</code>), se evita que el
|
||||||
|
usuario modifique el fondo de pantalla. Los propietarios de dispositivos o perfiles aún pueden
|
||||||
|
modificar el fondo de pantalla. Sin embargo, solo pueden hacerlo para el
|
||||||
|
usuario o perfil que controlan. Por ejemplo, el propietario de un perfil no puede modificar el
|
||||||
|
fondo de pantalla del usuario primario,
|
||||||
|
pero sí pueden hacerlo el propietario de un dispositivo o el propietario de un perfil en el perfil principal. El propietario de un dispositivo o perfil que desea modificar el
|
||||||
|
fondo de pantalla debe controlar si el usuario o perfil que administra posee un
|
||||||
|
fondo de pantalla ({@link android.app.WallpaperManager#isWallpaperSupported
|
||||||
|
isWallpaperSupported()}) y si puede modificarlo (con el
|
||||||
|
nuevo método <code>WallpaperManager.isWallpaperSettingAllowed()</code>).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="lock-user-icon">Bloquear ícono de usuario</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Mediante una nueva restricción de usuario (<code>DISALLOW_SET_USER_ICON</code>), se evita que el
|
||||||
|
usuario modifique el ícono de usuario. El propietario del dispositivo o del perfil del usuario
|
||||||
|
aún puede modificar el ícono. Sin embargo, un propietario de perfil solo puede modificar el ícono
|
||||||
|
de usuario del perfil que controla.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="health-monitoring">Control del estado del dispositivo</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
El propietario de un perfil o dispositivo puede usar la nueva interfaz
|
||||||
|
<code>HardwarePropertiesManager</code> para recuperar información
|
||||||
|
sobre el estado del dispositivo, como por ejemplo, las temperaturas de CPU o GPU y el uso de la CPU. La nueva interfaz
|
||||||
|
de control es especialmente útil para controlar dispositivos sin supervisión
|
||||||
|
que se ejecutan en una ubicación remota.
|
||||||
|
</p>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Optimizaciones en segundo plano
|
page.title=Optimizaciones en segundo plano
|
||||||
page.metaDescription=Nuevas restricciones para difusiones implícitas.
|
page.metaDescription=Nuevas restricciones para transmisiones implícitas.
|
||||||
page.keywords="android N", "implicit broadcasts", "job scheduler"
|
page.keywords="android N", "implicit broadcasts", "job scheduler"
|
||||||
page.image=images/cards/card-nyc_2x.jpg
|
page.image=images/cards/card-nyc_2x.jpg
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
<div id="qv-wrapper">
|
<div id="qv-wrapper">
|
||||||
<div id="qv">
|
<div id="qv">
|
||||||
<h2>
|
<h2>
|
||||||
Contenido del documento
|
En este documento
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
@@ -18,7 +18,7 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="#sched-jobs">Programación de trabajos en red en conexiones
|
<a href="#sched-jobs">Programación de trabajos en red en conexiones
|
||||||
sin medición</a>
|
sin medición de uso</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
@@ -48,35 +48,37 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Los procesos en segundo plano pueden consumir mucha memoria y batería. Por ejemplo, una
|
Los procesos en segundo plano pueden consumir mucha memoria y batería. Por ejemplo, una
|
||||||
difusión implícita puede iniciar muchos procesos en segundo plano registrados para
|
transmisión implícita puede iniciar muchos procesos en segundo plano registrados para
|
||||||
escucharla, aunque esos procesos quizá no desempeñen un trabajo considerable. Esto puede
|
escucharla, aunque esos procesos quizá no desempeñen un trabajo considerable. Esto puede
|
||||||
afectar de forma significativa tanto el rendimiento del dispositivo como la experiencia de usuario.
|
afectar de forma significativa tanto el rendimiento del dispositivo como la experiencia de usuario.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para atenuar este problema, la N Developer Preview aplica las siguientes
|
Para corregir este problema, en Android N se aplican las siguientes
|
||||||
restricciones:
|
restricciones:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Las aplicaciones orientadas a la Preview no reciben difusiones {@link
|
<li>Las aplicaciones orientadas a la Preview no reciben transmisiones {@link
|
||||||
android.net.ConnectivityManager#CONNECTIVITY_ACTION} si
|
android.net.ConnectivityManager#CONNECTIVITY_ACTION} si
|
||||||
en su manifiesto registran que las reciben. Las aplicaciones que se ejecutan en segundo plano
|
en su manifiesto registran que las reciben. Las aplicaciones que se ejecutan aún pueden
|
||||||
aún pueden escuchar {@code CONNECTIVITY_CHANGE} en su subproceso principal al
|
escuchar {@code CONNECTIVITY_CHANGE} en su subproceso principal mediante el registro de un
|
||||||
registrar un {@link android.content.BroadcastReceiver} con {@link
|
{@link android.content.BroadcastReceiver} con {@link
|
||||||
android.content.Context#registerReceiver Context.registerReceiver()}.
|
android.content.Context#registerReceiver Context.registerReceiver()}.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Las aplicaciones no pueden enviar ni recibir difusiones {@link
|
<li>Las aplicaciones no pueden enviar ni recibir transmisiones {@link
|
||||||
android.hardware.Camera#ACTION_NEW_PICTURE} ni {@link
|
android.hardware.Camera#ACTION_NEW_PICTURE} ni {@link
|
||||||
android.hardware.Camera#ACTION_NEW_VIDEO}. Esta optimización
|
android.hardware.Camera#ACTION_NEW_VIDEO}. Esta optimización
|
||||||
afecta a todas las aplicaciones, no solo a las orientadas a la Preview.
|
afecta a todas las aplicaciones, no solo a aquellas orientadas a la Preview.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
Si la aplicación utiliza cualquiera de estas intents, debes quitar las dependencias en
|
||||||
|
ellas lo antes posible a fin de poder orientar los dispositivos Android N correctamente.
|
||||||
El framework de Android ofrece varias soluciones para mitigar la necesidad de
|
El framework de Android ofrece varias soluciones para mitigar la necesidad de
|
||||||
estas difusiones implícitas. Por ejemplo, {@link android.app.job.JobScheduler}
|
estas transmisiones implícitas. Por ejemplo, {@link android.app.job.JobScheduler}
|
||||||
y <a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager">
|
y <a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager">
|
||||||
{@code GcmNetworkManager}</a> proporcionan mecanismos sólidos para programar operaciones
|
{@code GcmNetworkManager}</a> proporcionan mecanismos sólidos para programar operaciones
|
||||||
de red cuando se cumplen las condiciones especificadas, como una conexión a una
|
de red cuando se cumplen las condiciones especificadas, como una conexión a una
|
||||||
@@ -98,10 +100,10 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Las aplicaciones orientadas a la N Developer Preview no reciben difusiones {@link
|
Las aplicaciones orientadas a Android N no reciben transmisiones {@link
|
||||||
android.net.ConnectivityManager#CONNECTIVITY_ACTION} si en su
|
android.net.ConnectivityManager#CONNECTIVITY_ACTION} si en su manifiesto
|
||||||
manifiesto registran que las reciben, y los procesos dependen de que
|
registran que las reciben, y los procesos que dependan de esta
|
||||||
no se inicie esa difusión. Esto podría ser un problema para aplicaciones que buscan
|
transmisión no se iniciarán. Esto podría ser un problema para aplicaciones que buscan
|
||||||
escuchar los cambios en la red o realizar múltiples actividades en red cuando el
|
escuchar los cambios en la red o realizar múltiples actividades en red cuando el
|
||||||
dispositivo se conecta a una red sin medición de uso. Ya existen varias soluciones
|
dispositivo se conecta a una red sin medición de uso. Ya existen varias soluciones
|
||||||
en relación con esta restricción en el framework de Android, pero elegir
|
en relación con esta restricción en el framework de Android, pero elegir
|
||||||
@@ -111,7 +113,7 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
<p class="note">
|
<p class="note">
|
||||||
<strong>Nota:</strong> Un {@link android.content.BroadcastReceiver} registrado con
|
<strong>Nota:</strong> Un {@link android.content.BroadcastReceiver} registrado con
|
||||||
{@link android.content.Context#registerReceiver Context.registerReceiver()}
|
{@link android.content.Context#registerReceiver Context.registerReceiver()}
|
||||||
continúa recibiendo esas difusiones mientras la aplicación está en segundo plano.
|
continúa recibiendo estas transmisiones mientras se ejecuta la aplicación.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="sched-jobs">
|
<h3 id="sched-jobs">
|
||||||
@@ -162,9 +164,8 @@ public static void scheduleJob(Context context) {
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Las aplicaciones que se ejecutan en segundo plano aún pueden escuchar {@code
|
Las aplicaciones que se ejecutan aún pueden escuchar {@code CONNECTIVITY_CHANGE} con un
|
||||||
CONNECTIVITY_CHANGE} con un {@link
|
{@link android.content.BroadcastReceiver} registrado. No obstante, la API {@link
|
||||||
android.content.BroadcastReceiver} registrado. No obstante, la API {@link
|
|
||||||
android.net.ConnectivityManager} ofrece un método más robusto para solicitar
|
android.net.ConnectivityManager} ofrece un método más robusto para solicitar
|
||||||
un callback solo cuando se cumplen las condiciones de red especificadas.
|
un callback solo cuando se cumplen las condiciones de red especificadas.
|
||||||
</p>
|
</p>
|
||||||
@@ -194,11 +195,11 @@ public static void scheduleJob(Context context) {
|
|||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En la N Developer Preview, las aplicaciones no pueden enviar ni recibir difusiones {@link
|
En Android N, las aplicaciones no pueden enviar ni recibir transmisiones {@link
|
||||||
android.hardware.Camera#ACTION_NEW_PICTURE} ni {@link
|
android.hardware.Camera#ACTION_NEW_PICTURE} ni {@link
|
||||||
android.hardware.Camera#ACTION_NEW_VIDEO}. Esta restricción ayuda a
|
android.hardware.Camera#ACTION_NEW_VIDEO}. Esta restricción ayuda a
|
||||||
aliviar el impacto en el rendimiento y la experiencia de usuario cuando varias aplicaciones deben
|
aliviar el impacto en el rendimiento y la experiencia de usuario cuando varias aplicaciones deben
|
||||||
activarse para procesar una nueva imagen o video. La N Developer Preview
|
activarse para procesar una nueva imagen o video. Android N
|
||||||
extiende {@link android.app.job.JobInfo} y {@link
|
extiende {@link android.app.job.JobInfo} y {@link
|
||||||
android.app.job.JobParameters} para proporcionar una solución alternativa.
|
android.app.job.JobParameters} para proporcionar una solución alternativa.
|
||||||
</p>
|
</p>
|
||||||
@@ -208,7 +209,7 @@ public static void scheduleJob(Context context) {
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para activar trabajos en los cambios del URI de contenido, la N Developer Preview amplía
|
Para activar trabajos en los cambios del URI de contenido, Android N extiende
|
||||||
la API {@link android.app.job.JobInfo} con los siguientes métodos:
|
la API {@link android.app.job.JobInfo} con los siguientes métodos:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -243,10 +244,10 @@ public static void scheduleJob(Context context) {
|
|||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<p class="note">
|
<p class="note">
|
||||||
<strong>Nota:</strong> no se puede usar {@code TriggerContentUri()} junto
|
<strong>Nota:</strong> No se puede usar {@code TriggerContentUri()} junto
|
||||||
con {@link android.app.job.JobInfo.Builder#setPeriodic
|
con {@link android.app.job.JobInfo.Builder#setPeriodic
|
||||||
setPeriodic()} ni {@link android.app.job.JobInfo.Builder#setPersisted
|
setPeriodic()} ni {@link android.app.job.JobInfo.Builder#setPersisted
|
||||||
setPersisted()}. Para controlar de forma constante la presencia de cambios, programa un nuevo
|
setPersisted()}. Para controlar de forma constante la presencia de cambios en el contenido, programa un nuevo
|
||||||
{@link android.app.job.JobInfo} antes de que el {@link
|
{@link android.app.job.JobInfo} antes de que el {@link
|
||||||
android.app.job.JobService} de la aplicación termine de administrar la callback más reciente.
|
android.app.job.JobService} de la aplicación termine de administrar la callback más reciente.
|
||||||
</p>
|
</p>
|
||||||
@@ -266,7 +267,7 @@ public static void scheduleJob(Context context) {
|
|||||||
MY_BACKGROUND_JOB,
|
MY_BACKGROUND_JOB,
|
||||||
new ComponentName(context, MediaContentJob.class));
|
new ComponentName(context, MediaContentJob.class));
|
||||||
builder.addTriggerContentUri(
|
builder.addTriggerContentUri(
|
||||||
new JobInfo.TriggerContentUri(MEDIA_URI,
|
new JobInfo.TriggerContentUri(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
|
||||||
JobInfo.TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS));
|
JobInfo.TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS));
|
||||||
js.schedule(builder.build());
|
js.schedule(builder.build());
|
||||||
}
|
}
|
||||||
@@ -283,7 +284,7 @@ public static void scheduleJob(Context context) {
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
La N Developer Preview también amplía {@link android.app.job.JobParameters} para
|
Android N también amplía {@link android.app.job.JobParameters} para
|
||||||
permitir que tu aplicación reciba información útil sobre qué autoridades de contenido
|
permitir que tu aplicación reciba información útil sobre qué autoridades de contenido
|
||||||
y URI activaron el trabajo:
|
y URI activaron el trabajo:
|
||||||
</p>
|
</p>
|
||||||
@@ -355,36 +356,36 @@ public boolean onStartJob(JobParameters params) {
|
|||||||
<p>
|
<p>
|
||||||
Optimizar tus aplicaciones para que se ejecuten en dispositivos con poca memoria o en condiciones de niveles bajos
|
Optimizar tus aplicaciones para que se ejecuten en dispositivos con poca memoria o en condiciones de niveles bajos
|
||||||
de memoria puede mejorar el rendimiento y la experiencia del usuario. Eliminar
|
de memoria puede mejorar el rendimiento y la experiencia del usuario. Eliminar
|
||||||
dependencias en servicios en segundo plano y receptores de difusiones implícitas
|
dependencias en servicios en segundo plano y receptores de transmisiones implícitas
|
||||||
registrados estadísticamente puede ayudar a que tu aplicación se ejecute mejor en esos dispositivos. Si bien
|
registrados estadísticamente puede ayudar a que tu aplicación se ejecute mejor en esos dispositivos. Si bien
|
||||||
la N Developer Preview toma medidas para reducir algunos de esos problemas, te
|
Android N toma medidas para reducir algunos de estos problemas, te
|
||||||
recomendamos que optimices tu aplicación para que pueda ejecutarse sin utilizar esos
|
recomendamos que optimices tu aplicación para que pueda ejecutarse sin utilizar esos
|
||||||
procesos en segundo plano.
|
procesos en segundo plano.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
La N Developer Preview presenta algunos comandos adicionales de <a href="{@docRoot}tools/help/adb.html">Puente de Depuración Android (en inglés, Android Debug Bridge, ADB)</a> que
|
Android N presenta algunos comandos adicionales de <a href="{@docRoot}tools/help/adb.html">Android Debug Bridge (ADB)</a> que
|
||||||
puedes usar para probar el comportamiento de la aplicación con esos procesos en segundo plano deshabilitados:
|
puedes usar para probar el comportamiento de la aplicación con esos procesos en segundo plano deshabilitados:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Para simular condiciones en las que no hay difusiones implícitas ni servicios en segundo plano
|
<li>Para simular condiciones en las que no hay transmisiones implícitas ni servicios en segundo plano
|
||||||
disponibles, ingresa el siguiente comando:
|
disponibles, ingresa el siguiente comando:
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li style="list-style: none; display: inline">
|
<li style="list-style: none; display: inline">
|
||||||
<pre class="no-pretty-print">
|
<pre class="no-pretty-print">
|
||||||
{@code $ adb shell cmd appops set RUN_IN_BACKGROUND ignore}
|
{@code $ adb shell cmd appops set <package> RUN_IN_BACKGROUND ignore}
|
||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Para volver a habilitar las difusiones implícitas y los servicios en segundo plano, ingresa el
|
<li>Para volver a habilitar las transmisiones implícitas y los servicios en segundo plano, ingresa el
|
||||||
siguiente comando:
|
siguiente comando:
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li style="list-style: none; display: inline">
|
<li style="list-style: none; display: inline">
|
||||||
<pre class="no-pretty-print">
|
<pre class="no-pretty-print">
|
||||||
{@code $ adb shell cmd appops set RUN_IN_BACKGROUND allow}
|
{@code $ adb shell cmd appops set <package> RUN_IN_BACKGROUND allow}
|
||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
234
docs/html-intl/intl/es/preview/features/data-saver.jd
Normal file
@@ -0,0 +1,234 @@
|
|||||||
|
page.title=Ahorro de datos
|
||||||
|
metaDescription=User-enabled data usage optimization.
|
||||||
|
page.keywords="android N", "data usage", "metered network"
|
||||||
|
page.image=images/cards/card-nyc_2x.jpg
|
||||||
|
@jd:body
|
||||||
|
|
||||||
|
<div id="qv-wrapper">
|
||||||
|
<div id="qv">
|
||||||
|
<h2>
|
||||||
|
En este documento
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<a href="#status">Verificación de las preferencias de ahorro de datos</a>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<a href="#request-whitelist">Solicitud de permisos de lista blanca</a>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#monitor-changes">Control de cambios en las preferencias
|
||||||
|
de ahorro de datos</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#testing">Pruebas con comandos de Android Debug Bridge</a>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Durante la vida útil de un smartphone, el costo de un plan de datos móviles puede
|
||||||
|
superar fácilmente el costo del propio dispositivo. En la versión N Developer Preview, los usuarios pueden
|
||||||
|
habilitar el ahorro de datos en todo el dispositivo a fin de reducir el uso de datos, ya sea con
|
||||||
|
servicio de itinerancia, cerca del final del ciclo de facturación o con un pequeño paquete de datos prepago.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Cuando un usuario habilita el ahorro de datos en <strong>Settings</strong> y el dispositivo está conectado
|
||||||
|
a una red de uso medido, el sistema bloquea el uso de datos en segundo plano y envía señales
|
||||||
|
a las aplicaciones para que utilicen menos datos en primer plano siempre que sea posible. Los usuarios pueden
|
||||||
|
incluir aplicaciones específicas en la lista blanca para permitir el uso de datos medidos en segundo plano, incluso cuando está activado el ahorro
|
||||||
|
de datos.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
La N Developer Preview extiende la API {@link android.net.ConnectivityManager}
|
||||||
|
para que las aplicaciones puedan <a href="#status">recuperar las preferencias de
|
||||||
|
ahorro de datos del usuario</a> y <a href="#monitor-changes">controlar
|
||||||
|
los cambios en las preferencias</a>. Se considera una buena práctica que las aplicaciones verifiquen si el
|
||||||
|
usuario habilitó el ahorro de datos y se esfuercen por reducir el uso de datos en primer
|
||||||
|
y segundo plano.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="status">
|
||||||
|
Verificación de las preferencias de ahorro de datos
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
En la N Developer Preview, las aplicaciones pueden utilizar la API {@link
|
||||||
|
android.net.ConnectivityManager} para determinar qué restricciones
|
||||||
|
de uso de datos se aplican. Mediante el método {@code getRestrictBackgroundStatus()}
|
||||||
|
, se devuelve uno de los siguientes valores:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
{@code RESTRICT_BACKGROUND_STATUS_DISABLED}
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
El ahorro de datos está inhabilitado.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
{@code RESTRICT_BACKGROUND_STATUS_ENABLED}
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
El usuario habilitó el ahorro de datos para esta aplicación. Las aplicaciones deben esforzarse por reducir
|
||||||
|
el uso de datos en primer plano y manejar correctamente las restricciones para
|
||||||
|
el uso de datos en segundo plano.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
{@code RESTRICT_BACKGROUND_STATUS_WHITELISTED}
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
El usuario habilitó el ahorro de datos, pero la aplicación se encuentra en la lista blanca. Las aplicaciones aún deben
|
||||||
|
esforzarse por reducir el uso de datos en primer y segundo plano.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Se considera una buena práctica limitar el uso de datos siempre que el dispositivo esté
|
||||||
|
conectado a una red de uso medido, incluso si el ahorro de datos está deshabilitado o la aplicación
|
||||||
|
se encuentra en la lista blanca. El siguiente código de muestra utiliza {@link
|
||||||
|
android.net.ConnectivityManager#isActiveNetworkMetered
|
||||||
|
ConnectivityManager.isActiveNetworkMetered()} y {@code
|
||||||
|
ConnectivityManager.getRestrictBackgroundStatus()} para determinar la cantidad de datos
|
||||||
|
que la aplicación debe utilizar:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
ConnectivityManager connMgr = (ConnectivityManager)
|
||||||
|
getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
|
// Checks if the device is on a metered network
|
||||||
|
if (connMgr.isActiveNetworkMetered()) {
|
||||||
|
// Checks user’s Data Saver settings.
|
||||||
|
switch (connMgr.getRestrictBackgroundStatus()) {
|
||||||
|
case RESTRICT_BACKGROUND_STATUS_ENABLED:
|
||||||
|
// Background data usage is blocked for this app. Wherever possible,
|
||||||
|
// the app should also use less data in the foreground.
|
||||||
|
|
||||||
|
case RESTRICT_BACKGROUND_STATUS_WHITELISTED:
|
||||||
|
// The app is whitelisted. Wherever possible,
|
||||||
|
// the app should use less data in the foreground and background.
|
||||||
|
|
||||||
|
case RESTRICT_BACKGROUND_STATUS_DISABLED:
|
||||||
|
// Data Saver is disabled. Since the device is connected to a
|
||||||
|
// metered network, the app should use less data wherever possible.
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// The device is not on a metered network.
|
||||||
|
// Use data as required to perform syncs, downloads, and updates.
|
||||||
|
}
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h3 id="request-whitelist">
|
||||||
|
Solicitud de permisos de lista blanca
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Si la aplicación necesita utilizar datos en segundo plano, esta puede solicitar permisos de
|
||||||
|
lista blanca mediante el envío de una intent
|
||||||
|
<code>Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS</code>
|
||||||
|
que contenga un URI del nombre de paquete de la aplicación, como por ejemplo,
|
||||||
|
<code>package:MY_APP_ID</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Mediante el envío de la intent y el URI, se inicia la aplicación <strong>Settings</strong> y
|
||||||
|
se muestra la configuración de uso de datos para la aplicación. El usuario luego puede decidir si
|
||||||
|
habilita los datos en segundo plano para la aplicación. Antes de enviar esta intent, resulta
|
||||||
|
buena práctica consultarle primero al usuario acerca de si desea iniciar la aplicación
|
||||||
|
<strong>Settings</strong> con el objetivo de habilitar el uso de datos
|
||||||
|
en segundo plano.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="monitor-changes">
|
||||||
|
Control de cambios en las preferencias de ahorro de datos
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Las aplicaciones pueden controlar los cambios en las preferencias de ahorro de datos mediante la creación de un {@link
|
||||||
|
android.content.BroadcastReceiver} para escuchar {@code
|
||||||
|
ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED} y mediante un registro
|
||||||
|
dinámico del receptor con {@link android.content.Context#registerReceiver
|
||||||
|
Context.registerReceiver()}. Cuando una aplicación recibe esta transmisión, debe
|
||||||
|
<a href="#status">verificar si las nuevas preferencias de ahorro de datos afectan los
|
||||||
|
permisos; para ello,</a> la aplicación debe llamar a {@code
|
||||||
|
ConnectivityManager.getRestrictBackgroundStatus()}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="note">
|
||||||
|
<strong>Nota:</strong> El sistema únicamente envía esta transmisión a las aplicaciones que
|
||||||
|
se registran dinámicamente para recibirla con {@link
|
||||||
|
android.content.Context#registerReceiver Context.registerReceiver()}. Las aplicaciones
|
||||||
|
que en su manifiesto registran que la reciben no la
|
||||||
|
recibirán.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="testing">
|
||||||
|
Pruebas con comandos de Android Debug Bridge
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<a href="{@docRoot}tools/help/adb.html">Android Debug Bridge (ADB)</a>
|
||||||
|
ofrece algunos comandos que puedes utilizar para verificar y configurar los permisos
|
||||||
|
de red:
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<code>$ adb shell dumpsys netpolicy</code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Se genera un informe en el que se incluyen la configuración global actual de restricciones de red
|
||||||
|
en segundo plano, los UID de paquetes que se encuentran actualmente en una lista blanca y los permisos
|
||||||
|
de red de otros paquetes conocidos.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
<code>$ adb shell cmd netpolicy</code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Se muestra una lista completa de los comandos del administrador de políticas de red (políticas de red).
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
<code>$ adb shell cmd netpolicy set restrict-background
|
||||||
|
<boolean></code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Se habilita o deshabilita el modo de ahorro de datos cuando se asignan los valores <code>true</code> o
|
||||||
|
<code>false</code>, respectivamente.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
<code>$ adb shell cmd netpolicy add restrict-background-whitelist
|
||||||
|
<UID></code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Se agrega el UID del paquete específico a la lista blanca para permitir el uso de datos
|
||||||
|
medidos en segundo plano.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
<code>$ adb shell cmd netpolicy remove restrict-background-whitelist
|
||||||
|
<UID></code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Se quita el UID del paquete específico de la lista blanca para bloquear el uso de datos
|
||||||
|
medidos en segundo plano mientras el ahorro de datos está habilitado.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
page.title=Arranque directo
|
page.title=Inicio directo
|
||||||
page.keywords=preview,sdk,direct boot
|
page.keywords=preview,sdk,direct boot
|
||||||
page.tags=androidn
|
page.tags=androidn
|
||||||
page.image=images/cards/card-nyc_2x.jpg
|
page.image=images/cards/card-nyc_2x.jpg
|
||||||
@@ -7,32 +7,32 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
|
|
||||||
<div id="qv-wrapper">
|
<div id="qv-wrapper">
|
||||||
<div id="qv">
|
<div id="qv">
|
||||||
<h2>Contenido del documento</h2>
|
<h2>En este documento</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#run">Solicitar acceso para ejecutar durante el arranque directo</a></li>
|
<li><a href="#run">Solicitar acceso para ejecutar durante el inicio directo</a></li>
|
||||||
<li><a href="#access">Acceder al almacenamiento cifrado por dispositivo</a></li>
|
<li><a href="#access">Acceder al almacenamiento encriptado por dispositivo</a></li>
|
||||||
<li><a href="#notification">Recibir notificaciones sobre el desbloqueo del usuario</a></li>
|
<li><a href="#notification">Recibir notificaciones sobre el desbloqueo del usuario</a></li>
|
||||||
<li><a href="#migrating">Migrar datos existentes</a></li>
|
<li><a href="#migrating">Migrar datos existentes</a></li>
|
||||||
<li><a href="#testing">Probar la aplicación con reconocimiento de cifrado</a></li>
|
<li><a href="#testing">Probar la aplicación con reconocimiento de encriptación</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Android N se ejecuta en un modo <i>de arranque directo</i> seguro
|
<p>Android N se ejecuta en un modo <i>de inicio directo</i> seguro
|
||||||
cuando el dispositivo se enciende pero el usuario no lo ha
|
cuando el dispositivo se enciende pero el usuario no lo ha
|
||||||
desbloqueado. Para permitir esto, el sistema brinda dos ubicaciones de almacenamiento para los datos:</p>
|
desbloqueado. Para permitir esto, el sistema brinda dos ubicaciones de almacenamiento para los datos:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><i>Almacenamiento cifrado por credencial:</i>es la ubicación de almacenamiento predeterminada
|
<li><i>Almacenamiento encriptado por credencial: </i>es la ubicación de almacenamiento predeterminada
|
||||||
y solo está disponible después de que el usuario desbloquea el dispositivo.</li>
|
y solo está disponible después de que el usuario desbloquea el dispositivo.</li>
|
||||||
<li><i>Almacenamiento cifrado por dispositivo:</i>es una ubicación de almacenamiento que está disponible tanto
|
<li><i>Almacenamiento encriptado por dispositivo: </i>es una ubicación de almacenamiento que está disponible tanto
|
||||||
durante el modo de arranque directo como después de que el usuario desbloquea el dispositivo.</li>
|
durante el modo de inicio directo como después de que el usuario desbloquea el dispositivo.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>De forma predeterminada, las aplicaciones no se ejecutan durante el modo de arranque directo.
|
<p>De forma predeterminada, las aplicaciones no se ejecutan durante el modo de inicio directo.
|
||||||
Si necesita que su aplicación se ejecute durante el modo de arranque directo, puede registrar
|
Si necesitas que tu aplicación se ejecute durante el modo de inicio directo, puedes registrar
|
||||||
los componentes de la aplicación que deberían ejecutarse durante este modo. Algunos casos comunes de
|
los componentes de la aplicación que deberían ejecutarse durante este modo. Algunos casos comunes de
|
||||||
aplicaciones que necesitan ejecutarse durante el modo de arranque directo incluyen los siguientes:</p>
|
aplicaciones que necesitan ejecutarse durante el modo de inicio directo incluyen los siguientes:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>aplicaciones que tienen notificaciones programadas, como aplicaciones
|
<li>aplicaciones que tienen notificaciones programadas, como aplicaciones
|
||||||
@@ -41,39 +41,39 @@ de alarma;</li>
|
|||||||
<li>aplicaciones que brindan servicios de accesibilidad, como Talkback.</li>
|
<li>aplicaciones que brindan servicios de accesibilidad, como Talkback.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Si necesita que su aplicación acceda a datos mientras se ejecuta el modo de arranque directo, use
|
<p>Si necesitas que tu aplicación acceda a datos mientras se ejecuta el modo de inicio directo, usa
|
||||||
el almacenamiento cifrado por dispositivo. Este tipo de almacenamiento contiene datos
|
el almacenamiento encriptado por dispositivo. Este tipo de almacenamiento contiene datos
|
||||||
cifrados con una clave que solo está disponible luego de que el dispositivo haya realizado un inicio
|
encriptados con una clave que solo está disponible luego de que el dispositivo haya realizado un inicio
|
||||||
verificado correctamente.</p>
|
verificado correctamente.</p>
|
||||||
|
|
||||||
<p>Para los datos que se deben cifrar con una clave asociada con credenciales del
|
<p>Para los datos que se deben cifrar con una clave asociada con credenciales del
|
||||||
usuario, como un PIN o una contraseña, use el almacenamiento cifrado por credencial.
|
usuario, como un PIN o una contraseña, usa el almacenamiento encriptado por credencial.
|
||||||
Este tipo de almacenamiento solo está disponible luego de que el usuario haya desbloqueado
|
Este tipo de almacenamiento solo está disponible luego de que el usuario haya desbloqueado
|
||||||
correctamente el dispositivo y hasta que el usuario reinicie nuevamente el dispositivo. Si el
|
correctamente el dispositivo y hasta que el usuario reinicie nuevamente el dispositivo. Si el
|
||||||
usuario habilita el bloqueo de pantalla luego de desbloquear el dispositivo, esto no bloquea
|
usuario habilita el bloqueo de pantalla luego de desbloquear el dispositivo, esto no bloquea
|
||||||
el almacenamiento cifrado por credencial.</p>
|
el almacenamiento encriptado por credencial.</p>
|
||||||
|
|
||||||
<h2 id="run">Solicitar acceso para ejecutar durante el arranque directo</h2>
|
<h2 id="run">Solicitar acceso para ejecutar durante el inicio directo</h2>
|
||||||
|
|
||||||
<p>Debes registrar los componentes de las aplicaciones con el sistema antes de que estas puedan
|
<p>Debes registrar los componentes de las aplicaciones con el sistema antes de que estas puedan
|
||||||
ejecutarse durante el modo de arranque directo o acceder al almacenamiento cifrado por
|
ejecutarse durante el modo de inicio directo o acceder al almacenamiento encriptado por
|
||||||
dispositivo. Para registrar una aplicación en el sistema, debes marcar los componentes como
|
dispositivo. Para registrar una aplicación en el sistema, debes marcar los componentes como
|
||||||
<i>reconocimiento de cifrado</i>. Para marcar su dispositivo como "con reconocimiento de cifrado" , configure el atributo
|
<i>"con reconocimiento de encriptación"</i>. Para marcar tu dispositivo como "con reconocimiento de encriptación", configura el atributo
|
||||||
<code>android:encryptionAware</code> como verdadero en el manifiesto.<p>
|
<code>android:directBootAware</code> como verdadero en el manifiesto.<p>
|
||||||
|
|
||||||
<p>Los componentes con reconocimiento de cifrado pueden registrarse para recibir un mensaje de difusión
|
<p>Los componentes con reconocimiento de encriptación pueden registrarse para recibir un mensaje de transmisión
|
||||||
<code>LOCKED_BOOT_COMPLETED</code> del
|
<code>LOCKED_BOOT_COMPLETED</code> del
|
||||||
sistema cuando el dispositivo se haya reiniciado. En este momento, el almacenamiento
|
sistema cuando el dispositivo se haya reiniciado. En este momento, el almacenamiento
|
||||||
cifrado por dispositivo está disponible, y el componente puede ejecutar tareas que se deben
|
encriptado por dispositivo está disponible, y el componente puede ejecutar tareas que se deben
|
||||||
ejecutar durante el modo de arranque directo, como disparar una alarma programada.</p>
|
ejecutar durante el modo de inicio directo, como disparar una alarma programada.</p>
|
||||||
|
|
||||||
<p>El siguiente fragmento de código es un ejemplo de cómo registrar un
|
<p>El siguiente fragmento de código es un ejemplo de cómo registrar un
|
||||||
{@link android.content.BroadcastReceiver} como reconocimiento de cifrado y de cómo agregar un
|
{@link android.content.BroadcastReceiver} como reconocimiento de encriptación y de cómo agregar un
|
||||||
filtro de intenciones para <code>LOCKED_BOOT_COMPLETED</code> en el manifiesto de la aplicación:</p>
|
filtro de intents para <code>LOCKED_BOOT_COMPLETED</code> en el manifiesto de la aplicación:</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<receiever
|
<receiver
|
||||||
android:encryptionAware="true" >
|
android:directBootAware="true" >
|
||||||
...
|
...
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
|
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
|
||||||
@@ -82,34 +82,34 @@ filtro de intenciones para <code>LOCKED_BOOT_COMPLETED</code> en el manifiesto d
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>Una vez que el usuario haya desbloqueado el dispositivo, todos los componentes podrán acceder tanto al
|
<p>Una vez que el usuario haya desbloqueado el dispositivo, todos los componentes podrán acceder tanto al
|
||||||
almacenamiento cifrado por dispositivo como al almacenamiento cifrado por credencial.</p>
|
almacenamiento encriptado por dispositivo como al almacenamiento cifrado por credencial.</p>
|
||||||
|
|
||||||
<h2 id="access">Acceder al almacenamiento cifrado por dispositivo</h2>
|
<h2 id="access">Acceder al almacenamiento encriptado por dispositivo</h2>
|
||||||
|
|
||||||
<p>Para acceder al almacenamiento cifrado por dispositivo, crea una segunda
|
<p>Para acceder al almacenamiento encriptado por dispositivo, crea una segunda
|
||||||
instancia de {@link android.content.Context} llamando a
|
instancia de {@link android.content.Context} llamando a
|
||||||
<code>Context.createDeviceEncryptedStorageContext()</code>. Todas las llamadas
|
<code>Context.createDeviceProtectedStorageContext()</code>. Todas las llamadas
|
||||||
de API de almacenamiento que se hacen usando este contexto acceden al almacenamiento cifrado por dispositivo. El siguiente
|
de API de almacenamiento que se hacen usando este contexto acceden al almacenamiento encriptado por dispositivo. El siguiente
|
||||||
ejemplo accede al almacenamiento cifrado por dispositivo y abre un archivo de datos de la aplicación
|
ejemplo accede al almacenamiento encriptado por dispositivo y abre un archivo de datos de la aplicación
|
||||||
existente:</p>
|
existente:</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
Context directBootContext = Context.createDeviceEncryptedStorageContext();
|
Context directBootContext = appContext.createDeviceProtectedStorageContext();
|
||||||
// Access appDataFilename that lives in device encrypted storage
|
// Access appDataFilename that lives in device encrypted storage
|
||||||
FileInputStream inStream = directBootContext.openFileInput(appDataFilename);
|
FileInputStream inStream = directBootContext.openFileInput(appDataFilename);
|
||||||
// Use inStream to read content...
|
// Use inStream to read content...
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>Solo debes usar el almacenamiento cifrado por dispositivo para
|
<p>Solo debes usar el almacenamiento encriptado por dispositivo para
|
||||||
información que debe ser accesible durante el modo de arranque directo.
|
información que debe ser accesible durante el modo de inicio directo.
|
||||||
No uses este tipo de almacenamiento como un almacenamiento cifrado de propósito general.
|
No uses este tipo de almacenamiento como un almacenamiento encriptado de propósito general.
|
||||||
Para información privada del usuario o datos cifrados que no son necesarios durante
|
Para información privada del usuario o datos encriptados que no son necesarios durante
|
||||||
el modo de arranque directo, usa el almacenamiento cifrado por credencial.</p>
|
el modo de inicio directo, usa el almacenamiento encriptado por credencial.</p>
|
||||||
|
|
||||||
<h2 id="notification">Recibir notificaciones sobre el desbloqueo del usuario</h2>
|
<h2 id="notification">Recibir notificaciones sobre el desbloqueo del usuario</h2>
|
||||||
|
|
||||||
<p>Una vez que el usuario desbloquea el dispositivo después de reiniciarlo, la aplicación puede cambiar y acceder
|
<p>Una vez que el usuario desbloquea el dispositivo después de reiniciarlo, la aplicación puede cambiar y acceder
|
||||||
al almacenamiento cifrado por credencial y usar servicios del sistema comunes que
|
al almacenamiento encriptado por credencial y usar servicios del sistema comunes que
|
||||||
dependen de credenciales de usuario.</p>
|
dependen de credenciales de usuario.</p>
|
||||||
|
|
||||||
<p>Para recibir una notificación cuando el usuario desbloquea el dispositivo luego de reiniciarlo,
|
<p>Para recibir una notificación cuando el usuario desbloquea el dispositivo luego de reiniciarlo,
|
||||||
@@ -124,28 +124,28 @@ que el usuario ha desbloqueado el dispositivo.</p>
|
|||||||
|
|
||||||
<h2 id="migrating">Migrar datos existentes</h2>
|
<h2 id="migrating">Migrar datos existentes</h2>
|
||||||
|
|
||||||
<p>Si un usuario actualiza el dispositivo para usar el modo de arranque directo, es posible que haya
|
<p>Si un usuario actualiza el dispositivo para usar el modo de inicio directo, es posible que haya
|
||||||
datos existentes que se deben migrar al almacenamiento cifrado por dispositivo. Usa
|
datos existentes que se deban migrar al almacenamiento encriptado por dispositivo. Usa
|
||||||
<code>Context.migrateSharedPreferencesFrom()</code> y
|
<code>Context.moveSharedPreferencesFrom()</code> y
|
||||||
<code>Context.migrateDatabaseFrom()</code> para migrar los datos de preferencia y de base de datos
|
<code>Context.moveDatabaseFrom()</code> para migrar los datos de preferencia y de base de datos
|
||||||
del almacenamiento cifrado por credencial al almacenamiento cifrado por dispositivo.</p>
|
del almacenamiento encriptado por credencial al almacenamiento encriptado por dispositivo.</p>
|
||||||
|
|
||||||
<p>Debes tener cuidado cuando decidas qué datos migrar entre
|
<p>Debes tener cuidado cuando decidas qué datos migrar entre
|
||||||
estos dos tipos de almacenamiento. No deberías migrar
|
estos dos tipos de almacenamiento. No deberías migrar
|
||||||
información de usuario privada, como contraseñas o tokens de autorización, al
|
información de usuario privada, como contraseñas o tokens de autorización, al
|
||||||
almacenamiento cifrado por dispositivo. En algunos casos, es posible que debas gestionar
|
almacenamiento encriptado por dispositivo. En algunos casos, es posible que debas gestionar
|
||||||
conjuntos separados de datos en ambos tipos de almacenamiento cifrado.</p>
|
conjuntos separados de datos en ambos tipos de almacenamiento encriptado.</p>
|
||||||
|
|
||||||
<h2 id="testing">Probar la aplicación con reconocimiento de cifrado</h2>
|
<h2 id="testing">Probar la aplicación con reconocimiento de encriptación</h2>
|
||||||
|
|
||||||
<p>Prueba la aplicación con reconocimiento de cifrado usando el nuevo modo de arranque directo. Hay dos
|
<p>Prueba la aplicación con reconocimiento de encriptación usando el nuevo modo de inicio directo. Hay dos
|
||||||
maneras de habilitar el arranque directo.</p>
|
maneras de habilitar el inicio directo.</p>
|
||||||
|
|
||||||
<p class="caution"><strong>Advertencia:</strong> habilitar el arranque directo
|
<p class="caution"><strong>Advertencia:</strong> Habilitar el inicio directo
|
||||||
borrará todos los datos de usuario del dispositivo.</p>
|
borrará todos los datos de usuario del dispositivo.</p>
|
||||||
|
|
||||||
<p>Para los dispositivos compatibles que tienen Android N instalado, habilita
|
<p>Para los dispositivos compatibles que tienen Android N instalado, habilita
|
||||||
el arranque directo mediante una de las siguientes opciones:</p>
|
el inicio directo mediante una de las siguientes opciones:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>En el dispositivo, habilita las <b>Developer options</b> si no lo haz hecho aún
|
<li>En el dispositivo, habilita las <b>Developer options</b> si no lo haz hecho aún
|
||||||
@@ -153,7 +153,7 @@ yendo a <b>Settings > About phone</b> y presionando <b>Build number</b>
|
|||||||
siete veces. Una vez que aparezca la pantalla Developer options, dirígete a
|
siete veces. Una vez que aparezca la pantalla Developer options, dirígete a
|
||||||
<b>Settings > Developer options</b> y selecciona
|
<b>Settings > Developer options</b> y selecciona
|
||||||
<b>Convert to file encryption</b>.</li>
|
<b>Convert to file encryption</b>.</li>
|
||||||
<li>Usa los siguientes comandos shell ADB para permitir el modo de arranque directo:
|
<li>Usa los siguientes comandos shell ADB para habilitar el modo de inicio directo:
|
||||||
<pre class="no-pretty-print">
|
<pre class="no-pretty-print">
|
||||||
$ adb reboot-bootloader
|
$ adb reboot-bootloader
|
||||||
$ fastboot --wipe-and-use-fbe
|
$ fastboot --wipe-and-use-fbe
|
||||||
@@ -161,9 +161,9 @@ $ fastboot --wipe-and-use-fbe
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>También está disponible un modo de arranque directo emulado en caso de que debas cambiar
|
<p>También está disponible un modo de inicio directo emulado en caso de que debas cambiar
|
||||||
de modo en los dispositivos de prueba. El modo emulado solo debería usarse durante
|
de modo en los dispositivos de prueba. El modo emulado solo debería usarse durante
|
||||||
el desarrollo, y puede provocar la pérdida de datos. Para habilitar el modo de arranque directo emulado,
|
el desarrollo, y puede provocar la pérdida de datos. Para habilitar el modo de inicio directo emulado,
|
||||||
debes establecer un patrón de bloqueo en el dispositivo, elegir "No thanks" si te pregunta si deseas un
|
debes establecer un patrón de bloqueo en el dispositivo, elegir "No thanks" si te pregunta si deseas un
|
||||||
inicio seguro cuando estás estableciendo el patrón de bloqueo y, luego, usar el
|
inicio seguro cuando estás estableciendo el patrón de bloqueo y, luego, usar el
|
||||||
siguiente comando shell ADB:</p>
|
siguiente comando shell ADB:</p>
|
||||||
@@ -172,7 +172,7 @@ siguiente comando shell ADB:</p>
|
|||||||
$ adb shell sm set-emulate-fbe true
|
$ adb shell sm set-emulate-fbe true
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>Para deshabilitar el modo de arranque directo emulado, usa el siguiente comando:</p>
|
<p>Para deshabilitar el modo de inicio directo emulado, usa el siguiente comando:</p>
|
||||||
|
|
||||||
<pre class="no-pretty-print">
|
<pre class="no-pretty-print">
|
||||||
$ adb shell sm set-emulate-fbe false
|
$ adb shell sm set-emulate-fbe false
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
page.title=API de ICU4J del framework de Android
|
page.title=API de ICU4J en el framework de Android
|
||||||
page.image=images/cards/card-nyc_2x.jpg
|
page.image=images/cards/card-nyc_2x.jpg
|
||||||
|
|
||||||
@jd:body
|
@jd:body
|
||||||
|
|
||||||
<div id="qv-wrapper">
|
<div id="qv-wrapper">
|
||||||
<div id="qv">
|
<div id="qv">
|
||||||
<h2>Contenido del documento:</h2>
|
<h2>En este documento:</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#relation">Relación con ICU4J</a></li>
|
<li><a href="#relation">Relación con ICU4J</a></li>
|
||||||
<li><a href="#migration">Migración hacia API de android.icu desde ICU4J</a></li>
|
<li><a href="#migration">Migración hacia API de android.icu desde ICU4J</a></li>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
|
|
||||||
<div id="qv-wrapper">
|
<div id="qv-wrapper">
|
||||||
<div id="qv">
|
<div id="qv">
|
||||||
<h2>Contenido del documento</h2>
|
<h2>En este documento</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#overview">Información general</a></li>
|
<li><a href="#overview">Información general</a></li>
|
||||||
<li><a href="#lifecycle">Ciclo de vida en modo de ventanas múltiples</a></li>
|
<li><a href="#lifecycle">Ciclo de vida en modo de ventanas múltiples</a></li>
|
||||||
@@ -19,6 +19,7 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
<ol>
|
<ol>
|
||||||
<li><a class="external-link" href="https://github.com/googlesamples/android-MultiWindowPlayground">Aplicación de ejemplo para la
|
<li><a class="external-link" href="https://github.com/googlesamples/android-MultiWindowPlayground">Aplicación de ejemplo para la
|
||||||
prueba de ventanas múltiples</a></li>
|
prueba de ventanas múltiples</a></li>
|
||||||
|
<li><a class="external-link" href="https://medium.com/google-developers/5-tips-for-preparing-for-multi-window-in-android-n-7bed803dda64">Cinco tips para prepararse para ventanas múltiples en Android N</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -27,7 +28,7 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
Android N agrega compatibilidad con la visualización de más de una aplicación
|
Android N agrega compatibilidad con la visualización de más de una aplicación
|
||||||
a la vez. En dispositivos portátiles, se pueden ejecutar dos aplicaciones una al lado de la otra o
|
a la vez. En dispositivos portátiles, se pueden ejecutar dos aplicaciones una al lado de la otra o
|
||||||
una por encima de la otra en modo de <em>pantalla dividida</em>. En dispositivos de TV, las aplicaciones pueden
|
una por encima de la otra en modo de <em>pantalla dividida</em>. En dispositivos de TV, las aplicaciones pueden
|
||||||
usar el modo <em>imagen en imagen</em> para continuar la reproducción de video mientras los usuarios
|
usar el modo <em>picture-in-picture</em> para continuar la reproducción de video mientras los usuarios
|
||||||
interactúan con otra aplicación.
|
interactúan con otra aplicación.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -56,7 +57,7 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>En dispositivos Nexus Player con Android N, las aplicaciones pueden ubicarse automáticamente
|
<li>En dispositivos Nexus Player con Android N, las aplicaciones pueden ubicarse automáticamente
|
||||||
en <a href="picture-in-picture.html">modo de imagen en imagen</a>, lo que les permite
|
en <a href="picture-in-picture.html">modo Picture-in-picture</a>, lo que les permite
|
||||||
continuar mostrando contenido mientras el usuario explora o interactúa con
|
continuar mostrando contenido mientras el usuario explora o interactúa con
|
||||||
otras aplicaciones.
|
otras aplicaciones.
|
||||||
</li>
|
</li>
|
||||||
@@ -129,10 +130,12 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Cuando el usuario coloca una aplicación en modo de ventanas múltiples, el sistema le notifica a la
|
Cuando el usuario coloca una aplicación en modo de ventanas múltiples, el sistema le notifica a la
|
||||||
actividad acerca de un cambio de configuración, tal como se especifica en <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Control de cambios en
|
actividad de un cambio de configuración, tal como se especifica en <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Control de cambios en
|
||||||
tiempo de ejecución</a>. Básicamente, este cambio tiene las mismas consecuencias en el ciclo de vida
|
tiempo de ejecución</a>. Esto también sucede cuando el usuario modifica el tamaño de la aplicación o coloca la aplicación
|
||||||
|
nuevamente en el modo de pantalla completa.
|
||||||
|
Básicamente, este cambio tiene las mismas consecuencias en el ciclo de vida
|
||||||
de la actividad que cuando el sistema notifica a la aplicación que el dispositivo cambió de
|
de la actividad que cuando el sistema notifica a la aplicación que el dispositivo cambió de
|
||||||
modo vertical a modo horizontal, excepto porque se modifican las dimensiones del dispositivo
|
modo vertical a modo de paisaje, excepto porque se modifican las dimensiones del dispositivo
|
||||||
en lugar de intercambiarse solamente. Como se aborda en <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Control de cambios en
|
en lugar de intercambiarse solamente. Como se aborda en <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Control de cambios en
|
||||||
tiempo de ejecución</a>, tu actividad puede administrar el cambio de configuración por sí misma, o
|
tiempo de ejecución</a>, tu actividad puede administrar el cambio de configuración por sí misma, o
|
||||||
puede permitir que el sistema destruya la actividad y la vuelva a crear con las nuevas
|
puede permitir que el sistema destruya la actividad y la vuelva a crear con las nuevas
|
||||||
@@ -154,8 +157,10 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
Si tu aplicación está orientada a Android N, puedes configurar cómo y
|
Si tu aplicación está orientada a Android N, puedes configurar cómo y
|
||||||
si quieres que las actividades de tu aplicación admitan la visualización de ventanas múltiples. Puedes establecer
|
si quieres que las actividades de tu aplicación admitan la visualización de ventanas múltiples. Puedes establecer
|
||||||
atributos en tu manifiesto para controlar el tamaño y el diseño.
|
atributos en tu manifiesto para controlar el tamaño y el diseño.
|
||||||
La configuración de atributos de una actividad raíz aplica a todas las actividades
|
La configuración de atributos de una actividad raíz se aplica a todas las actividades
|
||||||
de su pila de tareas.
|
de su pila de tareas. Por ejemplo, si
|
||||||
|
<code>android:resizeableActivity</code> está configurado en true para la actividad raíz, se puede modificar el tamaño de todas las actividades
|
||||||
|
de la pila de tareas.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="note">
|
<p class="note">
|
||||||
@@ -171,7 +176,7 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
<h4 id="resizeableActivity">android:resizeableActivity</h4>
|
<h4 id="resizeableActivity">android:resizeableActivity</h4>
|
||||||
<p>
|
<p>
|
||||||
Establece este atributo en el nodo <code><activity></code> o
|
Establece este atributo en el nodo <code><activity></code> o
|
||||||
<code><application></code> de tu manifiesto para habilitar o deshabilitar la visualización
|
<code><application></code> de tu manifiesto para habilitar o inhabilitar la visualización
|
||||||
en modo de ventanas múltiples:
|
en modo de ventanas múltiples:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -196,7 +201,7 @@ android:resizeableActivity=["true" | "false"]
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Establece este atributo en el nodo <code><activity></code> de tu manifiesto
|
Establece este atributo en el nodo <code><activity></code> de tu manifiesto
|
||||||
para indicar si la actividad admite la visualización de imagen en imagen. Este
|
para indicar si la actividad admite la visualización de Picture-in-picture. Este
|
||||||
atributo se ignora si <code>android:resizeableActivity</code> es false.
|
atributo se ignora si <code>android:resizeableActivity</code> es false.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -239,7 +244,7 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
<code>android:minimalSize</code>
|
<code>android:minimalHeight</code>, <code>android:minimalWidth</code>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
@@ -261,7 +266,8 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
<layout android:defaultHeight="500dp"
|
<layout android:defaultHeight="500dp"
|
||||||
android:defaultWidth="600dp"
|
android:defaultWidth="600dp"
|
||||||
android:gravity="top|end"
|
android:gravity="top|end"
|
||||||
android:minimalSize="450dp" />
|
android:minimalHeight="450dp"
|
||||||
|
android:minimalWidth="300dp" />
|
||||||
</activity>
|
</activity>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
@@ -296,12 +302,13 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
<p>
|
<p>
|
||||||
Se agregaron los siguientes métodos nuevos a la clase {@link android.app.Activity}
|
Se agregaron los siguientes métodos nuevos a la clase {@link android.app.Activity}
|
||||||
para admitir la visualización de ventanas múltiples. Para obtener información detallada sobre cada método, consulta la
|
para admitir la visualización de ventanas múltiples. Para obtener información detallada sobre cada método, consulta la
|
||||||
<a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia del N Preview SDK</a>.
|
<a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia sobre N Preview SDK
|
||||||
|
</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>
|
<dt>
|
||||||
<code>Activity.inMultiWindow()</code>
|
<code>Activity.isInMultiWindowMode()</code>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
@@ -309,53 +316,53 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
<code>Activity.inPictureInPicture()</code>
|
<code>Activity.isInPictureInPictureMode()</code>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
Realiza una llamada para averiguar si la actividad está en modo de imagen en imagen.
|
Realiza una llamada para averiguar si la actividad está en modo Picture-in-picture.
|
||||||
|
|
||||||
<p class="note">
|
<p class="note">
|
||||||
<strong>Nota:</strong> El modo de Picture-in-Picture es un caso especial del
|
<strong>Nota:</strong> El modo Picture-in-picture es un caso especial del
|
||||||
modo de ventanas múltiples. Si <code>myActivity.inPictureInPicture()</code>
|
modo de ventanas múltiples. Si <code>myActivity.isInPictureInPictureMode()</code>
|
||||||
devuelve true, <code>myActivity.inMultiWindow()</code> también devuelve
|
devuelve un valor true, <code>myActivity.isInMultiWindowMode()</code> también
|
||||||
true.
|
devuelve un valor true.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
<code>Activity.onMultiWindowChanged()</code>
|
<code>Activity.onMultiWindowModeChanged()</code>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
El sistema llama a este método siempre que la actividad entra en modo de ventanas
|
El sistema llama a este método siempre que la actividad entra en modo de ventanas
|
||||||
múltiples o sale de él. El sistema le pasa al método un valor de true si la
|
múltiples o sale de él. El sistema le pasa al método un valor de true si la
|
||||||
actividad entra en modo de ventanas múltiples, y false si la actividad
|
actividad entra en modo de ventanas múltiples y false si la actividad
|
||||||
sale del modo de ventanas múltiples.
|
sale del modo de ventanas múltiples.
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
<code>Activity.onPictureInPictureChanged()</code>
|
<code>Activity.onPictureInPictureModeChanged()</code>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
El sistema llama a este método siempre que la actividad entre en modo de imagen en imagen
|
El sistema llama a este método siempre que la actividad entra en modo Picture-in-picture
|
||||||
o sale de él. El sistema le pasa al método un valor de true si
|
o sale de él. El sistema le pasa al método un valor de true si
|
||||||
la actividad entra en modo de imagen en imagen, y false si la actividad
|
la actividad entra en modo Picture-in-picture y false si la actividad
|
||||||
sale del modo de imagen en imagen.
|
sale de dicho modo.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
También hay versiones {@link android.app.Fragment} de cada uno de esos
|
También hay versiones {@link android.app.Fragment} de cada uno de esos
|
||||||
métodos; por ejemplo, <code>Fragment.inMultiWindow()</code>.
|
métodos; por ejemplo, <code>Fragment.isInMultiWindowMode()</code>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="entering-pip">Cómo entrar en modo de imagen en imagen</h3>
|
<h3 id="entering-pip">Cómo entrar en modo Picture-in-picture</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para que una actividad entre en modo de imagen en imagen, debes llamar al nuevo método
|
Para que una actividad entre en modo de Picture-in-picture, debes llamar al nuevo método
|
||||||
<code>Activity.enterPictureInPicture()</code>. Este método no tiene efecto si
|
<code>Activity.enterPictureInPictureMode()</code>. Este método no tiene efecto si
|
||||||
el dispositivo no admite el modo de imagen en imagen. Para obtener más información,
|
el dispositivo no admite el modo de imagen en imagen. Para obtener más información,
|
||||||
consulta la documentación de <a href="picture-in-picture.html">Picture-in-Picture</a>.
|
consulta la documentación de <a href="picture-in-picture.html">Picture-in-Picture</a>.
|
||||||
</p>
|
</p>
|
||||||
@@ -490,7 +497,7 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
Si tu aplicación no declara una orientación fija, debes iniciar tu aplicación
|
Si tu aplicación no declara una orientación fija, debes iniciar tu aplicación
|
||||||
en un dispositivo con Android N e intentar colocar la aplicación en
|
en un dispositivo con Android N e intentar colocar la aplicación en
|
||||||
modo de pantalla dividida. Cuando se modifique el tamaño de la aplicación de forma forzada,
|
modo de pantalla dividida. Cuando se modifique el tamaño de la aplicación de forma forzada,
|
||||||
comprueba que la experiencia de usuario sea aceptable.
|
verifica que la experiencia de usuario sea aceptable.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -512,19 +519,19 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
durante un momento el botón Overview. Verifica que la aplicación pase de un modo a otro correctamente.
|
durante un momento el botón Overview. Verifica que la aplicación pase de un modo a otro correctamente.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Inicia la aplicación directamente en modo de ventanas múltiples y comprueba que se
|
<li>Inicia la aplicación directamente en modo de ventanas múltiples y verifica que se
|
||||||
inicie correctamente. Puedes iniciar una aplicación en modo de ventanas múltiples al presionar el
|
inicie correctamente. Puedes iniciar una aplicación en modo de ventanas múltiples al presionar el
|
||||||
botón Overview, luego presionar durante un momento la barra de título de la aplicación y arrastrarla
|
botón Overview, luego presionar durante un momento la barra de título de la aplicación y arrastrarla
|
||||||
a una de las áreas resaltadas de la pantalla.
|
a una de las áreas resaltadas de la pantalla.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Cambia el tamaño de tu aplicación en modo de pantalla dividida al arrastrar la línea divisoria.
|
<li>Cambia el tamaño de tu aplicación en modo de pantalla dividida al arrastrar la línea divisoria.
|
||||||
Comprueba que la aplicación cambie de tamaño sin fallar y que estén visibles los elementos
|
Verifica que la aplicación cambie de tamaño sin fallar y que estén visibles los elementos
|
||||||
necesarios de la IU.
|
necesarios de la IU.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Si especificaste dimensiones mínimas para tu aplicación, intenta cambiar el tamaño
|
<li>Si especificaste dimensiones mínimas para tu aplicación, intenta cambiar el tamaño
|
||||||
de la aplicación a dimensiones más bajas que las especificadas. Comprueba que no puedas modificar el tamaño de la aplicación
|
de la aplicación a dimensiones más bajas que las especificadas. Verifica que no puedas modificar el tamaño de la aplicación
|
||||||
para que sea más pequeña que la dimensión mínima especificada.
|
para que sea más pequeña que la dimensión mínima especificada.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@@ -554,19 +561,19 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
|
|
||||||
<li>En modo de pantalla dividida, prueba mover la barra divisora para agrandar y
|
<li>En modo de pantalla dividida, prueba mover la barra divisora para agrandar y
|
||||||
achicar la aplicación. Realiza estas operaciones en las configuraciones una al lado de la otra y
|
achicar la aplicación. Realiza estas operaciones en las configuraciones una al lado de la otra y
|
||||||
una encima de la otra. Comprueba que la aplicación no falle,
|
una encima de la otra. Verifica que la aplicación no falle,
|
||||||
que las funcionalidades necesarias estén visibles y que la operación de cambio de tamaño no demore
|
que las funcionalidades necesarias estén visibles y que la operación de cambio de tamaño no demore
|
||||||
mucho.
|
mucho.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Realiza varias operaciones de cambio de tamaño en una sucesión rápida. Comprueba que tu
|
<li>Realiza varias operaciones de cambio de tamaño en una sucesión rápida. Verifica que tu
|
||||||
aplicación no falle ni pierda memoria. Para obtener información acerca de cómo comprobar el uso de memoria
|
aplicación no falle ni pierda memoria. Para obtener información acerca de cómo comprobar el uso de memoria
|
||||||
de tu aplicación, consulta <a href="{@docRoot}tools/debugging/debugging-memory.html">
|
de tu aplicación, consulta <a href="{@docRoot}tools/debugging/debugging-memory.html">
|
||||||
Averiguación del uso de RAM</a>.
|
Averiguación del uso de RAM</a>.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Usa tu aplicación normalmente en diferentes configuraciones de ventanas y
|
<li>Usa tu aplicación normalmente en diferentes configuraciones de ventanas y
|
||||||
verifica que la aplicación se comporte correctamente. Comprueba que el texto sea legible y que
|
verifica que la aplicación se comporte correctamente. Verifica que el texto sea legible y que
|
||||||
los elementos de la IU sean lo suficientemente grandes para interactuar con ellos.
|
los elementos de la IU sean lo suficientemente grandes para interactuar con ellos.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
page.title=Idioma y configuración regional
|
page.title=Idioma y configuración regional
|
||||||
|
page.tags=androidn
|
||||||
page.image=images/cards/card-nyc_2x.jpg
|
page.image=images/cards/card-nyc_2x.jpg
|
||||||
|
|
||||||
@jd:body
|
@jd:body
|
||||||
|
|
||||||
<div id="qv-wrapper">
|
<div id="qv-wrapper">
|
||||||
<div id="qv">
|
<div id="qv">
|
||||||
<h2>Contenido del documento:</h2>
|
<h2>En este documento:</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#preN">Desafíos para la resolución de recursos de idioma</a></li>
|
<li><a href="#preN">Desafíos para la resolución de recursos de idioma</a></li>
|
||||||
<li><a href="#postN">Mejoras de la estrategia de resolución de recursos</a></li>
|
<li><a href="#postN">Mejoras de la estrategia de resolución de recursos</a></li>
|
||||||
@@ -36,22 +37,26 @@ la cantidad expandida de configuraciones regionales para permitir acceso a más
|
|||||||
<h2 id="preN">Desafíos para la resolución de recursos de idioma</h2>
|
<h2 id="preN">Desafíos para la resolución de recursos de idioma</h2>
|
||||||
|
|
||||||
<p>Antes de Android N, Android no siempre podía
|
<p>Antes de Android N, Android no siempre podía
|
||||||
hacer coincidir correctamente las configuraciones regionales de la aplicación y del sistema. Por ejemplo, supongamos que el idioma predeterminado
|
hacer coincidir correctamente las configuraciones regionales de la aplicación y del sistema.</p>
|
||||||
de tu aplicación es inglés de EE. UU., pero que también tiene cadenas en español localizadas en archivos de recursos {@code es_ES}.
|
|
||||||
</p>
|
<p>Por ejemplo, imagina que tienes la siguiente situación:</p>
|
||||||
<p>Cuando el código Java se refería a las cadenas, resolvía el idioma de las cadenas como
|
|
||||||
se muestra a continuación:</p>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Si un dispositivo estaba configurado en {@code es_MX} (español de México), Android cargaba
|
<li>El idioma predeterminado de la aplicación es {@code en_US} (inglés de EE. UU.), y también tiene
|
||||||
las cadenas de los archivos de recursos {@code es_ES}.</li>
|
cadenas en español localizadas en archivos de recursos {@code es_ES}
|
||||||
<li>Si el dispositivo estaba configurado en {@code en_AU}, Android recurría a {@code
|
.</li>
|
||||||
en_US}. El sistema también usaba {@code en_US} de forma predeterminada si el usuario elegía un
|
<li> Se configura un dispositivo en {@code es_MX}. </li>
|
||||||
idioma que no era compatible con la aplicación, como el francés.</li>
|
|
||||||
</ul>
|
<p>Cuando el código Java hace referencia a cadenas, el sistema carga
|
||||||
|
las cadenas del archivo de recursos ({@code en_US}) predeterminado, incluso si la aplicación tiene
|
||||||
|
recursos en español localizados en {@code es_ES}. Esto se debe a que, cuando el sistema
|
||||||
|
no puede encontrar una coincidencia exacta, continúa buscando recursos y se quita el
|
||||||
|
código del país de la configuración regional. Finalmente, si no se encuentra una coincidencia, el sistema regresa
|
||||||
|
a la configuración predeterminada, que es {@code en_US}. </p>
|
||||||
|
|
||||||
|
|
||||||
<p>Estos problemas de resolución surgieron debido a que el sistema quitaba el código de país
|
<p>El sistema también usaba {@code en_US} de forma predeterminada si el usuario elegía un idioma que
|
||||||
de la configuración regional si no podía encontrar una coincidencia exacta. Por ejemplo:</p>
|
no era compatible con la aplicación, como el francés. Por ejemplo:</p>
|
||||||
|
|
||||||
<p class="table-caption" id="t-resource-res">
|
<p class="table-caption" id="t-resource-res">
|
||||||
<strong>Tabla 1.</strong> Resolución de recursos sin una coincidencia de configuración regional exacta.
|
<strong>Tabla 1.</strong> Resolución de recursos sin una coincidencia de configuración regional exacta.
|
||||||
</p>
|
</p>
|
||||||
@@ -186,7 +191,7 @@ es compatible con el idioma francés.</p>
|
|||||||
<h2 id="design">Diseño de la aplicación para permitir configuraciones regionales adicionales</h2>
|
<h2 id="design">Diseño de la aplicación para permitir configuraciones regionales adicionales</h2>
|
||||||
<h3>API LocaleList</h3>
|
<h3>API LocaleList</h3>
|
||||||
|
|
||||||
<p>Android N incorpora una nueva API, {@code LocaleList.GetDefault()},
|
<p>Android N incorpora una nueva API, {@code LocaleList.getDefault()},
|
||||||
que les permite a las aplicaciones consultar directamente la lista de idiomas que ha especificado el usuario. Esta API
|
que les permite a las aplicaciones consultar directamente la lista de idiomas que ha especificado el usuario. Esta API
|
||||||
te permite crear un comportamiento de la aplicación
|
te permite crear un comportamiento de la aplicación
|
||||||
más sofisticado y una presentación de contenido más optimizada. Por ejemplo, las búsquedas
|
más sofisticado y una presentación de contenido más optimizada. Por ejemplo, las búsquedas
|
||||||
|
|||||||
@@ -16,12 +16,13 @@ trainingnavtop=true
|
|||||||
<li><a href="#direct">Respuesta directa</a></li>
|
<li><a href="#direct">Respuesta directa</a></li>
|
||||||
<li><a href="#bundle">Notificaciones integradas</a></li>
|
<li><a href="#bundle">Notificaciones integradas</a></li>
|
||||||
<li><a href="#custom">Vistas personalizadas</a></li>
|
<li><a href="#custom">Vistas personalizadas</a></li>
|
||||||
|
<li><a href="#style">Estilo de mensajería</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Android N incluye varias API nuevas que permiten a las aplicaciones publicar
|
<p>Android N presenta varias API nuevas que permiten a las aplicaciones publicar
|
||||||
notificaciones altamente visibles e interactivas.</p>
|
notificaciones altamente visibles e interactivas.</p>
|
||||||
|
|
||||||
<p>Android N amplía la API de notificación existente {@link android.support.v4.app.RemoteInput}
|
<p>Android N amplía la API de notificación existente {@link android.support.v4.app.RemoteInput}
|
||||||
@@ -50,8 +51,8 @@ plantillas estándar.</p>
|
|||||||
<p>Con la función de respuesta directa en Android N, los usuarios pueden responder
|
<p>Con la función de respuesta directa en Android N, los usuarios pueden responder
|
||||||
rápidamente mensajes de texto o actualizar listas de tareas directamente dentro de la interfaz de
|
rápidamente mensajes de texto o actualizar listas de tareas directamente dentro de la interfaz de
|
||||||
notificación. En un dispositivo portátil, la acción de respuesta en línea aparece como un botón adicional
|
notificación. En un dispositivo portátil, la acción de respuesta en línea aparece como un botón adicional
|
||||||
anexado a la notificación. Cuando un usuario responde mediante un teclado, el sistema adjunta
|
anexado a la notificación. Cuando un usuario responde mediante el teclado, el sistema adjunta
|
||||||
la respuesta de texto a la intención
|
la respuesta de texto a la intent
|
||||||
que especificaste para la acción de notificación y envía la intención a tu
|
que especificaste para la acción de notificación y envía la intención a tu
|
||||||
aplicación para dispositivos portátiles.
|
aplicación para dispositivos portátiles.
|
||||||
|
|
||||||
@@ -76,7 +77,7 @@ notificación. El constructor de esta clase acepta una cadena que el sistema usa
|
|||||||
de la entrada.
|
de la entrada.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
// Key for the string that's delivered in the action's intent
|
// Key for the string that's delivered in the action's intent.
|
||||||
private static final String KEY_TEXT_REPLY = "key_text_reply";
|
private static final String KEY_TEXT_REPLY = "key_text_reply";
|
||||||
String replyLabel = getResources().getString(R.string.reply_label);
|
String replyLabel = getResources().getString(R.string.reply_label);
|
||||||
RemoteInput remoteInput = new RemoteInput.Builder(KEY_TEXT_REPLY)
|
RemoteInput remoteInput = new RemoteInput.Builder(KEY_TEXT_REPLY)
|
||||||
@@ -88,7 +89,7 @@ RemoteInput remoteInput = new RemoteInput.Builder(KEY_TEXT_REPLY)
|
|||||||
a una acción usando <code>addRemoteInput()</code>.
|
a una acción usando <code>addRemoteInput()</code>.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
// Create the reply action and add the remote input
|
// Create the reply action and add the remote input.
|
||||||
Notification.Action action =
|
Notification.Action action =
|
||||||
new Notification.Action.Builder(R.drawable.ic_reply_icon,
|
new Notification.Action.Builder(R.drawable.ic_reply_icon,
|
||||||
getString(R.string.label), replyPendingIntent)
|
getString(R.string.label), replyPendingIntent)
|
||||||
@@ -100,8 +101,8 @@ Notification.Action action =
|
|||||||
<li>Aplica la acción a una notificación y emite la notificación.
|
<li>Aplica la acción a una notificación y emite la notificación.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
// Build the notification and add the action
|
// Build the notification and add the action.
|
||||||
Notification notification =
|
Notification newMessageNotification =
|
||||||
new Notification.Builder(mContext)
|
new Notification.Builder(mContext)
|
||||||
.setSmallIcon(R.drawable.ic_message)
|
.setSmallIcon(R.drawable.ic_message)
|
||||||
.setContentTitle(getString(R.string.title))
|
.setContentTitle(getString(R.string.title))
|
||||||
@@ -109,10 +110,10 @@ Notification notification =
|
|||||||
.addAction(action))
|
.addAction(action))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Issue the notification
|
// Issue the notification.
|
||||||
NotificationManager notificationManager =
|
NotificationManager notificationManager =
|
||||||
NotificationManager.from(mContext);
|
NotificationManager.from(mContext);
|
||||||
notificationManager.notify(notificationId, notification);
|
notificationManager.notify(notificationId, newMessageNotification);
|
||||||
|
|
||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
@@ -129,28 +130,30 @@ el sistema le solicitará al usuario que ingrese una respuesta. </p>
|
|||||||
<strong>Figura 2.</strong> El usuario ingresa texto desde el panel de notificaciones.
|
<strong>Figura 2.</strong> El usuario ingresa texto desde el panel de notificaciones.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Recuperación de entradas del usuario de la respuesta directa</h3>
|
<h3>
|
||||||
|
Recuperación de entradas del usuario a partir de la respuesta en línea
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para recibir entradas del usuario de la interfaz de notificación a la actividad que
|
||||||
|
declaraste en la intent de la acción de respuesta:
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>Para recibir entradas del usuario de la interfaz de notificación a la actividad que
|
|
||||||
declaraste en la intención de la acción de respuesta:</p>
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>Llama a {@link android.support.v4.app.RemoteInput#getResultsFromIntent
|
<li>Llama a {@link android.support.v4.app.RemoteInput#getResultsFromIntent
|
||||||
getResultsFromIntent()} pasando la intención de la acción de notificación como
|
getResultsFromIntent()} pasando la intent de la acción de notificación como
|
||||||
el parámetro de entrada. Este método devuelve un {@link android.os.Bundle} que
|
el parámetro de entrada. Este método devuelve un {@link android.os.Bundle} que
|
||||||
contiene la respuesta de texto.
|
contiene la respuesta de texto.
|
||||||
</li>
|
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);
|
Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);
|
||||||
</pre>
|
</pre>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li>Consulta el paquete con la clave de resultado (proporcionada al constructor {@link
|
<li>Consulta el paquete con la clave de resultado (proporcionada al constructor {@link
|
||||||
android.support.v4.app.RemoteInput.Builder}).
|
android.support.v4.app.RemoteInput.Builder}). Puedes completar
|
||||||
</li>
|
este proceso y recuperar el texto de entrada mediante la creación de un método, como en el
|
||||||
</ol>
|
siguiente fragmento de código:
|
||||||
|
|
||||||
<p>El siguiente fragmento de código ilustra cómo un método recupera el texto de entrada
|
|
||||||
de un paquete:</p>
|
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
// Obtain the intent that started this activity by calling
|
// Obtain the intent that started this activity by calling
|
||||||
@@ -165,15 +168,48 @@ private CharSequence getMessageText(Intent intent) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
</pre>
|
</pre>
|
||||||
|
</li>
|
||||||
|
|
||||||
<p>Las aplicaciones pueden aplicar lógica para decir qué medidas tomar con respecto al texto
|
<li>Crea y emite otra notificación, utilizando la misma ID de notificación que
|
||||||
recuperado.
|
proporcionaste para la notificación anterior. El indicador de progreso
|
||||||
Para las aplicaciones interactivas (como los chats), proporciona más contexto sobre la notificación
|
desaparece de la interfaz de notificación para informarles a los usuarios que la respuesta
|
||||||
(por ejemplo, varias líneas de historial de chat, incluidos los mensajes del usuario)
|
fue exitosa. Al trabajar con esta nueva notificación, usa el contexto que se
|
||||||
de modo que el usuario pueda responder correctamente.
|
pasa al método {@code onReceive()} del receptor.
|
||||||
Cuando el usuario responda a través de {@link android.support.v4.app.RemoteInput},
|
|
||||||
incluye el texto del historial de respuestas con el método {@code setRemoteInputHistory()}
|
<pre>
|
||||||
.</p>
|
// Build a new notification, which informs the user that the system
|
||||||
|
// handled their interaction with the previous notification.
|
||||||
|
Notification repliedNotification =
|
||||||
|
new Notification.Builder(context)
|
||||||
|
.setSmallIcon(R.drawable.ic_message)
|
||||||
|
.setContentText(getString(R.string.replied))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
// Issue the new notification.
|
||||||
|
NotificationManager notificationManager =
|
||||||
|
NotificationManager.from(context);
|
||||||
|
notificationManager.notify(notificationId, repliedNotification);
|
||||||
|
</pre>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
En el caso de las aplicaciones interactivas, como los chats, podría ser útil incluir
|
||||||
|
contexto adicional cuando se administra texto recuperado. Por ejemplo, en estas aplicaciones, se podrían mostrar
|
||||||
|
múltiples líneas de historial de chat. Cuando el usuario responde a través de {@link
|
||||||
|
android.support.v4.app.RemoteInput}, puedes actualizar el historial de respuestas
|
||||||
|
por medio del método {@code setRemoteInputHistory()}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
La notificación se debe actualizar o cancelar luego de que la aplicación haya
|
||||||
|
recibido entradas remotas. Cuando el usuario responde a una actualización remota
|
||||||
|
por medio de la respuesta directa,
|
||||||
|
no canceles la notificación. En cambio, actualiza la notificación para mostrar la respuesta del usuario.
|
||||||
|
En el caso de las notificaciones que utilizan {@code MessagingStyle}, debes agregar
|
||||||
|
la respuesta como el mensaje más reciente. Cuando se utilizan otras plantillas, puedes
|
||||||
|
agregar la respuesta del usuario al historial de entradas remotas.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h2 id="bundle">Notificaciones integradas</h2>
|
<h2 id="bundle">Notificaciones integradas</h2>
|
||||||
|
|
||||||
@@ -203,6 +239,12 @@ Builder.setGroup()} para agrupar notificaciones similares.</p>
|
|||||||
notificaciones.
|
notificaciones.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p class="note">
|
||||||
|
<strong>Nota:</strong> Si la misma aplicación envía cuatro o más notificaciones
|
||||||
|
y no se especifica un grupo, el
|
||||||
|
sistema las agrupa automáticamente.
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>Para obtener información acerca de cómo agregar notificaciones a un grupo, consulta
|
<p>Para obtener información acerca de cómo agregar notificaciones a un grupo, consulta
|
||||||
<a href="{@docRoot}training/wearables/notifications/stacks.html#AddGroup">Agregar
|
<a href="{@docRoot}training/wearables/notifications/stacks.html#AddGroup">Agregar
|
||||||
cada notificación a un grupo</a>.</p>
|
cada notificación a un grupo</a>.</p>
|
||||||
@@ -318,7 +360,7 @@ el estilo de la vista personalizada que hayas elegido.</p>
|
|||||||
{@code DecoratedCustomViewStyle()}.</p>
|
{@code DecoratedCustomViewStyle()}.</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
Notification noti = new Notification.Builder()
|
Notification notification = new Notification.Builder()
|
||||||
.setSmallIcon(R.drawable.ic_stat_player)
|
.setSmallIcon(R.drawable.ic_stat_player)
|
||||||
.setLargeIcon(albumArtBitmap))
|
.setLargeIcon(albumArtBitmap))
|
||||||
.setCustomContentView(contentView);
|
.setCustomContentView(contentView);
|
||||||
@@ -326,3 +368,26 @@ Notification noti = new Notification.Builder()
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
<h2 id="style">Estilo de mensajería</h2>
|
||||||
|
<p>
|
||||||
|
Android N presenta una nueva API para personalizar el estilo de una notificación.
|
||||||
|
Por medio de la clase <code>MessageStyle</code>, puedes modificar varias de las
|
||||||
|
etiquetas que aparecen en la notificación, incluidos el título de la conversación,
|
||||||
|
mensajes adicionales y la vista de contenido para la notificación.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
El siguiente fragmento de código demuestra cómo personalizar el estilo
|
||||||
|
de una notificación mediante la clase <code>MessageStyle</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
Notification notification = new Notification.Builder()
|
||||||
|
.setStyle(new Notification.MessagingStyle("Me")
|
||||||
|
.setConversationTitle("Team lunch")
|
||||||
|
.addMessage("Hi", timestamp1, null) // Pass in null for user.
|
||||||
|
.addMessage("What's up?", timestamp2, "Coworker")
|
||||||
|
.addMessage("Not much", timestamp3, null)
|
||||||
|
.addMessage("How about lunch?", timestamp4, "Coworker"));
|
||||||
|
</pre>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
page.title=Picture-in-picture
|
page.title=Modo Picture-in-picture
|
||||||
page.keywords=preview,sdk,PIP,Picture-in-picture
|
page.keywords=preview,sdk,PIP,Picture-in-picture
|
||||||
page.tags=androidn
|
page.tags=androidn
|
||||||
|
|
||||||
@@ -7,16 +7,18 @@ page.tags=androidn
|
|||||||
<div id="qv-wrapper">
|
<div id="qv-wrapper">
|
||||||
<div id="qv">
|
<div id="qv">
|
||||||
|
|
||||||
<h2>Contenido del documento</h2>
|
<h2>En este documento</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#declaring">Declarar que la actividad permite
|
<li><a href="#declaring">Declarar que la actividad permite
|
||||||
el modo Picture-in-Picture</a></li>
|
el modo Picture-in-Picture</a></li>
|
||||||
<li><a href="#pip_button">Cambiar la actividad al modo picture-in-picture</a>
|
<li><a href="#pip_button">Cambiar la actividad al modo Picture-in-picture</a>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#handling_ui">Gestionar las IU durante el modo picture-in-picture</a>
|
<li><a href="#handling_ui">Gestionar las IU durante el modo Picture-in-picture</a>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#continuing_playback">Continuar la reproducción de video durante
|
<li><a href="#continuing_playback">Continuar la reproducción de video durante
|
||||||
el modo picture-in-picture</a></li>
|
el modo Picture-in-picture</a></li>
|
||||||
|
<li><a href="#single_playback">Usar una única actividad de reproducción para
|
||||||
|
el modo Picture-in-picture</a></li>
|
||||||
<li><a href="#best">Prácticas recomendadas</a></li>
|
<li><a href="#best">Prácticas recomendadas</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
@@ -52,7 +54,7 @@ principal muestra una actividad de selección de contenido.</li>
|
|||||||
|
|
||||||
<p>La ventana de PIP es de 240x135 dp y se muestra en la capa delantera en una de las
|
<p>La ventana de PIP es de 240x135 dp y se muestra en la capa delantera en una de las
|
||||||
cuatro esquinas de la pantalla que el sistema elige. El usuario puede acceder a un menú de
|
cuatro esquinas de la pantalla que el sistema elige. El usuario puede acceder a un menú de
|
||||||
PIP que le permite cambiar la ventana de PIP a pantalla completa o cerrarla
|
PIP que le permite activar o desactivar la ventana de PIP a pantalla completa o cerrarla
|
||||||
presionando el botón <b>Home</b> en el control remoto. Si se comienza a reproducir
|
presionando el botón <b>Home</b> en el control remoto. Si se comienza a reproducir
|
||||||
otro video en la pantalla principal, la ventana de PIP se cierra
|
otro video en la pantalla principal, la ventana de PIP se cierra
|
||||||
automáticamente. Los usuarios también pueden cerrar la ventana de PIP desde Recents.</p>
|
automáticamente. Los usuarios también pueden cerrar la ventana de PIP desde Recents.</p>
|
||||||
@@ -94,18 +96,18 @@ incluyen elementos de IU pequeños podrían no brindar una buena experiencia de
|
|||||||
cuando se cambian al modo PIP, porque los usuarios no podrán ver los detalles de los elementos de IU
|
cuando se cambian al modo PIP, porque los usuarios no podrán ver los detalles de los elementos de IU
|
||||||
en la ventana PIP.</p>
|
en la ventana PIP.</p>
|
||||||
|
|
||||||
<h2 id="pip_button">Cambiar la actividad al modo picture-in-picture</h2>
|
<h2 id="pip_button">Cambiar la actividad al modo Picture-in-picture</h2>
|
||||||
|
|
||||||
Cuando necesites cambiar la actividad al modo PIP, llama a
|
Cuando necesites cambiar la actividad al modo PIP, llama a
|
||||||
<code>Activity.enterPictureInPicture()</code>. El siguiente ejemplo cambia
|
<code>Activity.enterPictureInPictureMode()</code>. En el siguiente ejemplo, se
|
||||||
al modo PIP cuando el usuario selecciona un botón PIP especial en una barra
|
cambia al modo PIP cuando el usuario selecciona un botón PIP especial en una barra
|
||||||
de control de medios:</p>
|
de control de medios:</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
@Override
|
@Override
|
||||||
public void onActionClicked(Action action) {
|
public void onActionClicked(Action action) {
|
||||||
if (action.getId() == R.id.lb_control_picture_in_picture) {
|
if (action.getId() == R.id.lb_control_picture_in_picture) {
|
||||||
getActivity().enterPictureInPicture();
|
getActivity().enterPictureInPictureMode();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
...
|
...
|
||||||
@@ -127,14 +129,14 @@ las acciones de PIP de la barra de control y usa el ícono PIP.</p>
|
|||||||
<p>Cuando la actividad ingresa al modo PIP, esta solo debería mostrar la reproducción
|
<p>Cuando la actividad ingresa al modo PIP, esta solo debería mostrar la reproducción
|
||||||
de video. Debes quitar los elementos de IU antes de que la actividad ingrese al modo PIP
|
de video. Debes quitar los elementos de IU antes de que la actividad ingrese al modo PIP
|
||||||
y volver a mostrarlos cuando la actividad vuelva al modo de pantalla completa.
|
y volver a mostrarlos cuando la actividad vuelva al modo de pantalla completa.
|
||||||
Sobrescribe <code>Activity.onPictureInPictureChanged()</code> o
|
Anula <code>Activity.onPictureInPictureModeChanged()</code> o
|
||||||
<code>Fragment.onPictureInPictureChanged()</code> y habilita
|
<code>Fragment.onPictureInPictureModeChanged()</code> y habilita
|
||||||
o deshabilita los elementos de IU según sea necesario, por ejemplo:</p>
|
o inhabilita los elementos de IU según sea necesario, por ejemplo:</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
@Override
|
@Override
|
||||||
public void onPictureInPictureChanged(boolean inPictureInPicture) {
|
public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
|
||||||
if (inPictureInPicture) {
|
if (isInPictureInPictureMode) {
|
||||||
// Hide the controls in picture-in-picture mode.
|
// Hide the controls in picture-in-picture mode.
|
||||||
...
|
...
|
||||||
} else {
|
} else {
|
||||||
@@ -145,7 +147,7 @@ public void onPictureInPictureChanged(boolean inPictureInPicture) {
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<h2 id="continuing_playback">Continuar la reproducción de video durante
|
<h2 id="continuing_playback">Continuar la reproducción de video durante
|
||||||
el modo picture-in-picture</h2>
|
el modo Picture-in-picture</h2>
|
||||||
|
|
||||||
<p>Cuando la actividad cambia al modo PIP, el sistema considera que se encuentra en
|
<p>Cuando la actividad cambia al modo PIP, el sistema considera que se encuentra en
|
||||||
pausa y llama al método <code>onPause()</code> de la actividad. La reproducción
|
pausa y llama al método <code>onPause()</code> de la actividad. La reproducción
|
||||||
@@ -157,8 +159,8 @@ ejemplo:</p>
|
|||||||
<pre>
|
<pre>
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
// If called due to PIP, do not pause playback
|
// If called while in PIP mode, do not pause playback
|
||||||
if (inPictureInPicture()) {
|
if (isInPictureInPictureMode()) {
|
||||||
// Continue playback
|
// Continue playback
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
@@ -170,6 +172,31 @@ public void onPause() {
|
|||||||
<p>Cuando la actividad sale del modo PIP y vuelve al modo de pantalla completa, el
|
<p>Cuando la actividad sale del modo PIP y vuelve al modo de pantalla completa, el
|
||||||
sistema reinicia la actividad y llama al método <code>onResume()</code>.</p>
|
sistema reinicia la actividad y llama al método <code>onResume()</code>.</p>
|
||||||
|
|
||||||
|
<h2 id="single_playback">Usar una única actividad de reproducción para
|
||||||
|
el modo Picture-in-picture</h2>
|
||||||
|
|
||||||
|
<p>En tu aplicación, un usuario puede seleccionar un nuevo video cuando busca contenido en la
|
||||||
|
pantalla principal, mientras una actividad de reproducción de video está en modo PIP. Reproduce el nuevo
|
||||||
|
video en la actividad de reproducción actual en modo de pantalla completa, en lugar de
|
||||||
|
iniciar una nueva actividad que podría confundir al usuario.</p>
|
||||||
|
|
||||||
|
<p>A fin de garantizar que se utilice una única actividad para las solicitudes de reproducción de video y que esta
|
||||||
|
ingrese en el modo PIP o salga de este cuando sea necesario, configura el
|
||||||
|
<code>android:launchMode</code> de la actividad en <code>singleTask</code>, en el manifiesto:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
<activity android:name="VideoActivity"
|
||||||
|
...
|
||||||
|
android:supportsPictureInPicture="true"
|
||||||
|
android:launchMode="singleTask"
|
||||||
|
...
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>En tu actividad, anula {@link android.app.Activity#onNewIntent
|
||||||
|
Activity.onNewIntent()} y administra el nuevo video, deteniendo cualquier reproducción
|
||||||
|
de video actual si es necesario.</p>
|
||||||
|
|
||||||
<h2 id="best">Prácticas recomendadas</h2>
|
<h2 id="best">Prácticas recomendadas</h2>
|
||||||
|
|
||||||
<p>El modo PIP está diseñado para actividades que reproducen un video en pantalla completa. Cuando cambies la
|
<p>El modo PIP está diseñado para actividades que reproducen un video en pantalla completa. Cuando cambies la
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ page.tags=androidn
|
|||||||
|
|
||||||
<div id="qv-wrapper">
|
<div id="qv-wrapper">
|
||||||
<div id="qv">
|
<div id="qv">
|
||||||
<h2>Contenido del documento</h2>
|
<h2>En este documento</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#accessing">Acceder a un directorio de almacenamiento externo</a></li>
|
<li><a href="#accessing">Acceder a un directorio de almacenamiento externo</a></li>
|
||||||
<li><a href="#removable">Acceder a un directorio de un medio extraíble</a></li>
|
<li><a href="#removable">Acceder a un directorio de un medio extraíble</a></li>
|
||||||
@@ -38,12 +38,26 @@ directorio externo.</li>
|
|||||||
<h2 id="accessing">Acceder a un directorio de almacenamiento externo</h2>
|
<h2 id="accessing">Acceder a un directorio de almacenamiento externo</h2>
|
||||||
|
|
||||||
<p>Usa la clase <code>StorageManager</code> para obtener la instancia de
|
<p>Usa la clase <code>StorageManager</code> para obtener la instancia de
|
||||||
<code>StorageVolume</code> correcta. Luego, crea una intención llamando al
|
<code>StorageVolume</code> correcta. Luego, crea una intent llamando al
|
||||||
método <code>StorageVolume.createAccessIntent()</code> de esa instancia.
|
método <code>StorageVolume.createAccessIntent()</code> de esa instancia.
|
||||||
Usa esta intención para acceder a directorios de almacenamiento externo. Para obtener una lista de
|
Usa esta intención para acceder a directorios de almacenamiento externo. Para obtener una lista de
|
||||||
todos los volúmenes disponibles, incluidos los volúmenes de medios extraíbles, usa
|
todos los volúmenes disponibles, incluidos los volúmenes de medios extraíbles, usa
|
||||||
<code>StorageManager.getVolumesList()</code>.</p>
|
<code>StorageManager.getVolumesList()</code>.</p>
|
||||||
|
|
||||||
|
<p>Si tienes información sobre un archivo específico, usa
|
||||||
|
<code>StorageManager.getStorageVolume(File)</code> para obtener el
|
||||||
|
<code>StorageVolume</code> que contiene el archivo. Llama a
|
||||||
|
<code>createAccessIntent()</code> en este <code>StorageVolume</code> para acceder al
|
||||||
|
directorio de almacenamiento externo del archivo.</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
En el caso de los volúmenes secundarios, como las tarjetas SD externas, pasa un valor nulo cuando llames a
|
||||||
|
<code>StorageVolume.createAccessIntent()</code> para solicitar acceso al volumen
|
||||||
|
completo, en lugar de un directorio específico.
|
||||||
|
<code>StorageVolume.createAccessIntent()</code> regresa un valor nulo si pasas un
|
||||||
|
valor nulo para el volumen principal o si pasas un nombre de directorio no válido.
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>El siguiente fragmento de código es un ejemplo de cómo abrir el
|
<p>El siguiente fragmento de código es un ejemplo de cómo abrir el
|
||||||
directorio <code>Pictures</code> en el almacenamiento compartido principal:</p>
|
directorio <code>Pictures</code> en el almacenamiento compartido principal:</p>
|
||||||
|
|
||||||
@@ -63,18 +77,18 @@ es necesario, confirma el acceso con el usuario usando una IU simplificada:</p>
|
|||||||
acceso al directorio Pictures.</p>
|
acceso al directorio Pictures.</p>
|
||||||
|
|
||||||
<p>Si el usuario otorga el acceso, el sistema llama a tu
|
<p>Si el usuario otorga el acceso, el sistema llama a tu
|
||||||
invalidación de <code>onActivityResult()</code> con un código resultante de
|
anulación de <code>onActivityResult()</code> con un código resultante de
|
||||||
<code>Activity.RESULT_OK</code> y datos de intención que contienen el URI. Usa
|
<code>Activity.RESULT_OK</code> y datos de intents que contienen el URI. Usa
|
||||||
el URI brindado para acceder a la información del directorio. Es similar a usar URI
|
el URI brindado para acceder a la información del directorio. Es similar a usar URI
|
||||||
generados por el
|
generados por el
|
||||||
<a href="{@docRoot}guide/topics/providers/document-provider.html">framework
|
<a href="{@docRoot}guide/topics/providers/document-provider.html">framework
|
||||||
de acceso al almacenamiento</a>.</p>
|
de acceso al almacenamiento</a>.</p>
|
||||||
|
|
||||||
<p>Si el usuario no otorga el acceso, el sistema llama a tu
|
<p>Si el usuario no otorga el acceso, el sistema llama a tu
|
||||||
invalidación de <code>onActivityResult()</code> con un código resultante de
|
anulación de <code>onActivityResult()</code> con un código resultante de
|
||||||
<code>Activity.RESULT_CANCELED</code> y datos de intención nulos.</p>
|
<code>Activity.RESULT_CANCELED</code> y datos de intents nulos.</p>
|
||||||
|
|
||||||
<p class="note"><b>Nota</b>: obtener acceso a un directorio externo específico
|
<p class="note"><b>Nota</b>: Obtener acceso a un directorio externo específico
|
||||||
también otorga el acceso a los subdirectorios de ese directorio.</p>
|
también otorga el acceso a los subdirectorios de ese directorio.</p>
|
||||||
|
|
||||||
<h2 id="removable">Acceder a un directorio de un medio extraíble</h2>
|
<h2 id="removable">Acceder a un directorio de un medio extraíble</h2>
|
||||||
@@ -97,7 +111,7 @@ notificación{@link android.os.Environment#MEDIA_MOUNTED}, por ejemplo:</p>
|
|||||||
|
|
||||||
<p>Cuando el usuario conecta un medio extraíble, como una tarjeta SD, el sistema envía una
|
<p>Cuando el usuario conecta un medio extraíble, como una tarjeta SD, el sistema envía una
|
||||||
notificación{@link android.os.Environment#MEDIA_MOUNTED}. Esta notificación
|
notificación{@link android.os.Environment#MEDIA_MOUNTED}. Esta notificación
|
||||||
brinda un objeto <code>StorageVolume</code> en los datos de intención que puedes
|
brinda un objeto <code>StorageVolume</code> en los datos de intents que puedes
|
||||||
usar para acceder a directorios del medio extraíble. El siguiente ejemplo
|
usar para acceder a directorios del medio extraíble. El siguiente ejemplo
|
||||||
accede al directorio <code>Pictures</code> de medios extraíbles:</p>
|
accede al directorio <code>Pictures</code> de medios extraíbles:</p>
|
||||||
|
|
||||||
@@ -121,4 +135,14 @@ usuario.</p>
|
|||||||
|
|
||||||
<p>Si el usuario deniega el acceso a un directorio externo, no vuelvas a solicitar el
|
<p>Si el usuario deniega el acceso a un directorio externo, no vuelvas a solicitar el
|
||||||
acceso inmediatamente. Hacer esto provocaría una mala experiencia
|
acceso inmediatamente. Hacer esto provocaría una mala experiencia
|
||||||
de usuario.</p>
|
de usuario. Si el usuario deniega una solicitud y la aplicación solicita acceso
|
||||||
|
nuevamente, aparece la casilla de verificación <b>Don't ask again</b> en la IU:</p>
|
||||||
|
|
||||||
|
<img src="{@docRoot}preview/images/scoped-folder-access-dont-ask.png" srcset="{@docRoot}preview/images/scoped-folder-access-dont-ask.png 1x,
|
||||||
|
{@docRoot}preview/images/scoped-folder-access-dont-ask_2x.png 2x" />
|
||||||
|
<p class="img-caption"><strong>Figura 1.</strong> Una aplicación que presenta una
|
||||||
|
segunda solicitud para obtener acceso a medios extraíbles.</p>
|
||||||
|
|
||||||
|
<p>Si el usuario selecciona <b>Don't ask again</b> y deniega la solicitud, todas las
|
||||||
|
solicitudes futuras que presente la aplicación para el directorio determinado se denegarán
|
||||||
|
automáticamente, y el usuario no recibirá ninguna IU de solicitud.</p>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Configuración de seguridad de la red
|
page.title=Configuración de seguridad de la red
|
||||||
page.keywords=preview,security,network
|
page.keywords=androidn,security,network
|
||||||
page.image=images/cards/card-nyc_2x.jpg
|
page.image=images/cards/card-nyc_2x.jpg
|
||||||
|
|
||||||
@jd:body
|
@jd:body
|
||||||
@@ -7,7 +7,7 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
<div id="qv-wrapper">
|
<div id="qv-wrapper">
|
||||||
<div id="qv">
|
<div id="qv">
|
||||||
|
|
||||||
<h2>Contenido del documento</h2>
|
<h2>En este documento</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#manifest">Agregar un archivo de configuración de seguridad</a></li>
|
<li><a href="#manifest">Agregar un archivo de configuración de seguridad</a></li>
|
||||||
<li><a href="#CustomTrust">Personalizar las CA de confianza</a>
|
<li><a href="#CustomTrust">Personalizar las CA de confianza</a>
|
||||||
@@ -71,12 +71,13 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
...
|
<manifest ... >
|
||||||
<app ...>
|
<application ... >
|
||||||
<meta-data android:name="android.security.net.config"
|
<meta-data android:name="android.security.net.config"
|
||||||
android:resource="@xml/network_security_config" />
|
android:resource="@xml/network_security_config" />
|
||||||
...
|
...
|
||||||
</app>
|
</application>
|
||||||
|
</manifest>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<h2 id="CustomTrust">Personalizar las CA de confianza</h2>
|
<h2 id="CustomTrust">Personalizar las CA de confianza</h2>
|
||||||
@@ -109,7 +110,7 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3 id="ConfigCustom">Configurar una CA personalizada</h3>
|
<h3 id="ConfigCustom">Configurar una CA de confianza personalizada</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Supongamos que deseas conectarte a tu host, el cual usa un certificado SSL
|
Supongamos que deseas conectarte a tu host, el cual usa un certificado SSL
|
||||||
@@ -213,7 +214,7 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
solo <i>son</i> de confianza cuando <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">
|
solo <i>son</i> de confianza cuando <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">
|
||||||
android:debuggable</a>
|
android:debuggable</a>
|
||||||
es {@code true} usando {@code debug-overrides}. Generalmente, las herramientas de IDE
|
es {@code true} usando {@code debug-overrides}. Generalmente, las herramientas de IDE
|
||||||
y de compilación configuran esta marca automáticamente para las versiones que no son de lanzamiento.
|
y de compilación configuran esta marca automáticamente para las compilaciones que no son de lanzamiento.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -242,7 +243,7 @@ android:debuggable</a>
|
|||||||
<p>
|
<p>
|
||||||
Las aplicaciones que deseen conectarse a destinos usando solo conexiones
|
Las aplicaciones que deseen conectarse a destinos usando solo conexiones
|
||||||
seguras pueden desactivar Cleartext (usando el protocolo
|
seguras pueden desactivar Cleartext (usando el protocolo
|
||||||
HTTP no cifrado en lugar del protocolo HTTPS) para esos destinos. Esta opción ayuda a prevenir
|
HTTP no encriptado en lugar del protocolo HTTPS) para esos destinos. Esta opción ayuda a prevenir
|
||||||
las regresiones accidentales en aplicaciones debido a cambios en direcciones URL generados por fuentes
|
las regresiones accidentales en aplicaciones debido a cambios en direcciones URL generados por fuentes
|
||||||
externas como servidores backend.
|
externas como servidores backend.
|
||||||
Consulta {@link android.security.NetworkSecurityPolicy#isCleartextTrafficPermitted
|
Consulta {@link android.security.NetworkSecurityPolicy#isCleartextTrafficPermitted
|
||||||
@@ -310,6 +311,7 @@ secure.example.com} se hagan siempre mediante HTTPS para proteger el tráfico se
|
|||||||
<pin digest="SHA-256">7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=</pin>
|
<pin digest="SHA-256">7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=</pin>
|
||||||
<!-- backup pin -->
|
<!-- backup pin -->
|
||||||
<pin digest="SHA-256">fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=</pin>
|
<pin digest="SHA-256">fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=</pin>
|
||||||
|
</pin-set>
|
||||||
</domain-config>
|
</domain-config>
|
||||||
</network-security-config>
|
</network-security-config>
|
||||||
</pre>
|
</pre>
|
||||||
@@ -543,7 +545,7 @@ La configuración predeterminada para aplicaciones con API nivel 23 o inferior e
|
|||||||
|
|
||||||
<dl class="xml">
|
<dl class="xml">
|
||||||
<dt>
|
<dt>
|
||||||
SINTAXIS:
|
sintaxis:
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
@@ -568,7 +570,7 @@ La configuración predeterminada para aplicaciones con API nivel 23 o inferior e
|
|||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
Sobrescrituras que se deben aplicar cuando <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">android:debuggable</a>
|
Sobrescrituras que se deben aplicar cuando <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">android:debuggable</a>
|
||||||
es {@code "true"}, que es, generalmente, el caso de las versiones que no sean de lanzamiento
|
es {@code "true"}, que es, generalmente, el caso de las compilaciones que no sean de lanzamiento
|
||||||
generadas por herramientas de IDE y de compilación. Los anclajes de confianza especificados en {@code
|
generadas por herramientas de IDE y de compilación. Los anclajes de confianza especificados en {@code
|
||||||
debug-overrides} se agregan a todas las demás configuraciones, y la fijación
|
debug-overrides} se agregan a todas las demás configuraciones, y la fijación
|
||||||
de certificados no se lleva a cabo cuando la cadena de certificados del servidor usa uno de estos
|
de certificados no se lleva a cabo cuando la cadena de certificados del servidor usa uno de estos
|
||||||
@@ -704,9 +706,9 @@ La fuente de los certificados de CA puede ser una de las siguientes opciones:
|
|||||||
expiran las fijaciones, lo cual deshabilita la fijación. Si el atributo no está establecido, las fijaciones
|
expiran las fijaciones, lo cual deshabilita la fijación. Si el atributo no está establecido, las fijaciones
|
||||||
no expiran.
|
no expiran.
|
||||||
<p>
|
<p>
|
||||||
La expiración ayuda a evitar problemas de conectividad en aplicaciones
|
La expiración ayuda a evitar problemas de conectividad en aplicaciones que no
|
||||||
que no reciben actualizaciones para el conjunto de fijaciones, por ejemplo,
|
reciben actualizaciones para el conjunto de fijaciones, por ejemplo, porque el usuario
|
||||||
porque el usuario deshabilitó las actualizaciones de la aplicación.
|
deshabilitó las actualizaciones de la aplicación.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
@@ -716,7 +718,7 @@ porque el usuario deshabilitó las actualizaciones de la aplicación.
|
|||||||
<h3 id="pin"><pin></h3>
|
<h3 id="pin"><pin></h3>
|
||||||
<dl class="xml">
|
<dl class="xml">
|
||||||
<dt>
|
<dt>
|
||||||
SINTAXIS:
|
sintaxis:
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
|
|
||||||
<div id="qv-wrapper">
|
<div id="qv-wrapper">
|
||||||
<div id="qv">
|
<div id="qv">
|
||||||
<h2>Contenido del documento</h2>
|
<h2>En este documento</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#supporting">Indicar la compatibilidad para la grabación</a></li>
|
<li><a href="#supporting">Indicar la compatibilidad para la grabación</a></li>
|
||||||
<li><a href="#recording">Grabar una sesión</a></li>
|
<li><a href="#recording">Grabar una sesión</a></li>
|
||||||
@@ -18,7 +18,7 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Los servicios de entrada de TV le permiten al usuario pausar y reiniciar la reproducción de canales
|
<p>Los servicios de entrada de TV le permiten al usuario pausar y reanudar la reproducción de canales
|
||||||
mediante API de time-shifting. Android N expande la función de time-shifting
|
mediante API de time-shifting. Android N expande la función de time-shifting
|
||||||
permitiéndoles a los usuarios guardar múltiples sesiones grabadas.</p>
|
permitiéndoles a los usuarios guardar múltiples sesiones grabadas.</p>
|
||||||
|
|
||||||
@@ -31,20 +31,41 @@ debes indicarle al sistema que tu aplicación permite la grabación, implementar
|
|||||||
la habilidad para grabar programas, gestionar y comunicar los errores que ocurren
|
la habilidad para grabar programas, gestionar y comunicar los errores que ocurren
|
||||||
durante la grabación y gestionar las sesiones grabadas.</p>
|
durante la grabación y gestionar las sesiones grabadas.</p>
|
||||||
|
|
||||||
|
<p class="note"><strong>Nota:</strong> La aplicación Live Channels todavía no
|
||||||
|
permite que los usuarios creen grabaciones ni accedan a estas. Hasta que se realicen
|
||||||
|
cambios en la aplicación Live Channels, es posible que sea difícil probar completamente la
|
||||||
|
experiencia de grabación para tu servicio de entrada de TV.</p>
|
||||||
|
|
||||||
<h2 id="supporting">Indicar la compatibilidad para la grabación</h2>
|
<h2 id="supporting">Indicar la compatibilidad para la grabación</h2>
|
||||||
|
|
||||||
<p>Para comunicarle al sistema que tu servicio de entrada de TV permite la grabación, debes seguir
|
<p>Para comunicarle al sistema que tu servicio de entrada de TV permite la grabación, configura el
|
||||||
|
atributo <code>android:canRecord</code> de tu archivo XML de metadatos de servicio
|
||||||
|
en <code>true</code>:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
<tv-input xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
<b>android:canRecord="true"</b>
|
||||||
|
android:setupActivity="com.example.sampletvinput.SampleTvInputSetupActivity" />
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>Para obtener más información sobre el archivo de metadatos de servicio, consulta
|
||||||
|
<a href="{@docRoot}training/tv/tif/tvinput.html#manifest">Declarar el servicio de entrada
|
||||||
|
de TV en el manifiesto</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>De forma alternativa, puedes indicar la compatibilidad para la grabación en tu código; para ello, sigue
|
||||||
estos pasos:</p>
|
estos pasos:</p>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>En el método <code>TvInputService.onCreate()</code>, crea un nuevo
|
<li>En el método <code>TvInputService.onCreate()</code>, crea un nuevo
|
||||||
objeto <code>TvInputInfo</code> usando la clase <code>TvInputInfo.Builder</code>.
|
objeto <code>TvInputInfo</code> usando la clase <code>TvInputInfo.Builder</code>.
|
||||||
</li>
|
</li>
|
||||||
<li>Cuando creer el nuevo objeto <code>TvInputInfo</code>, llama a
|
<li>Cuando crees el nuevo objeto <code>TvInputInfo</code>, llama a
|
||||||
<code>setCanRecord(true)</code> antes de llamar a <code>build()</code> para
|
<code>setCanRecord(true)</code> antes de llamar a <code>build()</code> para
|
||||||
indicar que tu servicio permite la grabación.</li>
|
indicar que tu servicio permite la grabación.</li>
|
||||||
<li>Registra tu objeto <code>TvInputInfo</code> con el sistema llamando a
|
<li>Registra tu objeto <code>TvInputInfo</code> con el sistema llamando a
|
||||||
<code>TvInputService.updateTvInputInfo()</code>.</li>
|
<code>TvInputManager.updateTvInputInfo()</code>.</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<h2 id="recording">Grabar una sesión</h2>
|
<h2 id="recording">Grabar una sesión</h2>
|
||||||
@@ -100,7 +121,7 @@ use la sesión parcial.</p>
|
|||||||
las aplicaciones de canal con funcionalidad de grabación en la tabla de proveedor de contenido <code>TvContract.RecordedPrograms</code>
|
las aplicaciones de canal con funcionalidad de grabación en la tabla de proveedor de contenido <code>TvContract.RecordedPrograms</code>
|
||||||
. Esta información se accede mediante el URI de contenido
|
. Esta información se accede mediante el URI de contenido
|
||||||
<code>RecordedPrograms.Uri</code>. Usa API de proveedor de contenido para
|
<code>RecordedPrograms.Uri</code>. Usa API de proveedor de contenido para
|
||||||
leer, agregar y eliminar entradas de esta tabla.</p>
|
leer, agregar y borrar entradas de esta tabla.</p>
|
||||||
|
|
||||||
<p>Para obtener más información sobre cómo trabajar con datos del proveedor de contenido, consulta
|
<p>Para obtener más información sobre cómo trabajar con datos del proveedor de contenido, consulta
|
||||||
<a href="{@docRoot}guide/topics/providers/content-provider-basics.html">
|
<a href="{@docRoot}guide/topics/providers/content-provider-basics.html">
|
||||||
|
|||||||
190
docs/html-intl/intl/es/preview/guide.jd
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
page.title=Guía de prueba
|
||||||
|
page.image=images/cards/card-n-guide_2x.png
|
||||||
|
meta.tags="preview", "testing"
|
||||||
|
page.tags="preview", "developer preview"
|
||||||
|
|
||||||
|
@jd:body
|
||||||
|
|
||||||
|
<div id="qv-wrapper">
|
||||||
|
<div id="qv">
|
||||||
|
<h2>En este documento</h2>
|
||||||
|
<ol>
|
||||||
|
<li><a href="#runtime-permissions">Prueba de los permisos</a></li>
|
||||||
|
<li><a href="#doze-standby">Prueba de los modos Descanso y App Standby</a></li>
|
||||||
|
<li><a href="#ids">Copia de seguridad automática e identificadores de dispositivos</a></li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android N te brinda la oportunidad de garantizar que tus aplicaciones funcionen con la próxima versión de la plataforma.
|
||||||
|
Esta versión preliminar incluye diversas API y cambios en los comportamientos que pueden
|
||||||
|
tener impactos en tu aplicación, como se describe en las secciones <a href="{@docRoot}preview/api-overview.html">Información general de la API</a> y <a href="{@docRoot}preview/behavior-changes.html">Cambios en los comportamientos</a>.
|
||||||
|
Al probar tu aplicación con la versión preliminar, te debes centrar en algunos cambios específicos del sistema para garantizar que los usuarios disfruten de una buena experiencia.
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
En esta guía, se describen qué y cómo probar las características preliminares con tu aplicación. Debes priorizar la prueba de estas características específicas preliminares, puesto que podrían tener un alto impacto en el comportamiento de tu aplicación:
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><a href="#runtime-permissions">Permisos</a>
|
||||||
|
</li>
|
||||||
|
<li><a href="#doze-standby">Modos Descanso y App Standby</a>
|
||||||
|
</li>
|
||||||
|
<li><a href="#ids">Copia de seguridad automática e identificadores de dispositivos</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para obtener más información sobre cómo configurar dispositivos o dispositivos virtuales con una imagen
|
||||||
|
del sistema de la versión preliminar para realizar pruebas, consulta la sección <a href="{@docRoot}preview/setup-sdk.html">Configurar el SDK de Android N</a>.
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2 id="runtime-permissions">Prueba de los permisos</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
El nuevo modelo de <a href="{@docRoot}preview/features/runtime-permissions.html">permisos</a> cambia el modo en que el usuario asigna permisos a tu aplicación.
|
||||||
|
En lugar de conceder todos los permisos durante el procedimiento de instalación, tu aplicación debe solicitar al usuario los permisos individuales en el tiempo de ejecución.
|
||||||
|
|
||||||
|
Para los usuarios, este comportamiento ofrece más control granular sobre las actividades de cada aplicación, así como un mejor contexto para comprender por qué la aplicación está solicitando un permiso específico.
|
||||||
|
Los usuarios pueden conceder o revocar los permisos concedidos a una aplicación de forma individual en cualquier momento.
|
||||||
|
Es muy probable que esta característica de la versión preliminar tenga un impacto en el comportamiento de tu aplicación y puede hacer que algunas características de tu aplicación no funcionen o funcionen en un estado degradado.
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="caution">
|
||||||
|
Este cambio afecta a todas las aplicaciones que se ejecutan en la nueva plataforma, incluso a aquellas que no tienen como destino la nueva versión de la plataforma.
|
||||||
|
La plataforma ofrece un comportamiento de compatibilidad limitada para las aplicaciones heredadas, pero debes comenzar a planificar ahora la migración de tu aplicación al nuevo modelo de permisos, con el objetivo de publicar una versión actualizada de tu aplicación cuando se lance la plataforma oficial.
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h3 id="permission-test-tips">Tips para pruebas</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Usa los siguientes tips para pruebas como ayuda para planificar y ejecutar las pruebas de tu aplicación con el nuevo comportamiento de permisos.
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Identifica los permisos actuales de tu aplicación y las rutas de códigos relacionadas.</li>
|
||||||
|
<li>Prueba los flujos del usuario en los datos y servicios protegidos por permisos.</li>
|
||||||
|
<li>Realiza pruebas con varias combinaciones de permisos concedidos/revocados.</li>
|
||||||
|
<li>Usa la herramienta {@code adb} para administrar permisos desde la línea de comando:
|
||||||
|
<ul>
|
||||||
|
<li>Enumera los permisos y estados por grupo:
|
||||||
|
<pre>adb shell pm list permissions -d -g</pre>
|
||||||
|
</li>
|
||||||
|
<li>Concede o revoca un permiso o más permisos utilizando la siguiente sintaxis:<br>
|
||||||
|
<pre>adb shell pm [grant|revoke] <permission.name> ...</pre>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>Analiza tu aplicación para detectar servicios que utilizan permisos.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3 id="permission-test-strategy">Estrategia de prueba</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
El cambio en los permisos afecta la estructura y el diseño de tu aplicación, además de la experiencia del usuario y los flujos que proporcionas a los usuarios.
|
||||||
|
Debes evaluar el uso de los permisos actuales de tu aplicación y comenzar a planificar los nuevos flujos que deseas ofrecer.
|
||||||
|
La versión oficial de la plataforma proporciona un comportamiento de compatibilidad, pero debes prever la actualización de tu aplicación y no depender de estos comportamientos.
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Identifica los permisos que tu aplicación verdaderamente necesita y utiliza, y luego busca las diversas rutas de códigos que utilizan los servicios protegidos por permisos.
|
||||||
|
Puedes realizar esto mediante una combinación de pruebas en la plataforma nueva y análisis de códigos.
|
||||||
|
Al realizar las pruebas, debes centrarte en
|
||||||
|
incluir permisos de tiempo de ejecución cambiando {@code targetSdkVersion} de la aplicación a la versión preliminar. Para
|
||||||
|
obtener más información, consulta la sección <a href="{@docRoot}preview/setup-sdk.html#">Configurar el SDK de Android N</a>.
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Realiza pruebas con diversas combinaciones de permisos revocados y agregados, a fin de destacar los flujos del usuario que dependen de permisos.
|
||||||
|
Cuando una dependencia no sea obvia ni lógica, debes considerar la opción de refactorizar o compartimentar ese flujo para eliminar la dependencia o aclarar por qué se necesita el permiso.
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para obtener más información sobre el comportamiento de los permisos de tiempo de ejecución, las pruebas y las mejores prácticas, consulta la página <a href="{@docRoot}preview/features/runtime-permissions.html">Permisos</a> de la versión preliminar para desarrolladores.
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2 id="doze-standby">Prueba de los modos Descanso y App Standby</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Las características de ahorro de energía de los modos Descanso y App Standby limitan la cantidad de procesamiento en segundo plano que puede realizar tu aplicación cuando un dispositivo se encuentra en estado inactivo o mientras tu aplicación no está en foco.
|
||||||
|
Entre las restricciones que el sistema puede imponer en las aplicaciones se incluyen el acceso limitado a la red o denegación de acceso, suspensión de las tareas en segundo plano, suspensión de notificaciones, y alarmas y solicitudes de reactivación ignoradas.
|
||||||
|
|
||||||
|
Para garantizar que tu aplicación tenga un comportamiento correcto con estas optimizaciones de ahorro de energía, debes probar tu aplicación simulando estos estados de bajo consumo.
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4 id="doze">Cómo probar la aplicación en modo Descanso</h4>
|
||||||
|
|
||||||
|
<p>Para probar el modo Descanso con tu aplicación, realiza lo siguiente:</p>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>Configura un dispositivo de hardware o un dispositivo virtual con una imagen del sistema Android N.</li>
|
||||||
|
<li>Conecta el dispositivo a tu equipo de desarrollo e instala tu aplicación.</li>
|
||||||
|
<li>Ejecuta tu aplicación y déjala activa.</li>
|
||||||
|
<li>Simula la activación del modo Descanso en el dispositivo ejecutando los siguientes comandos:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
$ adb shell dumpsys battery unplug
|
||||||
|
$ adb shell dumpsys deviceidle step
|
||||||
|
$ adb shell dumpsys deviceidle -h
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li>Observa el comportamiento de tu aplicación cuando se reactive el dispositivo. Asegúrate de que se recupere correctamente cuando el dispositivo salga del modo Descanso.
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
<h4 id="standby">Cómo probar aplicaciones en modo App Standby</h4>
|
||||||
|
|
||||||
|
<p>Para probar el modo App Standby con tu aplicación, realiza lo siguiente:</p>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>Configura un dispositivo de hardware o un dispositivo virtual con una imagen del sistema Android N.</li>
|
||||||
|
<li>Conecta el dispositivo a tu equipo de desarrollo e instala tu aplicación.</li>
|
||||||
|
<li>Ejecuta tu aplicación y déjala activa.</li>
|
||||||
|
<li>Simula la activación del modo App Standby en la aplicación ejecutando los siguientes comandos:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
$ adb shell am broadcast -a android.os.action.DISCHARGING
|
||||||
|
$ adb shell am set-idle <packageName> true
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li>Simula la activación de tu aplicación con el siguiente comando:
|
||||||
|
<pre>$ adb shell am set-idle <packageName> false</pre>
|
||||||
|
</li>
|
||||||
|
<li>Observa el comportamiento de tu aplicación al reactivarse. Asegúrate de que se recupere correctamente del modo App Standby.
|
||||||
|
En particular, debes comprobar si los trabajos en segundo plano y las notificaciones de tu aplicación continúan funcionando de la manera esperada.
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<h2 id="ids">Copia de seguridad automática para aplicaciones e identificadores específicos del dispositivo</h2>
|
||||||
|
|
||||||
|
<p>Si tu aplicación continúa teniendo algún identificador específico del dispositivo, como la Id. de registro de Google Cloud Messaging, en el almacenamiento interno, asegúrate de seguir las mejores prácticas para excluir la ubicación de almacenamiento de la copia de seguridad automática, como se describe en la sección <a href="{@docRoot}preview/backup/index.html">Copia de seguridad automática para aplicaciones</a>.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
BIN
docs/html-intl/intl/es/preview/images/bundles.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
docs/html-intl/intl/es/preview/images/bundles_2x.png
Normal file
|
After Width: | Height: | Size: 322 KiB |
BIN
docs/html-intl/intl/es/preview/images/datasaver.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
docs/html-intl/intl/es/preview/images/doze-diagram-1.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
docs/html-intl/intl/es/preview/images/doze-diagram-2.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
docs/html-intl/intl/es/preview/images/inline-reply.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
docs/html-intl/intl/es/preview/images/inline-reply_2x.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
docs/html-intl/intl/es/preview/images/inline-type-reply.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
docs/html-intl/intl/es/preview/images/inline-type-reply_2x.png
Normal file
|
After Width: | Height: | Size: 262 KiB |
|
After Width: | Height: | Size: 10 KiB |
BIN
docs/html-intl/intl/es/preview/images/m-preview-timeline.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
docs/html-intl/intl/es/preview/images/mw-portrait.png
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
docs/html-intl/intl/es/preview/images/mw-splitscreen.png
Normal file
|
After Width: | Height: | Size: 167 KiB |
BIN
docs/html-intl/intl/es/preview/images/mw-splitscreen_2x.png
Normal file
|
After Width: | Height: | Size: 546 KiB |
BIN
docs/html-intl/intl/es/preview/images/n-preview-setup.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
docs/html-intl/intl/es/preview/images/notifications-1.png
Normal file
|
After Width: | Height: | Size: 143 KiB |
BIN
docs/html-intl/intl/es/preview/images/notifications-2.png
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
docs/html-intl/intl/es/preview/images/notifications-3.png
Normal file
|
After Width: | Height: | Size: 197 KiB |
BIN
docs/html-intl/intl/es/preview/images/notifications-card.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
docs/html-intl/intl/es/preview/images/pip-active.png
Normal file
|
After Width: | Height: | Size: 374 KiB |
BIN
docs/html-intl/intl/es/preview/images/pip-button.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
docs/html-intl/intl/es/preview/images/quicksettings.png
Normal file
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 15 KiB |
BIN
docs/html-intl/intl/es/preview/images/sample-directboot.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 18 KiB |
BIN
docs/html-intl/intl/es/preview/images/sample-multiwindow.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 8.1 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 221 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 249 KiB |
BIN
docs/html-intl/intl/es/preview/images/screen-zoom-1.png
Normal file
|
After Width: | Height: | Size: 769 KiB |
BIN
docs/html-intl/intl/es/preview/images/screen-zoom-2.png
Normal file
|
After Width: | Height: | Size: 911 KiB |
BIN
docs/html-intl/intl/es/preview/images/studio-jdk-location.jpg
Normal file
|
After Width: | Height: | Size: 81 KiB |
@@ -1,6 +1,6 @@
|
|||||||
page.title=Android N Developer Preview
|
page.title=Android N Developer Preview
|
||||||
page.tags="preview","developer"
|
page.tags="preview","developer"
|
||||||
meta.tags=“preview”, “android”
|
meta.tags="preview", "android"
|
||||||
fullpage=true
|
fullpage=true
|
||||||
forcelocalnav=true
|
forcelocalnav=true
|
||||||
header.hide=1
|
header.hide=1
|
||||||
@@ -25,8 +25,8 @@ footer.hide=1
|
|||||||
<h1 class="dac-hero-title">Android N Developer Preview</h1>
|
<h1 class="dac-hero-title">Android N Developer Preview</h1>
|
||||||
<p class="dac-hero-description">
|
<p class="dac-hero-description">
|
||||||
¡Prepárate para Android N!
|
¡Prepárate para Android N!
|
||||||
<strong>Prueba tus aplicaciones</strong> en Nexus y en otros dispositivos. Admite comportamientos del sistema nuevo
|
<strong>Prueba tus aplicaciones</strong> en Nexus y en otros dispositivos. Admite comportamientos del sistema
|
||||||
para <strong>ahorrar energía y memoria</strong>.
|
nuevo para <strong>ahorrar energía y memoria</strong>.
|
||||||
Amplía la funcionalidad de tus aplicaciones gracias a una <strong>IU con ventanas múltiples</strong>,
|
Amplía la funcionalidad de tus aplicaciones gracias a una <strong>IU con ventanas múltiples</strong>,
|
||||||
<strong>notificaciones de respuestas directas</strong> y más.
|
<strong>notificaciones de respuestas directas</strong> y más.
|
||||||
</p>
|
</p>
|
||||||
@@ -102,7 +102,18 @@ footer.hide=1
|
|||||||
</div><!-- end .wrap -->
|
</div><!-- end .wrap -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<section class="dac-section dac-light"><div class="wrap">
|
<section class="dac-section dac-light dac-small" id="latest"><div class="wrap">
|
||||||
|
<h2 class="norule">Lo último</h2>
|
||||||
|
<div class="resource-widget resource-flow-layout col-16"
|
||||||
|
data-query="type:blog+tag:androidn+tag:featured, type:youtube+tag:androidn+tag:featured"
|
||||||
|
data-sortOrder="-timestamp"
|
||||||
|
data-cardSizes="6x6"
|
||||||
|
data-items-per-page="6"
|
||||||
|
data-maxResults="15"
|
||||||
|
data-initial-results="3"></div>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<section class="dac-section dac-gray"><div class="wrap">
|
||||||
<h1 class="dac-section-title">Recursos</h1>
|
<h1 class="dac-section-title">Recursos</h1>
|
||||||
<div class="dac-section-subtitle">
|
<div class="dac-section-subtitle">
|
||||||
Información esencial para ayudarte a preparar tus aplicaciones para Android N.
|
Información esencial para ayudarte a preparar tus aplicaciones para Android N.
|
||||||
|
|||||||
@@ -15,26 +15,26 @@ page.keywords="android N", "Java 8", "Jack"
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>En Android N se ofrece compatibilidad con funciones del idioma Java 8
|
<p>En Android N se ofrece compatibilidad con funciones
|
||||||
que puedes usar al desarrollar aplicaciones orientadas a Android N.
|
del idioma Java 8 que puedes usar al desarrollar aplicaciones orientadas a Android N.
|
||||||
En esta página se describen las funciones de idioma compatibles con la Android N
|
En esta página se describen las funciones de idioma compatibles con la Android N
|
||||||
Preview, también la manera adecuada de configurar tu proyecto para usarlas y muchos problemas
|
Preview, también la manera adecuada de configurar tu proyecto para usarlas y muchos problemas
|
||||||
conocidos que puedes experimentar.
|
conocidos que puedes experimentar.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>Para comenzar a usar estas funciones, debes descargar y configurar Android
|
<p>Para comenzar a usar estas funciones, debes descargar y configurar Android
|
||||||
Studio 2.1 (muestra) y el Android N Preview SDK, en el que se incluyen el conjunto de herramientas
|
Studio 2.1 y el Android N Preview SDK, en el que se incluyen el conjunto de herramientas
|
||||||
Jack y el complemento de Android para Gradle. Si aún no instalaste
|
Jack y el complemento de Android para Gradle. Si aún no
|
||||||
el Android N Preview SDK, consulta <a href="{@docRoot}preview/setup-sdk.html">Configuración para desarrollar con Android N</a>.</p>
|
instalaste el Android N Preview SDK, consulta <a href="{@docRoot}preview/setup-sdk.html">Configuración para desarrollar con Android N</a>.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p class="note">
|
<p class="note">
|
||||||
<strong>Nota:</strong> No es obligatorio usar las nuevas funciones del lenguaje Java 8
|
<strong>Nota:</strong> No es obligatorio usar las nuevas funciones del lenguaje Java 8
|
||||||
para desarrollar aplicaciones orientadas a la plataforma de Android N. Si no
|
para desarrollar aplicaciones orientadas a la plataforma de Android N. Si
|
||||||
deseas escribir código con funciones del lenguaje Java 8, puedes mantener los valores de compatibilidad
|
no deseas escribir código con funciones del lenguaje Java 8, puedes mantener los
|
||||||
de origen y destino de tu proyecto en Java 7, pero
|
valores de compatibilidad de origen y destino de tu proyecto en Java 7, pero debes
|
||||||
debes usar JDK 8 para crear la compilación en función de la plataforma de Android N.
|
usar JDK 8 para crear la compilación en función de la plataforma de Android N.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="supported-features">
|
<h2 id="supported-features">
|
||||||
@@ -55,59 +55,71 @@ el Android N Preview SDK, consulta <a href="{@docRoot}preview/setup-sdk.html">Co
|
|||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a class="external-link" href="https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html">
|
<a class="external-link" href="https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html">
|
||||||
expresiones Lambda;</a>
|
expresiones Lambda</a> (también disponible en API nivel 23 e inferiores);
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a class="external-link" href="https://docs.oracle.com/javase/tutorial/java/annotations/repeating.html">anotaciones
|
<a class="external-link" href="https://docs.oracle.com/javase/tutorial/java/annotations/repeating.html">anotaciones
|
||||||
reiterables.</a>
|
reiterables;</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="external-link" href="https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html">
|
||||||
|
referencias de métodos</a> (también disponible en API nivel 23 e inferiores).
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<p class="note">
|
||||||
|
<strong>Nota:</strong> Para probar expresiones Lambda y métodos de referencia en
|
||||||
|
versiones anteriores de Android, accede al archivo {@code build.gradle}
|
||||||
|
y fija {@code compileSdkVersion} y {@code targetSdkVersion} en 23 o
|
||||||
|
un valor inferior. Tendrás que <a href="#configuration">habilitar la cadena de herramientas
|
||||||
|
Jack</a> para usar estas funciones de Java 8.
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
A su vez, las siguientes API de funciones del lenguaje Java 8 ahora se encuentran disponibles:
|
A su vez, las siguientes API de funciones del lenguaje Java 8 ahora se encuentran disponibles:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Las API de Reflection y las relacionadas con el lenguaje:
|
<li>Las API Reflection y las relacionadas con el lenguaje:
|
||||||
</li>
|
|
||||||
|
|
||||||
<li style="list-style: none; display: inline">
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>{@code java.lang.FunctionalInterface}
|
<li>
|
||||||
|
<a class="external-link" href="https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html">
|
||||||
|
{@code java.lang.FunctionalInterface}</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>{@code java.lang.annotation.Repeatable}
|
<li>
|
||||||
|
<a class="external-link" href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Repeatable.html">
|
||||||
|
{@code java.lang.annotation.Repeatable}</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>{@code java.lang.reflect.Method.isDefault()}
|
<li>
|
||||||
|
<a class="external-link" href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html#isDefault--">
|
||||||
|
{@code java.lang.reflect.Method.isDefault()}</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>También API Reflection asociadas con anotaciones reiterables, como
|
<li>También las API Reflection asociadas con anotaciones reiterables, como
|
||||||
{@code AnnotatedElement.getAnnotationsByType(Class)}:
|
<a class="external-link" href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AnnotatedElement.html#getAnnotationsByType-java.lang.Class-">
|
||||||
|
{@code AnnotatedElement.getAnnotationsByType(Class)}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>API de utilidades:
|
<li>API de utilidades:
|
||||||
</li>
|
|
||||||
|
|
||||||
<li style="list-style: none; display: inline">
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>{@code java.util.function}
|
<li>
|
||||||
|
<a class="external-link" href="https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html">
|
||||||
|
{@code java.util.function}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p class="note">
|
<li>
|
||||||
<strong>Nota:</strong> la implementación de expresiones Lambda
|
<a class="external-link" href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html">
|
||||||
de Android N se basa en clases anónimas. Este enfoque permite que
|
{@code java.util.stream}</a>
|
||||||
tengan compatibilidad con versiones anteriores y puedan ejecutarse en versiones anteriores de Android. Para probar
|
</li>
|
||||||
expresiones Lambda en versiones anteriores, recuerda acceder a tu archivo {@code
|
</ul>
|
||||||
build.gradle} y fijar {@code compileSdkVersion} y {@code
|
</li>
|
||||||
targetSdkVersion} en 23 o un valor inferior.
|
</ul>
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2 id="configuration">
|
<h2 id="configuration">
|
||||||
Habilitar funciones de Java 8 y del conjunto de herramientas Jack
|
Habilitar funciones de Java 8 y del conjunto de herramientas Jack
|
||||||
@@ -122,14 +134,14 @@ el Android N Preview SDK, consulta <a href="{@docRoot}preview/setup-sdk.html">Co
|
|||||||
MultiDex.
|
MultiDex.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>A continuación, se muestra una comparación de los conjuntos de herramientas empleadas para generar archivos DEX de Android:</p>
|
<p>A continuación, se muestra una comparación de los conjuntos de herramientas empleados para generar archivos DEX de Android:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Conjunto de herramientas javac heredada:<br>
|
<li>Conjunto de herramientas javac heredada:<br>
|
||||||
<b>javac</b> ({@code .java} --> {@code .class}) --> <b>dx</b> ({@code
|
<b>javac</b> ({@code .java} --> {@code .class}) --> <b>dx</b> ({@code
|
||||||
.class} --> {@code .dex})
|
.class} --> {@code .dex})
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Nueva conjunto de herramientas Jack:<br>
|
<li>Nueva cadena de herramientas Jack:<br>
|
||||||
<b>Jack</b> ({@code .java} --> {@code .jack} --> {@code .dex})
|
<b>Jack</b> ({@code .java} --> {@code .jack} --> {@code .dex})
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -140,7 +152,7 @@ el Android N Preview SDK, consulta <a href="{@docRoot}preview/setup-sdk.html">Co
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Si deseas habilitar las funciones del lenguaje Java 8 y de Jack para tu proyecto, escribe lo
|
Si deseas habilitar las funciones del lenguaje Java 8 y de Jack para tu proyecto, escribe lo
|
||||||
siguiente en tu archivo específico de módulo {@code build.gradle}:
|
siguiente en tu archivo de nivel de módulo {@code build.gradle}:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
@@ -159,13 +171,14 @@ android {
|
|||||||
}
|
}
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<h3>
|
<h3 id="known-issues">
|
||||||
Problemas conocidos
|
Problemas conocidos
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Instant Run, presentado en Android Studio 2.0 (beta), actualmente no funciona
|
Actualmente, <a href="{@docRoot}tools/building/building-studio.html#instant-run">Instant
|
||||||
con Jack y permanecerá deshabilitado cuando se use el nuevo conjunto de herramientas.
|
Run</a> no funciona con Jack y permanecerá deshabilitado cuando se use
|
||||||
|
el nuevo conjunto de herramientas.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>Debido a que Jack no genera archivos de clase intermedia al compilar una
|
<p>Debido a que Jack no genera archivos de clase intermedia al compilar una
|
||||||
@@ -173,11 +186,12 @@ aplicación, las herramientas que dependen de estos archivos actualmente no func
|
|||||||
ejemplos de estas herramientas:</p>
|
ejemplos de estas herramientas:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>detectores Lint que funcionan en archivos de clases;
|
<li>Detectores Lint que funcionan en archivos de clases;
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Herramientas y bibliotecas que requieren los archivos de clase de la aplicación (como JaCoCo
|
<li>Herramientas y bibliotecas que requieren los archivos de clase de la aplicación (como
|
||||||
y Mockito).</li>
|
pruebas de instrumentación con JaCoCo).
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Si experimentas otros problemas al usar Jack, <a href="http://tools.android.com/filing-bugs">informa los errores</a>.</p>
|
<p>Si experimentas otros problemas al usar Jack, <a href="http://tools.android.com/filing-bugs">envía un error</a>.</p>
|
||||||
145
docs/html-intl/intl/es/preview/license.jd
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
page.title=Contrato de licencia
|
||||||
|
|
||||||
|
@jd:body
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Para comenzar a usar la Android SDK Preview, debe aceptar los términos y las condiciones que se describen a continuación.
|
||||||
|
Como se describe a continuación, tenga en cuenta que esta es una versión preliminar del Android SDK, que está sujeta a cambios y que usted utiliza bajo su cuenta y riesgo. La Android SDK Preview no es una versión estable y puede contener errores y defectos que pueden provocar daños graves a sus sistemas informáticos, dispositivos y datos.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Este es el Contrato de licencia de la versión Android SDK Preview (el “Contrato de licencia”).
|
||||||
|
</p>
|
||||||
|
<div class="sdk-terms" style="height:auto;border:0;padding:0;width:700px">
|
||||||
|
1. Introducción
|
||||||
|
|
||||||
|
1.1 Se le otorga la licencia de la versión Android SDK Preview (denominada “Preview” en el Contrato de licencia y que incluye específicamente los archivos de sistema de Android, las API agrupadas y los archivos de biblioteca de la Preview, si se encuentran disponibles), sujeto a los términos del Contrato de licencia. El Contrato de licencia establece una relación legal vinculante entre usted y Google en relación con el uso que realice de la Preview.
|
||||||
|
|
||||||
|
1.2 “Android” hace referencia al conjunto de soluciones Android para dispositivos, según se encuentre disponible en el Proyecto de código abierto de Android (Android Open Source Project), que se encuentra en la siguiente URL: http://source.android.com/, y según se actualiza periódicamente.
|
||||||
|
|
||||||
|
.1.3 “Compatible con Android” se refiere a cualquier implementación de Android que (i) cumpla con el documento Definición de compatibilidad de Android, disponible en el sitio web de compatibilidad de Android (http://source.android.com/compatibility) y que puede actualizarse esporádicamente; y (ii) apruebe satisfactoriamente la prueba de Compatibilidad con Android, "CTS” (en inglés, Android Compatibility Test Suite).
|
||||||
|
|
||||||
|
1.4 “Google” hace referencia a Google Inc., una corporación de Delaware, con sede principal en 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos.
|
||||||
|
|
||||||
|
2. Aceptación del Contrato de licencia
|
||||||
|
|
||||||
|
2.1 Para poder utilizar la Preview, primero debe aceptar el Contrato de licencia. Si no acepta el Contrato de licencia, no podrá utilizar la Preview.
|
||||||
|
|
||||||
|
2.2 Al hacer clic para aceptar o utilizar la Preview, por medio del presente, usted acepta los términos del Contrato de licencia.
|
||||||
|
|
||||||
|
2.3 No puede utilizar la Preview ni aceptar el Contrato de licencia si tiene prohibido recibir la Preview en virtud de las leyes de los Estados Unidos o de otros países, lo que incluye el país donde es residente o desde el que utilizará la Preview.
|
||||||
|
|
||||||
|
2.4 Si utilizará la Preview de forma interna, dentro de su empresa u organización, usted acepta quedar sujeto al Contrato de licencia en representación de su empleador u otra entidad, y expresa y garantiza que tiene plena autoridad legal para vincular a su empleador o a dicha entidad al Contrato de licencia. Si usted no posee la autoridad requerida, no podrá aceptar el Contrato de licencia ni utilizar la Preview en representación de su empleador u otra entidad.
|
||||||
|
|
||||||
|
3. Licencia de la Preview de Google
|
||||||
|
|
||||||
|
3.1 Conforme a los términos de este contrato de licencia, Google le otorga una licencia limitada, con validez mundial, libre de regalías, no asignable, no exclusiva y sin la posibilidad de otorgar una sublicencia, para utilizar la Preview con el único propósito de desarrollar aplicaciones para ejecutar en implementaciones compatibles de Android.
|
||||||
|
|
||||||
|
3.2 No puede utilizar esta Preview para desarrollar aplicaciones para otras plataformas (entre las que se incluyen implementaciones incompatibles de Android) o para desarrollar otro SDK. Desde luego, usted tiene la libertad para desarrollar aplicaciones para otras plataformas, entre las que se incluyen implementaciones incompatibles de Android, siempre y cuando esta Preview no se utilice con ese propósito.
|
||||||
|
|
||||||
|
3.3 Usted acepta que Google o terceros poseen todos los derechos legales, títulos e intereses en relación con la Preview, incluidos derechos de propiedad intelectual que existan en esta. "Derechos de propiedad intelectual" hace referencia a todos los derechos de la ley de patentes, la ley de derechos de autor, la ley de secreto comercial, la ley de marca comercial y cualquier otro derecho de propiedad. Google se reserva todos los derechos que no se le otorguen expresamente.
|
||||||
|
|
||||||
|
3.4 Usted no podrá utilizar la Preview para ningún otro propósito que no esté expresamente permitido en el Contrato de licencia. Excepto en la medida que lo exijan las licencias correspondientes de terceros, no podrá: (a) copiar (excepto con fines de copia de seguridad), modificar, adaptar, redistribuir, descompilar, utilizar técnicas de ingeniería inversa, desarmar ni crear trabajos derivados de la Preview ni de ninguna de sus partes; ni (b) cargar ninguna parte de la Preview en un teléfono móvil ni en ningún otro dispositivo de hardware (a excepción de una computadora personal), ni podrá combinar ninguna parte de la Preview con otro software, ni distribuir algún software o dispositivo que incorpore alguna parte de la Preview.
|
||||||
|
|
||||||
|
3.5 El uso, la reproducción y la distribución de los componentes de la Preview con licencia de software de código abierto están regidos exclusivamente por los términos de la licencia de ese software de código abierto y no de este Contrato de licencia. Usted acepta mantener la licencia en regla con respecto a dichas licencias de software de código abierto en virtud de todos los derechos otorgados y acepta abstenerte de realizar acción alguna que pudiera poner fin, suspender o violar dichos derechos.
|
||||||
|
|
||||||
|
3.6 Acepta que la forma y la naturaleza de la Preview que proporciona Google pueden cambiar sin tener que brindarle aviso previo, y que las versiones futuras de la Preview pueden ser incompatibles con las aplicaciones desarrolladas en versiones anteriores de la Preview. Usted acepta que Google, generalmente a su entera discreción, puede dejar de proporcionarle a usted o a los demás usuarios (de forma permanente o temporal) la Preview (o cualquiera de sus funciones) sin previo aviso.
|
||||||
|
|
||||||
|
3.7 Ninguna declaración de este Contrato de licencia le otorga el derecho de utilizar alguno de los nombres comerciales, las marcas comerciales, las marcas de servicio, los logotipos, los nombres de dominio ni otras características distintivas de marca de Google.
|
||||||
|
|
||||||
|
3.8 Usted acepta que no quitará, ocultará o alterará ninguna de las notificaciones de derechos de autor (entre las que se incluyen las notificaciones de copyright y marcas comercias) que pudieran estar anexadas o implícitas en la Preview.
|
||||||
|
|
||||||
|
4. Uso que usted realiza de la Preview
|
||||||
|
|
||||||
|
4.1 Google acepta que ninguna declaración del Contrato de licencia le concede a Google derecho, título o interés alguno de su parte (o de parte de sus licenciantes), en virtud del Contrato de licencia, con respecto a las aplicaciones de software que usted desarrolle mediante el uso de la Preview, lo que incluye los derechos de propiedad intelectual que conlleven esas aplicaciones.
|
||||||
|
|
||||||
|
4.2 Usted acepta utilizar la Preview y escribir aplicaciones únicamente conforme a lo que permite (a) este Contrato de licencia y (b) las leyes, regulaciones, o prácticas y pautas generalmente aceptadas y pertinentes en las jurisdicciones relevantes (entre las que se incluyen las leyes sobre la exportación de datos o software hacia los Estados Unidos u otros países relevantes y desde ellos).
|
||||||
|
|
||||||
|
4.3 Usted acepta que si utiliza la Preview para desarrollar aplicaciones, protegerá la privacidad y los derechos legales de los usuarios. Si los usuarios le proporcionan sus nombres de usuario, contraseñas u otra información de inicio de sesión o información personal, debe comunicarles que la información se encontrará disponible para su aplicación, y debe proporcionarles a dichos usuarios un aviso de privacidad con protección y validez legal. Si su aplicación almacena información personal o confidencial proporcionada por los usuarios, lo debe hacer de forma segura. Si los usuarios le proporcionan información sobre la cuenta de Google, su aplicación solo puede usar esa información para acceder a la cuenta de Google del usuario siempre que este le haya otorgado permiso para hacerlo y con los fines para los que se lo haya otorgado.
|
||||||
|
|
||||||
|
4.4 Usted acepta que no participará en ninguna actividad con la Versión preliminar (lo que incluye el desarrollo o la distribución de una aplicación) que interfiera, interrumpa, dañe o acceda sin autorización a servidores, redes u otras propiedades o servicios de Google o de algún tercero.
|
||||||
|
|
||||||
|
4.5 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de los datos, el contenido o los recursos que usted cree, transmita o muestre a través de Android o las aplicaciones para Android, y de las consecuencias de sus acciones (lo que incluye la pérdida o el daño que Google pudiera sufrir) al hacerlo.
|
||||||
|
|
||||||
|
4.6 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de cualquier incumplimiento de sus obligaciones en virtud de este Contrato de licencia, los contratos aplicables de terceros o los términos del servicio, o cualquier ley o regulación pertinentes, y de las consecuencias (lo que incluye las pérdidas o los daños que pudieran sufrir Google o algún tercero) de dichos incumplimientos.
|
||||||
|
|
||||||
|
4.7 La Versión preliminar se encuentra en desarrollo, y sus pruebas y comentarios son una parte importante del proceso de desarrollo. Al utilizar la Preview, usted reconoce que la implementación de algunas características aún se encuentra en desarrollo y que no debe confiar en que la Preview contará con todas las funcionalidades de una versión estable. Usted acepta no distribuir públicamente ni enviar ninguna aplicación que utilice esta Preview, dado que esta Preview ya no se admitirá tras el lanzamiento del Android SDK oficial.
|
||||||
|
|
||||||
|
5. Sus credenciales de desarrollador
|
||||||
|
|
||||||
|
5.1 Usted acepta que es responsable de mantener la confidencialidad de toda credencial de desarrollador que Google pudiera otorgarle o que pudiera escoger usted mismo, y que será el único responsable de todas las aplicaciones que se desarrollen con sus credenciales de desarrollador.
|
||||||
|
|
||||||
|
6. Privacidad e información
|
||||||
|
|
||||||
|
6.1 Con el objetivo de poder innovar y mejorar de forma continua la Preview, Google podría recopilar ciertas estadísticas de uso del software, entre las que se incluyen, de forma enunciativa, un identificador único, la dirección IP asociada, el número de versión del software e información sobre las herramientas o los servicios de la Preview que se estén utilizando y la manera en que se estén utilizando. Antes de que se recopile esta información, la Preview se lo notificará y le solicitará su permiso. Si no otorga su permiso, no se recopilará la información.
|
||||||
|
|
||||||
|
6.2 Los datos recopilados se analizan en el agregado para mejorar la Preview y se conservan de acuerdo con la política de privacidad de Google, que se encuentra en el sitio http://www.google.com/policies/privacy/.
|
||||||
|
|
||||||
|
7. Aplicaciones de terceros
|
||||||
|
|
||||||
|
7.1 Si utiliza la Preview para ejecutar aplicaciones desarrolladas por un tercero o que accedan a datos, contenido o recursos proporcionados por un tercero, usted acepta que Google no es responsable de esas aplicaciones, datos, contenido ni recursos. Usted comprende que todos los datos, contenidos o recursos a los que podría acceder a través de esas aplicaciones de terceros son exclusiva responsabilidad de la persona que los origina y que Google no es responsable de las pérdidas ni los daños que usted pudiera experimentar como consecuencia del uso o acceso de cualquiera de esas aplicaciones, datos, contenido o recursos de terceros.
|
||||||
|
|
||||||
|
7.2 Usted debe saber que los datos, el contenido y los recursos que se le presentan a través de esa aplicación de un tercero pueden estar protegidos por derechos de propiedad intelectual que les pertenecen a sus proveedores (o a otras personas o compañías en representación de estos). No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas basadas en esos datos, contenidos o recursos (en su totalidad o en parte), a menos que los propietarios pertinentes le hayan otorgado el permiso específico para hacerlo.
|
||||||
|
|
||||||
|
7.3 Usted acepta que el uso que haga de las aplicaciones, los datos, el contenido o los recursos de ese tercero puede estar sujeto a términos independientes entre usted y el tercero correspondiente.
|
||||||
|
|
||||||
|
8. Uso de las API de Google
|
||||||
|
|
||||||
|
8.1 API de Google
|
||||||
|
|
||||||
|
8.1.1 Si utiliza alguna API para recuperar datos de Google, usted acepta que los datos pueden estar protegidos por derechos de propiedad intelectual que le pertenecen a Google o a las partes que proporcionan esos datos (o a otras personas o empresas en representación de estos). El uso que realice de cualquiera de esas API puede estar sujeto a términos de servicio adicionales. No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas con base en esos datos (en su totalidad o en parte), a menos que los términos de servicio correspondientes lo permitan.
|
||||||
|
|
||||||
|
8.1.2 Si utiliza cualquier API para recuperar datos de un usuario de Google, usted acepta y acuerda que solo podrá recuperar datos con el consentimiento explícito del usuario y solo cuando, y para los fines limitados para los que, el usuario le haya otorgado permiso para hacerlo.
|
||||||
|
|
||||||
|
9. Finalización del Contrato de licencia
|
||||||
|
|
||||||
|
9.1 Este Contrato de licencia tendrá vigencia hasta que lo revoquen usted o Google, como se indica a continuación.
|
||||||
|
|
||||||
|
9.2 Si desea rescindir el Contrato de licencia, puede hacerlo al interrumpir el uso que realiza de la Preview y de las credenciales de desarrollador pertinentes.
|
||||||
|
|
||||||
|
9.3 Google puede, en cualquier momento, rescindir el Contrato de licencia, con causa o sin ella, luego de notificárselo.
|
||||||
|
|
||||||
|
9.4 El Contrato de licencia finalizará automáticamente, sin previo aviso ni acción alguna, tras la primera de las siguientes situaciones:
|
||||||
|
(A) cuando Google deje de proporcionar la Preview o ciertas partes de esta a los usuarios en el país donde usted reside o desde el que utiliza el servicio; y
|
||||||
|
(B) cuando Google emita una versión final del Android SDK.
|
||||||
|
|
||||||
|
9.5 Si el Contrato de licencia se rescinde, se revocará la licencia que usted recibió en virtud de dicho contrato; usted deberá suspender inmediatamente todo uso de la Preview, y las disposiciones de los párrafos 10, 11, 12 y 14 seguirán vigentes indefinidamente.
|
||||||
|
|
||||||
|
10. EXENCIONES DE RESPONSABILIDAD
|
||||||
|
|
||||||
|
10.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE EL USO QUE REALICE DE LA PREVIEW ES BAJO SU PROPIO RIESGO Y QUE LA PREVIEW SE PROPORCIONA “EN LAS CONDICIONES EN LAS QUE SE ENCUENTRA” Y “SUJETA A DISPONIBILIDAD” SIN GARANTÍAS DE NINGÚN TIPO POR PARTE DE GOOGLE.
|
||||||
|
|
||||||
|
10.2 EL USO QUE USTED REALICE DE LA PREVIEW Y DE TODO MATERIAL DESCARGADO U OBTENIDO DE ALGUNA OTRA MANERA MEDIANTE EL USO DE LA PREVIEW ES A SU ENTERO RIESGO Y DISCRECIÓN, Y USTED ES EL ÚNICO RESPONSABLE DE CUALQUIER DAÑO QUE PUDIERA SUFRIR SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO, O DE LA PÉRDIDA DE DATOS COMO CONSECUENCIA DE DICHO USO. SIN PERJUICIO DE LO MENCIONADO ANTERIORMENTE, USTED COMPRENDE QUE LA VERSIÓN PRELIMINAR NO ES UNA VERSIÓN ESTABLE, Y PUEDE CONTENER ERRORES, DEFECTOS Y VULNERABILIDADES DE SEGURIDAD QUE PUEDEN PROVOCAR DAÑOS SIGNIFICATIVOS, LO QUE INCLUYE LA PÉRDIDA COMPLETA E IRRECUPERABLE DEL USO DE SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO.
|
||||||
|
|
||||||
|
10.3 GOOGLE TAMBIÉN RECHAZA TODAS LAS GARANTÍAS Y CONDICIONES DE CUALQUIER TIPO, EXPRESAS O IMPLÍCITAS, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS Y CONDICIONES DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN DETERMINADO Y NO VIOLACIÓN.
|
||||||
|
|
||||||
|
11. LIMITACIÓN DE RESPONSABILIDADES
|
||||||
|
|
||||||
|
11.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE GOOGLE, SUS SUBSIDIARIAS Y FILIALES, Y SUS LICENCIANTES NO SERÁN RESPONSABLES ANTE USTED, EN VIRTUD DE NINGUNA TEORÍA DE RESPONSABILIDAD, POR NINGÚN DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, RESULTANTE NI PUNITIVO EN EL QUE PODRÍA HABER INCURRIDO, LO QUE INCLUYE LA PÉRDIDA DE DATOS, YA SEA QUE SE LE HAYA NOTIFICADO O NO A GOOGLE O A SUS REPRESENTANTES, O SOBRE CUYA POSIBILIDAD ESTOS DEBERÍAN HABER SABIDO.
|
||||||
|
|
||||||
|
12. Indemnización
|
||||||
|
|
||||||
|
12.1 Hasta el grado máximo que permita la ley, usted acepta defender, indemnizar y eximir de responsabilidades a Google, sus filiales y sus respectivos directores, funcionarios, empleados y agentes, de todo tipo de reclamo, acción legal y proceso judicial, así como de las pérdidas, responsabilidades, daños, costos y gastos (incluidos los honorarios razonables de abogados) que surjan o se acumulen (a) del uso que usted realiza de la Versión preliminar, (b) de cualquier aplicación que desarrolle en la Versión preliminar que infrinja algún derecho de propiedad intelectual de cualquier persona, o que difame a cualquier persona o viole sus derechos de publicidad o privacidad, y (c) del incumplimiento por su parte del Contrato de licencia.
|
||||||
|
|
||||||
|
13. Cambios en el Contrato de licencia
|
||||||
|
|
||||||
|
13.1 Google puede realizar cambios en el Contrato de licencia a medida que distribuye nuevas versiones de la Versión preliminar. Cuando se realicen esos cambios, Google emitirá una nueva versión del Contrato de licencia, que estará disponible en el sitio web donde se ponga a la venta la Versión preliminar.
|
||||||
|
|
||||||
|
14. Términos legales generales
|
||||||
|
|
||||||
|
14.1 El Contrato de licencia constituye el contrato legal integral entre usted y Google, y rige el uso que usted realice de la Versión preliminar (a excepción de los servicios que Google pueda proporcionarle en virtud de un contrato por escrito independiente), y reemplaza totalmente cualquier contrato anterior entre usted y Google en relación con la Versión preliminar.
|
||||||
|
|
||||||
|
14.2 Usted acepta que, si Google no ejerce ni impone un derecho o recurso legal especificados en el Contrato de licencia (o sobre el que Google tenga beneficios conforme a cualquier ley aplicable), esto no se considerará una renuncia formal a los derechos por parte de Google y Google aún seguirá recibiendo los beneficios de esos derechos o recursos legales.
|
||||||
|
|
||||||
|
14.3 Si algún tribunal judicial con jurisdicción para decidir sobre este asunto determina que alguna de las disposiciones de este Contrato de licencia no es válida, se eliminará esa disposición del Contrato de licencia sin que eso afecte la validez del resto del contrato. Las disposiciones restantes del Contrato de licencia continuarán siendo válidas y aplicables.
|
||||||
|
|
||||||
|
14.4 Usted reconoce y acepta que cada miembro del grupo de compañías de las que Google es la compañía central serán terceros beneficiarios del Contrato de licencia, y que esas otras empresas tendrán el derecho de imponer directamente cualquier disposición y ampararse en las disposiciones de este Contrato de licencia que les confieran un beneficio (o que confieran derechos a su favor). Además de esto, ninguna otra persona o compañía serán terceros beneficiarios del Contrato de licencia.
|
||||||
|
|
||||||
|
14.5 RESTRICCIONES DE EXPORTACIÓN. LA VERSIÓN PRELIMINAR ESTÁ SUJETA A LAS LEYES Y REGULACIONES DE EXPORTACIÓN DE LOS ESTADOS UNIDOS. DEBE CUMPLIR CON TODAS LAS LEYES Y REGULACIONES DE EXPORTACIÓN NACIONALES E INTERNACIONALES QUE SE APLIQUEN A LA VERSIÓN PRELIMINAR. ESTAS LEYES INCLUYEN RESTRICCIONES EN RELACIÓN CON LOS DESTINOS, USUARIOS FINALES Y USO FINAL.
|
||||||
|
|
||||||
|
14.6 Usted no puede asignar ni transferir el Contrato de licencia sin la aprobación previa por escrito de Google y todo intento de asignación sin dicha aprobación no tendrá validez. No podrá delegar sus responsabilidades u obligaciones otorgadas en virtud del Contrato de licencia sin la aprobación previa por escrito de Google.
|
||||||
|
|
||||||
|
14.7 El Contrato de licencia y su relación con Google conforme al Contrato de licencia se regirán por las leyes del estado de California, independientemente de los principios de conflictos entre leyes. Usted y Google aceptan presentarse ante la jurisdicción exclusiva de los tribunales del condado de Santa Clara, California, para resolver cualquier asunto legal que pudiera surgir del Contrato de licencia. Sin perjuicio de esto, usted acepta que Google aún podrá aplicar reparaciones conforme a mandato judicial (o a un tipo equivalente de desagravio legal) en cualquier jurisdicción.
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
page.title=Información general del programa
|
page.title=Información general del programa
|
||||||
page.metaDescription=Prepara tus aplicaciones para la próxima versión de Android.
|
page.metaDescription=Prepara tus aplicaciones para la próxima versión de Android.
|
||||||
page.image=images/cards/card-n-overview_2x.png
|
page.image=images/cards/card-n-overview_2x.png
|
||||||
meta.tags=“preview”, “desarrollador”, “Android”
|
meta.tags="preview", "developer", "android"
|
||||||
page.tags="preview", "developer", "android"
|
page.tags="preview", "developer", "android"
|
||||||
|
|
||||||
@jd:body
|
@jd:body
|
||||||
@@ -37,9 +37,9 @@ page.tags="preview", "developer", "android"
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Bienvenido al plan de la <strong>Android N Developer Preview</strong>, un programa en el que
|
Bienvenido a <strong>Android N Developer Preview</strong>, un programa en el que
|
||||||
se ofrece todo lo que necesitas a fin de probar y optimizar tus aplicaciones para la próxima
|
se ofrece todo lo que necesitas a fin de probar y optimizar tus aplicaciones para la próxima
|
||||||
versión de Android. Es gratis y puedes dar tus primeros pasos
|
versión de Android. Es gratis, y puedes comenzar
|
||||||
descargando las herramientas de la N Developer Preview.
|
descargando las herramientas de la N Developer Preview.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ page.tags="preview", "developer", "android"
|
|||||||
</h5>
|
</h5>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Durante la Preview, ofreceremos varias actualizaciones mensuales. De esta manera, realizarás tus pruebas con los últimos cambios de la plataforma.
|
Durante el programa de muestra, ofreceremos varias actualizaciones mensuales. De esta manera, realizarás la prueba con los últimos cambios de la plataforma.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -105,8 +105,8 @@ page.tags="preview", "developer", "android"
|
|||||||
</h5>
|
</h5>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Actualizaciones inalámbricas sin inconvenientes para dispositivos admitidos a través del
|
Actualizaciones inalámbricas sin inconvenientes para dispositivos admitidos a través
|
||||||
Programa de Android beta. No se requieren actualizaciones.
|
del Programa de Android Beta. No se requieren actualizaciones.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -116,10 +116,10 @@ page.tags="preview", "developer", "android"
|
|||||||
</h5>
|
</h5>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Informa los problemas y envíanos comentarios a través de nuestro
|
Infórmanos los problemas y envíanos comentarios a través de nuestro
|
||||||
<a href="{@docRoot}preview/bug">sistema de seguimiento de problemas</a>. Conéctate con otros desarrolladores
|
<a href="{@docRoot}preview/bug">seguimiento de problemas</a>. Conéctate con otros
|
||||||
en la
|
desarrolladores en la
|
||||||
<a href="{@docRoot}preview/dev-community">comunidad de desarrolladores de Android N</a>.
|
<a href="{@docRoot}preview/dev-community">comunidad de desarrolladores de Android N</a>.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -140,70 +140,70 @@ page.tags="preview", "developer", "android"
|
|||||||
<img src="{@docRoot}images/n-preview-updates_2x.png">
|
<img src="{@docRoot}images/n-preview-updates_2x.png">
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
La N Developer Preview rige desde el 9 de marzo de 2016 hasta el lanzamiento público de Android N
|
La N Developer Preview rige desde el 9 de marzo de 2016 hasta el lanzamiento público
|
||||||
para AOSP y OEM, previsto para el tercer trimestre de 2016.
|
de Android N para AOSP y OEM, previsto para el tercer trimestre de 2016.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En momentos claves del desarrollo, ofreceremos actualizaciones para tu entorno de desarrollo y
|
En las versiones "milestone" del desarrollo, lanzaremos actualizaciones para tu entorno de pruebas y desarrollo.
|
||||||
prueba. En general, podrás contar con una actualización por mes (intervalo de 4 a 6
|
En general, podrás contar con una actualización por mes (intervalo de 4 a 6
|
||||||
semanas). A continuación, se mencionan las versiones milestone:
|
semanas). A continuación, se muestran las versiones "milestone":
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong><a href="{@docRoot}preview/support.html#dp1">Preview 1</a></strong> (versión inicial, alpha);</li>
|
<li><strong><a href="{@docRoot}preview/support.html#dp1">Preview 1</a></strong> (versión inicial, alpha);</li>
|
||||||
<li><strong><a href="{@docRoot}preview/support.html#dp2">Preview 2</a></strong> (actualización gradual, alpha);</li>
|
<li><strong><a href="{@docRoot}preview/support.html#dp2">Preview 2</a></strong> (actualización gradual, alpha);</li>
|
||||||
<li><strong>Preview 3</strong> (actualización gradual, beta);</li>
|
<li><strong><a href="{@docRoot}preview/support.html#dp3">Preview 3</a></strong> (actualización gradual, beta);</li>
|
||||||
<li><strong>Preview 4</strong> (API finales y SDK oficial, publicación en Google Play);</li>
|
<li><strong>Preview 4</strong> (API finales y SDK oficial, publicación en Google Play);</li>
|
||||||
<li><strong>Preview 5</strong> (imágenes de sistema casi definitivas para pruebas finales);</li>
|
<li><strong>Preview 5</strong> (imágenes de sistema casi definitivas para pruebas finales);</li>
|
||||||
<li><strong>lanzamiento de la versión final</strong> para AOSP y el ecosistema.</li>
|
<li><strong>Lanzamiento de la versión final</strong> para AOSP y el ecosistema.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En cada actualización se incluyen herramientas de SDK, imágenes de sistema de la muestra, emuladores, documentación de
|
En cada actualización se incluyen herramientas de SDK, imágenes de sistema de Preview, emuladores, documentación de referencia y diferencias de API.
|
||||||
referencia y diferencias de API.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En las primeras <strong>tres milestone de la muestra</strong> se proporciona un <strong>entorno
|
En las primeras <strong>tres versiones "milestone" de Preview</strong>, se proporciona un <strong>entorno
|
||||||
de prueba y desarrollo tempranos</strong> que te permitirá identificar
|
de prueba y desarrollo tempranos</strong> que te permitirá identificar
|
||||||
problemas de compatibilidad en tus aplicaciones actuales y planificar tareas relacionadas con la migración o las funciones
|
problemas de compatibilidad en tus aplicaciones actuales y planificar tareas relacionadas con la migración o las funciones que se necesitan
|
||||||
que se necesitan para orientar la nueva plataforma. Este será el período de prioridad en el cual nos
|
para orientar la nueva plataforma. Este será el período de prioridad
|
||||||
enviarás tus comentarios sobre funciones y problemas de compatibilidad de API y archivos;
|
en el cual nos enviarás tus comentarios sobre funciones y problemas de compatibilidad de API y archivos;
|
||||||
para hacerlo, usa el <a href="{@docRoot}preview/bug">sistema se seguimiento de
|
para hacerlo, usa el <a href="{@docRoot}preview/bug">sistema se seguimiento
|
||||||
problemas</a>. Podrás contar con cambios en las API en estas actualizaciones.
|
de problemas.</a> Podrás contar con cambios en las API en estas actualizaciones.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Entre las <strong>Preview 4 y 5</strong>, tendrás acceso a las <strong>API
|
En <strong>Preview 4 y 5</strong>, tendrás acceso a las <strong>API y al SDK finales
|
||||||
y al SDK finales de Android N</strong> para tareas de desarrollo, y también a imágenes de sistema casi definitivas
|
de Android N</strong> para tareas de desarrollo, y también a imágenes de sistema casi definitivas
|
||||||
para poner a prueba comportamientos y funciones del sistema. Durante este período, Android N ofrecerá un nivel de API
|
para poner a prueba comportamientos y funciones del sistema. Durante este período, Android N ofrecerá un nivel
|
||||||
estándar. Puedes iniciar la prueba de compatibilidad de tus aplicaciones
|
de API estándar. Puedes iniciar la prueba de compatibilidad de tus aplicaciones
|
||||||
heredadas y optimizar el código nuevo en el que se usen las API o funciones de Android N.
|
heredadas y optimizar el código nuevo en el que se usen las API o funciones de Android N.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
A su vez, a partir de la Preview 4, podrás <strong>publicar aplicaciones en
|
A su vez, a partir de Preview 4, podrás <strong>publicar aplicaciones en
|
||||||
dispositivos</strong> con Android N cuyo nivel de API sea el oficial (por ejemplo,
|
dispositivos</strong> con Android N cuyo nivel de API sea el oficial (por ejemplo, dispositivos de
|
||||||
dispositivos de consumidores inscritos en el Programa de Android beta). Puedes
|
consumidores inscritos en el Programa de Android Beta). Puedes
|
||||||
realizar primero publicaciones en los canales alpha y beta de Google Play, a fin de probar
|
realizar primero publicaciones en los canales alpha y beta de Google Play, para probar
|
||||||
tus aplicaciones con consumidores de Android beta antes de proceder con la distribución a gran escala en la
|
tus aplicaciones con consumidores de Android Beta antes de proceder con la distribución a gran escala en la
|
||||||
tienda.
|
tienda.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
A medida que pruebes Android N y lo uses para tus desarrollos, te recomendamos enfáticamente <strong>mantener
|
A medida que pruebas y desarrollas en Android N, te recomendamos que <strong>mantengas
|
||||||
actualizado tu entorno de desarrollo</strong> conforme se lancen actualizaciones de la
|
tu entorno de desarrollo actualizado</strong> conforme se lanzan
|
||||||
muestra. Para facilitar el proceso, puedes registrar tus dispositivos de prueba en el
|
las actualizaciones de Preview. Para facilitar el proceso, puedes registrar tus dispositivos de prueba en el
|
||||||
Programa de Android Beta y obtener <strong>actualizaciones inalámbricas (OTA)</strong> en
|
Programa de Android Beta y obtener <strong>actualizaciones inalámbricas</strong> en cada
|
||||||
cada versión milestone. Como alternativa, habrá disponibles imágenes de preview actualizadas que puedes
|
versión "milestone". Como alternativa, habrá imágenes de Preview actualizadas disponibles que puedes
|
||||||
descargar y actualizar de manera manual.
|
descargar y actualizar de manera manual.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Cuando haya disponibles las actualizaciones de la muestra, te informaremos a través del <a href="http://android-developers.blogspot.com/">blog para desarrolladores de Android</a>, de
|
Cuando haya actualizaciones de Preview disponibles, te informaremos a través del <a href="http://android-developers.blogspot.com/">blog para desarrolladores de Android</a>, de este sitio y
|
||||||
este sitio y de la <a href="{@docRoot}preview/dev-community">Comunidad de desarrolladores
|
de la <a href="{@docRoot}preview/dev-community">Comunidad de desarrolladores de
|
||||||
de Android N</a>.
|
Android N</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
@@ -217,73 +217,73 @@ page.tags="preview", "developer", "android"
|
|||||||
|
|
||||||
<h3 id="sdk_tools">Herramientas del SDK</h3>
|
<h3 id="sdk_tools">Herramientas del SDK</h3>
|
||||||
|
|
||||||
<p>Puedes descargar todos estos componentes a través de SDK Manager en <a href="{@docRoot}sdk/installing/adding-packages.html">Android Studio</a>:</p>
|
<p>Puedes descargar todos estos componentes a través de SDK Manager en <a href="{@docRoot}studio/intro/update.html">Android Studio</a>:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li> <strong>SDK y herramientas</strong> de la N Developer Preview
|
<li> <strong>SDK y herramientas</strong> de la N Developer Preview;
|
||||||
<li> <strong>imagen del sistema para el emulador</strong>de la N Developer Preview (32 y 64 bits);
|
<li> <strong>imagen del sistema para el emulador</strong>de la N Developer Preview (32 y 64 bits);
|
||||||
<li> <strong>imagen del sistema para el emulador para Android TV</strong> (32 bits) de la N Developer Preview;
|
<li> <strong>imagen del sistema para el emulador para Android TV</strong> (32 bits) de la N Developer Preview;
|
||||||
<li> bibliotecas de compatibilidad de la N Developer Preview (para nuevas plantillas de aplicaciones).
|
<li> bibliotecas de compatibilidad de la N Developer Preview (para nuevas plantillas de aplicaciones).
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Ofreceremos actualizaciones para estas herramientas de desarrollo en cada versión milestone según sea necesario.
|
Ofreceremos actualizaciones para estas herramientas de desarrollo en cada momento clave (versión "milestone") según sea necesario.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="hardware_system_images">Imágenes de sistema de hardware</h3>
|
<h3 id="hardware_system_images">Imágenes de sistema de hardware</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En la N Developer Preview se incluyen, entre otras, imágenes de sistema del hardware de Nexus que puedes usar al
|
En la N Developer Preview se incluyen, entre otras, imágenes de sistema del hardware de Nexus que puedes usar al
|
||||||
realizar pruebas y desarrollos en dispositivos físicos. Consulta la sección de <a href="{@docRoot}preview/download.html">imágenes de sistema</a> para encontrar la lista completa
|
realizar pruebas y desarrollos en dispositivos físicos. Consulta la sección de <a href="{@docRoot}preview/download.html">imágenes de sistema</a> para encontrar la lista
|
||||||
de imágenes de hardware.
|
completa de imágenes de hardware.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Ofreceremos imágenes de sistema actualizadas para estos dispositivos en cada versión milestone. Puedes
|
Ofreceremos imágenes de sistema actualizadas para estos dispositivos en cada versión "milestone". Puedes
|
||||||
descargar y actualizar manualmente las imágenes de sistema renovadas en tus dispositivos de prueba
|
descargar y actualizar manualmente las imágenes de sistema renovadas en tus dispositivos
|
||||||
con la frecuencia que desees. Esto resulta particularmente útil para entornos
|
de prueba con la frecuencia que desees. Esto resulta particularmente útil para entornos de prueba
|
||||||
de prueba automatizados en los cuales probablemente debas volver a actualizar tu dispositivo varias
|
automatizados en los cuales probablemente debas volver a actualizar tu dispositivo varias
|
||||||
veces.
|
veces.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="note"><strong>Nota</strong>:
|
<p class="note"><strong>Nota</strong>:
|
||||||
<strong>Los dispositivos actualizados de manera manual no recibirán actualizaciones OTA</strong>, como en la
|
<strong>Los dispositivos actualizados de manera manual no recibirán actualizaciones inalámbricas</strong>, como en
|
||||||
muestra del año pasado. Este año, podrás recibir OTA registrando dispositivos en el
|
la Preview del año pasado. Este año, podrás recibir actualizaciones inalámbricas registrando dispositivos en el
|
||||||
Programa de Android Beta. Consulta la sección siguiente para obtener información detallada.
|
Programa de Android Beta. Consulta la sección siguiente para obtener información detallada.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="android_beta">Actualizaciones OTA a través del Programa de Android beta</h3>
|
<h3 id="android_beta">Actualizaciones inalámbricas a través del Programa de Android Beta</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Como novedad en Android N, se ofrece un programa de actualización inalámbrica (OTA) que
|
Como novedad en Android N, se ofrece un programa de actualización inalámbrica que
|
||||||
proporciona las últimas actualizaciones de las muestras de Android N directamente para dispositivos registrados
|
proporciona las últimas actualizaciones de Android N directamente para dispositivos registrados
|
||||||
en él. Es gratuito y está pensado para quienes tengan dispositivos
|
en él. Es gratuito y está pensado para quienes tengan
|
||||||
compatibles registrados en sus cuentas de Google.
|
dispositivos compatibles registrados en sus cuentas de Google.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para el registro, visita el sitio del <a href="https://g.co/androidbeta">Programa de Android
|
Para el registro, visita el sitio del <a href="https://g.co/androidbeta">Programa de Android
|
||||||
beta</a>. En él, verás
|
Beta</a>. En él,
|
||||||
todos los dispositivos registrados en tu cuenta que cumplen con los requisitos para registrarse en
|
verás todos los dispositivos registrados en tu cuenta que cumplen con los requisitos para registrarse
|
||||||
el programa.
|
en el programa.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li> Selecciona los dispositivo para los cuales deseas recibir actualizaciones de Android N.
|
<li> Selecciona los dispositivos para los que deseas recibir actualizaciones de Android N
|
||||||
<li> Haz clic en Registrar, lee y acepta las condiciones de servicio y luego haz clic en Aceptar.
|
<li> Haz clic en Registrar, lee y acepta las condiciones de servicio y luego haz clic en Aceptar
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Una vez que realices el registro, tu dispositivo recibirá pronto una actualización. En la mayoría de los casos,
|
Una vez que realices el registro, tu dispositivo recibirá pronto una actualización. En la mayoría de los casos,
|
||||||
no necesitarás restablecer por completo tus datos para la migración a Android N, pero
|
no necesitarás restablecer por completo tus datos para la migración a Android N, pero
|
||||||
te recomendamos hacer una copia de respaldo de los datos que no desees perder antes de
|
te recomendamos crear una copia de seguridad de los datos que no desees perder antes de
|
||||||
registrar el dispositivo.
|
registrar el dispositivo.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
A medida que tu dispositivo reciba actualizaciones, te recomendamos descargarlas e
|
A medida que tu dispositivo reciba actualizaciones, te recomendamos descargarlas e
|
||||||
instalarlas lo más pronto posible. Te convendrá mantenerte actualizado respecto de
|
instalarlas lo más pronto posible. Te convendrá mantenerte actualizado respecto de las
|
||||||
las últimas modificaciones en la IU, el comportamiento, las API y las funciones del sistema.
|
últimas modificaciones en la IU, el comportamiento, las API y las funciones del sistema.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -292,24 +292,24 @@ page.tags="preview", "developer", "android"
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Puedes dar de baja tus dispositivos del Programa de Android beta en cualquier momento desde el
|
Puedes dar de baja tus dispositivos del Programa de Android Beta en cualquier momento desde
|
||||||
sitio de Android beta. Antes de hacerlo, asegúrate de realizar una copia de respaldo de los datos de tu
|
el sitio de Android Beta. Antes de hacerlo, no te olvides de realizar una copia de respaldo de los datos
|
||||||
dispositivo.
|
de tu dispositivo.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="note"><strong>Nota</strong>:
|
<p class="note"><strong>Nota</strong>:
|
||||||
Cuando des de baja tu dispositivo, <strong>este se someterá a un restablecimiento de fábrica</strong>
|
Cuando des de baja tu dispositivo, <strong>
|
||||||
a través del cual se cargará la última versión
|
se someterá a un restablecimiento de fábrica</strong> a través del que se cargará la última versión de
|
||||||
de Android 6.0 Marshmallow (no necesariamente la versión
|
Android 6.0 Marshmallow (no necesariamente la versión
|
||||||
instalada antes del registro). Para garantizar que la instalación sea nueva,
|
instalada antes del registro). Para garantizar que la instalación sea nueva, se borrarán
|
||||||
se borrarán tus datos del dispositivo; entre otros, los contactos, los mensajes y
|
tus datos del dispositivo; entre otros, los contactos,
|
||||||
las fotos.
|
los mensajes y las fotos.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="documentation_and_sample_code">Documentación y ejemplo de código</h3>
|
<h3 id="documentation_and_sample_code">Documentación y ejemplo de código</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Los siguientes recursos de documentación se encuentran disponibles en el sitio Developer Preview y con ellos
|
Los siguientes recursos de documentación se encuentran disponibles en el sitio de Developer Preview y con ellos
|
||||||
podrás obtener información sobre Android N:
|
podrás obtener información sobre Android N:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -317,14 +317,14 @@ page.tags="preview", "developer", "android"
|
|||||||
<li> <a href="{@docRoot}preview/setup-sdk.html">Preparación para el desarrollo con
|
<li> <a href="{@docRoot}preview/setup-sdk.html">Preparación para el desarrollo con
|
||||||
Android N</a>: contiene
|
Android N</a>: contiene
|
||||||
instrucciones paso a paso para comenzar.</li>
|
instrucciones paso a paso para comenzar.</li>
|
||||||
<li> En <a href="{@docRoot}preview/behavior-changes.html">Cambios
|
<li> En <a href="{@docRoot}preview/behavior-changes.html">Cambios en los
|
||||||
en los comportamientos</a> se indican áreas claves que debes probar.</li>
|
comportamientos</a> se indican áreas clave que debes probar.</li>
|
||||||
<li> Documentación de nuevas API, incluyendo <a href="{@docRoot}preview/api-overview.html">Información general de API</a>, una <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia
|
<li> Documentación de nuevas API, entre la que se incluye <a href="{@docRoot}preview/api-overview.html">Información general de API</a>, una <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia
|
||||||
de API</a>
|
de API</a> descargable
|
||||||
descargable y guías exhaustivas para desarrolladores que muestran por ejemplo: soporte de
|
y guías exhaustivas para desarrolladores que muestran, por ejemplo, soporte
|
||||||
múltiples ventanas, notificaciones integradas, soporte de múltiples regiones, y mucho más.
|
de múltiples ventanas, notificaciones integradas, soporte de múltiples configuraciones regionales y mucho más.
|
||||||
<li> <a href="{@docRoot}preview/samples.html">Ejemplo de código</a>, en el que
|
<li> <a href="{@docRoot}preview/samples.html">Ejemplo de código</a>, en el que se
|
||||||
se demuestra la manera de admitir permisos y otras funciones nuevas.
|
demuestra la manera de admitir permisos y otras funciones nuevas.
|
||||||
<li> <a href="{@docRoot}preview/support.html#release-notes">Notas de la versión</a>
|
<li> <a href="{@docRoot}preview/support.html#release-notes">Notas de la versión</a>
|
||||||
sobre la versión actual de la N Developer Preview. Se incluyen notas sobre los cambios e informes
|
sobre la versión actual de la N Developer Preview. Se incluyen notas sobre los cambios e informes
|
||||||
de diferencias.
|
de diferencias.
|
||||||
@@ -333,11 +333,11 @@ múltiples ventanas, notificaciones integradas, soporte de múltiples regiones,
|
|||||||
<h4 id="reference">Referencia de la API descargable</h4>
|
<h4 id="reference">Referencia de la API descargable</h4>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Durante las actualizaciones de la muestra, puedes descargar la
|
Durante las actualizaciones de Preview, puedes descargar la <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia de la API más reciente
|
||||||
<a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referencia de la API
|
para la plataforma de Android N</a> en forma de
|
||||||
más reciente para la plataforma de Android N</a> como un archivo .zip separado. En esta descarga
|
archivo .zip independiente. En esta descarga
|
||||||
también se incluye un informe de diferencias que te permite identificar cambios en la API
|
también se incluye un informe de diferencias que te permite identificar cambios en la API en comparación con la
|
||||||
en comparación con la API 23 y la actualización anterior.
|
API 23 y la actualización anterior.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -355,10 +355,10 @@ múltiples ventanas, notificaciones integradas, soporte de múltiples regiones,
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li> <a href="https://code.google.com/p/android-developer-preview/">El sistema de seguimiento de problemas de la N Developer Preview
|
<li> <a href="https://code.google.com/p/android-developer-preview/">El sistema de seguimiento de problemas
|
||||||
</a> es el <strong>canal principal para comentarios.</strong> A través de él, puedes informar errores y problemas de
|
de la N Developer Preview</a> es el canal <strong>principal para comentarios.</strong> A través de él, puedes informar errores y
|
||||||
rendimiento, y enviar comentarios generales. También puedes buscar
|
problemas de rendimiento, y enviar comentarios generales. También puedes buscar
|
||||||
<a href="{@docRoot}preview/bug">problemas conocidos</a> y
|
<a href="{@docRoot}preview/bugs">problemas conocidos</a> y
|
||||||
encontrar pasos para solucionarlos. Te mantendremos informado sobre tu problema durante el proceso de evaluación y
|
encontrar pasos para solucionarlos. Te mantendremos informado sobre tu problema durante el proceso de evaluación y
|
||||||
derivación al equipo de ingeniería de Android para su resolución. </li>
|
derivación al equipo de ingeniería de Android para su resolución. </li>
|
||||||
<li> La <a href="{@docRoot}preview/dev-community">comunidad de desarrolladores de Android N</a> es
|
<li> La <a href="{@docRoot}preview/dev-community">comunidad de desarrolladores de Android N</a> es
|
||||||
@@ -368,29 +368,29 @@ múltiples ventanas, notificaciones integradas, soporte de múltiples regiones,
|
|||||||
orientación según sea necesario.</li>
|
orientación según sea necesario.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3 id="targeting">Orientación, API de la muestra y publicación</h3>
|
<h3 id="targeting">Orientación, API de la Preview y publicación</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En la N Developer Preview se proporciona un sistema exclusivo para desarrollo y una biblioteca
|
En la N Developer Preview se proporciona un sistema exclusivo para desarrollo y una
|
||||||
de Android <strong>cuyo nivel de API no es estándar</strong>. Si deseas
|
biblioteca de Android <strong>cuyo nivel de API no es estándar</strong>. Si deseas
|
||||||
no incluir comportamientos de compatibilidad para probar tu aplicación (muy
|
no incluir comportamientos de compatibilidad para probar tu aplicación (un proceso muy
|
||||||
recomendado), puedes orientar la versión preview de Android N fijando el valor de
|
recomendado), puedes orientar la versión Android N Preview fijando el valor
|
||||||
<code><a href=
|
de <code><a href=
|
||||||
"{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code>
|
"{@docRoot}preview/setup-sdk.html#create-update">targetSdkVersion</a></code> de tu aplicación
|
||||||
de tu aplicación en <code>“N”</code>.
|
en <code>“N”</code>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
La Android N Developer Preview ofrece las <strong>API de preview</strong>;
|
Android N Developer Preview ofrece las <strong>API de Preview</strong>
|
||||||
estas no serán oficiales hasta el lanzamiento de la versión definitiva del SDK,
|
, que no serán oficiales hasta el lanzamiento de la versión definitiva de SDK,
|
||||||
actualmente previsto para el tercer trimestre de 2016. Esto significa que podrás
|
actualmente previsto para el tercer trimestre de 2016. Esto significa que podrás
|
||||||
<strong>contar con cambios menores en las API</strong> conforme pase el tiempo, en especial durante
|
<strong>contar con cambios menores en las API</strong> conforme pase el tiempo, en especial durante
|
||||||
las primeras semanas del programa. Te proporcionaremos un resumen de cambios con
|
las primeras semanas del programa. Te proporcionaremos un resumen de cambios con
|
||||||
cada actualización de la Android N Developer Preview.
|
cada actualización de Android N Developer Preview.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="note">
|
<p class="note">
|
||||||
<strong>Nota</strong>: Aunque las API de la muestra pueden modificarse, los comportamientos del sistema
|
<strong>Nota</strong>: Aunque las API de Preview pueden modificarse, los comportamientos del sistema
|
||||||
subyacente permanecen estables y disponibles para cualquier prueba
|
subyacente permanecen estables y disponibles para cualquier prueba
|
||||||
inmediata.
|
inmediata.
|
||||||
</p>
|
</p>
|
||||||
@@ -411,7 +411,7 @@ múltiples ventanas, notificaciones integradas, soporte de múltiples regiones,
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="how_to_get_started">Primeros pasos</h2>
|
<h2 id="how_to_get_started">Comenzar</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Para comenzar a probar tu aplicación con Android N:
|
Para comenzar a probar tu aplicación con Android N:
|
||||||
@@ -419,10 +419,10 @@ múltiples ventanas, notificaciones integradas, soporte de múltiples regiones,
|
|||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li> Revisa las secciones <a href="{@docRoot}preview/api-overview.html">Información general de la API</a>
|
<li> Revisa las secciones <a href="{@docRoot}preview/api-overview.html">Información general de la API</a>
|
||||||
y <a href="{@docRoot}preview/behavior-changes.html">Cambios en los comportamientos</a> a fin de
|
y <a href="{@docRoot}preview/behavior-changes.html">Cambios en los comportamientos</a> para
|
||||||
conocer las novedades y el efecto que tienen en tus aplicaciones. En particular,
|
conocer las novedades y el efecto que tienen en tus aplicaciones. En particular,
|
||||||
procura obtener información sobre las nuevas funciones de <a href="{@docRoot}preview/features/notification-updates.html">notificaciones</a> y la
|
procura obtener información sobre las nuevas funciones de <a href="{@docRoot}preview/features/notification-updates.html">notificaciones</a> y
|
||||||
<a href="{@docRoot}preview/features/multi-window.html">compatibilidad con ventanas múltiples</a>.</li>
|
la <a href="{@docRoot}preview/features/multi-window.html">compatibilidad con ventanas múltiples</a>.</li>
|
||||||
<li> Configura tu entorno siguiendo las instrucciones para <a href="{@docRoot}preview/setup-sdk.html">configurar el SDK Preview</a>
|
<li> Configura tu entorno siguiendo las instrucciones para <a href="{@docRoot}preview/setup-sdk.html">configurar el SDK Preview</a>
|
||||||
y los dispositivos de prueba.</li>
|
y los dispositivos de prueba.</li>
|
||||||
<li> Sigue las <a href="https://developers.google.com/android/nexus/images">instrucciones de
|
<li> Sigue las <a href="https://developers.google.com/android/nexus/images">instrucciones de
|
||||||
|
|||||||
75
docs/html-intl/intl/es/preview/preview_toc.cs
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
<ul id="nav">
|
||||||
|
|
||||||
|
<li class="nav-section">
|
||||||
|
<div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/overview.html" es-lang="Información general del programa" in-lang="Ikhtisar Program" ja-lang="プログラム概要" ko-lang="프로그램 개요" pt-br-lang="Visão geral do programa" ru-lang="Обзор программы" vi-lang="Tổng quan về Chương trình" zh-cn-lang="计划概览" zh-tw-lang="程式總覽">Información general del programa</a></div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="nav-section">
|
||||||
|
<div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/support.html">Compatibilidad y notas de la versión</a></div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-section">
|
||||||
|
<div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/setup-sdk.html" es-lang="Configurar el SDK de la versión preliminar" in-lang="Menyiapkan Preview" ja-lang="Preview SDK のセットアップ" ko-lang="미리 보기 SDK 설정하기" pt-br-lang="Configuração do Preview SDK" ru-lang="Настройка пакета SDK Preview" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="设置预览版 SDK" zh-tw-lang="設定預覽版 SDK">Configuración de Preview</a></div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-section">
|
||||||
|
<div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/download.html" es-lang="Pruebe en un dispositivo" in-lang="Menguji pada Perangkat" ja-lang="デバイス上でテストする" ko-lang="기기에서 테스트" pt-br-lang="Testar em um dispositivo" ru-lang="Тестирование на устройстве" vi-lang="Kiểm thử trên Thiết bị" zh-cn-lang="在设备上测试" zh-tw-lang="在裝置上測試">Prueba en un dispositivo</a></div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="nav-section">
|
||||||
|
<div class="nav-section-header"><a href="<?cs var:toroot ?>preview/behavior-changes.html" es-lang="Cambios en los comportamientos" in-lang="Perubahan Perilaku" ja-lang="動作の変更点" ko-lang="동작 변경" pt-br-lang="Mudanças de comportamento" ru-lang="Изменения в работе" vi-lang="Các thay đổi Hành vi" zh-cn-lang="行为变更" zh-tw-lang="行為變更">Cambios en los comportamientos</a></div>
|
||||||
|
<ul>
|
||||||
|
<li><a href="<?cs var:toroot ?>preview/features/background-optimization.html" es-lang="Optimizaciones en segundo plano" in-lang="Optimisasi Latar Belakang" ja-lang="バックグラウンド処理の最適化" ko-lang="백그라운드 최적화" pt-br-lang="Otimizações em segundo plano" ru-lang="Оптимизация фоновых процессов" vi-lang="Tối ưu hóa Chạy ngầm" zh-cn-lang="后台优化" zh-tw-lang="背景最佳化">Optimizaciones en segundo plano</a></li>
|
||||||
|
<li><a href="<?cs var:toroot ?>preview/features/multilingual-support.html" es-lang="Idioma y configuración regional" in-lang="Bahasa dan Lokal" ja-lang="言語とロケール" ko-lang="언어 및 로케일" pt-br-lang="Idioma e localidade" ru-lang="Язык и языковой стандарт" vi-lang="Ngôn ngữ và Bản địa" zh-cn-lang="语言和区域设置" zh-tw-lang="語言和地區設定">Idioma y configuración regional</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-section">
|
||||||
|
<div class="nav-section-header"><a href="<?cs var:toroot ?>preview/api-overview.html" es-lang="Información general de la API" in-lang="Android N untuk Pengembang" ja-lang="API の概要" ko-lang="API 개요" pt-br-lang="Visão geral da API" ru-lang="Обзор API-интерфейсов" vi-lang="Android N cho Nhà phát triển" zh-cn-lang="API 概览" zh-tw-lang="API 總覽">Android N for Developers </a></div>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><a href="<?cs var:toroot ?>preview/features/multi-window.html" es-lang="Compatibilidad con ventanas múltiples" in-lang="Dukungan Multi-Jendela" ja-lang="マルチ ウィンドウのサポート" ko-lang="다중 창 지원" pt-br-lang="Suporte a várias janelas" ru-lang="Поддержка многооконного режима" vi-lang="Hỗ trợ đa cửa sổ" zh-cn-lang="多窗口支持" zh-tw-lang="多視窗支援">Compatibilidad con ventanas múltiples</a></li>
|
||||||
|
|
||||||
|
<li><a href="<?cs var:toroot ?>preview/features/notification-updates.html" es-lang="Notificaciones" in-lang="Pemberitahuan" ja-lang="通知" ko-lang="알림" pt-br-lang="Notificações" ru-lang="Уведомления" vi-lang="Thông báo" zh-cn-lang="通知" zh-tw-lang="通知">Notificaciones</a></li>
|
||||||
|
|
||||||
|
<li><a href="<?cs var:toroot ?>preview/features/data-saver.html">Ahorro de datos</a></li>
|
||||||
|
|
||||||
|
<li><a href="<?cs var:toroot ?>preview/features/tv-recording-api.html" es-lang="Grabación de TV" in-lang="Perekaman TV" ja-lang="TV の録画" ko-lang="TV 녹화" pt-br-lang="Gravação para TV" ru-lang="Запись ТВ" vi-lang="Ghi lại TV" zh-cn-lang="TV 录制" zh-tw-lang="電視錄製">Grabación de TV</a></li>
|
||||||
|
|
||||||
|
<li><a href="<?cs var:toroot ?>preview/features/security-config.html" es-lang="Configuración de seguridad de la red" in-lang="Network Security Configuration" ja-lang="ネットワーク セキュリティ構成" ko-lang="네트워크 보안 구성" pt-br-lang="Configurações de segurança de rede" ru-lang="Конфигурация сетевой безопасности" vi-lang="Cấu hình Bảo mật mạng" zh-cn-lang="网络安全配置" zh-tw-lang="網路安全性設定">Configuración de seguridad de la red</a></li>
|
||||||
|
|
||||||
|
<li><a href="<?cs var:toroot ?>preview/features/icu4j-framework.html" es-lang="API de ICU4J del framework de Android" in-lang="ICU4J Android Framework API" ja-lang="ICU4J Android フレームワーク API" ko-lang="ICU4J Android 프레임워크 API" pt-br-lang="APIs de estrutura do Android para ICU4J" ru-lang="API-интерфейсы ICU4J в платформе Android" vi-lang="API Khuôn khổ Android ICU4J" zh-cn-lang="ICU4J Android 框架 API" zh-tw-lang="ICU4J Android 架構 API">Compatibilidad con ICU4J</a></li>
|
||||||
|
|
||||||
|
<li><a href="<?cs var:toroot ?>preview/j8-jack.html" es-lang="Funciones del lenguaje Java 8" in-lang="Fitur Bahasa Java 8" ja-lang="Java 8 の機能" ko-lang="Java 8 언어 기능" pt-br-lang="Recursos de linguagem do Java 8" ru-lang="Возможности языка Java 8" vi-lang="Tính năng của Ngôn ngữ Java 8" zh-cn-lang="Java 8 语言功能" zh-tw-lang="Java 8 語言功能">Funciones del lenguaje Java 8</a></li>
|
||||||
|
|
||||||
|
<li><a href="<?cs var:toroot ?>preview/features/afw.html">Actualizaciones para Android for Work</a></li>
|
||||||
|
|
||||||
|
<li><a href="<?cs var:toroot ?>preview/features/scoped-folder-access.html" es-lang="Acceso a directorios determinados" in-lang="Scoped Directory Access" ja-lang="特定のディレクトリへのアクセス" ko-lang="범위가 지정된 디렉터리 액세스" pt-br-lang="Acesso a diretórios com escopo" ru-lang="Доступ к выделенным каталогам" vi-lang="Truy cập Thư mục theo Phạm vi" zh-cn-lang="作用域目录访问" zh-tw-lang="限定範圍目錄存取">Acceso a directorios determinados</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li class="nav-section">
|
||||||
|
<div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/samples.html" es-lang="Ejemplos" in-lang="Contoh" ja-lang="サンプル" ko-lang="샘플" pt-br-lang="Exemplos" ru-lang="Примеры" zh-cn-lang="示例" zh-tw-lang="範例">Ejemplos</a></div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-section">
|
||||||
|
<div class="nav-section-header empty"><a href="<?cs var:toroot ?>preview/license.html" es-lang="Contrato de licencia" ja-lang="使用許諾契約" ko-lang="라이선스 계약" pt-br-lang="Contrato de licença" ru-lang="Лицензионное соглашение" zh-cn-lang="许可协议" zh-tw-lang="授權協議">Contrato de licencia</a></div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
@@ -10,8 +10,8 @@ page.image=images/cards/card-n-samples_2x.png
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="note">
|
<p class="note">
|
||||||
<strong>Nota:</strong> Estos proyectos descargables están diseñados
|
<strong>Nota:</strong> Estos proyectos que se pueden descargar están diseñados
|
||||||
para usarse con Gradle y Android Studio.
|
para su uso con Gradle y Android Studio.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ Obtener en GitHub</a>
|
|||||||
<h3 id="fbe">Inicio directo</h3>
|
<h3 id="fbe">Inicio directo</h3>
|
||||||
<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
|
<img src="{@docRoot}preview/images/sample-directboot.png" style="float: left; padding-right: 0.5em" height="250" width="141" />
|
||||||
<p>
|
<p>
|
||||||
En este ejemplo se demuestra la manera de almacenar datos, y de acceder a ellos, en un medio de almacenamiento cifrado por
|
En este ejemplo se demuestra la manera de almacenar datos, y de acceder a ellos, en un medio de almacenamiento encriptado por
|
||||||
dispositivo que esté siempre disponible mientras el dispositivo se haya iniciado.
|
dispositivo que esté siempre disponible mientras el dispositivo se haya iniciado.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Configuración de la Preview
|
page.title=Configuración de Preview
|
||||||
meta.keywords=“preview”, “Android”
|
meta.keywords="preview", "android"
|
||||||
page.tags="preview", "developer preview"
|
page.tags="preview", "developer preview"
|
||||||
page.image=images/cards/card-n-sdk_2x.png
|
page.image=images/cards/card-n-sdk_2x.png
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ page.image=images/cards/card-n-sdk_2x.png
|
|||||||
<li><a href="#docs-dl">Documentación de referencia</a>
|
<li><a href="#docs-dl">Documentación de referencia</a>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#java8">Obtener el JDK y JRE de Java 8</a></li>
|
<li><a href="#java8">Obtener el JDK de Java 8</a></li>
|
||||||
<li><a href="#create-update">Actualizar o crear un proyecto</a></li>
|
<li><a href="#create-update">Actualizar o crear un proyecto</a></li>
|
||||||
<li><a href="#next">Próximos pasos</a></li>
|
<li><a href="#next">Próximos pasos</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
@@ -31,7 +31,7 @@ imagen de sistema de Android N, sigue la guía de <a href="{@docRoot}preview/dow
|
|||||||
<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
|
<img src="{@docRoot}preview/images/n-preview-setup.png" width="700" alt="" />
|
||||||
|
|
||||||
|
|
||||||
<h2 id="get-as13">Obtener Android Studio 2.1 (muestra)</h2>
|
<h2 id="get-as13">Obtener Android Studio 2.1</h2>
|
||||||
|
|
||||||
<p>La plataforma de Android N agrega compatibilidad para <a href="{@docRoot}preview/j8-jack.html">funciones de lenguaje de Java 8</a>,
|
<p>La plataforma de Android N agrega compatibilidad para <a href="{@docRoot}preview/j8-jack.html">funciones de lenguaje de Java 8</a>,
|
||||||
que requieren un nuevo compilador llamado Jack. La última versión de Jack
|
que requieren un nuevo compilador llamado Jack. La última versión de Jack
|
||||||
@@ -39,42 +39,14 @@ actualmente solo es compatible con Android Studio 2.1. Por lo tanto, si deseas
|
|||||||
usar funciones de lenguaje de Java 8, debes usar Android Studio 2.1 para
|
usar funciones de lenguaje de Java 8, debes usar Android Studio 2.1 para
|
||||||
crear tu aplicación. De lo contrario, no necesitarás el compilador Jack, pero
|
crear tu aplicación. De lo contrario, no necesitarás el compilador Jack, pero
|
||||||
deberás aplicar una actualización a JDK 8 para compilar tu proyecto en función a la plataforma de Android N,
|
deberás aplicar una actualización a JDK 8 para compilar tu proyecto en función a la plataforma de Android N,
|
||||||
según lo descrito a continuación.
|
según lo descrito a continuación.</p>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>Android Studio 2.1 actualmente se encuentra disponible como muestra en el canal de
|
<p>Si ya cuentas con Android Studio, cerciórate de que tienes Android
|
||||||
versiones Canary. Si ya
|
Studio 2.1 o una versión anterior haciendo clic en <strong>Help > Check for Update</strong>
|
||||||
cuentas con Android Studio y no deseas realizar la actualización al canal Canary, puedes
|
(en Mac, <strong>Android Studio > Check for Updates</strong>).</p>
|
||||||
descargar Android Studio 2.1 como una instalación independiente, usarlo
|
|
||||||
para desarrollar aplicaciones con Android N y así dejar el entorno Android Studio
|
|
||||||
inalterado.</p>
|
|
||||||
|
|
||||||
<p>Para descargar Android Studio 2.1 como una instalación independiente, sigue estos
|
<p>Si no cuentas con él, <a href="{@docRoot}studio/">descarga Android Studio
|
||||||
pasos (si deseas recibir Android Studio 2.1 como una actualización a tu
|
2.1 aquí</a>.</p>
|
||||||
instalación existente, omite el paso 4):</p>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li>Modifica el nombre de tu
|
|
||||||
instalación existente de Android Studio y anéxale el número de versión. De esta manera,
|
|
||||||
la versión nueva no reemplazará a la existente al instalarse.</li>
|
|
||||||
<li>Descarga el archivo .zip correspondiente para tu sistema operativo desde la
|
|
||||||
<a href="http://tools.android.com/download/studio/canary/latest">página de descarga del canal Canary</a>.
|
|
||||||
</li>
|
|
||||||
<li>Descomprime el paquete y mueve el contenido de Android Studio 2.1 a la ubicación
|
|
||||||
que corresponda para las aplicaciones de tu sistema. Luego inícialo.</li>
|
|
||||||
<li>Abre el cuadro de diálogo Settings
|
|
||||||
(<strong>File > Settings</strong> en Windows y Linux, o
|
|
||||||
<strong>Android Studio > Preferences</strong> en Mac). En el panel
|
|
||||||
izquierdo, selecciona <strong>Appearance & Behavior > System Settings >
|
|
||||||
Updates</strong>.
|
|
||||||
</li>
|
|
||||||
<li>En el panel Updates, selecciona la casilla de verificación <strong>Automatically
|
|
||||||
check updates for</strong> y luego
|
|
||||||
<strong>Canary Channel</strong> en la lista desplegable.
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<p>Mantén esta ventana de configuración abierta para el paso siguiente.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2 id="get-sdk">Obtener el N Preview SDK</h2>
|
<h2 id="get-sdk">Obtener el N Preview SDK</h2>
|
||||||
@@ -83,18 +55,11 @@ instalación existente, omite el paso 4):</p>
|
|||||||
Android N Preview SDK en Android Studio de la siguiente manera:</p>
|
Android N Preview SDK en Android Studio de la siguiente manera:</p>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>Con el panel Updates aún a la vista (paso 4 anterior),
|
<li>Abre el Administrador de SDK haciendo clic en <strong>Tools > Android >
|
||||||
selecciona la casilla de verificación <strong>Automatically
|
SDK Manager</strong>.</li>
|
||||||
check updates for Android SDK</strong> y luego
|
|
||||||
<strong>Preview Channel</strong> en la lista desplegable.
|
|
||||||
</li>
|
|
||||||
<li>Haz clic en <strong>Check Now</strong>.</li>
|
|
||||||
|
|
||||||
<li>En el panel izquierdo, selecciona <strong>Appearance & Behavior >
|
<li>En la pestaña <strong>SDK Platforms</strong>, selecciona la
|
||||||
System Settings > Android SDK</strong>.
|
casilla de verificación <strong>Android N Preview</strong>.</li>
|
||||||
|
|
||||||
<li>Haz clic en la pestaña <strong>SDK Platforms</strong> y luego selecciona la casilla de verificación
|
|
||||||
<strong>Android N Preview</strong>.</li>
|
|
||||||
|
|
||||||
<li>Haz clic en la pestaña <strong>SDK Tools</strong> y luego selecciona las casillas de verificación
|
<li>Haz clic en la pestaña <strong>SDK Tools</strong> y luego selecciona las casillas de verificación
|
||||||
<strong>Android SDK Build Tools</strong>, <strong>Android SDK
|
<strong>Android SDK Build Tools</strong>, <strong>Android SDK
|
||||||
@@ -110,7 +75,7 @@ Android N Preview SDK en Android Studio de la siguiente manera:</p>
|
|||||||
<h3 id="docs-dl">Obtener documentación de referencia de la Android N Preview</h3>
|
<h3 id="docs-dl">Obtener documentación de referencia de la Android N Preview</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
En la documentación de referencia de la Android N Preview, se encuentra disponible información
|
En la documentación de referencia de la N Preview, se encuentra disponible información
|
||||||
detallada acerca de las API de Android N. Puedes descargar la documentación de la tabla siguiente.
|
detallada acerca de las API de Android N. Puedes descargar la documentación de la tabla siguiente.
|
||||||
Este paquete contiene una versión abreviada y de uso sin conexión del sitio web para desarrolladores
|
Este paquete contiene una versión abreviada y de uso sin conexión del sitio web para desarrolladores
|
||||||
de Android, y en ella se incluyen una referencia de API actualizada para las API de Android N y un
|
de Android, y en ella se incluyen una referencia de API actualizada para las API de Android N y un
|
||||||
@@ -124,23 +89,21 @@ Android N Preview SDK en Android Studio de la siguiente manera:</p>
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="white-space: nowrap">
|
<td style="white-space: nowrap">
|
||||||
<a href="{@docRoot}shareables/preview/n-preview-1-docs.zip">n-preview-1-docs.zip</a></td>
|
<a href="{@docRoot}shareables/preview/n-preview-3-docs.zip">n-preview-3-docs.zip</a></td>
|
||||||
<td width="100%">
|
<td width="100%">
|
||||||
MD5: 4ab33ccbe698f46f125cc5b807cf9c2f<br>
|
MD5: 19bcfd057a1f9dd01ffbb3d8ff7b8d81<br>
|
||||||
SHA-1: 6a3880b3ccd19614daae5a4d0698ea6ae11c20a5
|
SHA-1: 9224bd4445cd7f653c4c294d362ccb195a2101e7
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
<table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2 id="java8">Obtener el JDK y JRE de Java 8</h2>
|
<h2 id="java8">Obtener el JDK de Java 8</h2>
|
||||||
|
|
||||||
<p>Para compilar tu aplicación en función de la plataforma de Android N debes usar
|
<p>Para compilar tu aplicación en función de la plataforma de Android N y para usar algunas herramientas con
|
||||||
el Java 8 Developer Kit (JDK 8), y para usar algunas herramientas con Android
|
Android Studio 2.1 el Java 8 Developer Kit (JDK 8). Por lo tanto, si
|
||||||
Studio 2.1 debes instalar Java 8 Runtime Environment (JRE 8). Si
|
aún no tienes la última versión, descarga el JDK 8 ahora.</p>
|
||||||
aún no cuentas con la última versión de las dos herramientas, descarga JDK 8 y JRE 8
|
|
||||||
ahora.</p>
|
|
||||||
|
|
||||||
<p>Luego configura la versión de JDK en Android Studio de la siguiente manera:</p>
|
<p>Luego configura la versión de JDK en Android Studio de la siguiente manera:</p>
|
||||||
|
|
||||||
@@ -184,7 +147,7 @@ la manera de configurar tu proyecto con el compilador Jack.</p>
|
|||||||
<pre>
|
<pre>
|
||||||
android {
|
android {
|
||||||
compileSdkVersion <strong>'android-N'</strong>
|
compileSdkVersion <strong>'android-N'</strong>
|
||||||
buildToolsVersion <strong>'24.0.0-rc1'</strong>
|
buildToolsVersion <strong>'24.0.0-rc3'</strong>
|
||||||
...
|
...
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
@@ -208,7 +171,7 @@ android {
|
|||||||
<li>En la página, selecciona la opción <strong>Phone and Tablet</strong>.</li>
|
<li>En la página, selecciona la opción <strong>Phone and Tablet</strong>.</li>
|
||||||
<li>En la opción <strong>Phone and Tablet</strong>, dentro de la lista de opciones <strong>Minimum
|
<li>En la opción <strong>Phone and Tablet</strong>, dentro de la lista de opciones <strong>Minimum
|
||||||
SDK</strong>, selecciona
|
SDK</strong>, selecciona
|
||||||
<strong>N: Android API 23, N Preview (Preview)</strong>.</li>
|
<strong>N: Android API 23, N Preview (Preview).</strong></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
@@ -221,3 +184,4 @@ android {
|
|||||||
y <a href="{@docRoot}preview/api-overview.html">API y funciones de Android N
|
y <a href="{@docRoot}preview/api-overview.html">API y funciones de Android N
|
||||||
</a>.</li>
|
</a>.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|||||||
1188
docs/html-intl/intl/es/preview/support.jd
Normal file
342
docs/html-intl/intl/in/preview/_book.yaml
Normal file
@@ -0,0 +1,342 @@
|
|||||||
|
toc:
|
||||||
|
- title: Ringkasan Program
|
||||||
|
path: /preview/overview.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Información general del programa
|
||||||
|
- name: in-lang
|
||||||
|
value: Ringkasan Program
|
||||||
|
- name: ja-lang
|
||||||
|
value: プログラム概要
|
||||||
|
- name: ko-lang
|
||||||
|
value: 프로그램 개요
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Visão geral do programa
|
||||||
|
- name: ru-lang
|
||||||
|
value: Обзор программы
|
||||||
|
- name: vi-lang
|
||||||
|
value: Tổng quan về Chương trình
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 计划概览
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 程式總覽
|
||||||
|
|
||||||
|
- title: Dukungan dan Catatan Rilis
|
||||||
|
path: /preview/support.html
|
||||||
|
|
||||||
|
- title: Menyiapkan Pratinjau
|
||||||
|
path: /preview/setup-sdk.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Configurar el SDK de la versión preliminar
|
||||||
|
- name: in-lang
|
||||||
|
value: Menyiapkan Pratinjau
|
||||||
|
- name: ja-lang
|
||||||
|
value: Preview SDK のセットアップ
|
||||||
|
- name: ko-lang
|
||||||
|
value: 미리 보기 SDK 설정하기
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Configuração do Preview SDK
|
||||||
|
- name: ru-lang
|
||||||
|
value: Настройка пакета SDK Preview
|
||||||
|
- name: vi-lang
|
||||||
|
value: Kiểm thử trên Thiết bị
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 设置预览版 SDK
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 設定預覽版 SDK
|
||||||
|
|
||||||
|
- title: Menguji pada Perangkat
|
||||||
|
path: /preview/download.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Pruebe en un dispositivo
|
||||||
|
- name: in-lang
|
||||||
|
value: Menguji pada Perangkat
|
||||||
|
- name: ja-lang
|
||||||
|
value: デバイス上でテストする
|
||||||
|
- name: ko-lang
|
||||||
|
value: 기기에서 테스트
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Testar em um dispositivo
|
||||||
|
- name: ru-lang
|
||||||
|
value: Тестирование на устройстве
|
||||||
|
- name: vi-lang
|
||||||
|
value: Kiểm thử trên Thiết bị
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 在设备上测试
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 在裝置上測試
|
||||||
|
|
||||||
|
- title: Perubahan Perilaku
|
||||||
|
path: /preview/behavior-changes.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Cambios en los comportamientos
|
||||||
|
- name: in-lang
|
||||||
|
value: Perubahan Perilaku
|
||||||
|
- name: ja-lang
|
||||||
|
value: 動作の変更点
|
||||||
|
- name: ko-lang
|
||||||
|
value: 동작 변경
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Mudanças de comportamento
|
||||||
|
- name: ru-lang
|
||||||
|
value: Изменения в работе
|
||||||
|
- name: vi-lang
|
||||||
|
value: Các thay đổi Hành vi
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 行为变更
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 行為變更
|
||||||
|
section:
|
||||||
|
- title: Optimalisasi Latar Belakang
|
||||||
|
path: /preview/features/background-optimization.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Optimizaciones en segundo plano
|
||||||
|
- name: in-lang
|
||||||
|
value: Optimisasi Latar Belakang
|
||||||
|
- name: ja-lang
|
||||||
|
value: バックグラウンド処理の最適化
|
||||||
|
- name: ko-lang
|
||||||
|
value: 백그라운드 최적화
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Otimizações em segundo plano
|
||||||
|
- name: ru-lang
|
||||||
|
value: Оптимизация фоновых процессов
|
||||||
|
- name: vi-lang
|
||||||
|
value: Tối ưu hóa Chạy ngầm
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 后台优化
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 背景最佳化
|
||||||
|
- title: Bahasa dan Lokal
|
||||||
|
path: /preview/features/multilingual-support.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Idioma y configuración regional
|
||||||
|
- name: in-lang
|
||||||
|
value: Bahasa dan Lokal
|
||||||
|
- name: ja-lang
|
||||||
|
value: 言語とロケール
|
||||||
|
- name: ko-lang
|
||||||
|
value: 언어 및 로케일
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Idioma e localidade
|
||||||
|
- name: ru-lang
|
||||||
|
value: Язык и языковой стандарт
|
||||||
|
- name: vi-lang
|
||||||
|
value: Ngôn ngữ và Bản địa
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 语言和区域设置
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 語言和地區設定
|
||||||
|
|
||||||
|
- title: Android N for Developers
|
||||||
|
path: /preview/api-overview.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Información general de la API
|
||||||
|
- name: in-lang
|
||||||
|
value: Android N untuk Pengembang
|
||||||
|
- name: ja-lang
|
||||||
|
value: API の概要
|
||||||
|
- name: ko-lang
|
||||||
|
value: API 개요
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Visão geral da API
|
||||||
|
- name: ru-lang
|
||||||
|
value: Обзор API-интерфейсов
|
||||||
|
- name: vi-lang
|
||||||
|
value: Android N cho Nhà phát triển
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: API 概览
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: API 總覽
|
||||||
|
section:
|
||||||
|
- title: Dukungan Multi-Jendela
|
||||||
|
path: /preview/features/multi-window.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Compatibilidad con ventanas múltiples
|
||||||
|
- name: in-lang
|
||||||
|
value: Dukungan Multi-Jendela
|
||||||
|
- name: ja-lang
|
||||||
|
value: マルチ ウィンドウのサポート
|
||||||
|
- name: ko-lang
|
||||||
|
value: 다중 창 지원
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Suporte a várias janelas
|
||||||
|
- name: ru-lang
|
||||||
|
value: Поддержка многооконного режима
|
||||||
|
- name: vi-lang
|
||||||
|
value: Hỗ trợ đa cửa sổ
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 多窗口支持
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 多視窗支援
|
||||||
|
- title: Pemberitahuan
|
||||||
|
path: /preview/features/notification-updates.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Notificaciones
|
||||||
|
- name: in-lang
|
||||||
|
value: Pemberitahuan
|
||||||
|
- name: ja-lang
|
||||||
|
value: 通知
|
||||||
|
- name: ko-lang
|
||||||
|
value: 알림
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Notificações
|
||||||
|
- name: ru-lang
|
||||||
|
value: Уведомления
|
||||||
|
- name: vi-lang
|
||||||
|
value: Thông báo
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 通知
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 通知
|
||||||
|
- title: Data Saver
|
||||||
|
path: /preview/features/data-saver.html
|
||||||
|
- title: Perekaman TV
|
||||||
|
path: /preview/features/tv-recording-api.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Grabación de TV
|
||||||
|
- name: in-lang
|
||||||
|
value: Perekaman TV
|
||||||
|
- name: ja-lang
|
||||||
|
value: TV の録画
|
||||||
|
- name: ko-lang
|
||||||
|
value: TV 녹화
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Gravação para TV
|
||||||
|
- name: ru-lang
|
||||||
|
value: Запись ТВ
|
||||||
|
- name: vi-lang
|
||||||
|
value: Ghi lại TV
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: TV 录制
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 電視錄製
|
||||||
|
- title: Konfigurasi Keamanan Jaringan
|
||||||
|
path: /preview/features/security-config.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Configuración de seguridad de la red
|
||||||
|
- name: ja-lang
|
||||||
|
value: ネットワーク セキュリティ構成
|
||||||
|
- name: ko-lang
|
||||||
|
value: 네트워크 보안 구성
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Configurações de segurança de rede
|
||||||
|
- name: ru-lang
|
||||||
|
value: Конфигурация сетевой безопасности
|
||||||
|
- name: vi-lang
|
||||||
|
value: Cấu hình Bảo mật mạng
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 网络安全配置
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 網路安全性設定
|
||||||
|
- title: Dukungan ICU4J
|
||||||
|
path: /preview/features/icu4j-framework.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: API de ICU4J del framework de Android
|
||||||
|
- name: in-lang
|
||||||
|
value: ICU4J Android Framework API
|
||||||
|
- name: ja-lang
|
||||||
|
value: ICU4J Android フレームワーク API
|
||||||
|
- name: ko-lang
|
||||||
|
value: ICU4J Android 프레임워크 API
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: APIs de estrutura do Android para ICU4J
|
||||||
|
- name: ru-lang
|
||||||
|
value: API-интерфейсы ICU4J в платформе Android
|
||||||
|
- name: vi-lang
|
||||||
|
value: API Khuôn khổ Android ICU4J
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: ICU4J Android 框架 API
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: ICU4J Android 架構 API
|
||||||
|
- title: Fitur Bahasa Java 8
|
||||||
|
path: /preview/j8-jack.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Funciones del lenguaje Java 8
|
||||||
|
- name: in-lang
|
||||||
|
value: Fitur Bahasa Java 8
|
||||||
|
- name: ja-lang
|
||||||
|
value: Java 8 の機能
|
||||||
|
- name: ko-lang
|
||||||
|
value: Java 8 언어 기능
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Recursos de linguagem do Java 8
|
||||||
|
- name: ru-lang
|
||||||
|
value: Возможности языка Java 8
|
||||||
|
- name: vi-lang
|
||||||
|
value: Tính năng của Ngôn ngữ Java 8
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: Java 8 语言功能
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: Java 8 語言功能
|
||||||
|
- title: Pembaruan Android for Work
|
||||||
|
path: /preview/features/afw.html
|
||||||
|
- title: Scoped Directory Access
|
||||||
|
path: /preview/features/scoped-folder-access.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Acceso a directorios determinados
|
||||||
|
- name: ja-lang
|
||||||
|
value: 特定のディレクトリへのアクセス
|
||||||
|
- name: ko-lang
|
||||||
|
value: 범위가 지정된 디렉터리 액세스
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Acesso a diretórios com escopo
|
||||||
|
- name: ru-lang
|
||||||
|
value: Доступ к выделенным каталогам
|
||||||
|
- name: vi-lang
|
||||||
|
value: Truy cập Thư mục theo Phạm vi
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 作用域目录访问
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 限定範圍目錄存取
|
||||||
|
|
||||||
|
- title: Contoh
|
||||||
|
path: /preview/samples.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Ejemplos
|
||||||
|
- name: in-lang
|
||||||
|
value: Contoh
|
||||||
|
- name: ja-lang
|
||||||
|
value: サンプル
|
||||||
|
- name: ko-lang
|
||||||
|
value: 샘플
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Exemplos
|
||||||
|
- name: ru-lang
|
||||||
|
value: Примеры
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 示例
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 範例
|
||||||
|
|
||||||
|
- title: Perjanjian Lisensi
|
||||||
|
path: /preview/license.html
|
||||||
|
path_attributes:
|
||||||
|
- name: es-lang
|
||||||
|
value: Contrato de licencia
|
||||||
|
- name: ja-lang
|
||||||
|
value: 使用許諾契約
|
||||||
|
- name: ko-lang
|
||||||
|
value: 라이선스 계약
|
||||||
|
- name: pt-br-lang
|
||||||
|
value: Contrato de licença
|
||||||
|
- name: ru-lang
|
||||||
|
value: Лицензионное соглашение
|
||||||
|
- name: zh-cn-lang
|
||||||
|
value: 许可协议
|
||||||
|
- name: zh-tw-lang
|
||||||
|
value: 授權協議
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
page.title=Perubahan Perilaku
|
page.title=Perubahan Perilaku
|
||||||
page.keywords=preview,sdk,compatibility
|
page.keywords=pratinjau,sdk,kompatibilitas
|
||||||
meta.tags="preview", "kompatibilitas"
|
meta.tags="preview", "compatibility"
|
||||||
page.tags="preview", "developer preview"
|
page.tags="preview", "developer preview"
|
||||||
page.image=images/cards/card-n-changes_2x.png
|
page.image=images/cards/card-n-changes_2x.png
|
||||||
@jd:body
|
@jd:body
|
||||||
@@ -14,25 +14,29 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
<ol>
|
<ol>
|
||||||
<li><a href="#perf">Peningkatan Kinerja</a>
|
<li><a href="#perf">Peningkatan Kinerja</a>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#doze">Doze</a></li>
|
<li><a href="#doze">Istirahatkan</a></li>
|
||||||
<li><a href="#bg-opt">Optimisasi Latar Belakang</a></li>
|
<li><a href="#bg-opt">Optimalisasi Latar Belakang</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#perm">Perubahan Izin</a></li>
|
<li><a href="#perm">Perubahan Izin</a>
|
||||||
|
</li>
|
||||||
|
<li><a href="#sharing-files">Berbagi File Antar Aplikasi</a></li>
|
||||||
<li><a href="#accessibility">Peningkatan Aksesibilitas</a>
|
<li><a href="#accessibility">Peningkatan Aksesibilitas</a>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#screen-zoom">Zoom Layar</a></li>
|
<li><a href="#screen-zoom">Perbesaran Layar</a></li>
|
||||||
<li><a href="#vision-settings">Vision Settings di Setup Wizard</a></li>
|
<li><a href="#vision-settings">Vision Settings di Setup Wizard</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#ndk">Menautkan Aplikasi NDK ke Pustaka Platform</a></li>
|
<li><a href="#ndk">Penautan Aplikasi NDK ke Pustaka Platform</a></li>
|
||||||
<li><a href="#afw">Android for Work</a></li>
|
<li><a href="#afw">Android for Work</a></li>
|
||||||
|
<li><a href="#annotations">Retensi Anotasi</a></li>
|
||||||
|
<li><a href="#other">Poin Penting Lainnya</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<h2>Lihat Juga</h2>
|
<h2>Lihat Juga</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="{@docRoot}preview/api-overview.html">
|
<li><a href="{@docRoot}preview/api-overview.html">
|
||||||
Ikhtisar Android N API</a></li>
|
Ringkasan Android N API</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -40,54 +44,53 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Selain fitur dan kemampuan baru, Android N
|
Bersama fitur dan kemampuan baru, Android N
|
||||||
juga menyertakan berbagai perubahan perilaku sistem dan API. Dokumen ini
|
menyertakan berbagai macam perubahan sistem dan perubahan perilaku API. Dokumen ini
|
||||||
menyoroti beberapa perubahan utama yang harus dipahami dan diperhitungkan
|
menyoroti beberapa perubahan utama yang harus dipahami dan diperhitungkan
|
||||||
dalam aplikasi Anda.
|
dalam aplikasi Anda.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika Anda sebelumnya telah mempublikasikan aplikasi untuk Android, ketahuilah bahwa aplikasi Anda
|
Jika Anda sebelumnya telah mempublikasikan aplikasi untuk Android, ketahuilah bahwa aplikasi Anda
|
||||||
mungkin akan terpengaruh oleh perubahan dalam platform ini.
|
mungkin dipengaruhi oleh perubahan dalam platform.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="perf">Peningkatan Kinerja</h2>
|
<h2 id="perf">Baterai dan Memori</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Android N berisi perubahan perilaku sistem yang bertujuan meningkatkan daya tahan
|
Android N menyertakan perubahan perilaku sistem yang bertujuan untuk meningkatkan daya tahan baterai
|
||||||
baterai perangkat, penggunaan RAM, dan kinerja aplikasi. Perubahan-perubahan ini bisa memengaruhi
|
perangkat dan mengurangi penggunaan RAM. Perubahan ini bisa memengaruhi akses aplikasi Anda ke
|
||||||
ketersediaan sumber daya sistem dan pemberitahuan sistem bagi aplikasi. Anda
|
sumber daya sistem, termasuk cara aplikasi Anda berinteraksi dengan aplikasi lain melalui
|
||||||
harus meninjau perubahan ini dan mengevaluasi cara menyesuaikan aplikasi Anda terhadap perubahan
|
intent implisit tertentu.
|
||||||
tersebut.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="doze">Doze</h3>
|
<h3 id="doze">Istirahatkan</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Diperkenalkan dalam Android 6.0 (API level 23), Doze meningkatkan daya tahan baterai dengan
|
Diperkenalkan dalam Android 6.0 (API level 23), Istirahatkan meningkatkan daya tahan baterai dengan
|
||||||
menangguhkan aktivitas CPU dan jaringan bila pengguna mencabut steker perangkat,
|
menangguhkan aktivitas CPU dan jaringan bila pengguna tidak mencabut perangkat,
|
||||||
diam, dan layar dinonaktifkan. Android N
|
tidak bergerak, dan layar dinonaktifkan. Android N lebih
|
||||||
menyempurnakan Doze lebih jauh dengan menerapkan subset CPU dan pembatasan jaringan
|
menyempurnakan Istirahatkan dengan menerapkan subset CPU dan pembatasan jaringan
|
||||||
bila perangkat dicabut stekernya dan layar dinonaktifkan, namun tidak harus
|
bila perangkat dicabut dan layar dinonaktifkan, namun tidak harus
|
||||||
diam, misalnya, bila handset dibawa bepergian di saku pengguna.
|
diam, misalnya, bila handset dibawa bepergian di saku pengguna.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
|
<img src="{@docRoot}preview/images/doze-diagram-1.png" alt="" height="251px" id="figure1" />
|
||||||
<p class="img-caption">
|
<p class="img-caption">
|
||||||
<strong>Gambar 1.</strong> Ilustrasi tentang cara Doze menerapkan pembatasan
|
<strong>Gambar 1.</strong> Ilustrasi tentang cara Istirahatkan menerapkan pembatasan
|
||||||
aktivitas sistem tingkat pertama untuk meningkatkan daya tahan baterai.
|
aktivitas sistem level pertama untuk meningkatkan daya tahan baterai.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Bila perangkat sedang menggunakan daya baterai, dan layar telah nonaktif selama jangka waktu
|
Bila perangkat sedang menggunakan daya baterai, dan layar telah nonaktif selama jangka waktu
|
||||||
tertentu, perangkat akan memasuki Doze dan menerapkan pembatasan subset pertama: Perangkat
|
tertentu, perangkat akan memasuki Istirahatkan dan menerapkan subset pembatasan pertama: Perangkat
|
||||||
akan menutup akses jaringan aplikasi, serta menangguhkan pekerjaan dan sinkronisasi. Jika perangkat
|
akan menutup akses jaringan aplikasi, serta menangguhkan pekerjaan dan sinkronisasi. Jika perangkat sedang
|
||||||
sedang diam selama jangka waktu tertentu setelah memasuki Doze, sistem akan menerapkan pembatasan
|
diam selama jangka waktu tertentu setelah memasuki Istirahatkan, sistem akan menerapkan
|
||||||
Doze lainnya terhadap alarm {@link android.os.PowerManager.WakeLock},
|
pembatasan Istirahatkan selebihnya terhadap alarm {@link android.os.PowerManager.WakeLock},
|
||||||
{@link android.app.AlarmManager}, GPS, dan pemindaian Wi-Fi. Tidak peduli
|
{@link android.app.AlarmManager}, GPS, dan pemindaian Wi-Fi. Tidak peduli
|
||||||
apakah sebagian atau semua pembatasan Doze diterapkan, sistem akan membangunkan
|
apakah sebagian atau semua pembatasan Istirahatkan diterapkan, sistem akan membangunkan
|
||||||
perangkat selama jeda pemeliharaan singkat, dan selama itu aplikasi diizinkan
|
perangkat selama jeda pemeliharaan singkat, dan selama itu aplikasi diizinkan
|
||||||
mengakses jaringan dan bisa mengeksekusi semua pekerjaan/sinkronisasi yang telah ditangguhkan.
|
mengakses jaringan dan bisa mengeksekusi semua pekerjaan/sinkronisasi yang telah ditangguhkan.
|
||||||
</p>
|
</p>
|
||||||
@@ -95,45 +98,45 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
|
|
||||||
<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
|
<img src="{@docRoot}preview/images/doze-diagram-2.png" alt="" id="figure2" />
|
||||||
<p class="img-caption">
|
<p class="img-caption">
|
||||||
<strong>Gambar 2.</strong> Ilustrasi tentang cara Doze menerapkan pembatasan
|
<strong>Gambar 2.</strong> Ilustrasi tentang cara Istirahatkan menerapkan pembatasan
|
||||||
aktivitas sistem tingkat kedua setelah perangkat diam selama jangka waktu tertentu.
|
aktivitas sistem level kedua setelah perangkat diam selama jangka waktu tertentu.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Perhatikan, mengaktifkan layar atau memasang steker perangkat akan menyebabkan keluar dari Doze dan
|
Perhatikan, mengaktifkan layar atau mencolokkan steker perangkat akan mengeluarkan dari Istirahatkan
|
||||||
menghilangkan pembatasan pemrosesan ini. Perilaku tambahan ini tidak
|
dan membuang pembatasan pemrosesan ini. Perilaku tambahan ini tidak
|
||||||
memengaruhi rekomendasi dan praktik terbaik dalam menyesuaikan aplikasi Anda dengan versi
|
memengaruhi rekomendasi dan praktik terbaik dalam menyesuaikan aplikasi Anda dengan versi
|
||||||
Doze sebelumnya yang diperkenalkan dalam Android 6.0 (API level 23), seperti yang dibahas di
|
Istirahatkan sebelumnya yang diperkenalkan dalam Android 6.0 (API level 23), seperti yang dibahas di
|
||||||
<a href="{@docRoot}training/monitoring-device-state/doze-standby.html">
|
<a href="{@docRoot}training/monitoring-device-state/doze-standby.html">
|
||||||
Mengoptimalkan untuk Doze dan App Standby</a>. Anda tetap harus
|
Mengoptimalkan untuk Istirahatkan dan Aplikasi Siaga</a>. Anda tetap harus
|
||||||
mengikuti rekomendasi itu, seperti menggunakan Google Cloud Messaging (GCM) untuk
|
mengikuti rekomendasi itu, seperti menggunakan Google Cloud Messaging (GCM) untuk
|
||||||
mengirim dan menerima pesan, dan mulai merencanakan pembaruan untuk mengakomodasi
|
mengirim dan menerima pesan, serta mulai merencanakan pembaruan
|
||||||
perilaku Doze tambahan.
|
untuk mengakomodasi perilaku Istirahatkan tambahan.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3 id="bg-opt">Project Svelte: Optimisasi Latar Belakang</h3>
|
<h3 id="bg-opt">Project Svelte: Optimalisasi Latar Belakang</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Android N menghilangkan tiga siaran implisit untuk membantu mengoptimalkan
|
Android N membuang tiga siaran implisit untuk membantu mengoptimalkan
|
||||||
penggunaan memori dan konsumsi daya. Perubahan ini penting karena siaran
|
penggunaan memori dan konsumsi daya. Perubahan ini penting karena siaran
|
||||||
implisit sering memulai aplikasi yang telah didaftarkan untuk mendengarkannya di
|
implisit sering memulai aplikasi yang telah didaftarkan untuk mendengarkannya di
|
||||||
latar belakang. Menghilangkan siaran ini bisa sangat menguntungkan kinerja perangkat dan pengalaman
|
latar belakang. Membuang siaran ini bisa sangat menguntungkan
|
||||||
pengguna.
|
kinerja perangkat dan pengalaman pengguna.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Perangkat seluler sering mengalami perubahan konektivitas, seperti saat berpindah
|
Perangkat seluler seringkali mengalami perubahan konektivitas, seperti saat berpindah
|
||||||
antara Wi-Fi dan data seluler. Saat ini, aplikasi bisa memantau perubahan dalam
|
antara Wi-Fi dan data seluler. Saat ini, aplikasi bisa memantau perubahan dalam
|
||||||
konektivitas dengan mendaftarkan suatu penerima untuk siaran implisit {@link
|
konektivitas dengan mendaftarkan suatu penerima untuk siaran implisit {@link
|
||||||
android.net.ConnectivityManager#CONNECTIVITY_ACTION} dalam manifes
|
android.net.ConnectivityManager#CONNECTIVITY_ACTION} dalam manifes
|
||||||
mereka. Karena banyak aplikasi yang didaftarkan untuk menerima siaran ini, switch
|
mereka. Karena banyak aplikasi yang didaftarkan untuk menerima siaran ini, switch jaringan tunggal
|
||||||
jaringan tunggal bisa menyebabkan semuanya aktif dan memproses siaran tersebut
|
bisa menyebabkan semuanya aktif dan memproses siaran tersebut
|
||||||
secara bersamaan.
|
secara bersamaan.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Demikian pula, aplikasi bisa mendaftar untuk menerima siaran implisit {@link
|
Demikian pula, dalam Android versi sebelumnya, aplikasi bisa mendaftar untuk menerima siaran implisit {@link
|
||||||
android.hardware.Camera#ACTION_NEW_PICTURE} dan {@link
|
android.hardware.Camera#ACTION_NEW_PICTURE} dan {@link
|
||||||
android.hardware.Camera#ACTION_NEW_VIDEO} dari aplikasi lain, seperti
|
android.hardware.Camera#ACTION_NEW_VIDEO} dari aplikasi lain, seperti
|
||||||
Kamera. Bila pengguna mengambil gambar dengan aplikasi Kamera, semua aplikasi ini akan aktif
|
Kamera. Bila pengguna mengambil gambar dengan aplikasi Kamera, semua aplikasi ini akan aktif
|
||||||
@@ -141,85 +144,135 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Untuk meminimalkan masalah ini, Android N menerapkan optimisasi
|
Untuk meminimalkan masalah ini, Android N menerapkan optimalisasi
|
||||||
berikut:
|
berikut:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Aplikasi yang menargetkan Android N tidak menerima siaran {@link
|
<li>Aplikasi yang menargetkan Android N tidak menerima siaran {@link
|
||||||
android.net.ConnectivityManager#CONNECTIVITY_ACTION}, sekalipun
|
android.net.ConnectivityManager#CONNECTIVITY_ACTION}, sekalipun
|
||||||
memiliki entri manifes untuk meminta pemberitahuan mengenai kejadian ini. Aplikasi yang berjalan
|
memiliki entri manifes untuk meminta pemberitahuan mengenai kejadian ini. Aplikasi
|
||||||
di latar depan tetap bisa mendengarkan {@code CONNECTIVITY_CHANGE} pada thread
|
yang berjalan tetap bisa mendengarkan {@code CONNECTIVITY_CHANGE} pada thread utama
|
||||||
utama jika meminta pemberitahuan dengan {@link
|
jika mereka meminta pemberitahuan dengan {@link android.content.BroadcastReceiver}.
|
||||||
android.content.BroadcastReceiver}.
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Aplikasi tidak bisa mengirim atau menerima siaran {@link
|
<li>Aplikasi tidak bisa mengirim atau menerima siaran {@link
|
||||||
android.hardware.Camera#ACTION_NEW_PICTURE} atau {@link
|
android.hardware.Camera#ACTION_NEW_PICTURE} atau {@link
|
||||||
android.hardware.Camera#ACTION_NEW_VIDEO}. Optimisasi ini
|
android.hardware.Camera#ACTION_NEW_VIDEO}. Optimalisasi ini
|
||||||
memengaruhi semua aplikasi, bukan hanya yang menargetkan Android N.
|
memengaruhi semua aplikasi, bukan hanya aplikasi yang menargetkan Android N.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>Jika aplikasi Anda menggunakan intent ini, Anda harus membuang dependensi padanya
|
||||||
Rilis Android mendatang mungkin akan menghilangkan siaran implisit tambahan,
|
secepat mungkin agar Anda bisa menargetkan perangkat Android N dengan benar.
|
||||||
juga layanan latar belakang tak terikat. Karena itu, Anda harus menghindari atau
|
|
||||||
menghilangkan dependensi terhadap penerima yang dideklarasikan manifes untuk siaran implisit,
|
|
||||||
serta layanan latar belakang.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Kerangka kerja Android menyediakan beberapa solusi untuk mengurangi kebutuhan akan
|
Kerangka kerja Android menyediakan beberapa solusi untuk mengurangi kebutuhan akan
|
||||||
siaran implisit atau layanan latar belakang ini. Misalnya, {@link
|
siaran implisit ini. Misalnya, {@link
|
||||||
android.app.job.JobScheduler} API menyediakan mekanisme yang tangguh untuk menjadwalkan
|
android.app.job.JobScheduler} API menyediakan mekanisme yang tangguh untuk menjadwalkan
|
||||||
operasi jaringan bila syarat yang ditetapkan terpenuhi, misalnya koneksi ke suatu
|
operasi jaringan bila kondisi yang ditetapkan, seperti koneksi ke jaringan
|
||||||
jaringan berbiaya tetap. Anda bahkan bisa menggunakan {@link
|
berbiaya tetap, terpenuhi. Anda juga dapat menggunakan {@link
|
||||||
android.app.job.JobScheduler} untuk bereaksi terhadap perubahan kepada penyedia konten.
|
android.app.job.JobScheduler} untuk bereaksi terhadap perubahan pada penyedia materi.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Untuk informasi selengkapnya tentang perubahan perilaku ini dan cara menyesuaikan aplikasi Anda,
|
Untuk informasi selengkapnya tentang optimalisasi latar belakang di N dan cara menyesuaikan aplikasi Anda,
|
||||||
lihat <a href="{@docRoot}preview/features/background-optimization.html">Optimalisasi
|
lihat <a href="{@docRoot}preview/features/background-optimization.html">Optimalisasi
|
||||||
Latar Belakang</a>.
|
Latar Belakang</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="perm">Perubahan Izin</h2>
|
<h2 id="perm">Perubahan Izin</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Android N menyertakan perubahan pada izin yang bisa memengaruhi aplikasi Anda,
|
Android N menyertakan perubahan pada izin yang bisa memengaruhi aplikasi Anda.
|
||||||
termasuk izin akun pengguna dan izin baru untuk menulis ke
|
</p>
|
||||||
penyimpanan eksternal. Inilah rangkuman izin-izin yang telah berubah dalam
|
|
||||||
preview:
|
<h3 id="permfilesys">Perubahan izin sistem file</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Guna meningkatkan keamanan file privat, direktori privat
|
||||||
|
aplikasi yang menargetkan Android N atau yang lebih tinggi memiliki akses terbatas (<code>0700</code>).
|
||||||
|
Pengaturan ini mencegah kebocoran metadata dari file privat, seperti ukuran
|
||||||
|
atau eksistensi. Perubahan izin ini memiliki beberapa efek samping:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>{@code GET_ACCOUNTS} (Tidak digunakan lagi)
|
<li>
|
||||||
<p>
|
Izin file privat tidak boleh dianggap remeh oleh pemilik,
|
||||||
Izin GET_ACCOUNTS sekarang tidak digunakan lagi. Sistem mengabaikan izin ini
|
dan usaha untuk melakukannya menggunakan
|
||||||
untuk aplikasi yang menargetkan Android N.
|
{@link android.content.Context#MODE_WORLD_READABLE} dan/atau
|
||||||
|
{@link android.content.Context#MODE_WORLD_WRITEABLE}, akan memicu sebuah
|
||||||
|
{@link java.lang.SecurityException}.
|
||||||
|
<p class="note">
|
||||||
|
<strong>Catatan:</strong> Seperti sebelumnya, pembatasan ini tidak sepenuhnya diterapkan.
|
||||||
|
Aplikasi mungkin masih memodifikasi izin ke direktori privat mereka menggunakan
|
||||||
|
API asal atau {@link java.io.File File} API. Akan tetapi, kami sangat
|
||||||
|
tidak menyarankan Anda meremehkan izin direktori privat.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
Meneruskan URI <code>file://</code> di luar domain paket dapat meninggalkan
|
||||||
|
penerima dengan jalur yang tidak bisa di akses. Karena itu, upaya untuk meneruskan URI
|
||||||
|
<code>file://</code> akan memicu
|
||||||
|
<code>FileUriExposedException</code>. Cara yang disarankan adalah
|
||||||
|
materi file privat menggunakan {@link
|
||||||
|
android.support.v4.content.FileProvider}.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
{@link android.app.DownloadManager} tidak bisa lagi berbagi
|
||||||
|
file yang tersimpan secara privat berdasarkan nama file. Aplikasi lawas dapat mengakibatkan
|
||||||
|
jalur yang tidak dapat diakses saat mengakses {@link
|
||||||
|
android.app.DownloadManager#COLUMN_LOCAL_FILENAME}. Aplikasi yang menargetkan
|
||||||
|
Android N atau yang lebih tinggi akan memicu {@link java.lang.SecurityException} saat
|
||||||
|
berupaya mengakses
|
||||||
|
{@link android.app.DownloadManager#COLUMN_LOCAL_FILENAME}.
|
||||||
|
Aplikasi lawas yang menyetel lokasi unduhan ke lokasi publik dengan
|
||||||
|
menggunakan
|
||||||
|
{@link
|
||||||
|
android.app.DownloadManager.Request#setDestinationInExternalFilesDir
|
||||||
|
DownloadManager.Request.setDestinationInExternalFilesDir()} atau
|
||||||
|
{@link
|
||||||
|
android.app.DownloadManager.Request#setDestinationInExternalPublicDir
|
||||||
|
DownloadManager.Request.setDestinationInExternalPublicDir()}
|
||||||
|
tetap bisa mengakses jalur tersebut di
|
||||||
|
{@link android.app.DownloadManager#COLUMN_LOCAL_FILENAME}, akan tetapi,
|
||||||
|
metode ini sangat tidak disarankan. Cara yang disarankan untuk mengakses file
|
||||||
|
yang diekspos oleh {@link android.app.DownloadManager} adalah menggunakan
|
||||||
|
{@link android.content.ContentResolver#openFileDescriptor
|
||||||
|
ContentResolver.openFileDescriptor()}.
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="sharing-files">Berbagi File Antar Aplikasi</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Untuk aplikasi yang menargetkan Android N, kerangka kerja Android menerapkan
|
||||||
|
kebijakan {@link android.os.StrictMode} API yang melarang mengekspos URI {@code file://}
|
||||||
|
di luar aplikasi Anda. Jika sebuah intent berisi URI file meninggalkan aplikasi Anda, aplikasi tersebut akan gagal
|
||||||
|
dengan pengecualian {@code FileUriExposedException}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Untuk berbagi file antar aplikasi, Anda harus mengirim URI {@code content://}
|
||||||
|
dan memberikan izin akses sementara pada URI. Cara termudah untuk memberikan izin ini adalah dengan
|
||||||
|
menggunakan kelas {@link android.support.v4.content.FileProvider}. Untuk informasi selengkapnya
|
||||||
|
mengenai izin dan berbagi file,
|
||||||
|
lihat <a href="{@docRoot}training/secure-file-sharing/index.html">Berbagi File</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h2 id="accessibility">Peningkatan Aksesibilitas</h2>
|
<h2 id="accessibility">Peningkatan Aksesibilitas</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Android N menyertakan perubahan yang bertujuan meningkatkan kegunaan
|
Android N menyertakan perubahan yang bertujuan meningkatkan kegunaan
|
||||||
platform ini untuk pengguna dengan penglihatan yang kurang atau lemah. Perubahan ini secara umum tidak
|
platform untuk pengguna dengan penglihatan yang rendah atau lemah. Perubahan ini umumnya tidak
|
||||||
akan mengharuskan perubahan kode dalam aplikasi Anda, akan tetapi Anda harus meninjau
|
memerlukan perubahan kode dalam aplikasi Anda, akan tetapi Anda harus memeriksa
|
||||||
fitur ini dan mengujinya dengan aplikasi Anda untuk menilai dampak potensial terhadap pengalaman
|
fitur ini dan mengujinya dengan aplikasi untuk menilai kemungkinan dampaknya terhadap pengalaman
|
||||||
pengguna.
|
pengguna.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3 id="screen-zoom">Zoom Layar</h3>
|
<h3 id="screen-zoom">Perbesaran Layar</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Android N memungkinkan pengguna untuk mengatur <strong>Display size</strong> yang akan memperbesar
|
Android N memungkinkan pengguna menyetel <strong>Display size</strong> yang akan memperbesar
|
||||||
atau memperkecil semua elemen pada layar, sehingga meningkatkan aksesibilitas perangkat
|
atau memperkecil semua elemen pada layar, sehingga meningkatkan aksesibilitas perangkat
|
||||||
bagi pengguna yang kurang melihat. Pengguna tidak bisa memperbesar layar melewati lebar layar
|
bagi pengguna yang kurang melihat. Pengguna tidak bisa memperbesar layar melewati lebar layar
|
||||||
minimum <a href="http://developer.android.com/guide/topics/resources/providing-resources.html">
|
minimum <a href="http://developer.android.com/guide/topics/resources/providing-resources.html">
|
||||||
@@ -243,7 +296,7 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Bila densitas perangkat berubah, sistem akan memberi tahu aplikasi yang sedang berjalan dengan
|
Bila kepadatan perangkat berubah, sistem akan memberi tahu aplikasi yang sedang berjalan dengan
|
||||||
cara berikut:
|
cara berikut:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -251,17 +304,17 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
<li>Jika aplikasi menargetkan API level 23 atau yang lebih rendah, sistem secara otomatis akan mematikan
|
<li>Jika aplikasi menargetkan API level 23 atau yang lebih rendah, sistem secara otomatis akan mematikan
|
||||||
semua proses latar belakang. Artinya, jika pengguna beralih dari
|
semua proses latar belakang. Artinya, jika pengguna beralih dari
|
||||||
aplikasi tersebut untuk membuka layar <em>Settings</em> dan mengubah
|
aplikasi tersebut untuk membuka layar <em>Settings</em> dan mengubah
|
||||||
pengaturan <strong>Display size</strong>, maka sistem akan mematikan aplikasi tersebut dengan cara yang
|
setelan <strong>Display size</strong>, maka sistem akan mematikan aplikasi tersebut dengan cara yang
|
||||||
sama dengan saat memori tinggal sedikit. Jika aplikasi memiliki beberapa proses
|
sama dengan saat memori tinggal sedikit. Jika aplikasi memiliki beberapa proses
|
||||||
latar depan, sistem akan memberi tahu proses tersebut mengenai perubahan konfigurasi seperti
|
latar depan, sistem akan memberi tahu proses tersebut mengenai perubahan konfigurasi seperti
|
||||||
dijelaskan dalam <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan
|
dijelaskan dalam <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan
|
||||||
Runtime</a>, seolah-olah orientasi perangkat telah berubah.
|
Waktu Proses</a>, seolah-olah orientasi perangkat telah berubah.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Jika sebuah aplikasi menargetkan Android N, semua prosesnya
|
<li>Jika sebuah aplikasi menargetkan Android N, semua prosesnya
|
||||||
(latar depan dan latar belakang) akan diberi tahu mengenai perubahan konfigurasi seperti
|
(latar depan dan latar belakang) akan diberi tahu mengenai perubahan konfigurasi seperti
|
||||||
dijelaskan dalam <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan
|
dijelaskan dalam <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan
|
||||||
Runtime</a>.
|
Waktu Proses</a>.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
@@ -273,24 +326,24 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
<ul>
|
<ul>
|
||||||
<li>Uji aplikasi Anda pada perangkat dengan lebar layar <code><a href=
|
<li>Uji aplikasi Anda pada perangkat dengan lebar layar <code><a href=
|
||||||
"{@docRoot}guide/topics/resources/providing-resources.html">sw320dp</a></code>
|
"{@docRoot}guide/topics/resources/providing-resources.html">sw320dp</a></code>
|
||||||
dan pastikan aplikasinya berjalan dengan semestinya.
|
dan pastikan aplikasi berjalan dengan semestinya.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Bila konfigurasi perangkat berubah, perbarui informasi cache
|
<li>Bila konfigurasi perangkat berubah, perbarui informasi cache
|
||||||
yang bergantung pada densitas, seperti bitmap di cache atau sumber daya yang dimuat dari
|
yang bergantung pada kepadatan, seperti bitmap di cache atau sumber daya yang dimuat dari
|
||||||
jaringan. Periksa perubahan konfigurasi bila aplikasi melanjutkan dari status dihentikan
|
jaringan. Periksa perubahan konfigurasi bila aplikasi melanjutkan dari status dihentikan
|
||||||
sementara.
|
sementara.
|
||||||
<p class="note">
|
<p class="note">
|
||||||
<strong>Catatan:</strong> Jika Anda menyimpan sementara data yang bergantung pada konfigurasi, ada
|
<strong>Catatan:</strong> Catatan: Jika Anda meng-cache data yang bergantung pada konfigurasi, ada
|
||||||
baiknya untuk menyertakan metadata yang relevan seperti ukuran layar
|
baiknya untuk menyertakan metadata yang relevan seperti ukuran layar
|
||||||
atau densitas piksel yang sesuai untuk data tersebut. Menyimpan metadata ini memungkinkan Anda untuk
|
atau kepadatan piksel yang sesuai untuk data tersebut. Menyimpan metadata ini memungkinkan Anda untuk
|
||||||
memutuskan apakah Anda perlu memperbarui data cache setelah perubahan
|
memutuskan apakah Anda perlu segarkan data cache setelah perubahan
|
||||||
konfigurasi.
|
konfigurasi.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Hindari menetapkan dimensi dengan satuan px, karena satuan ini tidak diskalakan dengan
|
<li>Hindari menetapkan dimensi dengan satuan px, karena satuan ini tidak diskalakan dengan
|
||||||
densitas layar. Sebagai gantinya, tetapkan dimensi dengan satuan <a href="{@docRoot}guide/practices/screens_support.html">piksel yang tidak bergantung densitas
|
kepadatan layar. Sebagai gantinya, tetapkan dimensi dengan satuan <a href="{@docRoot}guide/practices/screens_support.html">piksel yang tidak bergantung kepadatan
|
||||||
</a> (<code>dp</code>).
|
</a> (<code>dp</code>).
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -298,32 +351,32 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
<h3 id="vision-settings">Vision Settings di Setup Wizard</h3>
|
<h3 id="vision-settings">Vision Settings di Setup Wizard</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Android N menyertakan Vision Settings pada layar Welcome, di mana pengguna bisa
|
Android N menyertakan Vision Settings di layar Sambutan, di mana pengguna bisa
|
||||||
menyiapkan pengaturan aksesibilitas berikut pada perangkat baru:
|
menyiapkan setelan aksesibilitas berikut pada perangkat baru:
|
||||||
<strong>Magnification gesture</strong>, <strong>Font size</strong>,
|
<strong>Magnification gesture</strong>, <strong>Font size</strong>,
|
||||||
<strong>Display size</strong> dan <strong>TalkBack</strong>. Perubahan ini
|
<strong>Display size</strong> dan <strong>TalkBack</strong>. Perubahan ini
|
||||||
menambah visibilitas bug yang terkait dengan berbagai pengaturan layar. Untuk
|
meningkatkan visibilitas bug terkait dengan setelan layar yang berbeda. Untuk
|
||||||
menilai dampak dari fitur ini, Anda harus menguji aplikasi dengan mengaktifkan
|
mengurangi dampak fitur ini, Anda harus menguji aplikasi dengan setelan ini
|
||||||
pengaturan ini. Anda bisa menemukan pengaturan ini pada <strong>Settings >
|
diaktifkan. Anda bisa menemukannya pada <strong>Settings >
|
||||||
Accessibility</strong>.
|
Accessibility</strong>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="ndk">Menautkan Aplikasi NDK ke Pustaka Platform</h2>
|
<h2 id="ndk">Penautan Aplikasi NDK ke Pustaka Platform</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Android N menyertakan perubahan namespace untuk mencegah pemuatan API non-publik.
|
Android N menyertakan perubahan ruang nama untuk mencegah pemuatan API non-publik.
|
||||||
Jika Anda menggunakan NDK, Anda hanya bisa menggunakan API publik dari platform
|
Jika menggunakan NDK, Anda hanya boleh menggunakan API publik dari platform
|
||||||
Android. Menggunakan API non-publik dalam rilis Android resmi berikutnya
|
Android. Menggunakan API non-publik dalam rilis Android resmi berikutnya
|
||||||
bisa menyebabkan aplikasi mengalami crash.
|
bisa menyebabkan aplikasi mogok.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Untuk memperingatkan Anda terhadap penggunaan API non-publik, aplikasi yang berjalan pada perangkat
|
Untuk memberi tahu Anda agar menggunakan API non-publik, aplikasi yang berjalan pada perangkat
|
||||||
Android N akan menghasilkan kesalahan output logcat bila sebuah aplikasi memanggil API non-publik.
|
Android N akan menghasilkan kesalahan dalam keluaran logcat bila aplikasi memanggil API non-publik.
|
||||||
Kesalahan ini juga ditampilkan pada layar perangkat berupa pesan untuk membantu
|
Kesalahan ini juga ditampilkan di layar perangkat berupa pesan untuk membantu
|
||||||
meningkatkan kesadaran akan situasi ini. Anda harus meninjau kode aplikasi untuk
|
meningkatkan kepedulian terhadap situasi ini. Anda harus memeriksa kode aplikasi untuk
|
||||||
menghilangkan penggunaan API platform non-publik dan secara saksama menguji aplikasi Anda menggunakan
|
membuang penggunaan API platform non-publik dan secara saksama menguji aplikasi Anda menggunakan
|
||||||
perangkat preview atau emulator.
|
perangkat pratinjau atau emulator.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -331,13 +384,13 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
perbaikan tipikal guna menggantikan API privat umum dengan padanan API publik.
|
perbaikan tipikal guna menggantikan API privat umum dengan padanan API publik.
|
||||||
Anda mungkin juga menautkan ke pustaka platform tanpa menyadarinya,
|
Anda mungkin juga menautkan ke pustaka platform tanpa menyadarinya,
|
||||||
terutama jika aplikasi Anda menggunakan pustaka yang merupakan bagian dari platform ini (seperti
|
terutama jika aplikasi Anda menggunakan pustaka yang merupakan bagian dari platform ini (seperti
|
||||||
<code>libpng</code>), namun bukan bagian dari NDK. Dalam hal ini, pastikan
|
<code>libpng</code>), namun bukan bagian dari NDK. Dalam hal itu, pastikan
|
||||||
APK Anda berisi semua file .so yang ingin ditautkan.
|
APK Anda berisi semua file .so yang ingin ditautkan.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="caution">
|
<p class="caution">
|
||||||
<strong>Peringatan:</strong> Beberapa pustaka pihak ketiga mungkin menautkan ke API
|
<strong>Perhatian:</strong> Beberapa pustaka pihak ketiga mungkin menautkan ke API
|
||||||
non-publik. Jika aplikasi Anda menggunakan pustaka ini, aplikasi Anda mungkin akan crash saat dijalankan
|
non-publik. Jika menggunakan pustaka ini, aplikasi Anda bisa mogok saat dijalankan
|
||||||
pada rilis resmi Android berikutnya.
|
pada rilis resmi Android berikutnya.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -345,10 +398,10 @@ page.image=images/cards/card-n-changes_2x.png
|
|||||||
Aplikasi tidak boleh bergantung pada atau menggunakan pustaka bawaan yang tidak disertakan dalam
|
Aplikasi tidak boleh bergantung pada atau menggunakan pustaka bawaan yang tidak disertakan dalam
|
||||||
NDK, karena bisa mengalami perubahan, atau dipindahkan dari satu rilis Android ke
|
NDK, karena bisa mengalami perubahan, atau dipindahkan dari satu rilis Android ke
|
||||||
rilis lainnya. Peralihan dari OpenSSL ke BoringSSL merupakan satu contoh dari perubahan semacam ini.
|
rilis lainnya. Peralihan dari OpenSSL ke BoringSSL merupakan satu contoh dari perubahan semacam ini.
|
||||||
Selain itu, perbedaan perangkat juga bisa menawarkan tingkat kompatibilitas, karena
|
Selain itu, perangkat yang berbeda bisa menawarkan tingkat kompatibilitas yang berbeda, karena
|
||||||
tidak ada persyaratan kompatibilitas bagi pustaka platform yang tidak disertakan
|
tidak ada persyaratan kompatibilitas untuk pustaka platform yang tidak disertakan
|
||||||
dalam NDK. Jika Anda harus mengakses pustaka non-NDK pada perangkat yang lebih lama, jadikan
|
dalam NDK. Jika Anda harus mengakses pustaka non-NDK pada perangkat yang lebih lama, jadikan
|
||||||
pemuatan bergantung pada level API Android.
|
pemuatan bergantung pada level Android API.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -383,8 +436,8 @@ JavaVM::AttachCurrentThread from <jni.h>.
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Penggunaan simbol {@code property_get} dari {@code libcutils.so} bisa
|
<li>Penggunaan simbol {@code property_get} dari {@code libcutils.so} bisa
|
||||||
diganti dengan {@code __system_property_get} alternatif publik.
|
diganti dengan {@code alternative __system_property_get} publik.
|
||||||
Caranya, gunakan {@code __system_property_get} dengan include berikut:
|
Caranya, gunakan {@code __system_property_get} dengan menyertakan yang berikut:
|
||||||
<pre>
|
<pre>
|
||||||
#include <sys/system_properties.h>
|
#include <sys/system_properties.h>
|
||||||
</pre>
|
</pre>
|
||||||
@@ -400,81 +453,158 @@ JavaVM::AttachCurrentThread from <jni.h>.
|
|||||||
<h2 id="afw">Android for Work</h2>
|
<h2 id="afw">Android for Work</h2>
|
||||||
<p>
|
<p>
|
||||||
Android N berisi perubahan untuk aplikasi yang menargetkan Android for Work, termasuk
|
Android N berisi perubahan untuk aplikasi yang menargetkan Android for Work, termasuk
|
||||||
perubahan pada instalasi sertifikat, pengaturan ulang kata sandi, manajemen pengguna
|
perubahan pada pemasangan sertifikat, penyetelan ulang sandi, manajemen pengguna
|
||||||
tambahan, dan akses ke identifier perangkat. Jika Anda membangun aplikasi untuk
|
tambahan, dan akses ke identifier perangkat. Jika Anda membangun aplikasi untuk
|
||||||
lingkungan Android for Work, Anda harus meninjau perubahan ini dan memodifikasi
|
lingkungan Android for Work, Anda harus meninjau perubahan ini dan memodifikasi
|
||||||
aplikasi sebagaimana mestinya.
|
aplikasi sebagaimana mestinya.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Anda harus menginstal penginstal sertifikat yang didelegasikan sebelum DPC bisa
|
<li>Anda harus pasang pemasang sertifikat yang didelegasikan sebelum DPC bisa
|
||||||
mengaturnya. Untuk profil dan aplikasi pemilik perangkat yang menargetkan N SDK, Anda harus
|
menyetelnya. Untuk aplikasi profil dan aplikasi pemilik perangkat yang menargetkan N SDK, Anda harus
|
||||||
menginstal penginstal sertifikat yang didelegasikan sebelum pengontrol kebijakan
|
pasang pemasang sertifikat yang didelegasikan sebelum pengontrol kebijakan
|
||||||
perangkat (DPC) memanggil
|
perangkat (DPC) memanggil
|
||||||
<code>DevicePolicyManager.setCertInstallerPackage()</code>. Jika penginstal
|
<code>DevicePolicyManager.setCertInstallerPackage()</code>. Jika pemasang
|
||||||
belum diinstal, sistem akan melontarkan
|
belum dipasang, sistem akan melontarkan
|
||||||
<code>IllegalArgumentException</code>.
|
<code>IllegalArgumentException</code>.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Pembatasan pengaturan ulang kata sandi untuk admin perangkat sekarang diterapkan kepada pemilik
|
<li>Pembatasan sandi penyetelan ulang untuk admin perangkat sekarang diterapkan ke pemilik
|
||||||
profil. Admin perangkat tidak bisa lagi menggunakan
|
profil. Admin perangkat tidak bisa lagi menggunakan
|
||||||
<code>DevicePolicyManager.resetPassword()</code> untuk menghapus kata sandi atau mengubah
|
{@code DevicePolicyManager.resetPassword()} untuk menghapus sandi atau mengubah
|
||||||
kata sandi yang sudah ditetapkan. Admin perangkat tetap bisa menetapkan kata sandi, namun hanya
|
sandi yang sudah disetel. Admin perangkat tetap bisa menyetel sandi, namun hanya
|
||||||
bila perangkat belum memiliki kata sandi, PIN, atau pola.
|
bila perangkat belum memiliki sandi, PIN, atau pola.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Pemilik perangkat dan profil bisa mengelola akun meskipun pembatasan
|
<li>Pemilik perangkat dan profil bisa mengelola akun meskipun pembatasan
|
||||||
ditetapkan. Pemilik perangkat dan pemilik profil bisa memanggil Account Management API
|
telah disetel. Pemilik perangkat dan pemilik profil bisa memanggil Account Management API
|
||||||
sekalipun pembatasan pengguna <code>DISALLOW_MODIFY_ACCOUNTS</code> diberlakukan.
|
sekalipun pembatasan pengguna <code>DISALLOW_MODIFY_ACCOUNTS</code> diberlakukan.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Pemilik perangkat bisa mengelola pengguna tambahan dengan lebih mudah. bila perangkat
|
<li>Pemilik perangkat bisa mengelola pengguna tambahan lebih mudah. Bila perangkat
|
||||||
dijalankan dalam mode pemilik perangkat, pembatasan <code>DISALLOW_ADD_USER</code>
|
berjalan dalam mode pemilik perangkat, maka pembatasan <code>DISALLOW_ADD_USER</code>
|
||||||
secara otomatis ditetapkan. Ini mencegah pengguna membuat pengguna tambahan yang
|
secara otomatis akan ditetapkan. Ini mencegah pengguna membuat pengguna tambahan yang
|
||||||
tidak terkelola. Selain itu, metode <code>CreateUser()</code> dan
|
tidak terkelola. Selain itu, <code>CreateUser()</code> dan
|
||||||
<code>createAndInitial()</code> tidak digunakan lagi; metode
|
<code>createAndInitializeUser()</code> metode tidak digunakan lagi; metode
|
||||||
<code>DevicePolicyManager.createAndManageUser()</code> baru telah menggantikannya.
|
<code>DevicePolicyManager.createAndManageUser()</code> telah menggantikannya.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Pemilik perangkat bisa mengakses identifier perangkat. Pemilik perangkat bisa mengakses
|
<li>Pemilik perangkat bisa mengakses identifier perangkat. Pemilik perangkat bisa mengakses
|
||||||
alamat MAC Wi-Fi dari sebuah perangkat, menggunakan
|
alamat MAC Wi-Fi dari perangkat, menggunakan
|
||||||
<code>DevicePolicyManagewr.getWifiMacAddress()</code>. Jika Wi-Fi belum pernah
|
<code>DevicePolicyManagewr.getWifiMacAddress()</code>. Jika Wi-Fi belum pernah
|
||||||
diaktifkan pada perangkat tersebut, metode ini akan mengembalikan nilai {@code null}.
|
diaktifkan pada perangkat tersebut, metode ini akan mengembalikan nilai {@code null}.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>Setelan Mode Kerja mengontrol akses ke aplikasi kerja. Bila mode kerja tidak aktif, peluncur sistem
|
||||||
|
akan menunjukkan aplikasi kerja tidak tersedia dengan membuat warnanya jadi abu-abu. Mengaktifkan kembali
|
||||||
|
mode kerja akan memulihkan perilaku normal.
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Untuk informasi selengkapnya tentang perubahan pada Android for Work di Android N, lihat
|
Untuk informasi selengkapnya tentang perubahan Android for Work di Android N, lihat
|
||||||
<a href="{@docRoot}preview/features/afw.html">Pembaruan Android for Work</a>.
|
<a href="{@docRoot}preview/features/afw.html">Pembaruan Android for Work</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="other">Poin penting lainnya</h2>
|
<h2 id="annotations">Retensi Anotasi</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android N memperbaiki bug dengan visibilitas anotasi diabaikan.
|
||||||
|
Masalah ini mengaktifkan waktu proses untuk mengakses anotasi yang seharusnya tidak bisa
|
||||||
|
dilakukan. Anotasi ini termasuk:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>{@code VISIBILITY_BUILD}: Dimaksudkan agar hanya bisa terlihat pada waktu pembuatan.</li>
|
||||||
|
<li>{@code VISIBILITY_SYSTEM}: Dimaksud agar bisa terlihat pada waktu proses, namun hanya pada
|
||||||
|
sistem yang mendasarinya.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Jika aplikasi Anda mengandalkan perilaku ini, tambahkan kebijakan retensi untuk anotasi yang harus
|
||||||
|
tersedia di waktu proses. Caranya dengan menggunakan {@code @Retention(RetentionPolicy.RUNTIME)}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="other">Poin Penting Lainnya</h2>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Bila aplikasi berjalan pada Android N, namun menargetkan level API yang lebih rendah,
|
<li>Bila aplikasi berjalan pada Android N, namun menargetkan level API yang lebih rendah,
|
||||||
dan pengguna mengubah ukuran tampilan, proses aplikasi akan dimatikan. Aplikasi
|
dan pengguna mengubah ukuran tampilan, proses aplikasi akan dimatikan. Aplikasi
|
||||||
harus dapat menangani skenario ini dengan lancar. Jika tidak, maka akan terjadi crash
|
harus dapat menangani skenario ini dengan lancar. Jika tidak, maka akan mogok
|
||||||
bila pengguna memulihkannya dari Recents.
|
bila pengguna memulihkannya dari Recents.
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Anda harus menguji aplikasi untuk memastikan
|
Anda harus menguji aplikasi untuk memastikan
|
||||||
perilaku ini tidak terjadi.
|
perilaku ini tidak terjadi.
|
||||||
Anda bisa melakukannya dengan menyebabkan suatu crash yang mirip
|
Anda bisa melakukannya dengan menyebabkan suatu mogok yang identik
|
||||||
saat mematikan aplikasi secara manual melalui DDMS.
|
saat mematikan aplikasi secara manual melalui DDMS.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Aplikasi yang menargetkan N dan yang di atasnya tidak secara otomatis dimatikan saat perubahan densitas;
|
Aplikasi yang menargetkan N dan yang di atasnya tidak secara otomatis dimatikan saat perubahan kepadatan;
|
||||||
akan tetapi, aplikasi tersebut mungkin tetap merespons perubahan konfigurasi dengan buruk.
|
akan tetapi, aplikasi tersebut mungkin tetap merespons perubahan konfigurasi dengan buruk.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
Aplikasi pada Android N harus mampu menangani perubahan konfigurasi dengan lancar,
|
Aplikasi pada Android N harus mampu menangani perubahan konfigurasi dengan lancar,
|
||||||
dan tidak boleh mengalami crash pada start selanjutnya. Anda bisa memverifikasi perilaku aplikasi
|
dan tidak boleh mengalami mogok pada start selanjutnya. Anda bisa memverifikasi perilaku aplikasi
|
||||||
dengan mengubah ukuran font (<strong>Setting</strong> >
|
dengan mengubah ukuran font (<strong>Setting</strong> >
|
||||||
<strong>Display</strong> > <strong>Font size</strong>), kemudian memulihkan
|
<strong>Display</strong> > <strong>Font size</strong>), kemudian memulihkan
|
||||||
aplikasi dari Recents.
|
aplikasi dari Recents.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Dikarenakan adanya bug di versi Android sebelumnya, sistem tidak menandai penulisan
|
||||||
|
ke soket TCP di thread utama sebagai pelanggaran mode-ketat. Android N memperbaiki bug ini.
|
||||||
|
Aplikasi yang menunjukkan perilaku ini kini melontarkan sebuah {@code android.os.NetworkOnMainThreadException}.
|
||||||
|
Secara umum, melakukan operasi jaringan di thread utama tidak baik karena operasi ini
|
||||||
|
biasanya memiliki latensi tinggi yang menyebabkan ANR dan jank.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Kelompok metode {@code Debug.startMethodTracing()} kini default ke
|
||||||
|
keluaran penyimpanan di direktori paket tertentu di penyimpanan bersama,
|
||||||
|
sebagai ganti di level teratas
|
||||||
|
kartu SD. Berarti aplikasi tidak perlu lagi meminta izin {@code WRITE_EXTERNAL_STORAGE} untuk menggunakan API ini.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Banyak platform API yang kini mulai memeriksa beban besar yang dikirim
|
||||||
|
ke seluruh transaksi {@link android.os.Binder}, dan sistem
|
||||||
|
kini melontarkan kembali {@code TransactionTooLargeExceptions}
|
||||||
|
sebagai {@code RuntimeExceptions}, sebagai ganti logging secara diam-diam atau menyembunyikannya. Satu contoh
|
||||||
|
umum adalah menyimpan terlalu banyak data di
|
||||||
|
{@link android.app.Activity#onSaveInstanceState Activity.onSaveInstanceState()},
|
||||||
|
yang menyebabkan {@code ActivityThread.StopInfo} melontarkan
|
||||||
|
{@code RuntimeException} bila aplikasi Anda menargetkan Android N.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Jika sebuah aplikasi mengeposkan tugas {@link java.lang.Runnable} ke{@link android.view.View}, dan
|
||||||
|
{@link android.view.View}
|
||||||
|
tidak terpasang ke jendela, sistem
|
||||||
|
akan mengantrekan tugas {@link java.lang.Runnable} dengan {@link android.view.View};
|
||||||
|
tugas {@link java.lang.Runnable} tidak akan dieksekusi hingga
|
||||||
|
{@link android.view.View} terpasang
|
||||||
|
ke jendela. Perilaku ini mengatasi bug berikut:
|
||||||
|
<ul>
|
||||||
|
<li>Jika sebuah aplikasi mengeposkan ke {@link android.view.View} dari thread selain thread UI jendela yang dimaksud,
|
||||||
|
maka {@link java.lang.Runnable} mungkin akan menjalankan thread yang salah.
|
||||||
|
</li>
|
||||||
|
<li>Jika tugas {@link java.lang.Runnable} diposkan dari thread selain
|
||||||
|
looper-thread, aplikasi bisa mengekspos tugas {@link java.lang.Runnable}.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Jika sebuah aplikasi di Android N dengan
|
||||||
|
izin{@link android.Manifest.permission#DELETE_PACKAGES DELETE_PACKAGES}
|
||||||
|
mencoba menghapus sebuah paket, namun sebuah aplikasi berbeda telah memasang paket itu,
|
||||||
|
sistem akan memerlukan konfirmasi pengguna. Dalam skenario ini, aplikasi harus mengharapkan
|
||||||
|
{@link android.content.pm.PackageInstaller#STATUS_PENDING_USER_ACTION STATUS_PENDING_USER_ACTION}
|
||||||
|
sebagai status kembalian bila memanggil
|
||||||
|
{@link android.content.pm.PackageInstaller#uninstall PackageInstaller.uninstall()}.
|
||||||
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|||||||
324
docs/html-intl/intl/in/preview/download-ota.jd
Normal file
@@ -0,0 +1,324 @@
|
|||||||
|
page.title=Menerapkan Citra OTA Perangkat
|
||||||
|
|
||||||
|
@jd:body
|
||||||
|
|
||||||
|
<div style="position:relative; min-height:600px">
|
||||||
|
|
||||||
|
<div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
|
||||||
|
|
||||||
|
<p class="sdk-terms-intro">Sebelum mengunduh dan memasang
|
||||||
|
komponen Android Preview SDK, Anda harus menyetujui ketentuan dan persyaratan
|
||||||
|
berikut.</p>
|
||||||
|
|
||||||
|
<h2 class="norule">Ketentuan dan Persyaratan</h2>
|
||||||
|
|
||||||
|
<div class="sdk-terms" onfocus="this.blur()" style="width:678px">
|
||||||
|
Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
||||||
|
|
||||||
|
1. Pengantar
|
||||||
|
|
||||||
|
1.1 Android SDK Preview (dalam Perjanjian Lisensi ini disebut "Pratinjau" dan secara spesifik termasuk file sistem Android, paket API, dan file pustaka Pratinjau, jika disediakan) diberikan lisensinya kepada Anda sesuai dengan ketentuan Perjanjian Lisensi. Perjanjian Lisensi ini merupakan kontrak yang mengikat secara hukum antara Anda dan Google dalam kaitannya dengan penggunaan Pratinjau oleh Anda.
|
||||||
|
|
||||||
|
1.2 "Android" berarti tumpukan perangkat lunak Android untuk perangkat, seperti yang tersedia di Android Open Source Project, yang ada di URL berikut: http://source.android.com/, yang selalu diperbarui.
|
||||||
|
|
||||||
|
1.3 “Kompatibel dengan Android” berarti segala implementasi Android yang (i) sesuai dengan Android Compatibility Definition Document, yang bisa ditemukan di situs web kompatibilitas Android (http://source.android.com/compatibility) dan yang selalu diperbarui; serta (ii) berhasil lulus Android Compatibility Test Suite (CTS).
|
||||||
|
|
||||||
|
1.4 "Google" berarti Google Inc., perusahaan asal Delaware dengan kantor bisnis utama di 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
|
||||||
|
|
||||||
|
2. Menerima Perjanjian Lisensi
|
||||||
|
|
||||||
|
2.1 Agar bisa menggunakan Pratinjau, Anda terlebih dahulu harus menyetujui Perjanjian Lisensi ini. Anda tidak boleh menggunakan Pratinjau jika tidak menerima Perjanjian Lisensi.
|
||||||
|
|
||||||
|
2.2 Dengan mengklik untuk menerima dan/atau menggunakan Pratinjau, berarti Anda menyetujui ketentuan Perjanjian Lisensi.
|
||||||
|
|
||||||
|
2.3 Anda tidak boleh menggunakan Pratinjau dan tidak boleh menerima Perjanjian Lisensi jika Anda adalah orang yang dilarang menerima Pratinjau berdasarkan hukum Amerika Serikat atau negara lainnya termasuk negara di mana Anda tinggal atau dari mana Anda menggunakan Pratinjau.
|
||||||
|
|
||||||
|
2.4 Jika Anda akan menggunakan Pratinjau di lingkungan perusahaan atau organisasi Anda, berarti Anda setuju untuk terikat oleh Perjanjian Lisensi atas nama perusahaan Anda atau entitas lainnya, serta Anda mewakili dan menjamin bahwa Anda memiliki kewenangan hukum penuh untuk mengikat perusahaan Anda atau entitas tersebut pada Perjanjian Lisensi ini. Jika Anda tidak memiliki kewenangan yang disyaratkan, Anda tidak boleh menerima Perjanjian Lisensi atau menggunakan Pratinjau atas nama perusahaan Anda atau entitas lainnya.
|
||||||
|
|
||||||
|
3. Lisensi Pratinjau dari Google
|
||||||
|
|
||||||
|
3.1 Sesuai dengan ketentuan Perjanjian Lisensi ini, Google memberi Anda lisensi yang tidak bisa disublisensikan, non-eksklusif, tidak bisa dialihkan, bebas royalti, bersifat global dan terbatas dalam menggunakan Pratinjau hanya untuk keperluan pengembangan aplikasi yang kompatibel untuk diimplementasikan pada Android.
|
||||||
|
|
||||||
|
3.2 Anda tidak boleh menggunakan Pratinjau ini untuk mengembangkan aplikasi platform lain (termasuk implementasi yang tidak kompatibel pada Android) atau untuk mengembangkan SDK lain. Anda tentu saja bebas mengembangkan aplikasi untuk platform lain, termasuk implementasi yang tidak kompatibel pada Android, karena Pratinjau ini tidak digunakan untuk tujuan tersebut.
|
||||||
|
|
||||||
|
3.3 Anda setuju bahwa Google atau pihak ketiga memiliki semua hak, kuasa dan kepentingan hukum dalam dan pada Pratinjau, termasuk Hak Kekayaan Intelektual yang terdapat dalam Pratinjau. "Hak Kekayaan Intelektual" berarti setiap dan semua hak yang berdasarkan pada hukum paten, hukum hak cipta, hukum rahasia dagang, hukum merek dagang, dan setiap dan semua hak kepemilikan lainnya. Google memiliki semua hak yang tidak secara tersurat diberikan kepada Anda.
|
||||||
|
|
||||||
|
3.4 Anda tidak boleh menggunakan Pratinjau untuk tujuan apa pun yang tidak secara tersurat diizinkan dalam Perjanjian Lisensi ini. Kecuali sejauh yang diperlukan oleh lisensi pihak ketiga yang berlaku, Anda tidak boleh: (a) menyalin (kecuali untuk keperluan pencadangan), memodifikasi, mengadaptasi, mendistribusikan kembali, mendekompilasi, merekayasa balik, membongkar atau membuat karya turunan dari Pratinjau atau bagian apa pun dari Pratinjau; atau (b) memuat bagian apa pun dari Pratinjau ke sebuah handset ponsel atau perangkat keras selain komputer pribadi, menggabungkan suatu bagian dari Pratinjau dengan perangkat lunak lain, atau mendistribusikan perangkat lunak atau perangkat yang menggabungkan suatu bagian dari Pratinjau.
|
||||||
|
|
||||||
|
3.5 Penggunaan, reproduksi dan distribusi komponen Pratinjau yang berlisensi perangkat lunak sumber terbuka diatur semata-mata oleh ketentuan lisensi perangkat lunak sumber terbuka tersebut dan bukan oleh Perjanjian Lisensi ini. Anda menyetujui bagian selebihnya dari lisensi dengan maksud baik sehubungan dengan lisensi perangkat lunak sumber terbuka tersebut sesuai dengan semua hak yang diberikan dan untuk menahan diri dari segala tindakan yang mungkin akan mengakhiri, menangguhkan, atau melanggar hak tersebut.
|
||||||
|
|
||||||
|
3.6 Anda setuju bahwa bentuk dan sifat Pratinjau yang disediakan oleh Google dapat berubah tanpa pemberitahuan sebelumnya kepada Anda dan bahwa versi Pratinjau mendatang mungkin tidak kompatibel dengan aplikasi yang dikembangkan di versi Pratinjau sebelumnya. Anda setuju bahwa Google boleh menghentikan (secara permanen atau sementara) penyediaan Pratinjau (atau fitur apa pun dalam Pratinjau) kepada Anda atau pengguna pada umumnya atas kebijakan Google semata, tanpa pemberitahuan sebelumnya kepada Anda.
|
||||||
|
|
||||||
|
3.7 Perjanjian Lisensi ini tidak memberi Anda hak untuk menggunakan nama dagang, merek dagang, merek layanan, logo, nama domain, atau fitur merek khas Google lainnya.
|
||||||
|
|
||||||
|
3.8 Anda setuju bahwa Anda tidak akan membuang, mengaburkan, atau mengubah pernyataan hak kepemilikan apa pun (termasuk pemberitahuan hak cipta dan merek dagang) yang terlampir atau termuat dalam Pratinjau.
|
||||||
|
|
||||||
|
4. Penggunaan Pratinjau oleh Anda
|
||||||
|
|
||||||
|
4.1 Google setuju bahwa Perjanjian Lisensi ini tidak memberi Google hak, kuasa, dan kepentingan hukum dari Anda (atau pemberi lisensi Anda) dalam atau pada aplikasi perangkat lunak apa pun yang Anda kembangkan menggunakan Pratinjau ini, termasuk kekayaan intelektual yang ada dalam aplikasi tersebut.
|
||||||
|
|
||||||
|
4.2 Anda setuju untuk menggunakan Pratinjau dan menulis aplikasi hanya untuk tujuan yang diizinkan oleh (a) Perjanjian Lisensi, dan (b) hukum yang berlaku, peraturan atau praktik yang diterima secara umum atau panduan dalam yurisdiksi terkait (termasuk hukum mengenai ekspor data atau perangkat lunak ke dan dari Amerika Serikat atau negara lain yang terkait).
|
||||||
|
|
||||||
|
4.3 Anda setuju jika Anda menggunakan Pratinjau untuk mengembangkan aplikasi, Anda akan melindungi hak privasi dan hak hukum pengguna. Jika pengguna memberikan nama pengguna, sandi, atau informasi login atau informasi pribadinya, Anda harus membuat pengguna tersebut menyadari bahwa informasi yang diberikannya akan bisa digunakan oleh aplikasi Anda, dan Anda harus memberikan perlindungan dan pemberitahuan privasi yang memadai secara hukum bagi pengguna tersebut. Jika aplikasi Anda menyimpan informasi pribadi atau sensitif yang diberikan oleh pengguna, aplikasi Anda harus melakukannya dengan aman. Jika pengguna memberikan informasi Akun Google, aplikasi Anda hanya boleh menggunakan informasi tersebut untuk mengakses Akun Google pengguna saat, dan untuk tujuan terbatas di mana, pengguna tersebut telah memberikan izin kepada Anda untuk melakukannya.
|
||||||
|
|
||||||
|
4.4 Anda setuju bahwa Anda tidak akan terlibat dalam aktivitas apa pun dengan Pratinjau, termasuk pengembangan atau distribusi aplikasi yang mengganggu, mengacaukan, merusak, atau mengakses secara tidak sah server, jaringan atau properti layanan Google atau pihak ketiga lainnya.
|
||||||
|
|
||||||
|
4.5 Anda setuju bertanggung jawab penuh untuk (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga lainnya untuk) data, materi, atau sumber daya apa pun yang Anda buat, kirimkan atau tampilkan melalui Android dan/atau aplikasi untuk Android, dan terhadap konsekuensi tindakan Anda (termasuk kerugian atau kerusakan apa pun yang mungkin dialami Google).
|
||||||
|
|
||||||
|
4.6 Anda setuju bertanggung jawab penuh terhadap (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga lainnya untuk) pelanggaran kewajiban Anda berdasarkan Perjanjian Lisensi ini, kontrak pihak ketiga yang berlaku atau Ketentuan Layanan, atau hukum atau peraturan yang berlaku, dan terhadap konsekuensi (termasuk kerugian atau kerusakan yang mungkin dialami Google atau pihak ketiga lainnya) akibat pelanggaran tersebut.
|
||||||
|
|
||||||
|
4.7 Pratinjau ini dalam tahap pengembangan, dan pengujian serta masukan Anda merupakan bagian penting dalam proses pengembangan. Dengan menggunakan Pratinjau, Anda mengakui bahwa implementasi beberapa fitur masih dalam tahap pengembangan dan bahwa Anda tidak seharusnya mengandalkan Pratinjau berfungsi sepenuhnya sebagaimana pada rilis stabil. Anda setuju untuk tidak mendistribusikan atau mengirimkan untuk umum penggunaan aplikasi menggunakan Pratinjau karena Pratinjau ini tidak akan lagi didukung setelah Android SDK dirilis secara resmi.
|
||||||
|
|
||||||
|
5. Kredensial Pengembang Anda
|
||||||
|
|
||||||
|
5.1 Anda setuju bertanggung jawab untuk menjaga kerahasiaan semua kredensial pengembang yang mungkin diberikan Google kepada Anda atau yang mungkin Anda pilih sendiri dan bahwa Anda akan bertanggung jawab penuh terhadap semua aplikasi yang dikembangkan dengan kredensial pengembang Anda.
|
||||||
|
|
||||||
|
6. Privasi dan Informasi
|
||||||
|
|
||||||
|
6.1 Untuk terus berinovasi dan meningkatkan Pratinjau, Google boleh mengumpulkan statistik penggunaan tertentu dari perangkat lunak termasuk namun tidak terbatas pada identifier unik, alamat IP terkait, nomor versi perangkat lunak, dan informasi yang menjadi tempat penggunaan alat dan/atau layanan dalam Pratinjau dan cara penggunaannya. Sebelum informasi ini dikumpulkan, Pratinjau akan memberi tahu dan meminta persetujuan Anda. Jika Anda tidak memberikan persetujuan, informasi tersebut tidak akan dikumpulkan.
|
||||||
|
|
||||||
|
6.2 Data yang dikumpulkan akan diperiksa secara agregat untuk meningkatkan Pratinjau dan dikelola sesuai dengan Kebijakan Privasi Google yang terdapat di http://www.google.com/policies/privacy.
|
||||||
|
|
||||||
|
7. Aplikasi Pihak Ketiga
|
||||||
|
|
||||||
|
7.1 Jika Anda menggunakan Pratinjau untuk menjalankan aplikasi yang dikembangkan oleh pihak ketiga atau yang mengakses data, materi atau sumber daya yang disediakan oleh pihak ketiga, Anda setuju bahwa Google tidak bertanggung jawab terhadap aplikasi, data, materi atau sumber daya tersebut. Anda memahami bahwa semua data, materi atau sumber daya yang mungkin Anda akses melalui aplikasi pihak ketiga merupakan tanggung jawab penuh dari pihak yang menjadi asal data tersebut dan Google tidak bertanggung jawab terhadap kerugian atau kerusakan apa pun yang mungkin Anda alami sebagai akibat menggunakan atau mengakses aplikasi, data, materi, atau sumber daya pihak ketiga tersebut.
|
||||||
|
|
||||||
|
7.2 Anda harus menyadari bahwa data, materi dan sumber daya yang diberikan kepada Anda melalui aplikasi pihak ketiga mungkin dilindungi oleh hak kekayaan intelektual yang dimiliki oleh penyedia (atau oleh orang lain atau perusahaan atas nama mereka). Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data, materi, atau sumber daya ini (baik secara keseluruhan atau sebagian) kecuali Anda secara khusus diberikan izin untuk melakukannya oleh pemilik yang bersangkutan.
|
||||||
|
|
||||||
|
7.3 Anda mengakui bahwa penggunaan Anda atas aplikasi, data, materi, atau sumber daya pihak ketiga semacam itu tunduk pada ketentuan terpisah antara Anda dan pihak ketiga yang bersangkutan.
|
||||||
|
|
||||||
|
8. Menggunakan Google API
|
||||||
|
|
||||||
|
8.1 Google API
|
||||||
|
|
||||||
|
8.1.1 Jika Anda menggunakan API (Antarmuka Pemrograman Aplikasi) untuk mengambil data dari Google, Anda mengakui bahwa data tersebut dilindungi hak kekayaan intelektual yang dimiliki Google atau pihak-pihak yang menyediakan data (atau oleh orang lain atau perusahaan atas nama mereka). Penggunaan API oleh Anda tunduk pada Ketentuan Layanan tambahan. Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data ini (baik secara keseluruhan atau sebagian) kecuali diizinkan oleh Ketentuan Layanan yang bersangkutan.
|
||||||
|
|
||||||
|
8.1.2 Jika Anda menggunakan API dalam bentuk apa pun untuk mengambil data pengguna dari Google, Anda mengakui dan menyetujui bahwa Anda akan mengambil data hanya dengan persetujuan yang jelas dari pengguna dan hanya bila, dan sebatas keperluan yang diizinkan oleh pengguna tersebut untuk Anda lakukan.
|
||||||
|
|
||||||
|
9. Mengakhiri Perjanjian Lisensi
|
||||||
|
|
||||||
|
9.1 Perjanjian Lisensi ini akan terus berlaku hingga diakhiri oleh Anda atau Google sebagaimana diatur di bawah ini.
|
||||||
|
|
||||||
|
9.2 Jika Anda ingin mengakhiri Perjanjian Lisensi ini, Anda boleh melakukannya dengan menghentikan penggunaan Pratinjau dan kredensial pengembang yang relevan.
|
||||||
|
|
||||||
|
9.3 Google boleh mengakhiri Perjanjian Lisensi ini dengan Anda kapan saja, dengan atau tanpa sebab, setelah memberi tahu Anda.
|
||||||
|
|
||||||
|
9.4 Perjanjian Lisensi akan berakhir secara otomatis tanpa pemberitahuan atau tindakan lainnya bila, mana saja yang lebih dahulu:
|
||||||
|
(A) Google berhenti menyediakan Pratinjau atau bagian Pratinjau tertentu kepada pengguna di negara tempat Anda tinggal atau negara tempat asal Anda menggunakan layanan; dan
|
||||||
|
(B) Google mengeluarkan versi rilis final dari Android SDK.
|
||||||
|
|
||||||
|
9.5 Bila Perjanjian Lisensi berakhir, lisensi yang telah diberikan kepada Anda dalam Perjanjian Lisensi akan berakhir pula, Anda akan segera menghentikan semua penggunaan Pratinjau, dan ketetapan paragraf 10, 11, 12, dan 14 akan terus berlaku secara tak terbatas.
|
||||||
|
|
||||||
|
10. SANGGAHAN
|
||||||
|
|
||||||
|
10.1 ANDA SEPENUHNYA MEMAHAMI DAN MENYETUJUI BAHWA PENGGUNAAN PRATINJAU OLEH ANDA MERUPAKAN RISIKO ANDA SENDIRI DAN BAHWA PRATINJAU INI DISEDIAKAN "APA ADANYA" DAN "SEBAGAIMANA TERSEDIA" TANPA JAMINAN DALAM BENTUK APA PUN DARI GOOGLE.
|
||||||
|
|
||||||
|
10.2 PENGGUNAAN PRATINJAU DAN MATERI APA PUN YANG DIUNDUH ATAU DIPEROLEH MELALUI PENGGUNAAN PRATINJAU OLEH ANDA ADALAH ATAS KEHENDAK DAN RISIKO ANDA SENDIRI DAN ANDA BERTANGGUNG JAWAB PENUH TERHADAP KERUSAKAN PADA SISTEM KOMPUTER ATAU PERANGKAT LAIN ATAU HILANGNYA DATA AKIBAT PENGGUNAAN TERSEBUT. TANPA MEMBATASI HAL TERSEBUT, ANDA MEMAHAMI BAHWA PRATINJAU BUKANLAH RILIS STABIL DAN MUNGKIN BERISI KESALAHAN, CACAT, DAN RISIKO KEAMANAN YANG BISA MENGAKIBATKAN KERUSAKAN SIGNIFIKAN, TERMASUK KEHILANGAN PENGGUNAAN ATAS SISTEM KOMPUTER ANDA ATAU PERANGKAT LAIN DENGAN SEPENUHNYA DAN TIDAK BISA DIPULIHKAN LAGI.
|
||||||
|
|
||||||
|
10.3 GOOGLE LEBIH LANJUT MENYANGGAH SEMUA JAMINAN DAN PERSYARATAN APA PUN, BAIK TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN TERSIRAT DAN PERSYARATAN MENGENAI DAYA JUAL, KESESUAIAN DENGAN TUJUAN TERTENTU, DAN NON-PELANGGARAN.
|
||||||
|
|
||||||
|
11. PEMBATASAN KEWAJIBAN
|
||||||
|
|
||||||
|
11.1 ANDA SEPENUHNYA MEMAHAMI DAN MENYETUJUI BAHWA GOOGLE, ANAK PERUSAHAAN DAN AFILIASINYA, DAN PEMBERI LISENSINYA TIDAK AKAN BERTANGGUNG JAWAB KEPADA ANDA BERDASARKAN TEORI KEWAJIBAN TERHADAP SEGALA KERUGIAN LANGSUNG, TIDAK LANGSUNG, INSIDENTAL, KHUSUS, JANGKA PANJANG ATAU GANTI RUGI YANG DIAKIBATKAN OLEH ANDA, TERMASUK HILANGNYA DATA, WALAUPUN GOOGLE ATAU PERWAKILANNYA TELAH DIBERI TAHU ATAU SEHARUSNYA MENGETAHUI KEMUNGKINAN TIMBULNYA KEHILANGAN TERSEBUT.
|
||||||
|
|
||||||
|
12. Penggantian Kerugian
|
||||||
|
|
||||||
|
12.1 Sejauh maksimum yang diizinkan oleh hukum, Anda setuju untuk membela, mengganti kerugian dan melepaskan tanggung jawab Google, afiliasinya beserta direksi, petugas, karyawan dan agennya dari dan terhadap setiap dan semua klaim, tindakan, gugatan, proses hukum, serta setiap dan semua kehilangan, kewajiban, kerusakan, biaya dan pengeluaran (termasuk biaya pengacara yang sewajarnya) yang timbul atau diakibatkan dari (a) penggunaan Pratinjau oleh Anda, (b) aplikasi apa pun yang Anda kembangkan dari Pratinjau yang melanggar Hak Kekayaan Intelektual seseorang atau mencemarkan nama baik seseorang atau melanggar hak mereka berkaitan dengan publisitas atau privasi, dan (c) ketidakpatuhan Anda terhadap Perjanjian Lisensi ini.
|
||||||
|
|
||||||
|
13. Perubahan pada Perjanjian Lisensi
|
||||||
|
|
||||||
|
13.1 Google boleh membuat perubahan pada Perjanjian Lisensi saat mendistribusikan versi baru Pratinjau. Saat perubahan tersebut dibuat, Google akan menyediakan versi baru Perjanjian Lisensi di situs web penyediaan Pratinjau.
|
||||||
|
|
||||||
|
14. Ketentuan Hukum Umum
|
||||||
|
|
||||||
|
14.1 Perjanjian Lisensi ini merupakan perjanjian hukum antara Anda dan Google dan mengatur penggunaan Pratinjau oleh Anda (tidak termasuk layanan apa pun yang mungkin disediakan Google untuk Anda dalam perjanjian tertulis terpisah), dan sepenuhnya menggantikan perjanjian sebelumnya antara Anda dan Google dalam kaitannya dengan Pratinjau.
|
||||||
|
|
||||||
|
14.2 Anda setuju bahwa jika Google tidak menjalankan atau menerapkan hak atau upaya hukum yang terkandung dalam Perjanjian Lisensi ini (atau bila Google memiliki kewenangan berdasarkan hukum yang berlaku), tindakan ini tidak akan dianggap sebagai pelepasan hak secara resmi oleh Google dan bahwa hak atau upaya hukum tersebut akan tetap bisa digunakan oleh Google.
|
||||||
|
|
||||||
|
14.3 Jika persidangan hukum yang berwenang untuk memutuskan perkara ini menetapkan bahwa ada ketetapan Perjanjian Lisensi ini yang tidak valid, maka ketetapan tersebut akan dihapus dari Perjanjian Lisensi tanpa memengaruhi bagian selebihnya dari Perjanjian Lisensi ini. Ketetapan selebihnya dari Perjanjian Lisensi ini akan tetap sah dan berlaku.
|
||||||
|
|
||||||
|
14.4 Anda mengakui dan menyetujui bahwa setiap anggota dari kelompok perusahaan yang diinduki oleh Google akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini dan bahwa perusahaan tersebut berhak untuk secara langsung memberlakukan, dan bergantung pada, ketetapan yang dimuat dalam Perjanjian Lisensi ini yang memberikan manfaat (atau hak yang mendukung) kepada mereka. Selain yang telah disebutkan di atas, tidak ada orang atau perusahaan lain yang akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini
|
||||||
|
|
||||||
|
14.5 PEMBATASAN EKSPOR. PRATINJAU TUNDUK PADA HUKUM DAN PERATURAN EKSPOR AMERIKA SERIKAT. ANDA HARUS MEMATUHI SEMUA HUKUM DAN PERATURAN NASIONAL DAN INTERNASIONAL YANG BERLAKU PADA PRATINJAU. HUKUM INI MENYERTAKAN PEMBATASAN ATAS TUJUAN, PENGGUNA AKHIR DAN PENGGUNAAN AKHIR
|
||||||
|
|
||||||
|
14.6 Perjanjian Lisensi ini tidak boleh diberikan atau dialihkan baik oleh Anda tanpa persetujuan tertulis sebelumnya dari Google, dan upaya apa pun untuk mengalihkannya tanpa persetujuan akan menjadi tidak sah. Anda tidak boleh mendelegasikan tanggung jawab atau kewajiban berdasarkan Perjanjian Lisensi ini tanpa persetujuan tertulis sebelumnya dari pihak lain.
|
||||||
|
|
||||||
|
14.7 Perjanjian Lisensi ini, dan hubungan Anda dengan Google berdasarkan Perjanjian Lisensi ini, akan diatur oleh hukum Negara Bagian California tanpa mengindahkan pertentangan ketetapan hukumnya. Anda dan Google setuju untuk tunduk pada yurisdiksi eksklusif pengadilan yang berlokasi di county Santa Clara, California untuk menyelesaikan segala masalah hukum yang timbul dari Perjanjian Lisensi ini. Meski demikian, Anda setuju bahwa Google akan tetap diizinkan untuk mengajukan upaya hukum (atau tipe keringanan hukum setara yang mendesak) dalam yurisdiksi apa pun.
|
||||||
|
</div><!-- sdk terms -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="sdk-terms-form">
|
||||||
|
<p>
|
||||||
|
<input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
|
||||||
|
<label id="agreeLabel" for="agree">Saya telah membaca dan menyetujui ketentuan dan persyaratan di atas</label>
|
||||||
|
</p>
|
||||||
|
<p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div><!-- end TOS -->
|
||||||
|
|
||||||
|
|
||||||
|
<div id="landing">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Halaman ini menyediakan tautan ke citra perangkat lewat jaringan seluler (OTA) dan menjelaskan
|
||||||
|
cara menerapkan pembaruan OTA secara manual ke suatu perangkat. Prosedur ini berguna
|
||||||
|
untuk memulihkan perangkat yang menerima pembaruan OTA melalui Android Beta
|
||||||
|
Program dan tidak jalan setelah pembaruan dipasang.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="install-ota">Memasang Citra OTA</h2>
|
||||||
|
|
||||||
|
<p></p>
|
||||||
|
|
||||||
|
<p>Untuk pasang OTA pada perangkat:</p>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>Unduh citra perangkat OTA dari tabel di bawah.</li>
|
||||||
|
<li>Boot ulang perangkat ke dalam mode Recovery. Untuk informasi selengkapnya mengenai cara masuk ke mode ini
|
||||||
|
di perangkat Nexus, lihat
|
||||||
|
<a href="https://support.google.com/nexus/answer/4596836">Setel ulang perangkat Nexus
|
||||||
|
Anda ke setelan pabrik</a>.
|
||||||
|
</li>
|
||||||
|
<li>Pada perangkat, pilih <strong>ADB sideload</strong>.</li>
|
||||||
|
<li>Hubungkan perangkat ke komputer dengan lingkungan pengembangan Android
|
||||||
|
yang telah dimuat dan alat Android Debug Bridge (adb) yang telah dipasang.</li>
|
||||||
|
<li>Jalankan perintah berikut:
|
||||||
|
<pre>adb sideload <em><ota-package></em></pre>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2 id="ota-images">Citra OTA Perangkat</h2>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">Perangkat</th>
|
||||||
|
<th scope="col">Unduhan / Checksum</th>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="bullhead">
|
||||||
|
<td>Nexus 5X <br>"bullhead"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">bullhead-ota-npd35k-b8cfbd80.zip</a><br>
|
||||||
|
MD5: 15fe2eba9b01737374196bdf0a792fe9<br>
|
||||||
|
SHA-1: 5014b2bba77f9e1a680ac3f90729621c85a14283
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="shamu">
|
||||||
|
<td>Nexus 6 <br>"shamu"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">shamu-ota-npd35k-078e6fa5.zip</a><br>
|
||||||
|
MD5: e8b12f7721c53af9a450f7058928a5fc<br>
|
||||||
|
SHA-1: b7a9b756f84a1d2e482ff9c16749d65f6e51425a
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="angler">
|
||||||
|
<td>Nexus 6P <br>"angler"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">angler-ota-npd35k-88457699.zip</a><br>
|
||||||
|
MD5: 3fac09fef759dde26e57cb80b20b6477<br>
|
||||||
|
SHA-1: 27d6caa786577d8a38b2da5bf94b33b4524a1a1c
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="volantis">
|
||||||
|
<td>Nexus 9 <br>"volantis"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">volantis-ota-npd35k-51dbae76.zip</a><br>
|
||||||
|
MD5: 58312c4a5971818ef5c77a3f446003da<br>
|
||||||
|
SHA-1: aad9005be33d3e2bab480509a6ab74c3c3b9d921
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="volantisg">
|
||||||
|
<td>Nexus 9G <br>"volantisg"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">volantisg-ota-npd35k-834f047f.zip</a><br>
|
||||||
|
MD5: 92b7d1fa252f7394e70f957c72d4aac8<br>
|
||||||
|
SHA-1: b6c057c84d90893630e303cbb60530e20ddb8361
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="fugu">
|
||||||
|
<td>Nexus Player <br>"fugu"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">fugu-ota-npd35k-6ac91298.zip</a><br>
|
||||||
|
MD5: 1461622ad53ea842b2722fa7b49b8172<br>
|
||||||
|
SHA-1: 409c061668ab270774877d7f3eae44fa48d2b931
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="ryu">
|
||||||
|
<td>Pixel C <br>"ryu"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">ryu-ota-npd35k-a0b2347f.zip</a><br>
|
||||||
|
MD5: c60117f3640cc6db12386fd632289c7d<br>
|
||||||
|
SHA-1: 87349c767c69efb4172c90ce1d88cf578c3d28b3
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="seed">
|
||||||
|
<td>General Mobile 4G (Android One) <br>"seed"</td>
|
||||||
|
<td><a href="#top" onclick="onDownload(this)">seed_l8150-ota-npd35k-09897a1d.zip</a><br>
|
||||||
|
MD5: a55cf94f7cce0393ec6c0b35041766b7<br>
|
||||||
|
SHA-1: 6f33742290eb46f2561891f38ca2e754b4e50c6a
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
</div><!-- landing -->
|
||||||
|
|
||||||
|
</div><!-- relative wrapper -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/ota/";
|
||||||
|
function onDownload(link) {
|
||||||
|
|
||||||
|
$("#downloadForRealz").html("Download " + $(link).text());
|
||||||
|
$("#downloadForRealz").attr('href', urlRoot + $(link).text());
|
||||||
|
|
||||||
|
$("#tos").fadeIn('fast');
|
||||||
|
$("#landing").fadeOut('fast');
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function onAgreeChecked() {
|
||||||
|
/* verifikasi apakah TOS disetujui */
|
||||||
|
if ($("input#agree").is(":checked")) {
|
||||||
|
/* tampilkan tombol unduh */
|
||||||
|
$("a#downloadForRealz").removeClass('disabled');
|
||||||
|
} else {
|
||||||
|
$("a#downloadForRealz").addClass('disabled');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onDownloadForRealz(link) {
|
||||||
|
if ($("input#agree").is(':checked')) {
|
||||||
|
/*
|
||||||
|
$("#tos").fadeOut('fast');
|
||||||
|
$("#landing").fadeIn('fast');
|
||||||
|
*/
|
||||||
|
|
||||||
|
ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html());
|
||||||
|
|
||||||
|
/*
|
||||||
|
location.hash = "";
|
||||||
|
*/
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(window).hashchange( function(){
|
||||||
|
if (location.hash == "") {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Menguji pada Perangkat
|
page.title=Menguji pada Perangkat
|
||||||
meta.tags="preview", "nexus","citra sistem"
|
meta.tags="preview", "nexus","system image"
|
||||||
page.tags="preview", "androidn"
|
page.tags="preview", "androidn"
|
||||||
page.image=images/cards/card-n-downloads_2x.png
|
page.image=images/cards/card-n-downloads_2x.png
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@ page.image=images/cards/card-n-downloads_2x.png
|
|||||||
|
|
||||||
<div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
|
<div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
|
||||||
|
|
||||||
<p class="sdk-terms-intro">Sebelum mengunduh dan menginstal
|
<p class="sdk-terms-intro">Sebelum mengunduh dan memasang
|
||||||
komponen Android Preview SDK, Anda harus menyetujui ketentuan dan persyaratan
|
komponen Android Preview SDK, Anda harus menyetujui ketentuan dan persyaratan
|
||||||
berikut.</p>
|
berikut.</p>
|
||||||
|
|
||||||
@@ -20,9 +20,9 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
|
|
||||||
1. Pengantar
|
1. Pengantar
|
||||||
|
|
||||||
1.1 Android SDK Preview (dalam Perjanjian Lisensi ini disebut "Preview" dan secara spesifik termasuk file sistem Android, paket API, dan file pustaka Preview, jika disediakan) diberikan lisensinya kepada Anda sesuai dengan ketentuan Perjanjian Lisensi. The License Agreement forms a legally binding contract between you and Google in Perjanjian Lisensi ini merupakan kontrak yang mengikat secara hukum antara Anda dan dalam kaitannya dengan penggunaan Anda atas Preview.
|
1.1 Android SDK Preview (dalam Perjanjian Lisensi ini disebut "Pratinjau" dan secara spesifik termasuk file sistem Android, paket API, dan file pustaka Pratinjau, jika disediakan) diberikan lisensinya kepada Anda sesuai dengan ketentuan Perjanjian Lisensi. Perjanjian Lisensi ini merupakan kontrak yang mengikat secara hukum antara Anda dan Google dalam kaitannya dengan penggunaan Pratinjau oleh Anda.
|
||||||
|
|
||||||
1.2 "Android" berarti sekumpulan perangkat lunak Android untuk perangkat, seperti yang tersedia pada Android Open Source Project, yang ada di URL berikut: http://source.android.com/, yang selalu diperbarui.
|
1.2 "Android" berarti tumpukan perangkat lunak Android untuk perangkat, seperti yang tersedia di Android Open Source Project, yang ada di URL berikut: http://source.android.com/, yang selalu diperbarui.
|
||||||
|
|
||||||
1.3 “Kompatibel dengan Android” berarti segala implementasi Android yang (i) sesuai dengan Android Compatibility Definition Document, yang bisa ditemukan di situs web kompatibilitas Android (http://source.android.com/compatibility) dan yang selalu diperbarui; serta (ii) berhasil lulus Android Compatibility Test Suite (CTS).
|
1.3 “Kompatibel dengan Android” berarti segala implementasi Android yang (i) sesuai dengan Android Compatibility Definition Document, yang bisa ditemukan di situs web kompatibilitas Android (http://source.android.com/compatibility) dan yang selalu diperbarui; serta (ii) berhasil lulus Android Compatibility Test Suite (CTS).
|
||||||
|
|
||||||
@@ -30,47 +30,47 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
|
|
||||||
2. Menerima Perjanjian Lisensi
|
2. Menerima Perjanjian Lisensi
|
||||||
|
|
||||||
2.1 Agar bisa menggunakan Preview, Anda terlebih dahulu harus menyetujui Perjanjian Lisensi ini. Anda tidak boleh menggunakan SDK jika tidak menerima Perjanjian Lisensi.
|
2.1 Agar bisa menggunakan Pratinjau, Anda terlebih dahulu harus menyetujui Perjanjian Lisensi ini. Anda tidak boleh menggunakan Pratinjau jika tidak menerima Perjanjian Lisensi.
|
||||||
|
|
||||||
2.2 Dengan mengklik untuk menerima dan/atau menggunakan Preview, berarti Anda menyetujui ketentuan Perjanjian Lisensi.
|
2.2 Dengan mengklik untuk menerima dan/atau menggunakan Pratinjau, berarti Anda menyetujui ketentuan Perjanjian Lisensi.
|
||||||
|
|
||||||
2.3 Anda tidak boleh menggunakan Preview dan tidak boleh menerima Perjanjian Lisensi jika Anda adalah orang yang dilarang menerima Preview berdasarkan hukum Amerika Serikat atau negara lainnya termasuk negara di mana Anda tinggal atau dari mana Anda menggunakan Preview.
|
2.3 Anda tidak boleh menggunakan Pratinjau dan tidak boleh menerima Perjanjian Lisensi jika Anda adalah orang yang dilarang menerima Pratinjau berdasarkan hukum Amerika Serikat atau negara lainnya termasuk negara di mana Anda tinggal atau dari mana Anda menggunakan Pratinjau.
|
||||||
|
|
||||||
2.4 Jika Anda akan menggunakan Preview di lingkungan perusahaan atau organisasi Anda, berarti Anda setuju untuk terikat oleh Perjanjian Lisensi atas nama perusahaan Anda atau entitas lainnya, serta Anda mewakili dan menjamin bahwa Anda memiliki kewenangan hukum penuh untuk mengikat perusahaan Anda atau entitas tersebut pada Perjanjian Lisensi ini. Jika Anda tidak memiliki kewenangan yang disyaratkan, Anda tidak boleh menerima Perjanjian Lisensi atau menggunakan Preview atas nama perusahaan Anda atau entitas lainnya.
|
2.4 Jika Anda akan menggunakan Pratinjau di lingkungan perusahaan atau organisasi Anda, berarti Anda setuju untuk terikat oleh Perjanjian Lisensi atas nama perusahaan Anda atau entitas lainnya, serta Anda mewakili dan menjamin bahwa Anda memiliki kewenangan hukum penuh untuk mengikat perusahaan Anda atau entitas tersebut pada Perjanjian Lisensi ini. Jika Anda tidak memiliki kewenangan yang disyaratkan, Anda tidak boleh menerima Perjanjian Lisensi atau menggunakan Pratinjau atas nama perusahaan Anda atau entitas lainnya.
|
||||||
|
|
||||||
3. Lisensi Preview dari Google
|
3. Lisensi Pratinjau dari Google
|
||||||
|
|
||||||
3.1 Sesuai dengan ketentuan Perjanjian Lisensi ini, Google memberi Anda lisensi terbatas, bersifat global, bebas royalti, tidak bisa dialihkan, non-eksklusif, dan tidak bisa disublisensikan untuk menggunakan Preview hanya untuk mengembangkan aplikasi bagi implementasi Android yang kompatibel.
|
3.1 Sesuai dengan ketentuan Perjanjian Lisensi ini, Google memberi Anda lisensi yang tidak bisa disublisensikan, non-eksklusif, tidak bisa dialihkan, bebas royalti, bersifat global dan terbatas dalam menggunakan Pratinjau hanya untuk keperluan pengembangan aplikasi yang kompatibel untuk diimplementasikan pada Android.
|
||||||
|
|
||||||
3.2 Anda tidak boleh menggunakan Preview ini untuk mengembangkan aplikasi bagi platform lain (termasuk implementasi Android yang tidak kompatibel) atau untuk mengembangkan SDK lain. Tentu saja Anda bebas mengembangkan aplikasi bagi platform lainnya, termasuk implementasi Android yang tidak kompatibel, asalkan Preview ini tidak digunakan untuk keperluan itu.
|
3.2 Anda tidak boleh menggunakan Pratinjau ini untuk mengembangkan aplikasi platform lain (termasuk implementasi yang tidak kompatibel pada Android) atau untuk mengembangkan SDK lain. Anda tentu saja bebas mengembangkan aplikasi untuk platform lain, termasuk implementasi yang tidak kompatibel pada Android, karena Pratinjau ini tidak digunakan untuk tujuan tersebut.
|
||||||
|
|
||||||
3.3 Anda setuju bahwa Google atau pihak ketiga memiliki semua hak, kuasa dan kepentingan hukum dalam dan pada Preview, termasuk Hak Kekayaan Intelektual yang terdapat dalam Preview. "Hak Kekayaan Intelektual" berarti setiap dan semua hak yang berdasarkan pada hukum paten, hukum hak cipta, hukum rahasia dagang, hukum merek dagang, dan setiap dan semua hak kepemilikan lainnya. Google memiliki semua hak yang tidak secara tersurat diberikan kepada Anda.
|
3.3 Anda setuju bahwa Google atau pihak ketiga memiliki semua hak, kuasa dan kepentingan hukum dalam dan pada Pratinjau, termasuk Hak Kekayaan Intelektual yang terdapat dalam Pratinjau. "Hak Kekayaan Intelektual" berarti setiap dan semua hak yang berdasarkan pada hukum paten, hukum hak cipta, hukum rahasia dagang, hukum merek dagang, dan setiap dan semua hak kepemilikan lainnya. Google memiliki semua hak yang tidak secara tersurat diberikan kepada Anda.
|
||||||
|
|
||||||
3.4 Anda tidak boleh menggunakan Preview untuk tujuan apa pun yang tidak secara tersurat diizinkan oleh Perjanjian Lisensi. Kecuali sejauh yang diperlukan oleh lisensi pihak ketiga yang berlaku, Anda tidak boleh: (a) menyalin (kecuali untuk keperluan pencadangan), memodifikasi, mengadaptasi, mendistribusikan kembali, mendekompilasi, merekayasa balik, membongkar atau membuat karya turunan dari Preview atau bagian apa pun dari Preview; atau (b) memuat bagian apa pun dari Preview ke sebuah handset ponsel atau perangkat keras selain komputer pribadi, menggabungkan suatu bagian dari Preview dengan perangkat lunak lain, atau mendistribusikan perangkat lunak atau perangkat yang menggabungkan suatu bagian dari Preview.
|
3.4 Anda tidak boleh menggunakan Pratinjau untuk tujuan apa pun yang tidak secara tersurat diizinkan dalam Perjanjian Lisensi ini. Kecuali sejauh yang diperlukan oleh lisensi pihak ketiga yang berlaku, Anda tidak boleh: (a) menyalin (kecuali untuk keperluan pencadangan), memodifikasi, mengadaptasi, mendistribusikan kembali, mendekompilasi, merekayasa balik, membongkar atau membuat karya turunan dari Pratinjau atau bagian apa pun dari Pratinjau; atau (b) memuat bagian apa pun dari Pratinjau ke sebuah handset ponsel atau perangkat keras selain komputer pribadi, menggabungkan suatu bagian dari Pratinjau dengan perangkat lunak lain, atau mendistribusikan perangkat lunak atau perangkat yang menggabungkan suatu bagian dari Pratinjau.
|
||||||
|
|
||||||
3.5 Penggunaan, reproduksi dan distribusi komponen Preview yang berlisensi perangkat lunak sumber terbuka diatur semata-mata oleh ketentuan lisensi perangkat lunak sumber terbuka tersebut dan bukan oleh Perjanjian Lisensi ini. Anda menyetujui bagian selebihnya dari lisensi dengan maksud baik sehubungan dengan lisensi perangkat lunak sumber terbuka tersebut sesuai dengan semua hak yang diberikan dan untuk menahan diri dari segala tindakan yang mungkin akan mengakhiri, menangguhkan, atau melanggar hak tersebut.
|
3.5 Penggunaan, reproduksi dan distribusi komponen Pratinjau yang berlisensi perangkat lunak sumber terbuka diatur semata-mata oleh ketentuan lisensi perangkat lunak sumber terbuka tersebut dan bukan oleh Perjanjian Lisensi ini. Anda menyetujui bagian selebihnya dari lisensi dengan maksud baik sehubungan dengan lisensi perangkat lunak sumber terbuka tersebut sesuai dengan semua hak yang diberikan dan untuk menahan diri dari segala tindakan yang mungkin akan mengakhiri, menangguhkan, atau melanggar hak tersebut.
|
||||||
|
|
||||||
3.6 Anda setuju bahwa bentuk dan sifat Preview yang disediakan oleh Google dapat berubah tanpa pemberitahuan sebelumnya kepada Anda dan bahwa versi Preview mendatang mungkin tidak kompatibel dengan aplikasi yang dikembangkan di versi Preview sebelumnya. Anda setuju bahwa Google boleh menghentikan (secara permanen atau sementara) penyediaan Preview (atau fitur apa pun dalam Preview) kepada Anda atau pengguna pada umumnya atas kebijakan Google semata, tanpa pemberitahuan sebelumnya kepada Anda.
|
3.6 Anda setuju bahwa bentuk dan sifat Pratinjau yang disediakan oleh Google dapat berubah tanpa pemberitahuan sebelumnya kepada Anda dan bahwa versi Pratinjau mendatang mungkin tidak kompatibel dengan aplikasi yang dikembangkan di versi Pratinjau sebelumnya. Anda setuju bahwa Google boleh menghentikan (secara permanen atau sementara) penyediaan Pratinjau (atau fitur apa pun dalam Pratinjau) kepada Anda atau pengguna pada umumnya atas kebijakan Google semata, tanpa pemberitahuan sebelumnya kepada Anda.
|
||||||
|
|
||||||
3.7 Perjanjian Lisensi ini tidak memberi Anda hak untuk menggunakan nama dagang, merek dagang, merek layanan, logo, nama domain, atau fitur merek khas Google lainnya.
|
3.7 Perjanjian Lisensi ini tidak memberi Anda hak untuk menggunakan nama dagang, merek dagang, merek layanan, logo, nama domain, atau fitur merek khas Google lainnya.
|
||||||
|
|
||||||
3.8 Anda setuju bahwa Anda tidak akan menghapus, mengaburkan, atau mengubah pernyataan hak kepemilikan apa pun (termasuk pemberitahuan hak cipta dan merek dagang) yang terlampir atau termuat dalam Preview.
|
3.8 Anda setuju bahwa Anda tidak akan membuang, mengaburkan, atau mengubah pernyataan hak kepemilikan apa pun (termasuk pemberitahuan hak cipta dan merek dagang) yang terlampir atau termuat dalam Pratinjau.
|
||||||
|
|
||||||
4. Penggunaan Preview oleh Anda
|
4. Penggunaan Pratinjau oleh Anda
|
||||||
|
|
||||||
4.1 Google setuju bahwa tidak ada dalam Perjanjian Lisensi ini yang memberi Google suatu hak, kuasa atau kepentingan dari Anda (atau pemberi lisensi Anda) berdasarkan Perjanjian Lisensi ini dalam atau pada aplikasi perangkat lunak apa pun yang Anda kembangkan menggunakan Preview, termasuk hak kekayaan intelektual yang terdapat dalam aplikasi tersebut.
|
4.1 Google setuju bahwa Perjanjian Lisensi ini tidak memberi Google hak, kuasa, dan kepentingan hukum dari Anda (atau pemberi lisensi Anda) dalam atau pada aplikasi perangkat lunak apa pun yang Anda kembangkan menggunakan Pratinjau ini, termasuk kekayaan intelektual yang ada dalam aplikasi tersebut.
|
||||||
|
|
||||||
4.2 Anda setuju untuk menggunakan Preview dan mengembangkan aplikasi hanya untuk tujuan yang diizinkan oleh (a) Perjanjian Lisensi ini dan (b) hukum yang berlaku, peraturan atau praktik atau panduan yang diterima secara umum di yurisdiksi yang relevan (termasuk hukum mengenai ekspor data atau perangkat lunak ke dan dari Amerika Serikat atau negara lain yang relevan).
|
4.2 Anda setuju untuk menggunakan Pratinjau dan menulis aplikasi hanya untuk tujuan yang diizinkan oleh (a) Perjanjian Lisensi, dan (b) hukum yang berlaku, peraturan atau praktik yang diterima secara umum atau panduan dalam yurisdiksi terkait (termasuk hukum mengenai ekspor data atau perangkat lunak ke dan dari Amerika Serikat atau negara lain yang terkait).
|
||||||
|
|
||||||
4.3 Anda setuju bahwa jika Anda menggunakan Preview untuk mengembangkan aplikasi, Anda akan melindungi privasi dan hak hukum penggunanya. Jika pengguna memberikan nama pengguna, kata sandi, atau informasi login atau informasi pribadinya lainnya, Anda harus membuat pengguna tersebut menyadari bahwa informasi tersebut akan bisa digunakan oleh aplikasi Anda, dan Anda harus memberikan perlindungan dan pemberitahuan privasi yang memadai secara hukum bagi pengguna tersebut. Jika aplikasi Anda menyimpan informasi pribadi atau sensitif yang diberikan oleh pengguna, aplikasi Anda harus melakukannya dengan aman. Jika pengguna memberikan informasi Akun Google, aplikasi Anda hanya boleh menggunakan informasi tersebut untuk mengakses Akun Google pengguna tersebut bila, dan untuk tujuan terbatas di mana, setiap pengguna telah memberikan izin kepada Anda untuk melakukannya.
|
4.3 Anda setuju jika Anda menggunakan Pratinjau untuk mengembangkan aplikasi, Anda akan melindungi hak privasi dan hak hukum pengguna. Jika pengguna memberikan nama pengguna, sandi, atau informasi login atau informasi pribadinya, Anda harus membuat pengguna tersebut menyadari bahwa informasi yang diberikannya akan bisa digunakan oleh aplikasi Anda, dan Anda harus memberikan perlindungan dan pemberitahuan privasi yang memadai secara hukum bagi pengguna tersebut. Jika aplikasi Anda menyimpan informasi pribadi atau sensitif yang diberikan oleh pengguna, aplikasi Anda harus melakukannya dengan aman. Jika pengguna memberikan informasi Akun Google, aplikasi Anda hanya boleh menggunakan informasi tersebut untuk mengakses Akun Google pengguna saat, dan untuk tujuan terbatas di mana, pengguna tersebut telah memberikan izin kepada Anda untuk melakukannya.
|
||||||
|
|
||||||
4.4 Anda setuju bahwa Anda tidak akan terlibat dalam aktivitas apa pun dengan Preview, termasuk pengembangan atau distribusi aplikasi yang mengganggu, mengacaukan, merusak, atau mengakses secara tidak sah server, jaringan atau properti atau layanan pihak ketiga lainnya dari Google atau pihak ketiga.
|
4.4 Anda setuju bahwa Anda tidak akan terlibat dalam aktivitas apa pun dengan Pratinjau, termasuk pengembangan atau distribusi aplikasi yang mengganggu, mengacaukan, merusak, atau mengakses secara tidak sah server, jaringan atau properti layanan Google atau pihak ketiga lainnya.
|
||||||
|
|
||||||
4.5 Anda setuju untuk bertanggung jawab penuh terhadap (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga untuk) data, konten, atau sumber daya apa pun yang Anda buat, kirimkan atau tampilkan melalui Android dan/atau aplikasi untuk Android, dan terhadap konsekuensi tindakan Anda (termasuk kerugian atau kerusakan apa pun yang mungkin dialami Google) karena melakukannya.
|
4.5 Anda setuju bertanggung jawab penuh untuk (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga lainnya untuk) data, materi, atau sumber daya apa pun yang Anda buat, kirimkan atau tampilkan melalui Android dan/atau aplikasi untuk Android, dan terhadap konsekuensi tindakan Anda (termasuk kerugian atau kerusakan apa pun yang mungkin dialami Google).
|
||||||
|
|
||||||
4.6 Anda setuju bertanggung jawab penuh terhadap (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga lainnya untuk) pelanggaran kewajiban Anda berdasarkan Perjanjian Lisensi ini, kontrak pihak ketiga yang berlaku atau Ketentuan Layanan, atau hukum atau peraturan yang berlaku, dan terhadap konsekuensi (termasuk kerugian atau kerusakan yang mungkin dialami Google atau pihak ketiga) akibat pelanggaran tersebut.
|
4.6 Anda setuju bertanggung jawab penuh terhadap (dan bahwa Google tidak bertanggung jawab terhadap Anda atau pihak ketiga lainnya untuk) pelanggaran kewajiban Anda berdasarkan Perjanjian Lisensi ini, kontrak pihak ketiga yang berlaku atau Ketentuan Layanan, atau hukum atau peraturan yang berlaku, dan terhadap konsekuensi (termasuk kerugian atau kerusakan yang mungkin dialami Google atau pihak ketiga lainnya) akibat pelanggaran tersebut.
|
||||||
|
|
||||||
4.7 Preview sedang dalam pengembangan, dan pengujian serta umpan balik Anda merupakan bagian penting dari proses pengembangan ini. Dengan menggunakan Preview, Anda mengakui bahwa implementasi sebagian fitur masih dalam tahap pengembangan dan bahwa Anda tidak akan berharap bahwa Preview memiliki fungsionalitas penuh rilis stabil. Anda setuju untuk tidak mendistribusikan atau memasarkan kepada umum aplikasi yang menggunakan Preview ini karena Preview ini tidak akan didukung lagi setelah Android SDK resmi dirilis.
|
4.7 Pratinjau ini dalam tahap pengembangan, dan pengujian serta masukan Anda merupakan bagian penting dalam proses pengembangan. Dengan menggunakan Pratinjau, Anda mengakui bahwa implementasi beberapa fitur masih dalam tahap pengembangan dan bahwa Anda tidak seharusnya mengandalkan Pratinjau berfungsi sepenuhnya sebagaimana pada rilis stabil. Anda setuju untuk tidak mendistribusikan atau mengirimkan untuk umum penggunaan aplikasi menggunakan Pratinjau karena Pratinjau ini tidak akan lagi didukung setelah Android SDK dirilis secara resmi.
|
||||||
|
|
||||||
5. Kredensial Pengembang Anda
|
5. Kredensial Pengembang Anda
|
||||||
|
|
||||||
@@ -78,21 +78,21 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
|
|
||||||
6. Privasi dan Informasi
|
6. Privasi dan Informasi
|
||||||
|
|
||||||
6.1 Untuk terus berinovasi dan meningkatkan Preview, Google boleh mengumpulkan statistik penggunaan tertentu dari perangkat lunak termasuk namun tidak terbatas pada identifier unik, alamat IP terkait, nomor versi perangkat lunak, dan informasi yang menjadi tempat penggunaan alat dan/atau layanan dalam Preview dan cara penggunaannya. Sebelum informasi ini dikumpulkan, Preview akan memberi tahu dan meminta persetujuan Anda. Jika Anda tidak memberikan persetujuan, informasi tersebut tidak akan dikumpulkan.
|
6.1 Untuk terus berinovasi dan meningkatkan Pratinjau, Google boleh mengumpulkan statistik penggunaan tertentu dari perangkat lunak termasuk namun tidak terbatas pada identifier unik, alamat IP terkait, nomor versi perangkat lunak, dan informasi yang menjadi tempat penggunaan alat dan/atau layanan dalam Pratinjau dan cara penggunaannya. Sebelum informasi ini dikumpulkan, Pratinjau akan memberi tahu dan meminta persetujuan Anda. Jika Anda tidak memberikan persetujuan, informasi tersebut tidak akan dikumpulkan.
|
||||||
|
|
||||||
6.2 Data yang dikumpulkan akan diperiksa secara agregat untuk meningkatkan Preview dan dikelola sesuai dengan Kebijakan Privasi Google yang terdapat di http://www.google.com/policies/privacy/.
|
6.2 Data yang dikumpulkan akan diperiksa secara agregat untuk meningkatkan Pratinjau dan dikelola sesuai dengan Kebijakan Privasi Google yang terdapat di http://www.google.com/policies/privacy.
|
||||||
|
|
||||||
7. Aplikasi Pihak Ketiga
|
7. Aplikasi Pihak Ketiga
|
||||||
|
|
||||||
7.1 Jika Anda menggunakan Preview untuk menjalankan aplikasi yang dikembangkan oleh pihak ketiga atau yang mengakses data, konten atau sumber daya yang disediakan oleh pihak ketiga, Anda setuju bahwa Google tidak bertanggung jawab terhadap aplikasi, data, konten atau sumber daya tersebut. Anda memahami bahwa semua data, konten atau sumber daya yang mungkin Anda akses melalui aplikasi pihak ketiga merupakan tanggung jawab penuh dari pihak yang menjadi asal data tersebut dan Google tidak bertanggung jawab terhadap kerugian atau kerusakan apa pun yang mungkin Anda alami sebagai akibat menggunakan atau mengakses aplikasi, data, konten, atau sumber daya pihak ketiga tersebut.
|
7.1 Jika Anda menggunakan Pratinjau untuk menjalankan aplikasi yang dikembangkan oleh pihak ketiga atau yang mengakses data, materi atau sumber daya yang disediakan oleh pihak ketiga, Anda setuju bahwa Google tidak bertanggung jawab terhadap aplikasi, data, materi atau sumber daya tersebut. Anda memahami bahwa semua data, materi atau sumber daya yang mungkin Anda akses melalui aplikasi pihak ketiga merupakan tanggung jawab penuh dari pihak yang menjadi asal data tersebut dan Google tidak bertanggung jawab terhadap kerugian atau kerusakan apa pun yang mungkin Anda alami sebagai akibat menggunakan atau mengakses aplikasi, data, materi, atau sumber daya pihak ketiga tersebut.
|
||||||
|
|
||||||
7.2 Anda harus menyadari bahwa data, konten dan sumber daya yang diberikan kepada Anda melalui aplikasi pihak ketiga mungkin dilindungi oleh hak kekayaan intelektual yang dimiliki oleh penyedia (atau oleh orang lain atau perusahaan atas nama mereka). Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data, konten, atau sumber daya ini (baik secara keseluruhan atau sebagian) kecuali Anda secara khusus diberikan izin untuk melakukannya oleh pemilik yang bersangkutan.
|
7.2 Anda harus menyadari bahwa data, materi dan sumber daya yang diberikan kepada Anda melalui aplikasi pihak ketiga mungkin dilindungi oleh hak kekayaan intelektual yang dimiliki oleh penyedia (atau oleh orang lain atau perusahaan atas nama mereka). Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data, materi, atau sumber daya ini (baik secara keseluruhan atau sebagian) kecuali Anda secara khusus diberikan izin untuk melakukannya oleh pemilik yang bersangkutan.
|
||||||
|
|
||||||
7.3 Anda mengakui bahwa penggunaan Anda atas aplikasi, data, konten, atau sumber daya pihak ketiga semacam itu tunduk pada ketentuan terpisah antara Anda dan pihak ketiga yang bersangkutan.
|
7.3 Anda mengakui bahwa penggunaan Anda atas aplikasi, data, materi, atau sumber daya pihak ketiga semacam itu tunduk pada ketentuan terpisah antara Anda dan pihak ketiga yang bersangkutan.
|
||||||
|
|
||||||
8. Menggunakan API Google
|
8. Menggunakan Google API
|
||||||
|
|
||||||
8.1 API Google
|
8.1 Google API
|
||||||
|
|
||||||
8.1.1 Jika Anda menggunakan API (Antarmuka Pemrograman Aplikasi) untuk mengambil data dari Google, Anda mengakui bahwa data tersebut dilindungi hak kekayaan intelektual yang dimiliki Google atau pihak-pihak yang menyediakan data (atau oleh orang lain atau perusahaan atas nama mereka). Penggunaan API oleh Anda tunduk pada Ketentuan Layanan tambahan. Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data ini (baik secara keseluruhan atau sebagian) kecuali diizinkan oleh Ketentuan Layanan yang bersangkutan.
|
8.1.1 Jika Anda menggunakan API (Antarmuka Pemrograman Aplikasi) untuk mengambil data dari Google, Anda mengakui bahwa data tersebut dilindungi hak kekayaan intelektual yang dimiliki Google atau pihak-pihak yang menyediakan data (atau oleh orang lain atau perusahaan atas nama mereka). Penggunaan API oleh Anda tunduk pada Ketentuan Layanan tambahan. Anda tidak boleh memodifikasi, menyewakan, menyewabelikan, meminjamkan, menjual, mendistribusikan atau membuat karya turunan berdasarkan data ini (baik secara keseluruhan atau sebagian) kecuali diizinkan oleh Ketentuan Layanan yang bersangkutan.
|
||||||
|
|
||||||
@@ -102,21 +102,21 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
|
|
||||||
9.1 Perjanjian Lisensi ini akan terus berlaku hingga diakhiri oleh Anda atau Google sebagaimana diatur di bawah ini.
|
9.1 Perjanjian Lisensi ini akan terus berlaku hingga diakhiri oleh Anda atau Google sebagaimana diatur di bawah ini.
|
||||||
|
|
||||||
9.2 Jika Anda ingin mengakhiri Perjanjian Lisensi ini, Anda boleh melakukannya dengan menghentikan penggunaan Preview dan kredensial pengembang yang relevan.
|
9.2 Jika Anda ingin mengakhiri Perjanjian Lisensi ini, Anda boleh melakukannya dengan menghentikan penggunaan Pratinjau dan kredensial pengembang yang relevan.
|
||||||
|
|
||||||
9.3 Google boleh mengakhiri Perjanjian Lisensi ini dengan Anda kapan saja, dengan atau tanpa sebab, setelah memberi tahu Anda.
|
9.3 Google boleh mengakhiri Perjanjian Lisensi ini dengan Anda kapan saja, dengan atau tanpa sebab, setelah memberi tahu Anda.
|
||||||
|
|
||||||
9.4 Perjanjian Lisensi akan berakhir secara otomatis tanpa pemberitahuan atau tindakan lainnya bila, mana saja yang lebih dahulu:
|
9.4 Perjanjian Lisensi akan berakhir secara otomatis tanpa pemberitahuan atau tindakan lainnya bila, mana saja yang lebih dahulu:
|
||||||
(A) Google berhenti menyediakan Preview atau bagian Preview tertentu kepada pengguna di negara tempat Anda tinggal atau negara tempat asal Anda menggunakan layanan; dan
|
(A) Google berhenti menyediakan Pratinjau atau bagian Pratinjau tertentu kepada pengguna di negara tempat Anda tinggal atau negara tempat asal Anda menggunakan layanan; dan
|
||||||
(B) Google mengeluarkan versi rilis final dari Android SDK.
|
(B) Google mengeluarkan versi rilis final dari Android SDK.
|
||||||
|
|
||||||
9.5 Bila Perjanjian Lisensi berakhir, lisensi yang telah diberikan kepada Anda dalam Perjanjian Lisensi akan berakhir pula, Anda akan segera menghentikan semua penggunaan Preview, dan ketetapan paragraf 10, 11, 12, dan 14 akan terus berlaku secara tak terbatas.
|
9.5 Bila Perjanjian Lisensi berakhir, lisensi yang telah diberikan kepada Anda dalam Perjanjian Lisensi akan berakhir pula, Anda akan segera menghentikan semua penggunaan Pratinjau, dan ketetapan paragraf 10, 11, 12, dan 14 akan terus berlaku secara tak terbatas.
|
||||||
|
|
||||||
10. SANGGAHAN
|
10. SANGGAHAN
|
||||||
|
|
||||||
10.1 ANDA SEPENUHNYA MEMAHAMI DAN MENYETUJUI BAHWA PENGGUNAAN PREVIEW OLEH ANDA MERUPAKAN RISIKO ANDA SENDIRI DAN BAHWA PREVIEW INI DISEDIAKAN "APA ADANYA" DAN "SEBAGAIMANA TERSEDIA" TANPA JAMINAN DALAM BENTUK APA PUN DARI GOOGLE.
|
10.1 ANDA SEPENUHNYA MEMAHAMI DAN MENYETUJUI BAHWA PENGGUNAAN PRATINJAU OLEH ANDA MERUPAKAN RISIKO ANDA SENDIRI DAN BAHWA PRATINJAU INI DISEDIAKAN "APA ADANYA" DAN "SEBAGAIMANA TERSEDIA" TANPA JAMINAN DALAM BENTUK APA PUN DARI GOOGLE.
|
||||||
|
|
||||||
10.2 PENGGUNAAN PREVIEW DAN MATERI APA PUN YANG DIUNDUH ATAU DIPEROLEH MELALUI PENGGUNAAN PREVIEW OLEH ANDA ADALAH ATAS KEHENDAK DAN RISIKO ANDA SENDIRI DAN ANDA BERTANGGUNG JAWAB PENUH TERHADAP KERUSAKAN PADA SISTEM KOMPUTER ATAU PERANGKAT LAIN ATAU HILANGNYA DATA AKIBAT PENGGUNAANNYA. TANPA MEMBATASI HAL TERSEBUT, ANDA MEMAHAMI BAHWA PREVIEW BUKANLAH RILIS STABIL DAN MUNGKIN BERISI KESALAHAN, CACAT, DAN RISIKO KEAMANAN YANG BISA MENGAKIBATKAN KERUSAKAN SIGNIFIKAN, TERMASUK KEHILANGAN PENGGUNAAN ATAS SISTEM KOMPUTER ANDA ATAU PERANGKAT LAIN DENGAN SEPENUHNYA DAN TIDAK BISA DIPULIHKAN LAGI.
|
10.2 PENGGUNAAN PRATINJAU DAN MATERI APA PUN YANG DIUNDUH ATAU DIPEROLEH MELALUI PENGGUNAAN PRATINJAU OLEH ANDA ADALAH ATAS KEHENDAK DAN RISIKO ANDA SENDIRI DAN ANDA BERTANGGUNG JAWAB PENUH TERHADAP KERUSAKAN PADA SISTEM KOMPUTER ATAU PERANGKAT LAIN ATAU HILANGNYA DATA AKIBAT PENGGUNAAN TERSEBUT. TANPA MEMBATASI HAL TERSEBUT, ANDA MEMAHAMI BAHWA PRATINJAU BUKANLAH RILIS STABIL DAN MUNGKIN BERISI KESALAHAN, CACAT, DAN RISIKO KEAMANAN YANG BISA MENGAKIBATKAN KERUSAKAN SIGNIFIKAN, TERMASUK KEHILANGAN PENGGUNAAN ATAS SISTEM KOMPUTER ANDA ATAU PERANGKAT LAIN DENGAN SEPENUHNYA DAN TIDAK BISA DIPULIHKAN LAGI.
|
||||||
|
|
||||||
10.3 GOOGLE LEBIH LANJUT MENYANGGAH SEMUA JAMINAN DAN PERSYARATAN APA PUN, BAIK TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN TERSIRAT DAN PERSYARATAN MENGENAI DAYA JUAL, KESESUAIAN DENGAN TUJUAN TERTENTU, DAN NON-PELANGGARAN.
|
10.3 GOOGLE LEBIH LANJUT MENYANGGAH SEMUA JAMINAN DAN PERSYARATAN APA PUN, BAIK TERSURAT MAUPUN TERSIRAT, TERMASUK NAMUN TIDAK TERBATAS PADA JAMINAN TERSIRAT DAN PERSYARATAN MENGENAI DAYA JUAL, KESESUAIAN DENGAN TUJUAN TERTENTU, DAN NON-PELANGGARAN.
|
||||||
|
|
||||||
@@ -126,27 +126,27 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
|
|
||||||
12. Penggantian Kerugian
|
12. Penggantian Kerugian
|
||||||
|
|
||||||
12.1 Sejauh maksimum yang diizinkan oleh hukum, Anda setuju untuk membela, mengganti kerugian dan melepaskan tanggung jawab Google, afiliasinya beserta direksi, petugas, karyawan dan agennya dari dan terhadap setiap dan semua klaim, tindakan, gugatan, proses hukum, serta setiap dan semua kehilangan, kewajiban, kerusakan, biaya dan pengeluaran (termasuk biaya pengacara yang sewajarnya) yang timbul atau diakibatkan dari (a) penggunaan Preview oleh Anda, (b) aplikasi apa pun yang Anda kembangkan dari Preview yang melanggar Hak Kekayaan Intelektual seseorang atau mencemarkan nama baik seseorang atau melanggar hak mereka berkaitan dengan publisitas atau privasi, dan (c) ketidakpatuhan Anda terhadap Perjanjian Lisensi ini.
|
12.1 Sejauh maksimum yang diizinkan oleh hukum, Anda setuju untuk membela, mengganti kerugian dan melepaskan tanggung jawab Google, afiliasinya beserta direksi, petugas, karyawan dan agennya dari dan terhadap setiap dan semua klaim, tindakan, gugatan, proses hukum, serta setiap dan semua kehilangan, kewajiban, kerusakan, biaya dan pengeluaran (termasuk biaya pengacara yang sewajarnya) yang timbul atau diakibatkan dari (a) penggunaan Pratinjau oleh Anda, (b) aplikasi apa pun yang Anda kembangkan dari Pratinjau yang melanggar Hak Kekayaan Intelektual seseorang atau mencemarkan nama baik seseorang atau melanggar hak mereka berkaitan dengan publisitas atau privasi, dan (c) ketidakpatuhan Anda terhadap Perjanjian Lisensi ini.
|
||||||
|
|
||||||
13. Perubahan Perjanjian Lisensi
|
13. Perubahan pada Perjanjian Lisensi
|
||||||
|
|
||||||
13.1 Google boleh membuat perubahan pada Perjanjian Lisensi saat mendistribusikan versi baru Preview. Saat perubahan tersebut dibuat, Google akan menyediakan versi baru Perjanjian Lisensi di situs web penyediaan Preview.
|
13.1 Google boleh membuat perubahan pada Perjanjian Lisensi saat mendistribusikan versi baru Pratinjau. Saat perubahan tersebut dibuat, Google akan menyediakan versi baru Perjanjian Lisensi di situs web penyediaan Pratinjau.
|
||||||
|
|
||||||
14. Ketentuan Hukum Umum
|
14. Ketentuan Hukum Umum
|
||||||
|
|
||||||
14.1 Perjanjian Lisensi ini merupakan perjanjian hukum antara Anda dan Google dan mengatur penggunaan Preview oleh Anda (tidak termasuk layanan apa pun yang mungkin disediakan Google untuk Anda dalam perjanjian tertulis terpisah), dan sepenuhnya menggantikan perjanjian sebelumnya antara Anda dan Google dalam kaitannya dengan Preview.
|
14.1 Perjanjian Lisensi ini merupakan perjanjian hukum antara Anda dan Google dan mengatur penggunaan Pratinjau oleh Anda (tidak termasuk layanan apa pun yang mungkin disediakan Google untuk Anda dalam perjanjian tertulis terpisah), dan sepenuhnya menggantikan perjanjian sebelumnya antara Anda dan Google dalam kaitannya dengan Pratinjau.
|
||||||
|
|
||||||
14.2 Anda setuju bahwa jika Google tidak menjalankan atau menerapkan hak atau upaya hukum yang terkandung dalam Perjanjian Lisensi ini (atau bila Google memiliki kewenangan berdasarkan hukum yang berlaku), tindakan ini tidak akan dianggap sebagai pelepasan hak secara resmi oleh Google dan bahwa hak atau upaya hukum tersebut akan tetap bisa digunakan oleh Google.
|
14.2 Anda setuju bahwa jika Google tidak menjalankan atau menerapkan hak atau upaya hukum yang terkandung dalam Perjanjian Lisensi ini (atau bila Google memiliki kewenangan berdasarkan hukum yang berlaku), tindakan ini tidak akan dianggap sebagai pelepasan hak secara resmi oleh Google dan bahwa hak atau upaya hukum tersebut akan tetap bisa digunakan oleh Google.
|
||||||
|
|
||||||
14.3 Jika persidangan hukum yang berwenang untuk memutuskan perkara ini menetapkan bahwa ada ketetapan Perjanjian Lisensi ini yang tidak berlaku, maka ketetapan tersebut akan dihapus dari Perjanjian Lisensi tanpa memengaruhi bagian selebihnya dari Perjanjian Lisensi ini. Ketetapan selebihnya dari Perjanjian Lisensi ini akan tetap sah dan berlaku.
|
14.3 Jika persidangan hukum yang berwenang untuk memutuskan perkara ini menetapkan bahwa ada ketetapan Perjanjian Lisensi ini yang tidak valid, maka ketetapan tersebut akan dihapus dari Perjanjian Lisensi tanpa memengaruhi bagian selebihnya dari Perjanjian Lisensi ini. Ketetapan selebihnya dari Perjanjian Lisensi ini akan tetap sah dan berlaku.
|
||||||
|
|
||||||
14.4 Anda mengakui dan menyetujui bahwa setiap anggota dari kelompok perusahaan yang diinduki oleh Google akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini dan bahwa perusahaan tersebut berhak untuk secara langsung memberlakukan, dan bergantung pada, ketetapan yang dimuat dalam Perjanjian Lisensi ini yang memberikan manfaat (atau hak yang mendukung) kepada mereka. Selain yang telah disebutkan di atas, tidak ada orang atau perusahaan lain yang akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini
|
14.4 Anda mengakui dan menyetujui bahwa setiap anggota dari kelompok perusahaan yang diinduki oleh Google akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini dan bahwa perusahaan tersebut berhak untuk secara langsung memberlakukan, dan bergantung pada, ketetapan yang dimuat dalam Perjanjian Lisensi ini yang memberikan manfaat (atau hak yang mendukung) kepada mereka. Selain yang telah disebutkan di atas, tidak ada orang atau perusahaan lain yang akan menjadi pihak ketiga penerima manfaat dari Perjanjian Lisensi ini
|
||||||
|
|
||||||
14.5 PEMBATASAN EKSPOR. PREVIEW TUNDUK PADA HUKUM DAN PERATURAN EKSPOR AMERIKA SERIKAT. ANDA HARUS MEMATUHI SEMUA HUKUM DAN PERATURAN NASIONAL DAN INTERNASIONAL YANG BERLAKU PADA PREVIEW. HUKUM INI MENYERTAKAN PEMBATASAN ATAS TUJUAN, PENGGUNA AKHIR DAN PENGGUNAAN AKHIR.
|
14.5 PEMBATASAN EKSPOR. PRATINJAU TUNDUK PADA HUKUM DAN PERATURAN EKSPOR AMERIKA SERIKAT. ANDA HARUS MEMATUHI SEMUA HUKUM DAN PERATURAN NASIONAL DAN INTERNASIONAL YANG BERLAKU PADA PRATINJAU. HUKUM INI MENYERTAKAN PEMBATASAN ATAS TUJUAN, PENGGUNA AKHIR DAN PENGGUNAAN AKHIR
|
||||||
|
|
||||||
14.6 Perjanjian Lisensi ini tidak boleh diberikan atau dialihkan baik oleh Anda tanpa persetujuan tertulis sebelumnya dari Google, dan upaya apa pun untuk mengalihkannya tanpa persetujuan akan menjadi tidak sah. Anda tidak boleh mendelegasikan tanggung jawab atau kewajiban berdasarkan Perjanjian Lisensi ini tanpa persetujuan tertulis sebelumnya dari Google.
|
14.6 Perjanjian Lisensi ini tidak boleh diberikan atau dialihkan baik oleh Anda tanpa persetujuan tertulis sebelumnya dari Google, dan upaya apa pun untuk mengalihkannya tanpa persetujuan akan menjadi tidak sah. Anda tidak boleh mendelegasikan tanggung jawab atau kewajiban berdasarkan Perjanjian Lisensi ini tanpa persetujuan tertulis sebelumnya dari pihak lain.
|
||||||
|
|
||||||
14.7 Perjanjian Lisensi ini, dan hubungan Anda dengan Google berdasarkan Perjanjian Lisensi ini, diatur oleh hukum Negara Bagian California tanpa mengindahkan pertentangan ketetapan hukumnya. Anda dan Google setuju untuk tunduk pada yurisdiksi eksklusif pengadilan yang berlokasi di county Santa Clara, California untuk menyelesaikan segala masalah hukum yang timbul dari Perjanjian Lisensi ini. Meski demikian, Anda setuju bahwa Google akan tetap diizinkan untuk mengajukan upaya hukum (atau tipe keringanan hukum setara yang mendesak) dalam yurisdiksi apa pun.
|
14.7 Perjanjian Lisensi ini, dan hubungan Anda dengan Google berdasarkan Perjanjian Lisensi ini, akan diatur oleh hukum Negara Bagian California tanpa mengindahkan pertentangan ketetapan hukumnya. Anda dan Google setuju untuk tunduk pada yurisdiksi eksklusif pengadilan yang berlokasi di county Santa Clara, California untuk menyelesaikan segala masalah hukum yang timbul dari Perjanjian Lisensi ini. Meski demikian, Anda setuju bahwa Google akan tetap diizinkan untuk mengajukan upaya hukum (atau tipe keringanan hukum setara yang mendesak) dalam yurisdiksi apa pun.
|
||||||
</div><!-- sdk terms -->
|
</div><!-- sdk terms -->
|
||||||
|
|
||||||
|
|
||||||
@@ -173,7 +173,7 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
<ol>
|
<ol>
|
||||||
<li><a href="#ota">Mendapatkan pembaruan lewat jaringan seluler</a></li>
|
<li><a href="#ota">Mendapatkan pembaruan lewat jaringan seluler</a></li>
|
||||||
<li><a href="#flash">Mem-flash perangkat secara manual</a></li>
|
<li><a href="#flash">Mem-flash perangkat secara manual</a></li>
|
||||||
<li><a href="#revertDevice">Menghapus instalasi</a></li>
|
<li><a href="#revertDevice">Mencopot pemasangan</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#setupAVD">Menyiapkan emulator</a></li>
|
<li><a href="#setupAVD">Menyiapkan emulator</a></li>
|
||||||
@@ -182,12 +182,12 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Untuk menjalankan dan menguji aplikasi Anda pada platform baru, Anda perlu menyiapkan lingkungan runtime
|
Untuk menjalankan dan menguji aplikasi Anda pada platform baru, Anda perlu menyiapkan lingkungan waktu proses
|
||||||
Android N. Anda bisa melakukannya dengan salah satu cara ini:
|
Android N. Anda bisa melakukannya dengan salah satu cara ini:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Instal Android N pada perangkat keras yang didukung, atau</li>
|
<li>Pasang Android N pada perangkat keras yang didukung, atau</li>
|
||||||
<li>Siapkan emulator Android yang menjalankan Android N</li>
|
<li>Siapkan emulator Android yang menjalankan Android N</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
@@ -199,7 +199,7 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika Anda ingin memodifikasi aplikasi untuk menargetkan Android N atau menggunakan API baru Android N,
|
Jika Anda ingin memodifikasi aplikasi untuk menargetkan Android N atau menggunakan Android N API baru,
|
||||||
Anda perlu menyiapkan lingkungan pengembangan yang telah diperbarui untuk mendukung
|
Anda perlu menyiapkan lingkungan pengembangan yang telah diperbarui untuk mendukung
|
||||||
Android N. <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan Pengembangan
|
Android N. <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan Pengembangan
|
||||||
Android N</a> berisi detail mengenai hal ini.
|
Android N</a> berisi detail mengenai hal ini.
|
||||||
@@ -220,20 +220,20 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong>Daftarkan perangkat dalam pembaruan sistem OTA otomatis</strong> melalui
|
<li><strong>Daftarkan perangkat dalam pembaruan sistem OTA otomatis</strong> melalui
|
||||||
<a href="https://g.co/androidbeta">Android Beta Program</a>. Setelah didaftarkan, perangkat Anda akan menerima pembaruan
|
<a href="https://g.co/androidbeta">Android Beta Program</a>. Setelah didaftarkan, perangkat Anda akan secara teratur menerima
|
||||||
lewat jaringan seluler (OTA) untuk semua build tahapan pencapaian dalam N Developer Preview. Pendekatan
|
pembaruan lewat jaringan seluler (OTA) untuk semua build tahapan pencapaian dalam N Developer Preview. Pendekatan
|
||||||
ini disarankan karena akan membantu Anda melakukan transisi secara mulus dari lingkungan saat ini
|
ini disarankan karena akan membantu Anda melakukan transisi secara mulus dari lingkungan saat ini
|
||||||
ke berbagai rilis N Developer Preview.</li>
|
ke berbagai rilis N Developer Preview.</li>
|
||||||
<li><strong>Unduh citra sistem a Developer Preview dan flash perangkat</strong>.
|
<li><strong>Unduh citra sistem Developer Preview dan flash perangkat</strong>.
|
||||||
Pembaruan OTA tidak disediakan secara otomatis untuk perangkat yang Anda flash secara manual, namun
|
Pembaruan OTA tidak disediakan secara otomatis untuk perangkat yang Anda flash secara manual, namun
|
||||||
Anda bisa mendaftarkan perangkat tersebut dalam Android Beta Program untuk memperoleh pembaruan OTA. </li>
|
Anda bisa mendaftarkan perangkat tersebut dalam Android Beta Program untuk memperoleh pembaruan OTA. </li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3 id="ota">Mendaftarkan perangkat dalam pembaruan OTA otomatis</h3>
|
<h3 id="ota">Daftarkan perangkat dalam pembaruan OTA otomatis</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika Anda memiliki akses ke perangkat yang didukung (lihat daftar dalam tabel
|
Jika Anda memiliki akses ke perangkat yang didukung (lihat daftar dalam tabel
|
||||||
Unduhan), Anda bisa menerima pembaruan lewat jaringan seluler ke versi preview Android
|
Unduhan), Anda bisa menerima pembaruan lewat jaringan seluler ke versi pratinjau Android
|
||||||
dengan mendaftarkan perangkat itu ke <a href="https://g.co/androidbeta">Android Beta Program</a>. Pembaruan ini
|
dengan mendaftarkan perangkat itu ke <a href="https://g.co/androidbeta">Android Beta Program</a>. Pembaruan ini
|
||||||
secara otomatis akan diunduh dan memperbarui perangkat Anda seperti
|
secara otomatis akan diunduh dan memperbarui perangkat Anda seperti
|
||||||
pembaruan sistem resmi.
|
pembaruan sistem resmi.
|
||||||
@@ -242,8 +242,8 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
<p>
|
<p>
|
||||||
Anda bisa membatalkan pendaftaran perangkat kapan saja. Perangkat akan menerima pembaruan OTA
|
Anda bisa membatalkan pendaftaran perangkat kapan saja. Perangkat akan menerima pembaruan OTA
|
||||||
ke versi produksi terbaru Android yang tersedia untuk perangkat itu
|
ke versi produksi terbaru Android yang tersedia untuk perangkat itu
|
||||||
(misalnya, Android 6.0 Marshmallow). Pembaruan mengharuskan pengaturan ulang
|
(misalnya, Android 6.0 Marshmallow). Pembaruan mengharuskan penyetelan ulang
|
||||||
perangkat secara penuh, jadi data pengguna pada perangkat itu akan dihapus. Pastikan <strong>mencadangkan
|
perangkat secara penuh, jadi data pengguna pada perangkat itu akan dibuang. Pastikan <strong>mencadangkan
|
||||||
data penting</strong> sebelum membatalkan pendaftaran perangkat.
|
data penting</strong> sebelum membatalkan pendaftaran perangkat.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -253,7 +253,7 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="note"><strong>Catatan:</strong>
|
<p class="note"><strong>Catatan:</strong>
|
||||||
Membatalkan pendaftaran mengharuskan pengaturan ulang perangkat secara penuh. Cadangkan
|
Membatalkan pendaftaran mengharuskan penyetelan ulang perangkat secara penuh. Cadangkan
|
||||||
data penting terlebih dahulu.
|
data penting terlebih dahulu.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -261,34 +261,34 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Anda bisa mengunduh citra sistem Developer Preview terbaru dan
|
Anda bisa mengunduh citra sistem Developer Preview terbaru dan
|
||||||
mem-flash-nya secara manual ke perangkat Anda. Lihat tabel di bawah untuk mengunduh citra sistem
|
mem-flash-nya secara manual ke perangkat Anda kapan saja. Lihat tabel di bawah untuk mengunduh citra
|
||||||
bagi perangkat pengujian Anda. Mem-flash perangkat secara manual berguna jika Anda harus
|
sistem perangkat pengujian Anda. Mem-flash perangkat secara manual berguna jika Anda harus
|
||||||
mengontrol secara persis lingkungan pengujian tersebut atau harus menginstal ulang secara rutin,
|
mengontrol secara persis lingkungan pengujian tersebut atau harus memasang ulang secara rutin,
|
||||||
misalnya untuk pengujian otomatis.
|
misalnya untuk pengujian otomatis.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- You can flash by ota or system image --><p>
|
<!-- You can flash by ota or system image --><p>
|
||||||
Menginstal citra sistem pada perangkat <strong>akan menghapus semua data dari
|
Memasang citra sistem pada perangkat <strong>akan membuang semua data dari
|
||||||
perangkat</strong>, karena itu Anda harus mencadangkan data terlebih dahulu.
|
perangkat</strong>, karena itu Anda harus mencadangkan data terlebih dahulu.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Setelah Anda mencadangkan data perangkat dan mengunduh citra sistem di bawah ini yang
|
Setelah Anda mencadangkan data perangkat dan mengunduh citra sistem di bawah ini yang
|
||||||
sesuai dengan perangkat Anda, ikuti instruksi di <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
|
sesuai dengan perangkat Anda, ikuti petunjuk di <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>
|
||||||
untuk mem-flash citra ini ke perangkat Anda.
|
untuk mem-flash citra ini ke perangkat Anda.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Mem-flash citra sistem secara manual <strong>
|
Citra sistem yang di-flash secara manual <strong>tidak secara otomatis akan
|
||||||
tidak secara otomatis akan menerima pembaruan OTA</strong> ke build
|
menerima pembaruan OTA</strong> ke build tahapan pencapaian Developer Preview
|
||||||
tahapan pencapaian Developer Preview terbaru. Pastikan lingkungan Anda selalu diperbarui dan lakukan flash
|
terbaru. Pastikan lingkungan Anda selalu diperbarui dan lakukan flash
|
||||||
citra sistem yang baru di setiap tahapan pencapaian Developer Preview.
|
citra sistem yang baru di setiap tahapan pencapaian Developer Preview.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika Anda memutuskan ingin mendapatkan pembaruan OTA setelah mem-flash perangkat secara manual,
|
Jika Anda memutuskan ingin mendapatkan pembaruan OTA setelah mem-flash perangkat secara manual,
|
||||||
Anda tinggal mendaftarkan perangkat dalam <a href="https://g.co/androidbeta">
|
Anda tinggal mendaftarkan perangkat dalam <a href="https://g.co/androidbeta">
|
||||||
Android Beta Program</a>. Anda bisa mendaftarkan perangkat kapan saja untuk menerima pembaruan Preview
|
Android Beta Program</a>. Anda bisa mendaftarkan perangkat kapan saja untuk menerima pembaruan Pratinjau
|
||||||
berikutnya lewat jaringan seluler.
|
berikutnya lewat jaringan seluler.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -300,103 +300,111 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
|
|
||||||
<tr id="bullhead">
|
<tr id="bullhead">
|
||||||
<td>Nexus 5X <br>"bullhead"</td>
|
<td>Nexus 5X <br>"bullhead"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">bullhead-npc56p-preview-6c877a3d.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">bullhead-npd35k-factory-5ba40535.tgz</a><br>
|
||||||
MD5: b5cf874021023b398f5b983b24913f5d<br>
|
MD5: b6c5d79a21815ee21db41822dcf61e9f<br>
|
||||||
SHA-1: 6c877a3d9fae7ec8a1678448e325b77b7a7b143a
|
SHA-1: 5ba4053577007d15c96472206e3a79bc80ab194c
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="shamu">
|
<tr id="shamu">
|
||||||
<td>Nexus 6 <br>"shamu"</td>
|
<td>Nexus 6 <br>"shamu"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">shamu-npc56p-preview-54b13c67.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">shamu-npd35k-factory-a33bf20c.tgz</a><br>
|
||||||
MD5: af183638cf34e0eb944a1957d7696f60<br>
|
MD5: e1cf9c57cfb11bebe7f1f5bfbf05d7ab<br>
|
||||||
SHA-1: 54b13c6703d369cc79a8fd8728fe4103c6343973
|
SHA-1: a33bf20c719206bcf08d1edd8da6c0ff9d50f69c
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="angler">
|
<tr id="angler">
|
||||||
<td>Nexus 6P <br>"angler"</td>
|
<td>Nexus 6P <br>"angler"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">angler-npc56p-preview-85ffc1b1.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">angler-npd35k-factory-81c341d5.tgz</a><br>
|
||||||
MD5: bc4934ea7bd325753eee1606d3725a24<br>
|
MD5: e93de7949433339856124c3729c15ebb<br>
|
||||||
SHA-1: 85ffc1b1be402b1b96f9ba10929e86bba6c6c588
|
SHA-1: 81c341d57ef2cd139569b055d5d59e9e592a7abd
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="volantis">
|
<tr id="volantis">
|
||||||
<td>Nexus 9 <br>"volantis"</td>
|
<td>Nexus 9 <br>"volantis"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">volantis-npc56p-preview-0e8ec8ef.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">volantis-npd35k-factory-2b50e19d.tgz</a><br>
|
||||||
MD5: c901334c6158351e945f188167ae56f4<br>
|
MD5: 565be87ebb2d5937e2abe1a42645864b<br>
|
||||||
SHA-1: 0e8ec8ef98c7a8d4f58d15f90afc5176303efca4
|
SHA-1: 2b50e19dae2667b27f911e3c61ed64860caf43e1
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="volantisg">
|
<tr id="volantisg">
|
||||||
<td>Nexus 9G <br>"volantisg"</td>
|
<td>Nexus 9G <br>"volantisg"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">volantisg-npc56p-preview-1bafdbfb.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">volantisg-npd35k-factory-2e89ebe6.tgz</a><br>
|
||||||
MD5: 7bb95bebc478d7257cccb4652899d1b4<br>
|
MD5: a8464e15c6683fe2afa378a63e205fda<br>
|
||||||
SHA-1: 1bafdbfb502e979a9fe4c257a379c4c7af8a3ae6
|
SHA-1: 2e89ebe67a46b2f3beb050746c13341cd11fa678
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="fugu">
|
<tr id="fugu">
|
||||||
<td>Nexus Player <br>"fugu"</td>
|
<td>Nexus Player <br>"fugu"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">fugu-npc56r-preview-7027d5b6.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">fugu-npd35k-factory-1de74874.tgz</a><br>
|
||||||
MD5: f5d3d8f75836ccfe4c70e8162e498be4<br>
|
MD5: c0dbb7db671f61b2785da5001cedefcb<br>
|
||||||
SHA-1: 7027d5b662bceda4c80a91a0a14ef0e5a7ba795b
|
SHA-1: 1de74874f8d83e14d642f13b5a2130fc2aa55873
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="ryu">
|
<tr id="ryu">
|
||||||
<td>Pixel C <br>"ryu"</td>
|
<td>Pixel C <br>"ryu"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">ryu-npc56p-preview-335a86a4.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">ryu-npd35k-factory-b4eed85d.tgz</a><br>
|
||||||
MD5: 4e21fb183bbbf467bee91598d587fd2e<br>
|
MD5: bdcb6f770e753668b5fadff2a6678e0d<br>
|
||||||
SHA-1: 335a86a435ee51f18464de343ad2e071c38f0e92
|
SHA-1: b4eed85de0d42c200348a8629084f78e24f72ac2
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr id="seed">
|
<tr id="seed">
|
||||||
<td>General Mobile 4G (Android One) <br>"seed"</td>
|
<td>General Mobile 4G (Android One) <br>"seed"</td>
|
||||||
<td><a href="#top" onclick="onDownload(this)">seed_l8150-npc56p-preview-82472ebc.tgz</a><br>
|
<td><a href="#top" onclick="onDownload(this)">seed_l8150-npd35k-factory-5ab1212b.tgz</a><br>
|
||||||
MD5: 983e083bc7cd0c4a2d39d6ebaa20202a<br>
|
MD5: 7d34a9774fdd6e025d485ce6cfc23c4c<br>
|
||||||
SHA-1: 82472ebc9a6054a103f53cb400a1351913c95127
|
SHA-1: 5ab1212bc9417269d391aacf1e672fff24b4ecc5
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="xperia">
|
||||||
|
<td>Sony Xperia Z3 <br> (D6603 dan D6653)</td>
|
||||||
|
<td>Unduh: <a class="external-link" href="http://support.sonymobile.com/xperiaz3/tools/xperia-companion/">Xperia Companion</a><br>
|
||||||
|
Untuk informasi selengkapnya, lihat<a class="external-link" href="https://developer.sony.com/develop/smartphones-and-tablets/android-n-developer-preview/">Coba Android N Developer Preview untuk Xperia Z3</a>.
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<h3 id="revertDevice">Menghapus instalasi Preview dari perangkat</h3>
|
<h3 id="revertDevice">Mencopot pemasangan Pratinjau dari perangkat</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika Anda ingin menghapus instalasi Preview dari perangkat, Anda bisa melakukannya dengan salah satu cara
|
Jika Anda ingin mencopot pemasangan Pratinjau dari perangkat, Anda bisa melakukannya dengan salah satu cara
|
||||||
ini: </p>
|
ini: </p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><strong>Dapatkan citra sistem sesuai spesifikasi pabrik</strong> kemudian flash
|
<li><strong>Dapatkan citra sistem sesuai spesifikasi pabrik</strong> kemudian flash
|
||||||
secara manual ke perangkat.
|
secara manual ke perangkat.
|
||||||
<ul>
|
<ul>
|
||||||
<li>Untuk <strong>perangkat Nexus dan perangkat Pixel C</strong>, lihat
|
<li>Untuk <strong>perangkat Nexus dan Pixel C</strong>, lihat halaman
|
||||||
halaman <a href="http://developers.google.com/android/nexus/images">Citra Pabrik untuk
|
<a href="http://developers.google.com/android/nexus/images">Citra Pabrik
|
||||||
Perangkat Nexus</a> untuk mengunduhnya. </li>
|
untuk Perangkat Nexus</a> untuk mengunduhnya. </li>
|
||||||
<li>Untuk <strong>perangkat lain</strong>, hubungi produsen perangkat tersebut
|
<li>Untuk <strong>perangkat lainnya</strong>, hubungi produsen perangkat
|
||||||
secara langsung. Atau, jika perangkat didukung
|
secara langsung. Atau, jika perangkat didukung
|
||||||
dalam Android Beta Program, Anda bisa mendaftarkan perangkat dalam
|
dalam Android Beta Program, Anda bisa mendaftarkan perangkat dalam
|
||||||
program kemudian membatalkan pendaftarannya (lihat di bawah).</li>
|
program kemudian membatalkan pendaftarannya (lihat di bawah).</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><strong>Batalkan pendaftaran perangkat dari Android Beta Program</strong>. Jika
|
<li><strong>Batalkan pendaftaran perangkat dari Android Beta Program</strong>. Jika
|
||||||
perangkat terdaftar dalam <a href="https://g.co/androidbeta">Android Beta
|
perangkat telah terdaftar dalam <a href="https://g.co/androidbeta">Android Beta
|
||||||
Program</a>, apa pun perangkatnya, Anda cukup membatalkan pendaftarannya dari program tersebut.
|
Program</a>, apa pun perangkatnya, Anda cukup membatalkan pendaftarannya dari program tersebut.
|
||||||
<p>
|
<p>
|
||||||
Perangkat akan menerima pembaruan OTA ke versi
|
Perangkat akan menerima pembaruan OTA ke versi produksi terbaru
|
||||||
produksi terbaru Android yang tersedia untuk perangkat itu (misalnya, Android 6.0 Marshmallow).
|
Android yang tersedia untuk perangkat itu (misalnya, Android 6.0 Marshmallow).
|
||||||
Pembaruan mengharuskan pengaturan ulang perangkat secara penuh, jadi data pengguna pada perangkat itu
|
Pembaruan mengharuskan penyetelan ulang perangkat secara penuh, jadi data pengguna pada perangkat itu akan
|
||||||
akan dihapus. Pastikan <strong>mencadangkan data penting</strong> sebelum
|
dibuang. Pastikan Anda <strong>mencadangkan data penting</strong> sebelum
|
||||||
membatalkan pendaftaran perangkat.
|
membatalkan pendaftaran perangkat.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p class="note"><strong>Catatan:</strong>
|
<p class="note"><strong>Catatan:</strong>
|
||||||
Menghapus instalasi citra sistem Developer Preview sebelum
|
Mencopot pemasangan citra sistem Developer Preview sebelum
|
||||||
program berakhir akan mengharuskan perangkat diatur ulang secara penuh dan menghapus semua data pengguna
|
program berakhir mengharuskan penyetelan ulang perangkat secara penuh dan membuang semua data pengguna
|
||||||
pada perangkat.
|
pada perangkat.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -407,28 +415,28 @@ Ini adalah Perjanjian Lisensi Android SDK Preview ("Perjanjian Lisensi").
|
|||||||
mengunduh Android N Preview SDK dan membuat perangkat maya untuk
|
mengunduh Android N Preview SDK dan membuat perangkat maya untuk
|
||||||
emulator.</p>
|
emulator.</p>
|
||||||
|
|
||||||
<p>Pertama, unduh Android N Preview SDK sebagai berikut (jika
|
<p>Pertama, unduh Android N Preview SDK sebagai berikut (jika Anda
|
||||||
Anda sudah memperolehnya saat <a href="{@docRoot}preview/setup-sdk.html">menyiapkan
|
sudah memperolehnya saat <a href="{@docRoot}preview/setup-sdk.html">menyiapkan
|
||||||
pengembangan Android N</a>, Anda bisa melewatkan bagian ini):
|
pengembangan Android N</a>, Anda bisa lewati bagian ini):
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>Di Android Studio, buka dialog Settings
|
<li>Di Android Studio, buka dialog Settings
|
||||||
(<strong>File > Settings</strong> pada Windows/Linux, atau
|
(<strong>File > Settings</strong> pada Windows/Linux, atau
|
||||||
<strong>Android Studio > Preferences</strong> pada Mac). Di panel kiri,
|
<strong>Android Studio > Preferences</strong> pada Mac). Di panel
|
||||||
pilih <strong>Appearance & Behavior >
|
kiri, pilih <strong>Appearance & Behavior >
|
||||||
System Settings > Android SDK</strong>.
|
System Settings > Android SDK</strong>.
|
||||||
|
|
||||||
<li>Klik tab <strong>SDK Platforms</strong>, kemudian pilih kotak cek
|
<li>Klik tab <strong>SDK Platforms</strong>, kemudian pilih kotak centang
|
||||||
<strong>Android N Preview</strong>.</li>
|
<strong>Android N Preview</strong>.</li>
|
||||||
|
|
||||||
<li>Klik tab <strong>SDK Tools</strong>, kemudian pilih
|
<li>Klik tab <strong>SDK Tools</strong>, kemudian pilih
|
||||||
kotak cek <strong>Android SDK Build Tools</strong>, <strong>Android SDK
|
kotak centang <strong>Android SDK Build Tools</strong>, <strong>Android SDK
|
||||||
Platform-Tools</strong>, dan <strong>Android SDK Tools</strong>.
|
Platform-Tools</strong>, dan <strong>Android SDK Tools</strong>.
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Klik <strong>OK</strong>, dan terima
|
<li>Klik <strong>OK</strong>, dan terima
|
||||||
perjanjian lisensi untuk setiap paket yang akan diinstal.
|
perjanjian lisensi untuk setiap paket yang akan dipasang.
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
@@ -448,26 +456,20 @@ dapat menjalankan citra sistem x86_64 untuk Android N.</p>
|
|||||||
kemudian klik <strong>Next</strong>.</li>
|
kemudian klik <strong>Next</strong>.</li>
|
||||||
<li>Pilih citra sistem <strong>N</strong> (dengan
|
<li>Pilih citra sistem <strong>N</strong> (dengan
|
||||||
<strong>x86</strong> ABI), kemudian klik <strong>Next</strong>.
|
<strong>x86</strong> ABI), kemudian klik <strong>Next</strong>.
|
||||||
(Hanya citra sistem x86 yang saat ini didukung dengan Emulator
|
(Hanya citra sistem x86 yang saat ini didukung dengan Android Emulator
|
||||||
untuk Android N Preview.)
|
untuk Android N Preview.)
|
||||||
<li>Selesaikan konfigurasi AVD selanjutnya dan klik
|
<li>Selesaikan konfigurasi AVD selanjutnya dan klik
|
||||||
<strong>Finish</strong>.</li>
|
<strong>Finish</strong>.</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<p>Anda sekarang bisa meluncurkan Emulator Android dengan Android N Preview AVD.</p>
|
<p>Anda sekarang bisa meluncurkan Android Emulator dengan Android N Preview AVD.</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Untuk mendapatkan pengalaman terbaik di Android Emulator, instal
|
Untuk mendapatkan pengalaman terbaik di Android Emulator, pastikan Anda menggunakan
|
||||||
Android Studio 2.1 Preview, yang mendukung <a href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0 Beta</a>
|
Android Studio 2.1 atau yang lebih tinggi, yang mendukung <a href="http://tools.android.com/tech-docs/emulator">Android Emulator 2.0</a>
|
||||||
dengan kinerja jauh lebih cepat dibandingkan Emulator di
|
dengan kinerja jauh lebih cepat dibandingkan Emulator di
|
||||||
Android Studio 1.5.</p>
|
Android Studio 1.5.</p>
|
||||||
|
|
||||||
<p class="note"><strong>Catatan:</strong>
|
|
||||||
Jika Anda saat ini menggunakan Android Studio 2.0 Beta, maka ada masalah yang telah diketahui
|
|
||||||
yang mencegah Anda membuat AVD dengan citra sistem N Preview, jadi
|
|
||||||
Anda saat ini perlu menggunakan preview Android Studio 2.1 untuk membuat AVD.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>Untuk informasi selengkapnya tentang membuat perangkat maya, lihat <a href="{@docRoot}tools/devices/index.html">Mengelola Perangkat Maya</a>.
|
<p>Untuk informasi selengkapnya tentang membuat perangkat maya, lihat <a href="{@docRoot}tools/devices/index.html">Mengelola Perangkat Maya</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -505,9 +507,9 @@ Android Studio 1.5.</p>
|
|||||||
|
|
||||||
|
|
||||||
function onAgreeChecked() {
|
function onAgreeChecked() {
|
||||||
/* verify that the TOS is agreed */
|
/* verifikasi apakah TOS disetujui */
|
||||||
if ($("input#agree").is(":checked")) {
|
if ($("input#agree").is(":checked")) {
|
||||||
/* reveal the download button */
|
/* tampilkan tombol unduh */
|
||||||
$("a#downloadForRealz").removeClass('disabled');
|
$("a#downloadForRealz").removeClass('disabled');
|
||||||
} else {
|
} else {
|
||||||
$("a#downloadForRealz").addClass('disabled');
|
$("a#downloadForRealz").addClass('disabled');
|
||||||
|
|||||||
552
docs/html-intl/intl/in/preview/features/afw.jd
Normal file
@@ -0,0 +1,552 @@
|
|||||||
|
page.title=Pembaruan Android for Work
|
||||||
|
page.metaDescription=API dan fitur baru Android for Work di Android N.
|
||||||
|
page.keywords="android for work", "android N", "enterprise", "QR code"
|
||||||
|
|
||||||
|
@jd:body
|
||||||
|
|
||||||
|
<div id="qv-wrapper">
|
||||||
|
<div id="qv">
|
||||||
|
<h2>Dalam dokumen ini</h2>
|
||||||
|
<ol>
|
||||||
|
<li><a href="#qr">Penyediaan Kode QR
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#sec-challenge">Pertanyaan Keamanan Profil Kerja
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#suspend">Menonaktifkan Akses ke Aplikasi
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#toggle-work">Beralih Mode Kerja
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#always-on-vpn">Always-On VPN
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#contacts">Integrasi Kontak dengan Profil Kerja
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#remote-reboot">Boot Ulang Jarak Jauh
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#disable-roaming">Menonaktifkan Roaming Data
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#process-logging">Pencatatan Proses Enterprise
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#bug-reports">Laporan Bug Jarak Jauh
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#remove-cert">Membuang Sertifikat Klien
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#grant-cert-on-install">Memberi Akses ke Sertifikat Klien
|
||||||
|
saat Pemasangan</a></li>
|
||||||
|
|
||||||
|
<li><a href="#ui-policy">Transparansi Kebijakan UI Sistem
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#restrictions-mgmt">Penyempurnaan Manajemen Pembatasan Aplikasi
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#location-off">Tombol Lokasi Nonaktif
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#custom-provisioning">Penyediaan yang Disesuaikan
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#multi-wifi-ca">Multi-Sertifikat CA Wi-Fi
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#custom-lock">Pesan Layar Kunci yang Disesuaikan
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#work-connectionservice">ConnectionService Profil Kerja
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#lock-wp">Mengunci Wallpaper
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#lock-user-icon">Mengunci Ikon Pengguna
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
<li><a href="#health-monitoring">Pemantauan Kesehatan Perangkat
|
||||||
|
</a></li>
|
||||||
|
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<h2>Lihat Juga</h2>
|
||||||
|
<ul>
|
||||||
|
<li><a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi
|
||||||
|
N Preview SDK</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>Dokumen ini menjelaskan fitur baru Android for Work yang disediakan di
|
||||||
|
Android N.</p>
|
||||||
|
|
||||||
|
<h2 id="qr">Penyediaan Kode QR</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android for Work kini mendukung penggunaan kode QR untuk penyediaan perangkat
|
||||||
|
milik perusahaan. Wizard persiapan kini memungkinkan Anda memindai kode QR untuk penyediaan
|
||||||
|
perangkat.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="sec-challenge">Pertanyaan Keamanan Profil Kerja</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik profil bisa mengharuskan pengguna menetapkan pertanyaan keamanan untuk aplikasi
|
||||||
|
yang berjalan dalam profil kerja. Sistem akan menampilkan pertanyaan keamanan bila
|
||||||
|
pengguna mencoba membuka aplikasi kerja apa pun. Jika pengguna berhasil menyelesaikan
|
||||||
|
pertanyaan keamanan, sistem akan membuat profil kerja dan mendekripsinya
|
||||||
|
jika diperlukan.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Jika pemilik profil mengirim intent {@link
|
||||||
|
android.app.admin.DevicePolicyManager#ACTION_SET_NEW_PASSWORD} , sistem
|
||||||
|
akan menampilkan pertanyaan keamanan kepada pengguna. Pemilik profil juga dapat
|
||||||
|
mengirim intent <code>ACTION_SET_NEW_PARENT_PROFILE_PASSWORD</code> untuk
|
||||||
|
meminta pengguna menyetel kunci perangkat.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik profil dapat memilih untuk menyetel kebijakan sandi untuk pertanyaan pekerjaan
|
||||||
|
yang berbeda dari kebijakan sandi perangkat lainnya. Misalnya, panjang minimum
|
||||||
|
jawaban pertanyaan perangkat bisa berbeda dari panjang
|
||||||
|
yang diperlukan untuk sandi lainnya. Pemilik profil menyetel kebijakan pertanyaan
|
||||||
|
menggunakan metode{@link android.app.admin.DevicePolicyManager}
|
||||||
|
biasa, seperti {@link
|
||||||
|
android.app.admin.DevicePolicyManager#setPasswordQuality
|
||||||
|
setPasswordQuality()} dan {@link
|
||||||
|
android.app.admin.DevicePolicyManager#setPasswordMinimumLength
|
||||||
|
setPasswordMinimumLength()}. Pemilik profil juga bisa menyetel penguncian perangkat,
|
||||||
|
dengan menggunakan instance {@link android.app.admin.DevicePolicyManager} yang dikembalikan secara langsung
|
||||||
|
oleh metode <code>DevicePolicyManager.getParentProfileInstance()</code>
|
||||||
|
baru. Selain itu, pemilik profil dapat menyesuaikan layar kredensial untuk
|
||||||
|
pertanyaan kerja menggunakan kelas {@link android.app.admin.DevicePolicyManager}
|
||||||
|
dengan metode <code>setOrganizationColor()</code> dan
|
||||||
|
<code>setOrganizationName()</code> baru.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Untuk mengetahui detail tentang kelas dan metode berikut, lihat halaman referensi
|
||||||
|
<code>DevicePolicyManager</code> di <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi N Preview SDK</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="suspend">Menonaktifkan Akses ke Aplikasi</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik perangkat dan pemilik profil bisa menangguhkan akses untuk sementara ke paket
|
||||||
|
dengan memanggil metode <code>DevicePolicyManager.setPackagesSuspended()</code>
|
||||||
|
baru. Pemilik bisa menggunakan metode yang sama untuk mengaktifkan kembali paket tersebut.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Selagi paket ditangguhkan, maka tidak bisa memulai aktivitas, pemberitahuan ke
|
||||||
|
paket akan disembunyikan, dan entri aplikasi dalam <a href="{@docRoot}guide/components/recents.html">layar ringkasan</a> akan disembunyikan.
|
||||||
|
Paket yang ditangguhkan tidak muncul di <a href="{@docRoot}guide/components/recents.html">layar ringkasan</a>, dan
|
||||||
|
tidak bisa menampilkan dialog (termasuk toast dan snackbar). Juga tidak bisa memutar
|
||||||
|
audio atau menggetarkan perangkat.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Launcher harus menerapkan UI berbeda pada aplikasi yang ditangguhkan untuk menunjukkan
|
||||||
|
aplikasi saat ini tidak tersedia; misalnya, bisa merender ikon aplikasi
|
||||||
|
dalam warna abu-abu. Launcher bisa mengetahui apakah aplikasi ditangguhkan dengan memanggil metode
|
||||||
|
<code>DevicePolicyManager.getPackageSuspended()</code> baru.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="toggle-work">Beralih Mode Kerja</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pada perangkat dua-profil, pengguna bisa mengaktifkan dan menonaktifkan mode kerja. Selagi mode
|
||||||
|
kerja dinonaktifkan, profil yang dikelola akan dinonaktifkan untuk sementara. Aplikasi Profil Kerja,
|
||||||
|
sinkronisasi latar belakang, dan pemberitahuan semuanya dinonaktifkan, termasuk
|
||||||
|
aplikasi pemilik profil. Selagi profil kerja dinonaktifkan, sistem
|
||||||
|
akan menampilkan ikon status tetap untuk mengingatkan pengguna bahwa mereka tidak bisa meluncurkan aplikasi
|
||||||
|
kerja. Peluncur sistem menunjukkan bahwa aplikasi kerja dan widget tidak bisa
|
||||||
|
diakses.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="always-on-vpn">Always-On VPN</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik perangkat dan pemilik profil bisa mengharuskan aplikasi kerja selalu terhubung
|
||||||
|
ke jaringan melalui VPN yang ditetapkan. Jika pemilik menyetel persyaratan ini,
|
||||||
|
perangkat secara otomatis akan memulai VPN itu saat booting.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik bisa menggunakan VPN dengan memanggil metode
|
||||||
|
<code>DevicePolicyManager.setAlwaysOnVpnPackage()</code> baru. Untuk mengetahui
|
||||||
|
apakah pemilik telah menyetel persyaratan VPN, panggil metode
|
||||||
|
<code>DevicePolicyManager.GetAlwaysOnVpnPackage()</code> baru.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Karena sistem bisa secara langsung mengikat layanan VPN tanpa interaksi aplikasi,
|
||||||
|
klien VPN perlu menangani titik masuk baru untuk Always-On VPN. Seperti sebelumnya,
|
||||||
|
Anda bisa menemukan layanan aktif dengan menggunakan filter intent yang cocok dengan tindakan
|
||||||
|
{@link android.net.VpnService android.net.VpnService}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pengguna bisa secara manual menyetel klien Always-On VPN yang mengimplementasikan {@link
|
||||||
|
android.net.VpnService} dengan menggunakan layar <strong>Settings > More >
|
||||||
|
VPN</strong>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="contacts">Integrasi Kontak dengan Profil Kerja</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik profil bisa mengizinkan penelusuran lokal dan pencarian direktori kontak kerja
|
||||||
|
dari pengguna utama. Misalnya, seorang pengguna bisa mengakses kontak direktori pribadi dan pekerjaan
|
||||||
|
dari telepon pribadi atau aplikasi kontak mereka (jika
|
||||||
|
diizinkan oleh administrator profil mereka).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pengembang yang memanfaatkan Contact Provider bisa menggunakan Enterprise Contacts
|
||||||
|
API untuk mengakses entri direktori profil kerja dari pengguna utama jika diizinkan
|
||||||
|
oleh kebijakan:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><code>ContactsContract.Phone.ENTERPRISE_CONTENT_FILTER_URI</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><code>ContactsContract.Email.ENTERPRISE_CONTENT_FILTER_URI</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><code>ContactsContract.Callable.ENTERPRISE_CONTENT_FILTER_URI</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><code>ContactsContract.Directory.ENTERPRISE_CONTENT_URI</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><code>ContactsContract.Directory.isEntepriseDirectoryId()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik profil bisa mengendalikan visibilitas kontak kerja di
|
||||||
|
pengguna utama menggunakan metode baru berikut:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>DevicePolicyManager.setCrossProfileContactsSearchDisabled()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DevicePolicyManager.getCrossProfileContactsSearchDisabled()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="remote-reboot">Boot Ulang Jarak Jauh</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik perangkat bisa mem-boot ulang perangkat dari jarak jauh. Di beberapa kasus, perangkat yang diluncurkan di
|
||||||
|
tempat umum dalam pembatas bisa mencegah akses ke tombol daya. Jika
|
||||||
|
perangkat perlu di-boot ulang, administrator bisa melakukannya dengan metode
|
||||||
|
<code>DevicePolicyManager.reboot()</code> baru.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="disable-roaming">Menonaktifkan Roaming Data</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik perangkat bisa menonaktifkan roaming data menggunakan pembatasan pengguna {@link
|
||||||
|
android.os.UserManager} <code>DISALLOW_DATA_ROAMING</code> baru.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="process-logging">Pencatatan Proses Enterprise</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik perangkat bisa mengenali aktivitas mencurigakan dengan melacak perangkat dari jarak jauh,
|
||||||
|
termasuk peluncuran aplikasi, aktivitas adb, dan pembukaan kunci layar. Log proses
|
||||||
|
tidak memerlukan persetujuan pengguna. Untuk mengambil log, pemilik perangkat mengaktifkan
|
||||||
|
pencatatan perangkat menggunakan <code>DevicePolicyManager.setSecurityLoggingEnabled()</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Perubahan API meliputi:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
Kelas <code>android.app.admin.SecurityLog</code> baru dan
|
||||||
|
metodenya
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>void DevicePolicyManager.setSecurityLoggingEnabled()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>boolean DevicePolicyManager.isSecurityLoggingEnabled()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>List<SecurityEvent>
|
||||||
|
DevicePolicyManager.retrieveSecurityLogs()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>List<SecurityEvent>
|
||||||
|
DevicePolicyManager.retrievePreRebootSecurityLogs()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>void DeviceAdminReceiver.onSecurityLogsAvailable()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="bug-reports">Laporan Bug Jarak Jauh</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik perangkat bisa memicu dari jarak jauh dan mengambil laporan bug yang berisi
|
||||||
|
file dump status perangkat, yang memungkinkan penyelidikan forensik atas
|
||||||
|
kesalahan yang diketahui atau perangkat yang telah diutak-atik. Dikarenakan sifat detail laporan bug,
|
||||||
|
maka diperlukan persetujuan pengguna.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android N menyertakan tambahan API berikut untuk mendukung fitur ini. Untuk detailnya, lihat
|
||||||
|
<a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi
|
||||||
|
N Preview SDK</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>DevicePolicyManager.requestBugreport()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DeviceAdminReceiver.onBugreportFailed()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DeviceAdminReceiver.onBugreportShared()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DeviceAdminReceiver.onBugreportSharingDeclined()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DeviceAdminReceiver.BUGREPORT_FAILURE_FAILED_COMPLETING</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DeviceAdminReceiver.BUGREPORT_FAILURE_FILE_NO_LONGER_AVAILABLE</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="remove-cert">Membuang Sertifikat Klien</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik profil dan pemilik perangkat kini bisa membuang sertifikat klien yang telah dipasang melalui
|
||||||
|
{@link android.app.admin.DevicePolicyManager#installKeyPair
|
||||||
|
installKeyPair()} dengan memanggil metode baru
|
||||||
|
<code>DevicePolicyManager.removeKeyPair()</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="grant-cert-on-install">Memberi Akses ke Sertifikat Klien
|
||||||
|
saat Pemasangan</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Jika pemilik profil dan pemilik perangkat memberikan kemampuan kepada aplikasi pihak ketiga untuk
|
||||||
|
mengelola sertifikat, aplikasi bisa memberikan akses pada dirinya sendiri ke sertifikat
|
||||||
|
yang dipasangnya tanpa intervensi dari pemilik.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
API yang sudah ada untuk mengelola sertifikat diperluas untuk mencakup:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><code>DevicePolicyManager.installKeyPair()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="ui-policy">Transparansi Kebijakan UI Sistem</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Kebijakan yang memengaruhi pengalaman pengguna atau membatasi Settings pengguna sepenuhnya
|
||||||
|
diungkapkan kepada pengguna, serta pemilik profil dan pemilik perangkat bisa memberlakukan
|
||||||
|
kebijakannya kepada departemen TI perusahaan mereka. Selain pesan “Action
|
||||||
|
not allowed” yang konsisten di Settings, administrator TI bisa menyetel
|
||||||
|
pesan dukungan khusus-organisasi di setelan perangkat dengan metode
|
||||||
|
{@link android.app.admin.DevicePolicyManager} baru berikut:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>DevicePolicyManager.setShortSupportMessage()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>DevicePolicyManager.setLongSupportMessage()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="restrictions-mgmt">Penyempurnaan Manajemen Pembatasan Aplikasi</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik perangkat atau profil bisa mengaktifkan aplikasi lain untuk mengelola
|
||||||
|
pembatasan aplikasi melalui metode
|
||||||
|
<code>DevicePolicyManager.setApplicationRestrictionsManagingPackage()</code>
|
||||||
|
baru. Aplikasi yang dipilih bisa memeriksa apakah izin ini telah
|
||||||
|
diberikan dengan memanggil
|
||||||
|
<code>DevicePolicyManager.isCallerApplicationRestrictionsManagingPackage()</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Aplikasi yang dipilih untuk mengelola pembatasan aplikasi bisa memanggil {@link
|
||||||
|
android.app.admin.DevicePolicyManager#setApplicationRestrictions
|
||||||
|
setApplicationRestrictions()} dan {@link
|
||||||
|
android.app.admin.DevicePolicyManager#getApplicationRestrictions
|
||||||
|
getApplicationRestrictions()} untuk paket apa pun di pengguna atau profil itu.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="location-off">Tombol Lokasi Nonaktif</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pengguna bisa menonaktifkan izin lokasi untuk aplikasi kerja sambil melanjutkan
|
||||||
|
akses informasi lokasi di aplikasi pribadi mereka. Tombol akses
|
||||||
|
lokasi yang terpisah di Location Settings memungkinkan pengguna untuk menolak pembaruan lokasi atau
|
||||||
|
kueri lokasi terakhir untuk aplikasi yang berjalan di profil kerja.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Tombol lokasi nonaktif level teratas menonaktifkan akses lokasi untuk
|
||||||
|
profil utama dan profil yang dikelola.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="custom-provisioning">Penyediaan yang Disesuaikan</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Aplikasi bisa menyesuaikan alur penyediaan pemilik profil dan pemilik perangkat
|
||||||
|
dengan warna dan logo perusahaan.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<code>DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR</code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Menyesuaikan warna alur.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
<code>DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI</code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Menyesuaikan alur dengan logo perusahaan.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<h2 id="multi-wifi-ca">Multi-Sertifikat CA Wi-Fi</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik profil dan pemilik perangkat bisa menyetel beberapa sertifikat CA sekaligus untuk
|
||||||
|
konfigurasi Wi-Fi yang diberikan. Bila jaringan Wi-Fi perusahaan memiliki CA terpisah untuk
|
||||||
|
titik akses yang terpisah dengan SSID yang sama, administrator TI bisa menyertakan semua
|
||||||
|
CA yang relevan dalam konfigurasi Wi-Fi menggunakan metode
|
||||||
|
<code>setCaCertificates()</code> baru.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
API yang ditambah adalah:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>WifiEnterpriseConfig.setCaCertificates()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>WifiEnterpriseConfig.getCaCertificates()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="custom-lock">Pesan Layar Terkunci yang Disesuaikan</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik perangkat bisa menyediakan informasi pemilik agar ditampilkan di layar kunci.
|
||||||
|
Informasi ini lebih diprioritaskan dari pesan layar kunci pengguna (jika sudah ada
|
||||||
|
yang disetel). Metode {@link android.app.admin.DevicePolicyManager} baru adalah:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>setDeviceOwnerLockScreenInfo()</code>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>getDeviceOwnerLockScreenInfo()</code>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 id="work-connectionservice">ConnectionService Profil Kerja</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik profil bisa menetapkan aplikasi telepon kerja yang menggunakan
|
||||||
|
{@link android.telecom.ConnectionService} khusus-kerja untuk
|
||||||
|
backend panggilan (akun panggilan). Telepon kerja hanya menyimpan log panggilan kerja
|
||||||
|
dan hanya mengandalkan kontak kerja. Pengguna memiliki pengalaman UI
|
||||||
|
saat-panggilan yang konsisten, apa pun aplikasi panggilannya. Panggilan telepon kerja yang masuk ke akun panggilan kerja
|
||||||
|
dibedakan dari telepon pribadi yang masuk
|
||||||
|
ke akun panggilan pribadi.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Penelepon harus memeriksa tanda baru
|
||||||
|
<code>android.telecom.Call.PROPERTY_WORK_CALL</code> untuk menentukan apakah telepon tersebut merupakan
|
||||||
|
telepon kerja. Jika merupakan telepon kerja, penelepon harus menunjukkannya,
|
||||||
|
misalnya dengan menambahkan lencana kerja.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="lock-wp">Mengunci Wallpaper</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pembatasan pengguna baru (<code>DISALLOW_SET_WALLPAPER</code>) mencegah
|
||||||
|
pengguna mengubah wallpaper mereka. Pemilik perangkat atau pemilik profil tetap bisa
|
||||||
|
mengubah wallpaper, namun mereka hanya bisa mengubah wallpaper
|
||||||
|
untuk pengguna atau profil yang mereka kontrol. Misalnya, pemilik profil tidak bisa mengubah
|
||||||
|
wallpaper pengguna induk, namun pemilik profil utama di profil utama atau
|
||||||
|
pemilik perangkat bisa melakukannya. Pemilik profil atau pemilik perangkat yang ingin mengubah
|
||||||
|
wallpapernya harus memeriksa apakah pengguna atau profil
|
||||||
|
yang mereka kelola memiliki wallpaper ({@link android.app.WallpaperManager#isWallpaperSupported
|
||||||
|
isWallpaperSupported()}) dan apakah mereka diperbolehkan untuk mengubahnya (dengan metode
|
||||||
|
baru<code>WallpaperManager.isWallpaperSettingAllowed()</code>)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="lock-user-icon">Mengunci Ikon Pengguna</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pembatasan pengguna baru (<code>DISALLOW_SET_USER_ICON</code>) mencegah
|
||||||
|
pengguna mengubah ikon pengguna mereka. Pemilik perangkat atau pemilik profil pengguna
|
||||||
|
tetap bisa mengubah ikon. Akan tetapi, pemilik profil hanya bisa mengubah ikon
|
||||||
|
pengguna untuk profil yang dikontrolnya.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="health-monitoring">Pemantauan Kesehatan Perangkat</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemilik perangkat atau pemilik profil bisa menggunakan antarmuka
|
||||||
|
<code>HardwarePropertiesManager</code> baru untuk mengambil informasi
|
||||||
|
tentang kesehatan perangkat, seperti suhu CPU atau GPU dan penggunaan CPU. Antarmuka pemantauan
|
||||||
|
baru ini khususnya berguna untuk memantau berjalannya perangkat yang tidak diawasi
|
||||||
|
di lokasi yang jauh.
|
||||||
|
</p>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Optimisasi Latar Belakang
|
page.title=Optimalisasi Latar Belakang
|
||||||
page.metaDescription=Pembatasan baru untuk siaran implisit.
|
page.metaDescription=Pembatasan baru pada siaran implisit.
|
||||||
page.keywords="android N", "implicit broadcasts", "job scheduler"
|
page.keywords="android N", "implicit broadcasts", "job scheduler"
|
||||||
page.image=images/cards/card-nyc_2x.jpg
|
page.image=images/cards/card-nyc_2x.jpg
|
||||||
|
|
||||||
@@ -49,39 +49,41 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
<p>
|
<p>
|
||||||
Proses latar belakang bisa menguras memori dan baterai. Misalnya, sebuah
|
Proses latar belakang bisa menguras memori dan baterai. Misalnya, sebuah
|
||||||
siaran implisit dapat memulai banyak proses latar belakang yang telah didaftarkan
|
siaran implisit dapat memulai banyak proses latar belakang yang telah didaftarkan
|
||||||
untuk mendengarkannya, sekalipun proses-proses itu mungkin tidak melakukan banyak pekerjaan. Ini bisa
|
untuk mendengarkannya, sekalipun proses-proses itu mungkin tidak melakukan banyak pekerjaan. Hal ini bisa
|
||||||
berdampak besar pada kinerja perangkat dan pengalaman pengguna.
|
berdampak besar pada kinerja perangkat dan pengalaman pengguna.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Untuk meminimalkan masalah ini, N Developer Preview menerapkan pembatasan
|
Untuk meringankan masalah ini, Android N menerapkan pembatasan
|
||||||
berikut:
|
berikut:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Aplikasi yang menargetkan Preview tidak menerima siaran {@link
|
<li>Aplikasi yang menargetkan Pratinjau tidak menerima siaran {@link
|
||||||
android.net.ConnectivityManager#CONNECTIVITY_ACTION} jika mereka
|
android.net.ConnectivityManager#CONNECTIVITY_ACTION} jika mereka
|
||||||
mendaftar untuk menerimanya dalam manifes mereka. Aplikasi yang berjalan di latar depan
|
mendaftar untuk menerimanya dalam manifes mereka. Aplikasi yang berjalan tetap
|
||||||
tetap bisa mendengarkan {@code CONNECTIVITY_CHANGE} pada thread utama mereka dengan
|
bisa mendengarkan {@code CONNECTIVITY_CHANGE} pada thread utama mereka dengan mendaftarkan
|
||||||
mendaftarkan {@link android.content.BroadcastReceiver} pada {@link
|
{@link android.content.BroadcastReceiver} pada {@link
|
||||||
android.content.Context#registerReceiver Context.registerReceiver()}.
|
android.content.Context#registerReceiver Context.registerReceiver()}.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Aplikasi tidak bisa mengirim atau menerima siaran {@link
|
<li>Aplikasi tidak bisa mengirim atau menerima siaran {@link
|
||||||
android.hardware.Camera#ACTION_NEW_PICTURE} atau {@link
|
android.hardware.Camera#ACTION_NEW_PICTURE} atau {@link
|
||||||
android.hardware.Camera#ACTION_NEW_VIDEO}. Optimisasi ini
|
android.hardware.Camera#ACTION_NEW_VIDEO}. Optimalisasi ini
|
||||||
memengaruhi semua aplikasi, bukan hanya aplikasi yang menargetkan Preview.
|
memengaruhi semua aplikasi, tidak hanya aplikasi yang menargetkan Pratinjau.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
Jika aplikasi Anda menggunakan intent ini, Anda harus membuang dependensi padanya
|
||||||
|
secepat mungkin agar Anda bisa menargetkan perangkat Android N dengan benar.
|
||||||
Kerangka kerja Android menyediakan beberapa solusi untuk mengurangi kebutuhan akan
|
Kerangka kerja Android menyediakan beberapa solusi untuk mengurangi kebutuhan akan
|
||||||
siaran implisit ini. Misalnya, {@link android.app.job.JobScheduler}
|
siaran implisit ini. Misalnya, {@link android.app.job.JobScheduler}
|
||||||
dan<a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager">
|
dan<a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager">
|
||||||
{@code GcmNetworkManager}</a> menyediakan mekanisme yang tangguh untuk menjadwalkan operasi
|
{@code GcmNetworkManager}</a> menyediakan mekanisme yang tangguh untuk menjadwalkan operasi
|
||||||
jaringan bila kondisi yang ditetapkan, seperti koneksi ke jaringan
|
jaringan bila kondisi yang ditetapkan, seperti koneksi ke jaringan
|
||||||
berbiaya tetap, terpenuhi. Anda sekarang juga bisa menggunakan {@link android.app.job.JobScheduler}
|
berbiaya tetap, terpenuhi. Anda sekarang juga bisa menggunakan {@link android.app.job.JobScheduler}
|
||||||
untuk bereaksi terhadap perubahan penyedia konten. Objek {@link android.app.job.JobInfo}
|
untuk bereaksi terhadap perubahan penyedia materi. Objek {@link android.app.job.JobInfo}
|
||||||
membungkus parameter yang digunakan {@link android.app.job.JobScheduler}
|
membungkus parameter yang digunakan {@link android.app.job.JobScheduler}
|
||||||
untuk menjadwalkan pekerjaan Anda. Bila syarat-syarat pekerjaan sudah terpenuhi, sistem
|
untuk menjadwalkan pekerjaan Anda. Bila syarat-syarat pekerjaan sudah terpenuhi, sistem
|
||||||
akan mengeksekusi pekerjaan ini pada {@link android.app.job.JobService} aplikasi Anda.
|
akan mengeksekusi pekerjaan ini pada {@link android.app.job.JobService} aplikasi Anda.
|
||||||
@@ -98,20 +100,20 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Aplikasi yang menargetkan N Developer Preview tidak menerima siaran {@link
|
Aplikasi yang menargetkan Android N tidak menerima siaran {@link
|
||||||
android.net.ConnectivityManager#CONNECTIVITY_ACTION} jika mereka
|
android.net.ConnectivityManager#CONNECTIVITY_ACTION} jika mereka
|
||||||
mendaftar untuk menerimanya dalam manifes mereka, dan proses yang bergantung pada siaran
|
mendaftar untuk menerimanya dalam manifes mereka, dan proses yang bergantung pada siaran
|
||||||
ini tidak akan dimulai. Hal ini bisa menimbulkan masalah bagi aplikasi yang ingin
|
ini tidak akan dimulai. Hal ini bisa menimbulkan masalah bagi aplikasi yang ingin
|
||||||
mendengarkan perubahan jaringan atau melakukan aktivitas jaringan dalam jumlah besar bila perangkat
|
memantau perubahan jaringan atau melakukan aktivitas jaringan dalam jumlah besar bila perangkat
|
||||||
menghubungkan ke jaringan berbiaya tetap. Beberapa solusi untuk menyiasati pembatasan
|
menghubungkan ke jaringan berbiaya tetap. Beberapa solusi untuk menyiasati pembatasan
|
||||||
ini sudah ada dalam kerangka kerja Android, namun pemilihan solusi
|
ini sudah ada dalam kerangka kerja Android, namun pemilihan solusi
|
||||||
yang tepat bergantung pada apa yang ingin dicapai oleh aplikasi Anda.
|
yang tepat bergantung pada apa yang ingin dicapai oleh aplikasi Anda.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="note">
|
<p class="note">
|
||||||
<strong>Catatan:</strong> Sebuah {@link android.content.BroadcastReceiver} yang didaftarkan dengan
|
<strong>Catatan:</strong> Sebuah {@link android.content.BroadcastReceiver} yang mendaftar pada
|
||||||
{@link android.content.Context#registerReceiver Context.registerReceiver()}
|
{@link android.content.Context#registerReceiver Context.registerReceiver()}
|
||||||
akan terus menerima siaran ini saat aplikasi berada di latar depan.
|
akan terus menerima siaran ini saat aplikasi berjalan.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="sched-jobs">
|
<h3 id="sched-jobs">
|
||||||
@@ -120,12 +122,12 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Saat menggunakan kelas {@link android.app.job.JobInfo.Builder JobInfo.Builder}
|
Saat menggunakan kelas {@link android.app.job.JobInfo.Builder JobInfo.Builder}
|
||||||
untuk membuat objek {@link android.app.job.JobInfo} Anda, terapkan metode {@link
|
untuk membangun objek {@link android.app.job.JobInfo} Anda, terapkan metode {@link
|
||||||
android.app.job.JobInfo.Builder#setRequiredNetworkType
|
android.app.job.JobInfo.Builder#setRequiredNetworkType
|
||||||
setRequiredNetworkType()} dan teruskan {@link android.app.job.JobInfo
|
setRequiredNetworkType()} dan teruskan {@link android.app.job.JobInfo
|
||||||
JobInfo.NETWORK_TYPE_UNMETERED} sebagai parameter pekerjaan. Contoh kode berikut
|
JobInfo.NETWORK_TYPE_UNMETERED} sebagai parameter pekerjaan. Contoh kode berikut
|
||||||
menjadwalkan layanan yang akan dijalankan bila perangkat menghubungkan ke jaringan
|
menjadwalkan layanan yang akan dijalankan ketika perangkat terhubung ke jaringan
|
||||||
berbiaya tetap dan saat mengisi baterai:
|
berbiaya tetap dan dikenai biaya:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
@@ -152,8 +154,8 @@ public static void scheduleJob(Context context) {
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Aplikasi yang menggunakan layanan GMSCore, dan menargetkan Android 5.0 (API tingkat 21)
|
Aplikasi yang menggunakan layanan GMSCore, dan menargetkan Android 5.0 (API level 21)
|
||||||
atau lebih rendah, bisa menggunakan <a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager">
|
atau yang lebih rendah, bisa menggunakan <a href="https://developers.google.com/android/reference/com/google/android/gms/gcm/GcmNetworkManager">
|
||||||
{@code GcmNetworkManager}</a> dan menetapkan {@code Task.NETWORK_STATE_UNMETERED}.
|
{@code GcmNetworkManager}</a> dan menetapkan {@code Task.NETWORK_STATE_UNMETERED}.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -162,11 +164,10 @@ public static void scheduleJob(Context context) {
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Aplikasi yang berjalan di latar depan tetap bisa mendengarkan {@code
|
Aplikasi yang berjalan tetap bisa memantau {@code CONNECTIVITY_CHANGE} dengan
|
||||||
CONNECTIVITY_CHANGE} dengan {@link
|
{@link android.content.BroadcastReceiver} yang telah didaftarkan. Akan tetapi, {@link
|
||||||
android.content.BroadcastReceiver} yang didaftarkan. Akan tetapi, {@link
|
|
||||||
android.net.ConnectivityManager} API menyediakan metode yang lebih tangguh untuk meminta
|
android.net.ConnectivityManager} API menyediakan metode yang lebih tangguh untuk meminta
|
||||||
callback hanya bila syarat jaringan yang ditetapkan terpenuhi.
|
callback hanya bila persyaratan jaringan yang ditetapkan terpenuhi.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -194,13 +195,13 @@ public static void scheduleJob(Context context) {
|
|||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Di N Developer Preview, aplikasi tidak dapat mengirim atau menerima siaran {@link
|
Di Android N, aplikasi tidak bisa mengirim atau menerima siaran {@link
|
||||||
android.hardware.Camera#ACTION_NEW_PICTURE} atau {@link
|
android.hardware.Camera#ACTION_NEW_PICTURE} atau {@link
|
||||||
android.hardware.Camera#ACTION_NEW_VIDEO}. Pembatasan ini membantu
|
android.hardware.Camera#ACTION_NEW_VIDEO}. Pembatasan ini membantu
|
||||||
meminimalkan dampak negatif terhadap kinerja dan pengalaman pengguna bila beberapa aplikasi harus
|
meringankan dampak terhadap kinerja dan pengalaman pengguna bila beberapa aplikasi harus
|
||||||
aktif untuk memproses gambar atau video baru. N Developer Preview
|
aktif untuk memproses gambar atau video baru. Android N
|
||||||
menambahkan {@link android.app.job.JobInfo} dan {@link
|
memperluas {@link android.app.job.JobInfo} dan {@link
|
||||||
android.app.job.JobParameters} untuk memberikan solusi alternatif.
|
android.app.job.JobParameters} untuk menyediakan solusi alternatif.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="new-jobinfo">
|
<h3 id="new-jobinfo">
|
||||||
@@ -208,7 +209,7 @@ public static void scheduleJob(Context context) {
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Untuk memicu pekerjaan saat perubahan URI konten, N Developer Preview menambahkan
|
Untuk memicu pekerjaan saat perubahan URI materi, Android N memperluas
|
||||||
{@link android.app.job.JobInfo} API dengan metode berikut:
|
{@link android.app.job.JobInfo} API dengan metode berikut:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -218,7 +219,7 @@ public static void scheduleJob(Context context) {
|
|||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
Membungkus parameter yang diperlukan untuk memicu pekerjaan saat perubahan URI konten.
|
Membungkus parameter yang diperlukan untuk memicu pekerjaan saat perubahan URI materi.
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
@@ -228,9 +229,9 @@ public static void scheduleJob(Context context) {
|
|||||||
<dd>
|
<dd>
|
||||||
Meneruskan objek {@code TriggerContentUri} ke {@link
|
Meneruskan objek {@code TriggerContentUri} ke {@link
|
||||||
android.app.job.JobInfo}. Sebuah {@link android.database.ContentObserver}
|
android.app.job.JobInfo}. Sebuah {@link android.database.ContentObserver}
|
||||||
akan memantau URI konten yang dibungkus. Jika ada beberapa objek {@code
|
akan memantau URI materi yang dibungkus. Jika terdapat beberapa objek {@code
|
||||||
TriggerContentUri} yang dikaitkan dengan pekerjaan, sistem akan memberikan sebuah
|
TriggerContentUri} yang berhubungan dengan pekerjaan, sistem memberikan sebuah
|
||||||
callback sekalipun itu melaporkan perubahan di salah satu URI konten saja.
|
callback bahkan jika itu hanya melaporkan perubahan pada salah satu URI materi.
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
@@ -246,14 +247,14 @@ public static void scheduleJob(Context context) {
|
|||||||
<strong>Catatan:</strong> {@code TriggerContentUri()} tidak bisa digunakan
|
<strong>Catatan:</strong> {@code TriggerContentUri()} tidak bisa digunakan
|
||||||
bersama-sama dengan {@link android.app.job.JobInfo.Builder#setPeriodic
|
bersama-sama dengan {@link android.app.job.JobInfo.Builder#setPeriodic
|
||||||
setPeriodic()} atau {@link android.app.job.JobInfo.Builder#setPersisted
|
setPeriodic()} atau {@link android.app.job.JobInfo.Builder#setPersisted
|
||||||
setPersisted()}. Untuk terus memantau perubahan konten, jadwalkan
|
setPersisted()}. Untuk terus memantau perubahan materi, jadwalkan
|
||||||
{@link android.app.job.JobInfo} baru sebelum {@link
|
{@link android.app.job.JobInfo} baru sebelum {@link
|
||||||
android.app.job.JobService} aplikasi selesai menangani callback terbaru.
|
android.app.job.JobService} aplikasi selesai menangani callback terbaru.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Kode contoh berikut menjadwalkan pekerjaan yang akan dipicu bila sistem melaporkan
|
Kode contoh berikut menjadwalkan pekerjaan yang akan dipicu bila sistem melaporkan
|
||||||
perubahan ke URI konten, {@code MEDIA_URI}:
|
perubahan ke URI materi, {@code MEDIA_URI}:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
@@ -266,13 +267,13 @@ public static void scheduleJob(Context context) {
|
|||||||
MY_BACKGROUND_JOB,
|
MY_BACKGROUND_JOB,
|
||||||
new ComponentName(context, MediaContentJob.class));
|
new ComponentName(context, MediaContentJob.class));
|
||||||
builder.addTriggerContentUri(
|
builder.addTriggerContentUri(
|
||||||
new JobInfo.TriggerContentUri(MEDIA_URI,
|
new JobInfo.TriggerContentUri(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
|
||||||
JobInfo.TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS));
|
JobInfo.TriggerContentUri.FLAG_NOTIFY_FOR_DESCENDANTS));
|
||||||
js.schedule(builder.build());
|
js.schedule(builder.build());
|
||||||
}
|
}
|
||||||
</pre>
|
</pre>
|
||||||
<p>
|
<p>
|
||||||
Bila sistem melaporkan perubahan dalam URI konten yang ditetapkan, aplikasi Anda
|
Bila sistem melaporkan perubahan dalam URI materi yang ditetapkan, aplikasi Anda
|
||||||
akan menerima callback dan objek {@link android.app.job.JobParameters}
|
akan menerima callback dan objek {@link android.app.job.JobParameters}
|
||||||
akan diteruskan ke metode {@link android.app.job.JobService#onStartJob onStartJob()}
|
akan diteruskan ke metode {@link android.app.job.JobService#onStartJob onStartJob()}
|
||||||
dalam {@code MediaContentJob.class}.
|
dalam {@code MediaContentJob.class}.
|
||||||
@@ -283,8 +284,8 @@ public static void scheduleJob(Context context) {
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
N Developer Preview juga menambahkan {@link android.app.job.JobParameters} untuk
|
Android N juga memperluas {@link android.app.job.JobParameters} untuk
|
||||||
memungkinkan aplikasi Anda menerima informasi yang berguna tentang otoritas konten
|
memungkinkan aplikasi Anda menerima informasi yang berguna tentang otoritas materi
|
||||||
dan URI yang memicu pekerjaan:
|
dan URI yang memicu pekerjaan:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -305,16 +306,16 @@ public static void scheduleJob(Context context) {
|
|||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
Mengembalikan larik string otoritas konten yang telah memicu pekerjaan.
|
Mengembalikan larik string otoritas materi yang telah memicu pekerjaan.
|
||||||
Jika larik yang dikembalikan bukan {@code null}, gunakan {@code getTriggeredContentUris()}
|
Jika larik yang dikembalikan bukan {@code null}, gunakan {@code getTriggeredContentUris()}
|
||||||
untuk mengambil detail URI yang telah berubah.
|
untuk mengambil detail URI yang telah berubah.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Kode contoh berikut mengesampingkan metode {@link
|
Kode contoh berikut mengganti metode {@link
|
||||||
android.app.job.JobService#onStartJob JobService.onStartJob()} dan
|
android.app.job.JobService#onStartJob JobService.onStartJob()} dan
|
||||||
mencatat otoritas konten serta URI yang telah memicu pekerjaan:
|
mencatat otoritas materi serta URI yang telah memicu pekerjaan:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
@@ -353,17 +354,17 @@ public boolean onStartJob(JobParameters params) {
|
|||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Mengoptimalkan aplikasi Anda untuk berjalan pada perangkat minim memori, atau dalam kondisi
|
Mengoptimalkan aplikasi Anda untuk berjalan pada perangkat yang mempunyai memori rendah, atau dalam kondisi
|
||||||
minim memori, bisa meningkatkan kinerja dan pengalaman pengguna. Menghilangkan
|
memori rendah, dapat meningkatkan kinerja dan pengalaman pengguna. Membuang
|
||||||
dependensi pada layanan latar belakang dan penerima siaran
|
dependensi pada layanan latar belakang dan penerima siaran
|
||||||
implisit yang terdaftar secara statis bisa membantu aplikasi Anda berjalan lebih baik pada perangkat demikian. Meskipun
|
implisit yang terdaftar secara statis bisa membantu aplikasi Anda berjalan lebih baik pada perangkat demikian. Meskipun
|
||||||
N Developer Preview telah mengambil langkah-langkah untuk mengurangi sebagian masalah ini, Anda disarankan
|
Android N telah mengambil langkah-langkah untuk mengurangi sebagian masalah ini, Anda disarankan
|
||||||
agar mengoptimalkan aplikasi untuk berjalan tanpa menggunakan
|
agar mengoptimalkan aplikasi untuk berjalan tanpa menggunakan
|
||||||
proses latar belakang ini seluruhnya.
|
proses latar belakang ini sama sekali.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
N Developer Preview memperkenalkan beberapa tambahan perintah <a href="{@docRoot}tools/help/adb.html">Android Debug Bridge (ADB)</a> yang
|
Android N memperkenalkan beberapa tambahan perintah <a href="{@docRoot}tools/help/adb.html">Android Debug Bridge (ADB)</a> yang
|
||||||
bisa Anda gunakan untuk menguji perilaku aplikasi dengan proses latar belakang dinonaktifkan:
|
bisa Anda gunakan untuk menguji perilaku aplikasi dengan proses latar belakang dinonaktifkan:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -374,7 +375,7 @@ public boolean onStartJob(JobParameters params) {
|
|||||||
|
|
||||||
<li style="list-style: none; display: inline">
|
<li style="list-style: none; display: inline">
|
||||||
<pre class="no-pretty-print">
|
<pre class="no-pretty-print">
|
||||||
{@code $ adb shell cmd appops set RUN_IN_BACKGROUND ignore}
|
{@code $ adb shell cmd appops set <package> RUN_IN_BACKGROUND ignore}
|
||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@@ -384,7 +385,7 @@ public boolean onStartJob(JobParameters params) {
|
|||||||
|
|
||||||
<li style="list-style: none; display: inline">
|
<li style="list-style: none; display: inline">
|
||||||
<pre class="no-pretty-print">
|
<pre class="no-pretty-print">
|
||||||
{@code $ adb shell cmd appops set RUN_IN_BACKGROUND allow}
|
{@code $ adb shell cmd appops set <package> RUN_IN_BACKGROUND allow}
|
||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
234
docs/html-intl/intl/in/preview/features/data-saver.jd
Normal file
@@ -0,0 +1,234 @@
|
|||||||
|
page.title=Data Saver
|
||||||
|
metaDescription=Optimalisasi penggunaan data yang diaktifkan pengguna.
|
||||||
|
page.keywords="android N", "data usage", "metered network"
|
||||||
|
page.image=images/cards/card-nyc_2x.jpg
|
||||||
|
@jd:body
|
||||||
|
|
||||||
|
<div id="qv-wrapper">
|
||||||
|
<div id="qv">
|
||||||
|
<h2>
|
||||||
|
Dalam dokumen ini
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<a href="#status">Memeriksa Preferensi Data Saver</a>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<a href="#request-whitelist">Meminta izin daftar putih</a>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#monitor-changes">Memantau Perubahan pada Preferensi
|
||||||
|
Data Saver</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="#testing">Menguji dengan Perintah Android Debug Bridge</a>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Selama penggunaan ponsel cerdas, biaya paket data seluler bisa saja
|
||||||
|
melebihi harga perangkat itu sendiri. Di N Developer Preview, pengguna bisa
|
||||||
|
mengaktifkan Data Saver berdasarkan lingkup perangkat untuk menghemat data, baik saat
|
||||||
|
roaming, mendekati akhir siklus penagihan, atau pada paket data prabayar kecil.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Bila pengguna mengaktifkan Data Saver di <strong>Settings</strong> dan perangkat
|
||||||
|
berada dalam jaringan berkuota, sistem akan memblokir penggunaan data latar belakang dan memberi tahu
|
||||||
|
aplikasi untuk menghemat penggunaan data latar depan bila memungkinkan. Pengguna bisa
|
||||||
|
memasukkan aplikasi tertentu ke daftar putih untuk memungkinkan penggunaan data berkuota bila Data
|
||||||
|
Saver diaktifkan.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
N Developer Preview memperluas {@link android.net.ConnectivityManager}
|
||||||
|
API untuk menyediakan cara pada aplikasi untuk <a href="#status">menerima preferensi Data Saver
|
||||||
|
pengguna</a> dan <a href="#monitor-changes">memantau perubahan
|
||||||
|
preferensi</a>. Hal ini dianggap praktik terbaik bagi aplikasi untuk memeriksa apakah
|
||||||
|
pengguna telah mengaktifkan DataSaver dan berusaha membatasi penggunaan data latar depan dan
|
||||||
|
data latar belakang.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="status">
|
||||||
|
Memeriksa Preferensi Data Saver
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Di N Developer Preview, aplikasi bisa menggunakan {@link
|
||||||
|
android.net.ConnectivityManager} API untuk menentukan pembatasan penggunaan data
|
||||||
|
apa yang sedang diterapkan. Metode {@code getRestrictBackgroundStatus()}
|
||||||
|
akan mengembalikan salah satu dari nilai berikut:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
{@code RESTRICT_BACKGROUND_STATUS_DISABLED}
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Data Saver dinonaktifkan.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
{@code RESTRICT_BACKGROUND_STATUS_ENABLED}
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Pengguna telah mengaktifkan Data Saver untuk aplikasi ini. Aplikasi harus berusaha membatasi
|
||||||
|
penggunaan data di latar depan dan dengan halus menangani pembatasan penggunaan
|
||||||
|
data latar belakang.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
{@code RESTRICT_BACKGROUND_STATUS_WHITELISTED}
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Pengguna telah mengaktifkan Data Saver namun aplikasi telah dimasukkan dalam daftar putih. Aplikasi harus
|
||||||
|
tetap berusaha membatasi penggunaan data latar belakang dan latar depan.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Hal ini dianggap praktik terbaik untuk membatasi penggunaan data bila perangkat
|
||||||
|
terhubung ke jaringan berkuota, meskipun Data Saver telah dinonaktifkan atau aplikasi
|
||||||
|
telah dimasukkan dalam daftar putih. Kode contoh berikut menggunakan {@link
|
||||||
|
android.net.ConnectivityManager#isActiveNetworkMetered
|
||||||
|
ConnectivityManager.isActiveNetworkMetered()} dan {@code
|
||||||
|
ConnectivityManager.getRestrictBackgroundStatus()} untuk menentukan berapa banyak data
|
||||||
|
yang harus digunakan aplikasi:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
ConnectivityManager connMgr = (ConnectivityManager)
|
||||||
|
getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
|
// Checks if the device is on a metered network
|
||||||
|
if (connMgr.isActiveNetworkMetered()) {
|
||||||
|
// Checks user’s Data Saver settings.
|
||||||
|
switch (connMgr.getRestrictBackgroundStatus()) {
|
||||||
|
case RESTRICT_BACKGROUND_STATUS_ENABLED:
|
||||||
|
// Background data usage is blocked for this app. Wherever possible,
|
||||||
|
// the app should also use less data in the foreground.
|
||||||
|
|
||||||
|
case RESTRICT_BACKGROUND_STATUS_WHITELISTED:
|
||||||
|
// The app is whitelisted. Wherever possible,
|
||||||
|
// the app should use less data in the foreground and background.
|
||||||
|
|
||||||
|
case RESTRICT_BACKGROUND_STATUS_DISABLED:
|
||||||
|
// Data Saver is disabled. Since the device is connected to a
|
||||||
|
// metered network, the app should use less data wherever possible.
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// The device is not on a metered network.
|
||||||
|
// Use data as required to perform syncs, downloads, and updates.
|
||||||
|
}
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h3 id="request-whitelist">
|
||||||
|
Meminta izin daftar putih
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Jika aplikasi Anda perlu menggunakan data di latar belakang, aplikasi bisa meminta izin
|
||||||
|
daftar putih dengan mengirim
|
||||||
|
<code>Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS</code>
|
||||||
|
yang mengandung URI dari nama paket aplikasi Anda: misalnya,
|
||||||
|
<code>package:MY_APP_ID</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Mengirim intent dan URI akan membuka aplikasi <strong>Settings</strong> dan
|
||||||
|
menampilkan setelan penggunaan data untuk aplikasi Anda. Pengguna nanti bisa memutuskan apakah akan
|
||||||
|
mengaktifkan data latar belakang untuk aplikasi Anda. Sebelum Anda mengirim intent ini, sebaiknya
|
||||||
|
tanyakan kepada pengguna terlebih dahulu apakah mereka ingin membuka aplikasi
|
||||||
|
<strong>Settings</strong> untuk keperluan mengaktifkan penggunaan
|
||||||
|
data latar belakang.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="monitor-changes">
|
||||||
|
Memantau Perubahan pada Preferensi Data Saver
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Aplikasi bisa memantau perubahan pada preferensi Data Saver dengan membuat {@link
|
||||||
|
android.content.BroadcastReceiver} untuk memantau {@code
|
||||||
|
ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED} dan secara dinamis
|
||||||
|
mendaftarkan penerima pada {@link android.content.Context#registerReceiver
|
||||||
|
Context.registerReceiver()}. Bila menerima siaran ini, aplikasi harus
|
||||||
|
<a href="#status">memeriksa apakah preferensi Data Saver baru memengaruhi
|
||||||
|
izinnya</a> dengan memanggil {@code
|
||||||
|
ConnectivityManager.getRestrictBackgroundStatus()}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="note">
|
||||||
|
<strong>Catatan:</strong> Sistem hanya mengirim siaran ini ke aplikasi yang
|
||||||
|
secara dinamis mendaftar padanya dengan {@link
|
||||||
|
android.content.Context#registerReceiver Context.registerReceiver()}. Aplikasi
|
||||||
|
yang mendaftar untuk menerima siaran ini dalam manifes mereka
|
||||||
|
tidak akan menerimanya.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="testing">
|
||||||
|
Menguji dengan Perintah Android Debug Bridge
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<a href="{@docRoot}tools/help/adb.html">Android Debug Bridge (ADB)</a>
|
||||||
|
menyediakan beberapa perintah yang bisa Anda gunakan untuk memeriksa dan
|
||||||
|
mengonfigurasi izin jaringan:
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
<code>$ adb shell dumpsys netpolicy</code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Menghasilkan laporan berisi setelan pembatasan jaringan latar belakang
|
||||||
|
global saat ini, UID paket saat ini di daftar putih, dan izin jaringan
|
||||||
|
untuk paket yang diketahui lainnya.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
<code>$ adb shell cmd netpolicy</code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Menampilkan daftar lengkap dari perintah Network Policy Manager (netpolicy).
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
<code>$ adb shell cmd netpolicy set restrict-background
|
||||||
|
<boolean></code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Mengaktifkan atau menonaktifkan mode Data Saver saat meneruskan <code>true</code> atau
|
||||||
|
<code>false</code>, masing-masing.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
<code>$ adb shell cmd netpolicy add restrict-background-whitelist
|
||||||
|
<UID></code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Menambahkan UID paket tertentu ke daftar putih untuk mengizinkan penggunaan data berkuota
|
||||||
|
di latar belakang.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
<code>$ adb shell cmd netpolicy remove restrict-background-whitelist
|
||||||
|
<UID></code>
|
||||||
|
</dt>
|
||||||
|
|
||||||
|
<dd>
|
||||||
|
Membuang UID paket tertentu dari daftar putih untuk memblokir
|
||||||
|
penggunaan data berkuota di latar belakang saat Data Saver diaktifkan.
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Direct Boot
|
page.title=Direct Boot
|
||||||
page.keywords=preview,sdk,direct boot
|
page.keywords=pratinjau,sdk,direct boot
|
||||||
page.tags=androidn
|
page.tags=androidn
|
||||||
page.image=images/cards/card-nyc_2x.jpg
|
page.image=images/cards/card-nyc_2x.jpg
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ untuk aplikasi yang perlu dijalankan selama mode Direct Boot antara lain:</p>
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Aplikasi yang telah menjadwalkan pemberitahuan, seperti aplikasi
|
<li>Aplikasi yang telah menjadwalkan pemberitahuan, seperti aplikasi
|
||||||
jam alarm.</li>
|
beker.</li>
|
||||||
<li>Aplikasi yang menyediakan pemberitahuan pengguna yang penting, seperti aplikasi SMS.</li>
|
<li>Aplikasi yang menyediakan pemberitahuan pengguna yang penting, seperti aplikasi SMS.</li>
|
||||||
<li>Aplikasi yang menyediakan layanan aksesibilitas, seperti TalkBack.</li>
|
<li>Aplikasi yang menyediakan layanan aksesibilitas, seperti TalkBack.</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -44,7 +44,7 @@ jam alarm.</li>
|
|||||||
<p>Jika aplikasi Anda perlu mengakses data saat dijalankan dalam mode Direct Boot, gunakan
|
<p>Jika aplikasi Anda perlu mengakses data saat dijalankan dalam mode Direct Boot, gunakan
|
||||||
penyimpanan yang dienkripsi dengan perangkat. Penyimpanan yang dienkripsi dengan perangkat berisi data
|
penyimpanan yang dienkripsi dengan perangkat. Penyimpanan yang dienkripsi dengan perangkat berisi data
|
||||||
yang dienkripsi dengan kunci yang hanya tersedia setelah perangkat melakukan
|
yang dienkripsi dengan kunci yang hanya tersedia setelah perangkat melakukan
|
||||||
boot yang berhasil diverifikasi.</p>
|
booting yang berhasil diverifikasi.</p>
|
||||||
|
|
||||||
<p>Untuk data yang harus dienkripsi dengan kunci yang dikaitkan dengan kredensial
|
<p>Untuk data yang harus dienkripsi dengan kunci yang dikaitkan dengan kredensial
|
||||||
pengguna, seperti PIN atau kata sandi, gunakan penyimpanan yang dienkripsi dengan kredensial.
|
pengguna, seperti PIN atau kata sandi, gunakan penyimpanan yang dienkripsi dengan kredensial.
|
||||||
@@ -58,8 +58,8 @@ penyimpanan yang dienkripsi dengan kredensial.</p>
|
|||||||
<p>Aplikasi harus mendaftarkan komponennya pada sistem agar
|
<p>Aplikasi harus mendaftarkan komponennya pada sistem agar
|
||||||
bisa berjalan selama mode Direct Boot atau mengakses
|
bisa berjalan selama mode Direct Boot atau mengakses
|
||||||
penyimpanan yang dienkripsi dengan perangkat. Aplikasi mendaftar pada sistem dengan menandai komponen sebagai
|
penyimpanan yang dienkripsi dengan perangkat. Aplikasi mendaftar pada sistem dengan menandai komponen sebagai
|
||||||
<i>peka enkripsi</i>. Untuk menandai komponen Anda sebagai peka enkripsi, atur atribut
|
<i>peka enkripsi</i>. Untuk menandai komponen Anda sebagai peka enkripsi, setel atribut
|
||||||
<code>android:encryptionAware</code> ke true dalam manifes Anda.<p>
|
<code>android:directBootAware</code> ke true dalam manifes Anda.<p>
|
||||||
|
|
||||||
<p>Komponen yang peka enkripsi bisa mendaftar untuk menerima pesan siaran
|
<p>Komponen yang peka enkripsi bisa mendaftar untuk menerima pesan siaran
|
||||||
<code>LOCKED_BOOT_COMPLETED</code> dari
|
<code>LOCKED_BOOT_COMPLETED</code> dari
|
||||||
@@ -72,8 +72,8 @@ dijalankan selama mode Direct Boot, seperti memicu alarm yang terjadwal.</p>
|
|||||||
filter intent untuk <code>LOCKED_BOOT_COMPLETED</code>, dalam manifes aplikasi:</p>
|
filter intent untuk <code>LOCKED_BOOT_COMPLETED</code>, dalam manifes aplikasi:</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<receiever
|
<receiver
|
||||||
android:encryptionAware="true" >
|
android:directBootAware="true" >
|
||||||
...
|
...
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
|
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
|
||||||
@@ -88,13 +88,13 @@ penyimpanan yang dienkripsi dengan perangkat serta penyimpanan yang dienkripsi d
|
|||||||
|
|
||||||
<p>Untuk mengakses penyimpanan yang dienkripsi dengan perangkat, buat instance
|
<p>Untuk mengakses penyimpanan yang dienkripsi dengan perangkat, buat instance
|
||||||
{@link android.content.Context} kedua dengan memanggil
|
{@link android.content.Context} kedua dengan memanggil
|
||||||
<code>Context.createDeviceEncryptedStorageContext()</code>. Semua panggilan
|
<code>Context.createDeviceProtectedStorageContext()</code>. Semua panggilan
|
||||||
API penyimpanan yang dibuat menggunakan konteks ini akan mengakses penyimpanan yang dienkripsi dengan perangkat. Contoh
|
API penyimpanan yang dibuat menggunakan konteks ini mengakses penyimpanan yang dienkripsi dengan perangkat. Contoh
|
||||||
berikut mengakses penyimpanan yang dienkripsi dengan perangkat dan membuka file data aplikasi
|
berikut mengakses penyimpanan yang dienkripsi dengan perangkat dan membuka file data aplikasi
|
||||||
yang ada:</p>
|
yang ada:</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
Context directBootContext = Context.createDeviceEncryptedStorageContext();
|
Context directBootContext = appContext.createDeviceProtectedStorageContext();
|
||||||
// Access appDataFilename that lives in device encrypted storage
|
// Access appDataFilename that lives in device encrypted storage
|
||||||
FileInputStream inStream = directBootContext.openFileInput(appDataFilename);
|
FileInputStream inStream = directBootContext.openFileInput(appDataFilename);
|
||||||
// Use inStream to read content...
|
// Use inStream to read content...
|
||||||
@@ -112,23 +112,23 @@ mode Direct Boot, gunakan penyimpanan yang dienkripsi dengan kredensial.</p>
|
|||||||
mengakses penyimpanan yang dienkripsi dengan kredensial dan menggunakan layanan sistem biasa yang
|
mengakses penyimpanan yang dienkripsi dengan kredensial dan menggunakan layanan sistem biasa yang
|
||||||
bergantung pada kredensial pengguna.</p>
|
bergantung pada kredensial pengguna.</p>
|
||||||
|
|
||||||
<p>Agar diberi tahu bila pengguna membuka kunci perangkat setelah reboot,
|
<p>Agar diberi tahu bila pengguna membuka kunci perangkat setelah boot ulang,
|
||||||
daftarkan {@link android.content.BroadcastReceiver} dari komponen yang berjalan
|
daftarkan {@link android.content.BroadcastReceiver} dari komponen yang berjalan
|
||||||
untuk mendengarkan pesan <code>ACTION_USER_UNLOCKED</code>. Atau, Anda bisa
|
untuk mendengarkan pesan <code>ACTION_USER_UNLOCKED</code>. Atau, Anda bisa
|
||||||
menerima pesan {@link android.content.Intent#ACTION_BOOT_COMPLETED
|
menerima pesan {@link android.content.Intent#ACTION_BOOT_COMPLETED
|
||||||
ACTION_BOOT_COMPLETED} yang ada, yang sekarang menunjukkan bahwa perangkat telah dihidupkan dan
|
ACTION_BOOT_COMPLETED} yang ada, yang sekarang menunjukkan bahwa perangkat telah dihidupkan dan
|
||||||
pengguna telah membuka kunci perangkat.</p>
|
pengguna telah membuka kunci perangkat.</p>
|
||||||
|
|
||||||
<p>Anda bisa langsung melakukan query apakah pengguna telah membuka kunci perangkat dengan memanggil
|
<p>Anda bisa langsung kueri apakah pengguna telah membuka kunci perangkat dengan memanggil
|
||||||
<code>UserManager.isUserUnlocked()</code>.</p>
|
<code>UserManager.isUserUnlocked()</code>.</p>
|
||||||
|
|
||||||
<h2 id="migrating">Migrasi Data yang Ada</h2>
|
<h2 id="migrating">Migrasi Data yang Ada</h2>
|
||||||
|
|
||||||
<p>Jika pengguna memperbarui perangkat mereka untuk menggunakan mode Direct Boot,
|
<p>Jika pengguna memperbarui perangkat mereka untuk menggunakan mode Direct Boot,
|
||||||
data Anda yang ada mungkin perlu dipindahkan ke penyimpanan yang dienkripsi dengan perangkat. Gunakan
|
data Anda yang ada mungkin perlu dipindahkan ke penyimpanan yang dienkripsi dengan perangkat. Gunakan
|
||||||
<code>Context.migrateSharedPreferencesFrom()</code> dan
|
<code>Context.moveSharedPreferencesFrom()</code> dan
|
||||||
<code>Context.migrateDatabaseFrom()</code> untuk memindahkan data preferensi dan
|
<code>Context.moveDatabaseFrom()</code> untuk memindahkan data preferensi dan
|
||||||
database antara penyimpanan yang dienkripsi dengan kredensial dan penyimpanan yang dienkripsi dengan perangkat.</p>
|
basis data antara penyimpanan yang dienkripsi dengan kredensial dan penyimpanan yang dienkripsi dengan perangkat.</p>
|
||||||
|
|
||||||
<p>Pertimbangkan dengan baik saat memutuskan data apa yang akan dipindahkan dari
|
<p>Pertimbangkan dengan baik saat memutuskan data apa yang akan dipindahkan dari
|
||||||
penyimpanan yang dienkripsi dengan kredensial ke penyimpanan yang dienkripsi dengan perangkat. Anda sebaiknya tidak memindahkan
|
penyimpanan yang dienkripsi dengan kredensial ke penyimpanan yang dienkripsi dengan perangkat. Anda sebaiknya tidak memindahkan
|
||||||
@@ -144,7 +144,7 @@ dua cara untuk mengaktifkan Direct Boot.</p>
|
|||||||
<p class="caution"><strong>Perhatian:</strong> Mengaktifkan Direct Boot
|
<p class="caution"><strong>Perhatian:</strong> Mengaktifkan Direct Boot
|
||||||
akan menghapus semua data pengguna pada perangkat.</p>
|
akan menghapus semua data pengguna pada perangkat.</p>
|
||||||
|
|
||||||
<p>Pada perangkat yang didukung dengan Android N terinstal, aktifkan
|
<p>Pada perangkat yang didukung dengan Android N terpasang, aktifkan
|
||||||
Direct Boot dengan melakukan salah satu hal berikut:</p>
|
Direct Boot dengan melakukan salah satu hal berikut:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
@@ -164,7 +164,7 @@ $ fastboot --wipe-and-use-fbe
|
|||||||
<p>Mode emulasi Direct Boot juga tersedia, jika Anda perlu mengganti
|
<p>Mode emulasi Direct Boot juga tersedia, jika Anda perlu mengganti
|
||||||
mode pada perangkat pengujian. Mode emulasi sebaiknya hanya digunakan selama
|
mode pada perangkat pengujian. Mode emulasi sebaiknya hanya digunakan selama
|
||||||
pengembangan dan bisa menyebabkan kehilangan data. Untuk mengaktifkan mode emulasi Direct Boot,
|
pengembangan dan bisa menyebabkan kehilangan data. Untuk mengaktifkan mode emulasi Direct Boot,
|
||||||
atur pola kunci pada perangkat, pilih "No thanks" jika ditanya mengenai
|
setel pola kunci pada perangkat, pilih "No thanks" jika ditanya mengenai
|
||||||
layar start-up aman saat menetapkan pola kunci, kemudian gunakan
|
layar start-up aman saat menetapkan pola kunci, kemudian gunakan
|
||||||
perintah shell adb berikut:</p>
|
perintah shell adb berikut:</p>
|
||||||
|
|
||||||
@@ -178,4 +178,4 @@ $ adb shell sm set-emulate-fbe true
|
|||||||
$ adb shell sm set-emulate-fbe false
|
$ adb shell sm set-emulate-fbe false
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>Menggunakan perintah ini akan menyebabkan perangkat melakukan reboot.</p>
|
<p>Menggunakan perintah ini akan menyebabkan perangkat melakukan boot ulang.</p>
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
page.title=ICU4J Android Framework API
|
page.title=ICU4J Android Framework API
|
||||||
page.tags=androidn
|
|
||||||
page.image=images/cards/card-nyc_2x.jpg
|
page.image=images/cards/card-nyc_2x.jpg
|
||||||
|
|
||||||
@jd:body
|
@jd:body
|
||||||
@@ -41,7 +40,7 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Dokumen ini diawali dengan menyediakan beberapa informasi dasar tentang level API Android
|
Dokumen ini diawali dengan menyediakan beberapa informasi dasar tentang level Android API
|
||||||
minimum yang diperlukan untuk mendukung pustaka-pustaka ini. Kemudian dijelaskan tentang apa
|
minimum yang diperlukan untuk mendukung pustaka-pustaka ini. Kemudian dijelaskan tentang apa
|
||||||
yang perlu Anda ketahui tentang implementasi ICU4J spesifik Android. Terakhir,
|
yang perlu Anda ketahui tentang implementasi ICU4J spesifik Android. Terakhir,
|
||||||
Anda akan diberi tahu cara menggunakan ICU4J API dalam kerangka kerja Android.
|
Anda akan diberi tahu cara menggunakan ICU4J API dalam kerangka kerja Android.
|
||||||
@@ -63,7 +62,7 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
di Android N.</p>
|
di Android N.</p>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Level API Android</th>
|
<th>Level Android API</th>
|
||||||
<th>Versi ICU</th>
|
<th>Versi ICU</th>
|
||||||
<th>Versi CLDR</th>
|
<th>Versi CLDR</th>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -91,13 +90,13 @@ sumber daya</a>.</li>
|
|||||||
<code>android.icu</code> API memenuhi persyaratan Anda, maka migrasi ke
|
<code>android.icu</code> API memenuhi persyaratan Anda, maka migrasi ke
|
||||||
API kerangka kerja mengharuskan Anda untuk mengubah impor Java
|
API kerangka kerja mengharuskan Anda untuk mengubah impor Java
|
||||||
dari <code>com.ibm.icu</code> ke <code>android.icu</code>. Kemudian Anda bisa
|
dari <code>com.ibm.icu</code> ke <code>android.icu</code>. Kemudian Anda bisa
|
||||||
menghapus salinan file ICU4J dari APK.
|
membuang salinan file ICU4J dari APK.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="note">
|
<p class="note">
|
||||||
<b>Catatan</b>: API kerangka kerja ICU4J menggunakan namespace {@code android.icu}
|
<b>Catatan</b>: API kerangka kerja ICU4J menggunakan ruang nama {@code android.icu}
|
||||||
sebagai ganti {@code com.ibm.icu}. Hal ini untuk menghindari konflik
|
sebagai ganti {@code com.ibm.icu}. Hal ini untuk menghindari konflik
|
||||||
namespace di APK yang berisi pustaka {@code com.ibm.icu} sendiri.
|
ruang nama di APK yang berisi pustaka {@code com.ibm.icu} sendiri.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="migrate-from-android">
|
<h3 id="migrate-from-android">
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
<div id="qv">
|
<div id="qv">
|
||||||
<h2>Dalam dokumen ini</h2>
|
<h2>Dalam dokumen ini</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#overview">Ikhtisar</a></li>
|
<li><a href="#overview">Ringkasan</a></li>
|
||||||
<li><a href="#lifecycle">Daur Hidup Multi-Jendela</a></li>
|
<li><a href="#lifecycle">Daur Hidup Multi-Jendela</a></li>
|
||||||
<li><a href="#configuring">Mengonfigurasi Aplikasi Anda untuk Mode
|
<li><a href="#configuring">Mengonfigurasi Aplikasi Anda untuk Mode
|
||||||
Multi-Jendela</a></li>
|
Multi-Jendela</a></li>
|
||||||
@@ -17,8 +17,9 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
</ol>
|
</ol>
|
||||||
<h2>Lihat Juga</h2>
|
<h2>Lihat Juga</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a class="external-link" href="https://github.com/googlesamples/android-MultiWindowPlayground">Aplikasi contoh Multi-Window
|
<li><a class="external-link" href="https://github.com/googlesamples/android-MultiWindowPlayground">Aplikasi contoh Playground
|
||||||
Playground</a></li>
|
Multi-Jendela</a></li>
|
||||||
|
<li><a class="external-link" href="https://medium.com/google-developers/5-tips-for-preparing-for-multi-window-in-android-n-7bed803dda64">Lima Tip untuk Mempersiapkan Multi-Jendela di Android N</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -39,7 +40,7 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
layar penuh.
|
layar penuh.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="overview">Ikhtisar</h2>
|
<h2 id="overview">Ringkasan</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Android N memungkinkan beberapa aplikasi berbagi layar sekaligus. Misalnya,
|
Android N memungkinkan beberapa aplikasi berbagi layar sekaligus. Misalnya,
|
||||||
@@ -57,7 +58,7 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
|
|
||||||
<li>Pada Nexus Player yang menjalankan Android N, aplikasi bisa menempatkan diri
|
<li>Pada Nexus Player yang menjalankan Android N, aplikasi bisa menempatkan diri
|
||||||
dalam <a href="picture-in-picture.html">mode gambar-dalam-gambar</a>, yang memungkinkannya
|
dalam <a href="picture-in-picture.html">mode gambar-dalam-gambar</a>, yang memungkinkannya
|
||||||
untuk terus menampilkan konten selagi pengguna melihat-lihat atau berinteraksi dengan
|
untuk terus menampilkan materi selagi pengguna menjelajahi atau berinteraksi dengan
|
||||||
aplikasi lain.
|
aplikasi lain.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@@ -80,21 +81,21 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Jika pengguna membuka <a href="{@docRoot}guide/components/recents.html">layar
|
<li>Jika pengguna membuka <a href="{@docRoot}guide/components/recents.html">layar
|
||||||
Overview</a> dan menekan lama pada
|
Ringkasan</a> dan menekan lama pada
|
||||||
judul aktivitas, mereka bisa menyeret aktivitas itu ke bagian yang disorot pada layar
|
judul aktivitas, mereka bisa menyeret aktivitas itu ke bagian yang disorot pada layar
|
||||||
untuk menempatkan aktivitas dalam mode multi-jendela.
|
untuk menempatkan aktivitas dalam mode multi-jendela.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Jika pengguna menekan lama pada tombol Overview, perangkat akan menempatkan
|
<li>Jika pengguna menekan lama pada tombol Ringkasan, perangkat akan menempatkan
|
||||||
aktivitas saat ini dalam mode multi-jendela, dan membuka layar Overview guna
|
aktivitas saat ini dalam mode multi-jendela, dan membuka layar Ringkasan guna
|
||||||
memungkinkan pengguna memilih aktivitas lain untuk berbagi layar.
|
memungkinkan pengguna memilih aktivitas lain untuk berbagi layar.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Pengguna bisa <a href="{@docRoot}guide/topics/ui/drag-drop.html">menyeret dan
|
Pengguna bisa <a href="{@docRoot}guide/topics/ui/drag-drop.html">seret dan
|
||||||
meletakkan</a> data dari aktivitas satu ke aktivitas lain sewaktu aktivitas berbagi
|
lepas</a> data dari aktivitas satu ke aktivitas lain sewaktu aktivitas berbagi
|
||||||
layar. (Sebelumnya, pengguna hanya bisa menyeret dan meletakkan data dalam aktivitas
|
layar. (Sebelumnya, pengguna hanya bisa menyeret dan melepas data dalam aktivitas
|
||||||
tunggal.)
|
tunggal.)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -130,20 +131,22 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
<p>
|
<p>
|
||||||
Bila pengguna menempatkan aplikasi dalam mode multi-jendela, sistem akan memberi tahu
|
Bila pengguna menempatkan aplikasi dalam mode multi-jendela, sistem akan memberi tahu
|
||||||
aktivitas tersebut mengenai perubahan konfigurasi, sebagaimana ditetapkan dalam <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan
|
aktivitas tersebut mengenai perubahan konfigurasi, sebagaimana ditetapkan dalam <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan
|
||||||
Runtime</a>. Pada dasarnya, perubahan ini memiliki implikasi siklus hidup aktivitas yang sama
|
Waktu Proses</a>. Hal ini juga terjadi ketika pengguna mengubah skala aplikasi, atau menempatkan kembali aplikasi
|
||||||
|
ke mode layar penuh.
|
||||||
|
Pada dasarnya, perubahan ini memiliki implikasi daur hidup aktivitas yang sama
|
||||||
seperti saat sistem memberi tahu aplikasi bahwa perangkat telah beralih
|
seperti saat sistem memberi tahu aplikasi bahwa perangkat telah beralih
|
||||||
dari mode potret ke mode lanskap, kecuali dimensi perangkat
|
dari mode potret ke mode lanskap, kecuali dimensi perangkat
|
||||||
telah berubah sebagai ganti bertukar posisi. Seperti yang dibahas di <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan
|
telah berubah sebagai ganti bertukar posisi. Seperti yang dibahas di <a href="{@docRoot}guide/topics/resources/runtime-changes.html">Menangani Perubahan
|
||||||
Runtime</a>, aktivitas Anda bisa menangani perubahan konfigurasi itu sendiri, atau
|
Waktu Proses</a>, aktivitas Anda bisa menangani perubahan konfigurasi itu sendiri, atau
|
||||||
mengizinkan sistem memusnahkan aktivitas dan membuatnya kembali dengan dimensi
|
mengizinkan sistem memusnahkan aktivitas dan membuatnya kembali dengan dimensi
|
||||||
baru.
|
baru.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika pengguna mengubah ukuran jendela dan membuat dimensinya jadi lebih besar, sistem
|
Jika pengguna mengubah ukuran jendela dan membuat dimensinya lebih besar, sistem
|
||||||
akan mengubah ukuran aktivitas untuk menyesuaikan dengan tindakan pengguna dan mengeluarkan <a href="{@docRoot}guide/topics/resources/runtime-changes.html">perubahan runtime</a>
|
akan mengubah ukuran aktivitas untuk menyesuaikan dengan tindakan pengguna dan mengeluarkan <a href="{@docRoot}guide/topics/resources/runtime-changes.html">perubahan waktu proses</a>
|
||||||
sebagaimana diperlukan. Jika aplikasi tertinggal dari gambar di bidang yang baru saja diekspos,
|
bila diperlukan. Jika aplikasi tertinggal dibandingkan gambar di area yang baru diekspos,
|
||||||
sistem untuk sementara akan mengisi bidang tersebut dengan warna yang ditetapkan oleh atribut {@link
|
sistem untuk sementara mengisi area tersebut dengan warna yang ditetapkan oleh atribut {@link
|
||||||
android.R.attr#windowBackground windowBackground} atau dengan atribut gaya
|
android.R.attr#windowBackground windowBackground} atau dengan atribut gaya
|
||||||
<code>windowBackgroundFallback</code> secara default.
|
<code>windowBackgroundFallback</code> secara default.
|
||||||
</p>
|
</p>
|
||||||
@@ -152,10 +155,12 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika aplikasi Anda menargetkan Android N, Anda bisa mengonfigurasi bagaimana dan
|
Jika aplikasi Anda menargetkan Android N, Anda bisa mengonfigurasi bagaimana dan
|
||||||
apakah aktivitas aplikasi Anda mendukung tampilan multi-jendela. Anda bisa mengatur
|
apakah aktivitas aplikasi Anda mendukung tampilan multi-jendela. Anda bisa menyetel
|
||||||
atribut dalam manifes untuk mengontrol ukuran dan layoutnya.
|
atribut dalam manifes untuk mengontrol ukuran dan layoutnya.
|
||||||
Pengaturan atribut aktivitas root berlaku untuk semua aktivitas
|
Setelan atribut aktivitas root berlaku pada semua aktivitas
|
||||||
dalam tumpukan tugasnya.
|
dalam tumpukan tugasnya. Misalnya, jika aktivitas root memiliki
|
||||||
|
<code>android:resizeableActivity</code> yang disetel ke true, maka semua aktivitas
|
||||||
|
dalam tumpukan tugas bisa diubah ukurannya.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="note">
|
<p class="note">
|
||||||
@@ -170,7 +175,7 @@ page.keywords="multi-window", "android N", "split screen", "free-form"
|
|||||||
|
|
||||||
<h4 id="resizeableActivity">android:resizeableActivity</h4>
|
<h4 id="resizeableActivity">android:resizeableActivity</h4>
|
||||||
<p>
|
<p>
|
||||||
Atur atribut ini dalam manifes <code><activity></code> Anda atau simpul
|
Setel atribut ini dalam manifes <code><activity></code> Anda atau simpul
|
||||||
<code><application></code> untuk mengaktifkan atau menonaktifkan tampilan
|
<code><application></code> untuk mengaktifkan atau menonaktifkan tampilan
|
||||||
multi-jendela:
|
multi-jendela:
|
||||||
</p>
|
</p>
|
||||||
@@ -180,8 +185,8 @@ android:resizeableActivity=["true" | "false"]
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika atribut ini diatur ke true, aktivitas bisa dijalankan di
|
Jika atribut ini disetel ke true, aktivitas bisa dijalankan di
|
||||||
mode layar terbagi dan mode bentuk bebas. Jika atribut ini diatur ke false, aktivitas
|
mode layar terbagi dan mode bentuk bebas. Jika atribut ini disetel ke false, aktivitas
|
||||||
tidak akan mendukung mode multi-jendela. Jika nilai ini false, dan pengguna
|
tidak akan mendukung mode multi-jendela. Jika nilai ini false, dan pengguna
|
||||||
berusaha memulai aktivitas dalam mode multi-jendela, aktivitas akan menggunakan
|
berusaha memulai aktivitas dalam mode multi-jendela, aktivitas akan menggunakan
|
||||||
layar penuh.
|
layar penuh.
|
||||||
@@ -195,7 +200,7 @@ android:resizeableActivity=["true" | "false"]
|
|||||||
<h4 id="supportsPictureInPicture">android:supportsPictureInPicture</h4>
|
<h4 id="supportsPictureInPicture">android:supportsPictureInPicture</h4>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Atur atribut ini dalam simpul <code><activity></code> manifes Anda untuk
|
Setel atribut ini dalam simpul <code><activity></code> manifes Anda untuk
|
||||||
menunjukkan apakah aktivitas mendukung tampilan gambar-dalam-gambar. Atribut ini
|
menunjukkan apakah aktivitas mendukung tampilan gambar-dalam-gambar. Atribut ini
|
||||||
diabaikan jika <code>android:resizeableActivity</code> bernilai false.
|
diabaikan jika <code>android:resizeableActivity</code> bernilai false.
|
||||||
</p>
|
</p>
|
||||||
@@ -239,7 +244,7 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
<code>android:minimalSize</code>
|
<code>android:minimalHeight</code>, <code>android:minimalWidth</code>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
@@ -261,7 +266,8 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
<layout android:defaultHeight="500dp"
|
<layout android:defaultHeight="500dp"
|
||||||
android:defaultWidth="600dp"
|
android:defaultWidth="600dp"
|
||||||
android:gravity="top|end"
|
android:gravity="top|end"
|
||||||
android:minimalSize="450dp" />
|
android:minimalHeight="450dp"
|
||||||
|
android:minimalWidth="300dp" />
|
||||||
</activity>
|
</activity>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
@@ -281,7 +287,7 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Beberapa opsi penyesuaian di <a href="{@docRoot}training/system-ui/index.html">System UI</a>
|
<li>Beberapa opsi penyesuaian di <a href="{@docRoot}training/system-ui/index.html">System UI</a>
|
||||||
dinonaktifkan; misalnya, aplikasi tidak bisa menyembunyikan baris status
|
dinonaktifkan; misalnya, aplikasi tidak bisa menyembunyikan bilah status
|
||||||
jika tidak berjalan dalam mode layar penuh.
|
jika tidak berjalan dalam mode layar penuh.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@@ -291,17 +297,18 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3 id="change-notification">Pemberitahuan perubahan multi-jendela dan melakukan query</h3>
|
<h3 id="change-notification">Pemberitahuan perubahan multi-jendela dan melakukan kueri</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Metode baru berikut telah ditambahkan ke kelas {@link android.app.Activity}
|
Metode baru berikut telah ditambahkan ke kelas {@link android.app.Activity}
|
||||||
untuk mendukung tampilan multi-jendela. Untuk mengetahui detail tentang setiap metode, lihat
|
untuk mendukung tampilan multi-jendela. Untuk mengetahui detail tentang setiap
|
||||||
<a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi N Preview SDK</a>.
|
metode, lihat <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi N
|
||||||
|
Preview SDK</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>
|
<dt>
|
||||||
<code>Activity.inMultiWindow()</code>
|
<code>Activity.isInMultiWindowMode()</code>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
@@ -309,7 +316,7 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
<code>Activity.inPictureInPicture()</code>
|
<code>Activity.isInPictureInPictureMode()</code>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
@@ -317,30 +324,30 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
|
|
||||||
<p class="note">
|
<p class="note">
|
||||||
<strong>Catatan:</strong> Mode gambar-dalam-gambar adalah kasus khusus pada
|
<strong>Catatan:</strong> Mode gambar-dalam-gambar adalah kasus khusus pada
|
||||||
mode multi-jendela. Jika <code>myActivity.inPictureInPicture()</code>
|
mode multi-jendela. Jika <code>myActivity.isInPictureInPictureMode()</code>
|
||||||
mengembalikan nilai true, maka <code>myActivity.inMultiWindow()</code> juga mengembalikan nilai
|
mengembalikan nilai true, maka <code>myActivity.isInMultiWindowMode()</code> juga
|
||||||
true.
|
mengembalikan nilai true.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
<code>Activity.onMultiWindowChanged()</code>
|
<code>Activity.onMultiWindowModeChanged()</code>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
Sistem akan memanggil metode ini bila aktivitas masuk atau keluar dari
|
Sistem akan memanggil metode ini bila aktivitas masuk atau keluar dari
|
||||||
mode multi-jendela. Sistem akan meneruskan metode sebuah nilai true jika
|
mode multi-jendela. Sistem akan meneruskan ke metode sebuah nilai true jika
|
||||||
aktivitas tersebut memasuki mode multi-jendela, dan nilai false jika aktivitas
|
aktivitas tersebut memasuki mode multi-jendela, dan nilai false jika aktivitas
|
||||||
tersebut meninggalkan mode multi-jendela.
|
tersebut meninggalkan mode multi-jendela.
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
<code>Activity.onPictureInPictureChanged()</code>
|
<code>Activity.onPictureInPictureModeChanged()</code>
|
||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
Sistem akan memanggil metode ini bila aktivitas masuk atau keluar dari
|
Sistem akan memanggil metode ini bila aktivitas masuk atau keluar dari
|
||||||
mode gambar-dalam-gambar. Sistem akan meneruskan metode sebuah nilai true jika
|
mode gambar-dalam-gambar. Sistem akan meneruskan ke metode sebuah nilai true jika
|
||||||
aktivitas tersebut memasuki mode gambar-dalam-gambar, dan nilai false jika aktivitas
|
aktivitas tersebut memasuki mode gambar-dalam-gambar, dan nilai false jika aktivitas
|
||||||
tersebut meninggalkan mode gambar-dalam-gambar.
|
tersebut meninggalkan mode gambar-dalam-gambar.
|
||||||
</dd>
|
</dd>
|
||||||
@@ -348,14 +355,14 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Ada juga versi {@link android.app.Fragment} untuk setiap
|
Ada juga versi {@link android.app.Fragment} untuk setiap
|
||||||
metode ini, misalnya <code>Fragment.inMultiWindow()</code>.
|
metode ini, misalnya <code>Fragment.isInMultiWindowMode()</code>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="entering-pip">Memasuki mode gambar-dalam-gambar</h3>
|
<h3 id="entering-pip">Memasuki mode gambar-dalam-gambar</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Untuk menempatkan aktivitas dalam mode gambar-dalam-gambar, panggil metode baru
|
Untuk menempatkan aktivitas dalam mode gambar-dalam-gambar, panggil metode baru
|
||||||
<code>Activity.enterPictureInPicture()</code>. Metode ini tidak berpengaruh jika
|
<code>Activity.enterPictureInPictureMode()</code>. Metode ini tidak berpengaruh jika
|
||||||
perangkat tidak mendukung mode gambar-dalam-gambar. Untuk informasi selengkapnya,
|
perangkat tidak mendukung mode gambar-dalam-gambar. Untuk informasi selengkapnya,
|
||||||
lihat dokumentasi <a href="picture-in-picture.html">Gambar-dalam-Gambar</a>.
|
lihat dokumentasi <a href="picture-in-picture.html">Gambar-dalam-Gambar</a>.
|
||||||
</p>
|
</p>
|
||||||
@@ -382,8 +389,8 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika perangkat berada dalam mode bentuk bebas dan Anda meluncurkan aktivitas baru, Anda bisa
|
Jika perangkat dalam mode bentuk bebas dan Anda menjalankan aktivitas baru, Anda bisa
|
||||||
menetapkan dimensi dan lokasi layar aktivitas baru dengan memanggil
|
menetapkan dimensi aktivitas baru dan lokasi layar dengan memanggil
|
||||||
<code>ActivityOptions.setLaunchBounds()</code>. Metode ini tidak berpengaruh jika
|
<code>ActivityOptions.setLaunchBounds()</code>. Metode ini tidak berpengaruh jika
|
||||||
perangkat tidak berada dalam mode multi-jendela.
|
perangkat tidak berada dalam mode multi-jendela.
|
||||||
</p>
|
</p>
|
||||||
@@ -395,19 +402,19 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
terpisah dalam mode multi-jendela, Anda harus meluncurkannya dalam tumpukan tugas baru.
|
terpisah dalam mode multi-jendela, Anda harus meluncurkannya dalam tumpukan tugas baru.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="dnd">Mendukung seret dan letakkan</h3>
|
<h3 id="dnd">Mendukung seret dan lepas</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Pengguna bisa <a href="{@docRoot}guide/topics/ui/drag-drop.html">menyeret dan
|
Pengguna bisa <a href="{@docRoot}guide/topics/ui/drag-drop.html">menyeret dan
|
||||||
meletakkan</a> data dari satu aktivitas ke aktivitas yang lain selagi kedua aktivitas
|
melepas</a> data dari satu aktivitas ke aktivitas yang lain selagi kedua aktivitas
|
||||||
berbagi layar. (Sebelumnya, pengguna hanya bisa menyeret dan meletakkan data dalam
|
berbagi layar. (Sebelumnya, pengguna hanya bisa menyeret dan melepas data dalam
|
||||||
aktivitas tunggal.) Karena alasan ini, Anda mungkin perlu menambahkan fungsionalitas
|
aktivitas tunggal.) Karena alasan ini, Anda mungkin perlu menambahkan fungsionalitas
|
||||||
seret dan letakkan ke aplikasi Anda jika aplikasi Anda saat ini belum mendukungnya.
|
seret dan lepas ke aplikasi jika aplikasi saat ini belum mendukungnya.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
N Preview SDK menambahkan paket <a href="{@docRoot}reference/android/view/package-summary.html"><code>android.view</code></a>
|
N Preview SDK menambahkan paket <a href="{@docRoot}reference/android/view/package-summary.html"><code>android.view</code></a>
|
||||||
untuk mendukung seret dan letakkan lintas-aplikasi. Untuk mengetahui detail tentang kelas dan metode
|
untuk mendukung seret dan lepas lintas-aplikasi. Untuk mengetahui detail tentang kelas dan metode
|
||||||
berikut, lihat <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi N
|
berikut, lihat <a href="{@docRoot}preview/setup-sdk.html#docs-dl">Referensi N
|
||||||
Preview SDK</a>.
|
Preview SDK</a>.
|
||||||
</p>
|
</p>
|
||||||
@@ -419,7 +426,7 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
Objek token bertanggung jawab menetapkan izin yang diberikan kepada aplikasi
|
Objek token bertanggung jawab menetapkan izin yang diberikan kepada aplikasi
|
||||||
yang menerima peletakan tersebut.
|
yang menerima pelepasan tersebut.
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
@@ -428,7 +435,7 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
Alias baru untuk {@link android.view.View#startDrag View.startDrag()}. Untuk
|
Alias baru untuk {@link android.view.View#startDrag View.startDrag()}. Untuk
|
||||||
mengaktifkan seret dan letakkan lintas-aktivitas, teruskan flag baru
|
mengaktifkan seret dan lepas lintas-aktivitas, teruskan flag baru
|
||||||
<code>View.DRAG_FLAG_GLOBAL</code>. Jika Anda perlu memberikan izin URI ke
|
<code>View.DRAG_FLAG_GLOBAL</code>. Jika Anda perlu memberikan izin URI ke
|
||||||
aktivitas penerima, teruskan flag baru,
|
aktivitas penerima, teruskan flag baru,
|
||||||
<code>View.DRAG_FLAG_GLOBAL_URI_READ</code> atau
|
<code>View.DRAG_FLAG_GLOBAL_URI_READ</code> atau
|
||||||
@@ -458,7 +465,7 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
Meminta izin untuk URI konten yang diteruskan dengan {@link
|
Meminta izin untuk URI materi yang diteruskan dengan {@link
|
||||||
android.content.ClipData} yang terdapat dalam {@link android.view.DragEvent}.
|
android.content.ClipData} yang terdapat dalam {@link android.view.DragEvent}.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
@@ -466,15 +473,15 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
<h2 id="testing">Menguji Dukungan Multi-Jendela Aplikasi Anda</h2>
|
<h2 id="testing">Menguji Dukungan Multi-Jendela Aplikasi Anda</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Baik Anda memperbarui aplikasi untuk Android N maupun tidak, Anda harus
|
Apakah Anda memperbarui aplikasi untuk Android N atau tidak, Anda harus
|
||||||
memverifikasi caranya bertindak dalam mode multi-jendela jika pengguna mencoba meluncurkannya
|
verifikasi bagaimana perilakunya di mode multi-jendela saat pengguna mencoba untuk menjalankannya
|
||||||
dalam mode multi-jendela pada perangkat yang menjalankan Android N.
|
dalam mode multi-jendela pada perangkat yang menjalankan Android N.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 id="configuring">Mengonfigurasi Perangkat Pengujian</h3>
|
<h3 id="configuring">Mengonfigurasi Perangkat Pengujian</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika Anda menginstal Android N pada perangkat, mode
|
Jika Anda pasang Android N pada perangkat, mode
|
||||||
layar terbagi secara otomatis didukung.
|
layar terbagi secara otomatis didukung.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -489,13 +496,13 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
<p>
|
<p>
|
||||||
Jika aplikasi Anda tidak mendeklarasikan orientasi tetap, Anda harus meluncurkan aplikasi
|
Jika aplikasi Anda tidak mendeklarasikan orientasi tetap, Anda harus meluncurkan aplikasi
|
||||||
pada perangkat yang menjalankan Android N dan berupaya menempatkan aplikasi tersebut dalam
|
pada perangkat yang menjalankan Android N dan berupaya menempatkan aplikasi tersebut dalam
|
||||||
mode layar terbagi. Pastikan pengalaman pengguna
|
mode layar terbagi. Verifikasi pengalaman pengguna
|
||||||
bisa diterima bila aplikasi secara paksa diubah ukurannya.
|
bisa diterima bila aplikasi secara paksa diubah ukurannya.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika aplikasi mendeklarasikan orientasi tetap, Anda harus berupaya menempatkan aplikasi dalam
|
Jika aplikasi mendeklarasikan orientasi tetap, Anda harus berupaya menempatkan aplikasi dalam
|
||||||
mode multi-jendela. Periksa apakah Anda melakukannya, aplikasi tetap berada dalam
|
mode multi-jendela. Verifikasi apakah saat Anda melakukannya, aplikasi tetap berada dalam
|
||||||
mode layar penuh.
|
mode layar penuh.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -503,33 +510,33 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika Anda membuat aplikasi Anda dengan N Preview SDK dan belum menonaktifkan
|
Jika Anda membuat aplikasi Anda dengan N Preview SDK dan belum menonaktifkan
|
||||||
dukungan multi-jendela, periksa perilaku berikut dalam mode layar terbagi
|
dukungan multi-jendela, verifikasi perilaku berikut dalam mode layar terbagi
|
||||||
dan mode bentuk bebas.
|
dan mode bentuk bebas.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Luncurkan aplikasi dalam mode layar penuh, kemudian beralih ke mode multi-jendela dengan
|
<li>Luncurkan aplikasi dalam mode layar penuh, kemudian beralih ke mode multi-jendela dengan
|
||||||
menekan lama pada tombol Overview. Periksa apakah aplikasi berpindah dengan benar.
|
menekan lama pada tombol Ringkasan. Verifikasi apakah aplikasi beralih dengan benar.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Jalankan aplikasi secara langsung dalam mode multi-jendela, dan pastikan aplikasi
|
<li>Jalankan aplikasi secara langsung dalam mode multi-jendela, dan verifikasi aplikasi
|
||||||
diluncurkan dengan benar. Anda bisa meluncurkan aplikasi dalam mode multi-jendela dengan menekan
|
diluncurkan dengan benar. Anda bisa meluncurkan aplikasi dalam mode multi-jendela dengan menekan
|
||||||
tombol Overview, kemudian menekan lama baris judul pada aplikasi Anda dan menyeretnya
|
tombol Ringkasan, kemudian menekan lama baris judul pada aplikasi Anda dan menyeretnya
|
||||||
ke salah satu area yang disorot di layar.
|
ke salah satu area yang disorot di layar.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Ubah ukuran aplikasi Anda dalam mode layar terbagi dengan menyeret garis pembagi.
|
<li>Ubah ukuran aplikasi Anda dalam mode layar terbagi dengan menyeret garis pembagi.
|
||||||
Periksa apakah aplikasi mengubah ukuran tanpa crash, dan apakah elemen UI yang diperlukan
|
Verifikasi apakah aplikasi mengubah ukuran tanpa mogok, dan apakah elemen UI yang diperlukan
|
||||||
terlihat.
|
terlihat.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Jika Anda telah menetapkan dimensi minimum aplikasi, cobalah untuk mengubah ukuran
|
<li>Jika Anda telah menetapkan dimensi minimum aplikasi, cobalah untuk mengubah ukuran
|
||||||
aplikasi di bawah dimensi tersebut. Periksa apakah Anda tidak bisa mengubah ukuran aplikasi menjadi
|
aplikasi di bawah dimensi tersebut. Verifikasi apakah Anda tidak bisa mengubah ukuran aplikasi menjadi
|
||||||
lebih kecil dari minimum yang ditetapkan.
|
lebih kecil dari minimum yang ditetapkan.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Melalui semua tes, periksa apakah kinerja aplikasi Anda bisa diterima. Misalnya,
|
<li>Melalui semua pengujian, verifikasi apakah kinerja aplikasi Anda bisa diterima. Misalnya,
|
||||||
periksa apakah tidak ada jeda yang terlalu lama untuk memperbarui UI setelah
|
verifikasi apakah tidak ada jeda yang terlalu lama untuk memperbarui UI setelah
|
||||||
aplikasi diubah ukurannya.
|
aplikasi diubah ukurannya.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -537,7 +544,7 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
<h4 id="test-checklist">Daftar periksa pengujian</h4>
|
<h4 id="test-checklist">Daftar periksa pengujian</h4>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Untuk memeriksa kinerja aplikasi Anda dalam mode multi-jendela, cobalah operasi
|
Untuk verifikasi kinerja aplikasi Anda dalam mode multi-jendela, cobalah operasi
|
||||||
berikut. Anda harus mencoba semua operasi ini dalam mode layar terbagi dan
|
berikut. Anda harus mencoba semua operasi ini dalam mode layar terbagi dan
|
||||||
dan mode multi-jendela, kecuali jika dinyatakan berbeda.
|
dan mode multi-jendela, kecuali jika dinyatakan berbeda.
|
||||||
</p>
|
</p>
|
||||||
@@ -546,27 +553,27 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
<li>Masuki dan tinggalkan mode multi-jendela.
|
<li>Masuki dan tinggalkan mode multi-jendela.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Beralih dari aplikasi Anda ke aplikasi lain, dan periksa apakah aplikasi berperilaku
|
<li>Beralih dari aplikasi Anda ke aplikasi lain, dan verifikasi apakah aplikasi berperilaku
|
||||||
sebagaimana mestinya saat terlihat namun tidak aktif. Misalnya, jika aplikasi Anda
|
sebagaimana mestinya saat terlihat namun tidak aktif. Misalnya, jika aplikasi Anda
|
||||||
sedang memutar video, periksa apakah video terus diputar selagi pengguna
|
sedang memutar video, verifikasi apakah video terus diputar selagi pengguna
|
||||||
berinteraksi dengan aplikasi lain.
|
berinteraksi dengan aplikasi lain.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Dalam mode layar terbagi, cobalah menggeser garis pembagi untuk membuat aplikasi
|
<li>Dalam mode layar terbagi, cobalah menggeser garis pembagi untuk membuat aplikasi
|
||||||
Anda menjadi lebih besar dan lebih kecil. Coba operasi ini dalam konfigurasi berdampingan dan
|
Anda menjadi lebih besar dan lebih kecil. Coba operasi ini dalam konfigurasi berdampingan dan
|
||||||
atas-bawah. Periksa apakah aplikasi tidak crash,
|
atas-bawah. Verifikasi apakah aplikasi tidak mogok,
|
||||||
fungsionalitas penting bisa terlihat, dan operasi mengubah ukuran tidak memakan waktu terlalu
|
fungsionalitas penting bisa terlihat, dan operasi mengubah ukuran tidak memakan waktu terlalu
|
||||||
lama.
|
lama.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Lakukan beberapa operasi ubah ukuran berturut-turut dalam waktu cepat. Periksa apakah
|
<li>Lakukan beberapa operasi ubah ukuran berturut-turut dalam waktu cepat. Verifikasi apakah
|
||||||
aplikasi Anda tidak crash atau mengalami kebocoran memori. Untuk informasi tentang memeriksa penggunaan memori
|
aplikasi Anda tidak mogok atau mengalami kebocoran memori. Untuk informasi tentang memeriksa penggunaan memori
|
||||||
aplikasi Anda, lihat <a href="{@docRoot}tools/debugging/debugging-memory.html">
|
aplikasi Anda, lihat <a href="{@docRoot}tools/debugging/debugging-memory.html">
|
||||||
Menyelidiki Penggunaan RAM Anda</a>.
|
Menyelidiki Penggunaan RAM Anda</a>.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Gunakan aplikasi secara normal di sejumlah konfigurasi jendela yang berbeda, dan
|
<li>Gunakan aplikasi secara normal di sejumlah konfigurasi jendela yang berbeda, dan
|
||||||
periksa apakah aplikasi berperilaku sebagaimana mestinya. Periksa apakah teks terbaca, dan apakah
|
verifikasi apakah aplikasi berperilaku sebagaimana mestinya. Verifikasi apakah teks terbaca, dan apakah
|
||||||
elemen UI tidak terlalu kecil untuk interaksi.
|
elemen UI tidak terlalu kecil untuk interaksi.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -574,9 +581,9 @@ android:supportsPictureInPicture=["true" | "false"]
|
|||||||
<h3 id="test-disabled-mw">Jika Anda telah menonaktifkan dukungan multi-jendela</h3>
|
<h3 id="test-disabled-mw">Jika Anda telah menonaktifkan dukungan multi-jendela</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika Anda menonaktifkan dukungan multi-jendela dengan mengatur
|
Jika Anda menonaktifkan dukungan multi-jendela dengan menyetel
|
||||||
<code>android:resizableActivity="false"</code>, Anda harus menjalankan aplikasi pada
|
<code>android:resizableActivity="false"</code>, Anda harus menjalankan aplikasi pada
|
||||||
perangkat yang menjalankan Android N dan berusaha menempatkan aplikasi dalam
|
perangkat yang menjalankan Android N dan berusaha menempatkan aplikasi dalam
|
||||||
mode bentuk bebas dan mode layar terbagi. Periksa apakah Anda melakukannya, aplikasi tetap berada dalam
|
mode bentuk bebas dan mode layar terbagi. Verifikasi apakah saat Anda melakukannya, aplikasi tetap berada dalam
|
||||||
mode layar penuh.
|
mode layar penuh.
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Android N memberikan dukungan yang disempurnakan untuk pengguna multibahasa,
|
<p>Android N memberikan dukungan yang disempurnakan untuk pengguna multibahasa,
|
||||||
yang memungkinkan mereka memilih beberapa lokal dalam pengaturan. Android N
|
yang memungkinkan mereka memilih beberapa lokal dalam setelan. Android N
|
||||||
menyediakan kemampuan ini dengan memperbanyak jumlah lokal yang didukung
|
menyediakan kemampuan ini dengan memperbanyak jumlah lokal yang didukung
|
||||||
dan mengubah cara sistem mengatasi masalah sumber daya. Metode baru mengatasi
|
dan mengubah cara sistem mengatasi masalah sumber daya. Metode baru mengatasi
|
||||||
masalah sumber daya ini lebih tangguh dan didesain agar kompatibel dengan APK yang ada, namun
|
masalah sumber daya ini lebih tangguh dan didesain agar kompatibel dengan APK yang ada, namun
|
||||||
@@ -37,29 +37,33 @@ jumlah lokal yang telah diperbanyak untuk mendukung lebih banyak pengguna multib
|
|||||||
<h2 id="preN">Tantangan dalam Mengatasi Masalah Sumber Daya Bahasa</h2>
|
<h2 id="preN">Tantangan dalam Mengatasi Masalah Sumber Daya Bahasa</h2>
|
||||||
|
|
||||||
<p>Sebelum Android N, Android tidak selalu
|
<p>Sebelum Android N, Android tidak selalu
|
||||||
berhasil mencocokkan lokal aplikasi dan lokal sistem. Misalnya, anggaplah bahasa default aplikasi Anda
|
berhasil mencocokkan lokal aplikasi dan lokal sistem.</p>
|
||||||
adalah US English, namun aplikasi itu juga berisi string bahasa Spanyol yang dilokalkan di file sumber daya {@code es_ES}.
|
|
||||||
.</p>
|
<p>Misalnya, anggaplah Anda menghadapi situasi berikut:</p>
|
||||||
<p>Bila kode Java Anda mengacu ke string, itu akan mengatasi masalah bahasa string sebagai
|
|
||||||
berikut:</p>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Jika perangkat diatur ke {@code es_MX} (Spanish-Mexico), Android akan memuat
|
<li>Bahasa default aplikasi Anda adalah {@code en_US} (US English), dan aplikasi juga
|
||||||
string dari file sumber daya {@code es_ES}.</li>
|
berisi string bahasa Spanyol yang telah dilokalkan di file sumber daya {@code es_ES}.
|
||||||
<li>Jika perangkat diatur ke {@code en_AU}, Android akan kembali pada {@code
|
</li>
|
||||||
en_US}. Sistem juga akan default ke {@code en_US} jika pengguna memilih
|
<li> Perangkat telah disetel ke {@code es_MX} </li>
|
||||||
bahasa yang sama sekali tidak didukung oleh aplikasi, seperti bahasa Prancis.</li>
|
|
||||||
</ul>
|
<p>Bila kode Java Anda merujuk ke string, sistem akan memuat
|
||||||
|
string dari file sumber daya default ({@code en_US}), sekalipun aplikasi memiliki
|
||||||
|
sumber daya bahasa Spanyol yang dilokalkan pada {@code es_ES}. Hal ini karena bila sistem
|
||||||
|
tidak bisa menemukan hasil yang persis, sistem akan terus mencari sumber daya dengan menghilangkan
|
||||||
|
kode negara dari lokal tersebut. Akhirnya, jika tidak ada hasil yang ditemukan, sistem akan mengembalikan
|
||||||
|
ke default, yakni {@code en_US}. </p>
|
||||||
|
|
||||||
|
|
||||||
<p>Masalah resolusi ini muncul karena sistem menghilangkan kode negara
|
<p>Sistem juga akan default ke {@code en_US} jika pengguna memilih
|
||||||
dari lokal jika tidak bisa menemukan yang sama persis. Misalnya:</p>
|
bahasa yang sama sekali tidak didukung oleh aplikasi, seperti bahasa Prancis. Misalnya:</p>
|
||||||
|
|
||||||
<p class="table-caption" id="t-resource-res">
|
<p class="table-caption" id="t-resource-res">
|
||||||
<strong>Tabel 1.</strong> Resolusi sumber daya tanpa lokal yang persis sama.
|
<strong>Tabel 1.</strong> Resolusi sumber daya tanpa lokal yang persis sama.
|
||||||
</p>
|
</p>
|
||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Pengaturan Pengguna</th>
|
<th>Setelan Pengguna</th>
|
||||||
<th>Sumber Daya Aplikasi</th>
|
<th>Sumber Daya Aplikasi</th>
|
||||||
<th>Resolusi Sumber Daya</th>
|
<th>Resolusi Sumber Daya</th>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -109,7 +113,7 @@ secara berbeda:</p>
|
|||||||
lokal yang sama persis.</p>
|
lokal yang sama persis.</p>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Pengaturan Pengguna</th>
|
<th>Setelan Pengguna</th>
|
||||||
<th>Sumber Daya Aplikasi</th>
|
<th>Sumber Daya Aplikasi</th>
|
||||||
<th>Resolusi Sumber Daya</th>
|
<th>Resolusi Sumber Daya</th>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -137,9 +141,9 @@ Gunakan fr_FR
|
|||||||
|
|
||||||
|
|
||||||
<p>Sekarang pengguna mendapatkan sumber daya bahasa Prancis sebagai ganti bahasa Inggris. Contoh ini juga menunjukkan
|
<p>Sekarang pengguna mendapatkan sumber daya bahasa Prancis sebagai ganti bahasa Inggris. Contoh ini juga menunjukkan
|
||||||
mengapa Anda harus menyimpan string bahasa Prancis dalam {@code fr} bukan dalam {@code fr_FR}
|
mengapa Anda harus menyimpan string bahasa Prancis di {@code fr} bukan pada {@code fr_FR}
|
||||||
untuk Android N. Tindakan di sini adalah untuk mencocokkan dengan induk dialek terdekat,
|
untuk Android N. Arah aksi di sini adalah untuk mencocokkan dengan induk dialek terdekat,
|
||||||
yang membuat resolusi menjadi lebih cepat dan lebih bisa diprediksi.</p>
|
membuat resolusi lebih cepat dan lebih dapat diprediksi.</p>
|
||||||
|
|
||||||
<p>Selain logika resolusi yang diperbaiki ini, Android sekarang menawarkan lebih banyak
|
<p>Selain logika resolusi yang diperbaiki ini, Android sekarang menawarkan lebih banyak
|
||||||
pilihan bahasa untuk pengguna. Mari kita coba lagi contoh di atas dengan menetapkan bahasa Italia
|
pilihan bahasa untuk pengguna. Mari kita coba lagi contoh di atas dengan menetapkan bahasa Italia
|
||||||
@@ -147,10 +151,10 @@ pilihan bahasa untuk pengguna. Mari kita coba lagi contoh di atas dengan menetap
|
|||||||
|
|
||||||
<p class="table-caption" id="t-2d-choice">
|
<p class="table-caption" id="t-2d-choice">
|
||||||
<strong>Tabel 3.</strong> Resolusi sumber daya bila aplikasi hanya mencocokkan
|
<strong>Tabel 3.</strong> Resolusi sumber daya bila aplikasi hanya mencocokkan
|
||||||
pengaturan lokal yang disukai kedua oleh pengguna.</p>
|
setelan lokal yang disukai kedua oleh pengguna.</p>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Pengaturan Pengguna</th>
|
<th>Setelan Pengguna</th>
|
||||||
<th>Sumber Daya Aplikasi</th>
|
<th>Sumber Daya Aplikasi</th>
|
||||||
<th>Resolusi Sumber Daya</th>
|
<th>Resolusi Sumber Daya</th>
|
||||||
|
|
||||||
@@ -187,11 +191,11 @@ mendukung bahasa Prancis.</p>
|
|||||||
<h2 id="design">Mendesain Aplikasi Anda untuk Mendukung Lokal Tambahan</h2>
|
<h2 id="design">Mendesain Aplikasi Anda untuk Mendukung Lokal Tambahan</h2>
|
||||||
<h3>LocaleList API</h3>
|
<h3>LocaleList API</h3>
|
||||||
|
|
||||||
<p>Android N menambahkan API baru {@code LocaleList.GetDefault()}
|
<p>Android N menambahkan API baru {@code LocaleList.getDefault()}
|
||||||
yang memungkinkan aplikasi langsung melakukan query daftar bahasa yang telah ditetapkan pengguna. API ini
|
yang memungkinkan aplikasi langsung kueri daftar bahasa yang telah ditetapkan pengguna. API ini
|
||||||
memungkinkan Anda untuk membuat
|
memungkinkan Anda membuat
|
||||||
perilaku aplikasi yang lebih canggih dan tampilan konten yang lebih optimal. Misalnya, Pencarian
|
perilaku aplikasi yang lebih canggih dan tampilan materi yang lebih optimal. Misalnya, Telusur
|
||||||
bisa menampilkan hasil dalam beberapa bahasa berdasarkan pengaturan pengguna. Aplikasi browser
|
bisa menampilkan hasil dalam beberapa bahasa berdasarkan setelan pengguna. Aplikasi browser
|
||||||
bisa menghindari penawaran menerjemahkan halaman dalam bahasa yang sudah diketahui pengguna,
|
bisa menghindari penawaran menerjemahkan halaman dalam bahasa yang sudah diketahui pengguna,
|
||||||
dan aplikasi keyboard bisa mengaktifkan otomatis semua layout yang sesuai. </p>
|
dan aplikasi keyboard bisa mengaktifkan otomatis semua layout yang sesuai. </p>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Pemberitahuan
|
page.title=Pemberitahuan
|
||||||
page.tags=notifications
|
page.tags=pemberitahuan
|
||||||
helpoutsWidget=true
|
helpoutsWidget=true
|
||||||
page.image=/preview/images/notifications-card.png
|
page.image=/preview/images/notifications-card.png
|
||||||
|
|
||||||
@@ -15,14 +15,15 @@ trainingnavtop=true
|
|||||||
<ol>
|
<ol>
|
||||||
<li><a href="#direct">Balasan Langsung</a></li>
|
<li><a href="#direct">Balasan Langsung</a></li>
|
||||||
<li><a href="#bundle">Bundel Pemberitahuan</a></li>
|
<li><a href="#bundle">Bundel Pemberitahuan</a></li>
|
||||||
<li><a href="#custom">Tampilan Custom</a></li>
|
<li><a href="#custom">Tampilan Khusus</a></li>
|
||||||
|
<li><a href="#style">Gaya Pesan</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Android N memperkenalkan beberapa API baru yang memungkinkan aplikasi memposting
|
<p>Android N memperkenalkan beberapa API baru yang memungkinkan aplikasi untuk mengeposkan
|
||||||
pemberitahuan yang sangat terlihat dan interaktif.</p>
|
pemberitahuan yang sangat mudah terlihat dan interaktif.</p>
|
||||||
|
|
||||||
<p>Android N menambahkan API pemberitahuan{@link android.support.v4.app.RemoteInput}
|
<p>Android N menambahkan API pemberitahuan{@link android.support.v4.app.RemoteInput}
|
||||||
yang ada untuk mendukung balasan inline pada handset. Fitur ini memungkinkan pengguna
|
yang ada untuk mendukung balasan inline pada handset. Fitur ini memungkinkan pengguna
|
||||||
@@ -59,8 +60,8 @@ pemberitahuan. Pada perangkat genggam, tindakan balasan inline muncul sebagai to
|
|||||||
<img id="fig-reply-button" src="{@docRoot}preview/images/inline-reply.png" srcset="{@docRoot}preview/images/inline-reply.png 1x,
|
<img id="fig-reply-button" src="{@docRoot}preview/images/inline-reply.png" srcset="{@docRoot}preview/images/inline-reply.png 1x,
|
||||||
{@docRoot}preview/images/inline-reply_2x.png 2x" width="400">
|
{@docRoot}preview/images/inline-reply_2x.png 2x" width="400">
|
||||||
<p class="img-caption">
|
<p class="img-caption">
|
||||||
<strong>Gambar 1.</strong> Android N menambahkan tombol tindakan <strong>Reply</strong>
|
<strong>Gambar 1.</strong> Android N menambahkan tombol tindakan <strong>Reply</strong>.
|
||||||
.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Menambahkan tindakan balasan inline</h3>
|
<h3>Menambahkan tindakan balasan inline</h3>
|
||||||
@@ -72,11 +73,11 @@ pemberitahuan. Pada perangkat genggam, tindakan balasan inline muncul sebagai to
|
|||||||
<li>Buat instance {@link android.support.v4.app.RemoteInput.Builder}
|
<li>Buat instance {@link android.support.v4.app.RemoteInput.Builder}
|
||||||
yang bisa Anda tambahkan ke tindakan
|
yang bisa Anda tambahkan ke tindakan
|
||||||
pemberitahuan. Konstruktor kelas ini akan menerima string bahwa sistem menggunakannya sebagai kunci
|
pemberitahuan. Konstruktor kelas ini akan menerima string bahwa sistem menggunakannya sebagai kunci
|
||||||
untuk input teks. Kemudian, aplikasi perangkat genggam Anda akan menggunakan kunci itu untuk mengambil teks
|
untuk masukan teks. Kemudian, aplikasi perangkat genggam Anda akan menggunakan kunci itu untuk mengambil teks
|
||||||
input tersebut.
|
masukan tersebut.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
// Key for the string that's delivered in the action's intent
|
// Key for the string that's delivered in the action's intent.
|
||||||
private static final String KEY_TEXT_REPLY = "key_text_reply";
|
private static final String KEY_TEXT_REPLY = "key_text_reply";
|
||||||
String replyLabel = getResources().getString(R.string.reply_label);
|
String replyLabel = getResources().getString(R.string.reply_label);
|
||||||
RemoteInput remoteInput = new RemoteInput.Builder(KEY_TEXT_REPLY)
|
RemoteInput remoteInput = new RemoteInput.Builder(KEY_TEXT_REPLY)
|
||||||
@@ -88,7 +89,7 @@ RemoteInput remoteInput = new RemoteInput.Builder(KEY_TEXT_REPLY)
|
|||||||
pada tindakan dengan menggunakan <code>addRemoteInput()</code>.
|
pada tindakan dengan menggunakan <code>addRemoteInput()</code>.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
// Create the reply action and add the remote input
|
// Create the reply action and add the remote input.
|
||||||
Notification.Action action =
|
Notification.Action action =
|
||||||
new Notification.Action.Builder(R.drawable.ic_reply_icon,
|
new Notification.Action.Builder(R.drawable.ic_reply_icon,
|
||||||
getString(R.string.label), replyPendingIntent)
|
getString(R.string.label), replyPendingIntent)
|
||||||
@@ -100,8 +101,8 @@ Notification.Action action =
|
|||||||
<li>Terapkan tindakan pada pemberitahuan dan keluarkan pemberitahuan.
|
<li>Terapkan tindakan pada pemberitahuan dan keluarkan pemberitahuan.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
// Build the notification and add the action
|
// Build the notification and add the action.
|
||||||
Notification notification =
|
Notification newMessageNotification =
|
||||||
new Notification.Builder(mContext)
|
new Notification.Builder(mContext)
|
||||||
.setSmallIcon(R.drawable.ic_message)
|
.setSmallIcon(R.drawable.ic_message)
|
||||||
.setContentTitle(getString(R.string.title))
|
.setContentTitle(getString(R.string.title))
|
||||||
@@ -109,10 +110,10 @@ Notification notification =
|
|||||||
.addAction(action))
|
.addAction(action))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// Issue the notification
|
// Issue the notification.
|
||||||
NotificationManager notificationManager =
|
NotificationManager notificationManager =
|
||||||
NotificationManager.from(mContext);
|
NotificationManager.from(mContext);
|
||||||
notificationManager.notify(notificationId, notification);
|
notificationManager.notify(notificationId, newMessageNotification);
|
||||||
|
|
||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
@@ -129,28 +130,30 @@ tindakan pemberitahuan. </p>
|
|||||||
<strong>Gambar 2.</strong> Pengguna memasukkan teks dari bayangan pemberitahuan.
|
<strong>Gambar 2.</strong> Pengguna memasukkan teks dari bayangan pemberitahuan.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Mengambil input pengguna dari balasan inline</h3>
|
<h3>
|
||||||
|
Mengambil masukan pengguna dari balasan inline
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Untuk menerima masukan pengguna dari antarmuka pemberitahuan ke aktivitas yang Anda
|
||||||
|
deklarasikan dalam intent tindakan balasan:
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>Untuk menerima input pengguna dari antarmuka pemberitahuan untuk aktivitas yang Anda
|
|
||||||
deklarasikan dalam intent tindakan balasan:</p>
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>Panggil {@link android.support.v4.app.RemoteInput#getResultsFromIntent
|
<li>Panggil {@link android.support.v4.app.RemoteInput#getResultsFromIntent
|
||||||
getResultsFromIntent()} dengan meneruskan intent tindakan pemberitahuan sebagai
|
getResultsFromIntent()} dengan meneruskan intent tindakan pemberitahuan sebagai
|
||||||
parameter input. Metode ini mengembalikan {@link android.os.Bundle} yang
|
parameter masukan. Metode ini mengembalikan {@link android.os.Bundle} yang
|
||||||
berisi respons teks.
|
berisi respons teks.
|
||||||
</li>
|
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);
|
Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<li>Lakukan query pada bundel menggunakan kunci hasil (diberikan ke konstruktor {@link
|
|
||||||
android.support.v4.app.RemoteInput.Builder}).
|
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
|
||||||
|
|
||||||
<p>Cuplikan kode berikut mengilustrasikan cara metode mengambil teks input
|
<li>Lakukan kueri pada bundel menggunakan kunci hasil (diberikan ke konstruktor {@link
|
||||||
dari bundel:</p>
|
android.support.v4.app.RemoteInput.Builder}). Anda bisa menyelesaikan
|
||||||
|
proses ini dan mengambil teks masukan dengan membuat sebuah metode, seperti dalam
|
||||||
|
cuplikan kode berikut:
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
// Obtain the intent that started this activity by calling
|
// Obtain the intent that started this activity by calling
|
||||||
@@ -165,15 +168,48 @@ private CharSequence getMessageText(Intent intent) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
</pre>
|
</pre>
|
||||||
|
</li>
|
||||||
|
|
||||||
<p>Aplikasi bisa menerapkan logika untuk memutuskan tindakan apa yang harus diambil pada teks
|
<li>Kompilasilah dan keluarkan pemberitahuan lain, menggunakan ID pemberitahuan yang sama dengan
|
||||||
yang telah diambil.
|
yang Anda berikan untuk pemberitahuan sebelumnya. Indikator kemajuan
|
||||||
Untuk aplikasi interaktif (seperti chat), memberikan lebih banyak konteks dalam pemberitahuan itu sendiri
|
menghilang dari antarmuka pemberitahuan untuk memberi tahu pengguna mengenai balasan
|
||||||
(misalnya, beberapa baris riwayat obrolan, termasuk pesan pengguna pribadi)
|
yang berhasil. Saat menangani pemberitahuan baru ini, gunakan konteks yang
|
||||||
sehingga pengguna bisa merespons dengan tepat.
|
diteruskan ke metode {@code onReceive()} penerima.
|
||||||
Bila pengguna merespons melalui{@link android.support.v4.app.RemoteInput},
|
|
||||||
sertakan teks dalam riwayat balasan dengan metode {@code setRemoteInputHistory()}
|
<pre>
|
||||||
.</p>
|
// Build a new notification, which informs the user that the system
|
||||||
|
// handled their interaction with the previous notification.
|
||||||
|
Notification repliedNotification =
|
||||||
|
new Notification.Builder(context)
|
||||||
|
.setSmallIcon(R.drawable.ic_message)
|
||||||
|
.setContentText(getString(R.string.replied))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
// Issue the new notification.
|
||||||
|
NotificationManager notificationManager =
|
||||||
|
NotificationManager.from(context);
|
||||||
|
notificationManager.notify(notificationId, repliedNotification);
|
||||||
|
</pre>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Untuk aplikasi interaktif, seperti chat, akan berguna bila menyertakan
|
||||||
|
konteks tambahan saat menangani teks yang diambil. Misalnya, aplikasi ini bisa menampilkan
|
||||||
|
beberapa baris riwayat chat sekaligus. Bila pengguna merespons melalui {@link
|
||||||
|
android.support.v4.app.RemoteInput}, Anda bisa memperbarui riwayat balasan
|
||||||
|
menggunakan metode {@code setRemoteInputHistory()}.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Pemberitahuan harus diperbarui atau dibatalkan setelah aplikasi
|
||||||
|
menerima masukan jarak jauh. Bila pengguna membalas ke pembaruan jarak jauh
|
||||||
|
menggunakan Balasan Langsung,
|
||||||
|
jangan batalkan pemberitahuan. Melainkan, perbarui pemberitahuan untuk menampilkan balasan pengguna.
|
||||||
|
Untuk pemberitahuan yang menggunakan {@code MessagingStyle}, Anda harus menambahkan
|
||||||
|
balasannya sebagai pesan terbaru. Saat menggunakan template lain, Anda bisa
|
||||||
|
menambahkan balasan pengguna ke riwayat masukan jarak jauh.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h2 id="bundle">Bundel Pemberitahuan</h2>
|
<h2 id="bundle">Bundel Pemberitahuan</h2>
|
||||||
|
|
||||||
@@ -203,6 +239,12 @@ Builder.setGroup()} yang ada untuk membundel pemberitahuan yang sama.</p>
|
|||||||
pemberitahuan.
|
pemberitahuan.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p class="note">
|
||||||
|
<strong>Catatan:</strong> Jika aplikasi yang sama mengirim empat atau beberapa pemberitahuan
|
||||||
|
dan tidak menetapkan pengelompokan,
|
||||||
|
sistem secara otomatis akan mengelompokannya.
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>Untuk mengetahui cara menambahkan pemberitahuan ke grup, lihat
|
<p>Untuk mengetahui cara menambahkan pemberitahuan ke grup, lihat
|
||||||
<a href="{@docRoot}training/wearables/notifications/stacks.html#AddGroup">Menambahkan
|
<a href="{@docRoot}training/wearables/notifications/stacks.html#AddGroup">Menambahkan
|
||||||
Setiap Pemberitahuan ke Grup</a>.</p>
|
Setiap Pemberitahuan ke Grup</a>.</p>
|
||||||
@@ -226,19 +268,19 @@ bernilai benar untuk kasus penggunaan Anda:</p>
|
|||||||
|
|
||||||
</li>
|
</li>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Bisa diaplikasikan, dengan tindakan yang spesifik untuk setiap anak.</li>
|
<li>Mereka dapat diaplikasikan, dengan tindakan khusus untuk masing-masing anak.</li>
|
||||||
<li>Ada lebih banyak informasi pada anak yang ingin dibaca oleh pengguna.</li>
|
<li>Ada lebih banyak informasi pada anak yang ingin dibaca oleh pengguna.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Contoh kasus penggunaan yang baik untuk grup pemberitahuan antara lain: aplikasi pertukaran pesan
|
<p>Contoh kasus penggunaan yang baik untuk grup pemberitahuan antara lain: aplikasi perpesanan
|
||||||
yang menampilkan daftar pesan yang masuk, atau aplikasi email yang menampilkan daftar email
|
yang menampilkan daftar pesan yang masuk, atau aplikasi email yang menampilkan daftar email
|
||||||
yang diterima.</p>
|
yang diterima.</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Contoh kasus di mana pemberitahuan tunggal lebih disukai
|
Contoh kasus penggunaan saat pemberitahuan tunggal lebih disukai
|
||||||
antara lain pesan individual dari satu orang, atau representasi daftar
|
meliputi pesan pribadi dari satu orang, atau representasi daftar dari
|
||||||
item teks satu-baris. Anda bisa menggunakan
|
item teks baris tunggal. Anda bisa menggunakan
|
||||||
({@link android.app.Notification.InboxStyle InboxStyle} atau
|
({@link android.app.Notification.InboxStyle InboxStyle} atau
|
||||||
{@link android.app.Notification.BigTextStyle BigTextStyle}) untuk mencapai
|
{@link android.app.Notification.BigTextStyle BigTextStyle}) untuk mencapai
|
||||||
hal ini.
|
hal ini.
|
||||||
@@ -247,7 +289,7 @@ hal ini.
|
|||||||
<h3 id ="post">Menampilkan bundel pemberitahuan</h3>
|
<h3 id ="post">Menampilkan bundel pemberitahuan</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Aplikasi ini harus selalu memposting rangkuman grup, sekalipun grup hanya berisi
|
Aplikasi ini harus selalu mengeposkan rangkuman grup, sekalipun grup hanya berisi
|
||||||
satu anak. Sistem akan menyembunyikan rangkuman dan langsung menampilkan
|
satu anak. Sistem akan menyembunyikan rangkuman dan langsung menampilkan
|
||||||
pemberitahuan anak jika hanya berisi pemberitahuan tunggal. Hal ini akan memastikan
|
pemberitahuan anak jika hanya berisi pemberitahuan tunggal. Hal ini akan memastikan
|
||||||
sistem bisa memberikan pengalaman yang konsisten saat pengguna menggeser
|
sistem bisa memberikan pengalaman yang konsisten saat pengguna menggeser
|
||||||
@@ -262,7 +304,7 @@ hal ini.
|
|||||||
|
|
||||||
<h3>Mengintip pemberitahuan</h3>
|
<h3>Mengintip pemberitahuan</h3>
|
||||||
|
|
||||||
<p>Walaupun sistem biasanya menampilkan pemberitahuan anak sebagai sebuah grup, Anda bisa mengaturnya
|
<p>Walaupun sistem biasanya menampilkan pemberitahuan anak sebagai sebuah grup, Anda bisa menyetelnya
|
||||||
agar muncul untuk sementara muncul sebagai
|
agar muncul untuk sementara muncul sebagai
|
||||||
<a href="{@docRoot}guide/topics/ui/notifiers/notifications.html#Heads-up">
|
<a href="{@docRoot}guide/topics/ui/notifiers/notifications.html#Heads-up">
|
||||||
pemberitahuan pendahuluan</a>. Fitur ini khususnya berguna karena memungkinkan
|
pemberitahuan pendahuluan</a>. Fitur ini khususnya berguna karena memungkinkan
|
||||||
@@ -273,10 +315,10 @@ hal ini.
|
|||||||
<h3>Kompatibilitas mundur</h3>
|
<h3>Kompatibilitas mundur</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Baik grup pemberitahuan maupun input jauh telah menjadi bagian dari {@link
|
Baik grup pemberitahuan maupun masukan jauh telah menjadi bagian dari {@link
|
||||||
android.app.Notification} API sejak Android 5.0 (API level 21) untuk mendukung
|
android.app.Notification} API sejak Android 5.0 (API level 21) untuk mendukung
|
||||||
perangkat Android Wear. Jika Anda sudah membuat pemberitahuan dengan API ini,
|
perangkat Android Wear. Jika Anda sudah membuat pemberitahuan dengan API ini,
|
||||||
satu-satunya tindakan yang harus Anda ambil adalah memeriksa apakah perilaku aplikasi sesuai dengan panduan yang
|
satu-satunya tindakan yang harus Anda ambil adalah memverifikasi apakah perilaku aplikasi sesuai dengan panduan yang
|
||||||
dijelaskan di atas, dan mempertimbangkan implementasi {@code
|
dijelaskan di atas, dan mempertimbangkan implementasi {@code
|
||||||
setRemoteInputHistory()}.
|
setRemoteInputHistory()}.
|
||||||
</p>
|
</p>
|
||||||
@@ -286,20 +328,20 @@ hal ini.
|
|||||||
kelas {@link android.support.v4.app.NotificationCompat}
|
kelas {@link android.support.v4.app.NotificationCompat}
|
||||||
pustaka dukungan, yang memungkinkan Anda untuk membuat pemberitahuan yang bekerja pada versi Android
|
pustaka dukungan, yang memungkinkan Anda untuk membuat pemberitahuan yang bekerja pada versi Android
|
||||||
sebelumnya. Pada perangkat genggam dan tablet, pengguna hanya melihat pemberitahuan rangkuman,
|
sebelumnya. Pada perangkat genggam dan tablet, pengguna hanya melihat pemberitahuan rangkuman,
|
||||||
sehingga aplikasi tetap memiliki gaya kotak masuk atau representasi pemberitahuan yang sama
|
sehingga aplikasi masih memiliki model inbox atau pemberitahuan sama yang
|
||||||
untuk seluruh konten informasi grup. Karena perangkat Android
|
mewakili seluruh materi informasi grup. Karena perangkat Android
|
||||||
Wear memungkinkan pengguna melihat semua pemberitahuan anak bahkan pada level platform
|
Wear memungkinkan pengguna melihat semua pemberitahuan anak bahkan pada level platform
|
||||||
yang lebih lama, maka Anda harus membuat pemberitahuan anak dengan mengabaikan level
|
yang lebih lama, maka Anda harus membangun pemberitahuan anak dengan mengabaikan level
|
||||||
API.
|
API.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="custom"> Tampilan Custom</h2>
|
<h2 id="custom"> Tampilan Khusus</h2>
|
||||||
<p>Mulai dari Android N, Anda bisa menyesuaikan tampilan pemberitahuan dan
|
<p>Mulai dari Android N, Anda bisa menyesuaikan tampilan pemberitahuan dan
|
||||||
tetap mendapatkan dekorasi sistem seperti header pemberitahuan, tindakan, dan
|
tetap mendapatkan dekorasi sistem seperti header pemberitahuan, tindakan, dan
|
||||||
layout yang bisa diperluas.</p>
|
layout yang bisa diperluas.</p>
|
||||||
|
|
||||||
<p>Untuk mengaktifkan kemampuan ini, Android N menambahkan API berikut untuk menata gaya
|
<p>Untuk mengaktifkan kemampuan ini, Android N menambahkan API berikut untuk menata gaya
|
||||||
tampilan custom Anda:</p>
|
tampilan khusus Anda:</p>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>
|
<dt>
|
||||||
@@ -312,13 +354,13 @@ media.</dd>
|
|||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<p>Untuk menggunakan API baru ini, panggil metode {@code setStyle()}, dengan meneruskan
|
<p>Untuk menggunakan API baru ini, panggil metode {@code setStyle()}, dengan meneruskan
|
||||||
gaya tampilan custom yang diinginkan padanya.</p>
|
gaya tampilan khusus yang diinginkan padanya.</p>
|
||||||
|
|
||||||
<p>Cuplikan ini menampilkan cara membuat objek pemberitahuan custom dengan metode
|
<p>Cuplikan ini menampilkan cara membuat objek pemberitahuan khusus dengan metode
|
||||||
{@code DecoratedCustomViewStyle()}.</p>
|
{@code DecoratedCustomViewStyle()}.</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
Notification noti = new Notification.Builder()
|
Notification notification = new Notification.Builder()
|
||||||
.setSmallIcon(R.drawable.ic_stat_player)
|
.setSmallIcon(R.drawable.ic_stat_player)
|
||||||
.setLargeIcon(albumArtBitmap))
|
.setLargeIcon(albumArtBitmap))
|
||||||
.setCustomContentView(contentView);
|
.setCustomContentView(contentView);
|
||||||
@@ -326,3 +368,26 @@ Notification noti = new Notification.Builder()
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
<h2 id="style">Gaya Perpesanan</h2>
|
||||||
|
<p>
|
||||||
|
Android N memperkenalkan API baru untuk menyesuaikan gaya pemberitahuan.
|
||||||
|
Dengan menggunakan kelas <code>MessageStyle</code>, Anda bisa mengubah beberapa
|
||||||
|
label yang ditampilkan pada pemberitahuan, termasuk judul percakapan,
|
||||||
|
pesan tambahan, dan tampilan materi untuk pemberitahuannya.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Cuplikan kode berikut memperagakan cara menyesuaikan sebuah
|
||||||
|
gaya pemberitahuan menggunakan kelas <code>MessageStyle</code>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
Notification notification = new Notification.Builder()
|
||||||
|
.setStyle(new Notification.MessagingStyle("Me")
|
||||||
|
.setConversationTitle("Team lunch")
|
||||||
|
.addMessage("Hi", timestamp1, null) // Pass in null for user.
|
||||||
|
.addMessage("What's up?", timestamp2, "Coworker")
|
||||||
|
.addMessage("Not much", timestamp3, null)
|
||||||
|
.addMessage("How about lunch?", timestamp4, "Coworker"));
|
||||||
|
</pre>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Gambar-dalam-gambar
|
page.title=Gambar-dalam-gambar
|
||||||
page.keywords=preview,sdk,PIP,Picture-in-picture
|
page.keywords=pratinjau,sdk,PIP,Gambar-dalam-gambar
|
||||||
page.tags=androidn
|
page.tags=androidn
|
||||||
|
|
||||||
@jd:body
|
@jd:body
|
||||||
@@ -16,6 +16,8 @@ Gambar-dalam-gambar</a></li>
|
|||||||
<li><a href="#handling_ui">Menangani UI Selama Gambar-dalam-gambar</a>
|
<li><a href="#handling_ui">Menangani UI Selama Gambar-dalam-gambar</a>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#continuing_playback">Melanjutkan Pemutaran Video Saat dalam
|
<li><a href="#continuing_playback">Melanjutkan Pemutaran Video Saat dalam
|
||||||
|
Gambar-dalam-gambar</a></li>
|
||||||
|
<li><a href="#single_playback">Menggunakan Aktivitas Pemutaran Tunggal untuk
|
||||||
Gambar-dalam-gambar</a></li>
|
Gambar-dalam-gambar</a></li>
|
||||||
<li><a href="#best">Praktik Terbaik</a></li>
|
<li><a href="#best">Praktik Terbaik</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
@@ -41,13 +43,13 @@ kapan memasuki mode PIP:</p>
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Aplikasi Anda bisa memindahkan video ke dalam mode PIP bila pengguna mengarah
|
<li>Aplikasi Anda bisa memindahkan video ke dalam mode PIP bila pengguna mengarah
|
||||||
mundur dari video untuk melihat-lihat konten lainnya.</li>
|
mundur dari video untuk menjelajah materi lainnya.</li>
|
||||||
<li>Aplikasi Anda bisa mengalihkan video ke dalam mode PIP selagi pengguna menonton akhir episode
|
<li>Aplikasi Anda bisa mengalihkan video ke dalam mode PIP selagi pengguna menonton akhir episode
|
||||||
dari konten. Layar utama menampilkan informasi
|
dari materi. Layar utama menampilkan informasi
|
||||||
promosi atau rangkuman tentang episode berikutnya dalam seri tersebut.</li>
|
promosi atau rangkuman tentang episode berikutnya dalam seri tersebut.</li>
|
||||||
<li>Aplikasi Anda bisa menyediakan suatu cara bagi pengguna untuk mengantre konten tambahan selagi
|
<li>Aplikasi Anda bisa menyediakan suatu cara bagi pengguna untuk mengantre materi tambahan selagi
|
||||||
mereka menonton video. Video terus dimainkan dalam mode PIP selagi layar
|
mereka menonton video. Video terus dimainkan dalam mode PIP selagi layar
|
||||||
utama menampilkan aktivitas pemilihan konten.</li>
|
utama menampilkan aktivitas pemilihan materi.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Jendela PIP memiliki luas 240x135 dp dan ditampilkan di layer paling atas pada salah satu
|
<p>Jendela PIP memiliki luas 240x135 dp dan ditampilkan di layer paling atas pada salah satu
|
||||||
@@ -59,11 +61,11 @@ ditutup. Pengguna juga bisa menutup jendela PIP melalui Recents.</p>
|
|||||||
|
|
||||||
<img src="{@docRoot}preview/images/pip-active.png" />
|
<img src="{@docRoot}preview/images/pip-active.png" />
|
||||||
<p class="img-caption"><strong>Gambar 1.</strong> Video
|
<p class="img-caption"><strong>Gambar 1.</strong> Video
|
||||||
Gambar-dalam-gambar terlihat di sudut layar selagi pengguna melihat-lihat konten pada layar
|
Gambar-dalam-gambar terlihat di sudut layar selagi pengguna menjelajahi materi pada layar
|
||||||
utama.</p>
|
utama.</p>
|
||||||
|
|
||||||
<p>PIP memanfaatkan API multi-jendela yang tersedia di Android N untuk
|
<p>PIP memanfaatkan API multi-jendela yang tersedia di Android N untuk
|
||||||
menyediakan jendela overlay video yang disematkan. Untuk menambahkan PIP ke aplikasi, Anda harus
|
menyediakan jendela hamparan video yang disematkan. Untuk menambahkan PIP ke aplikasi, Anda harus
|
||||||
mendaftarkan aktivitas yang mendukung PIP, mengalihkan aktivitas Anda ke mode PIP bila
|
mendaftarkan aktivitas yang mendukung PIP, mengalihkan aktivitas Anda ke mode PIP bila
|
||||||
diperlukan, serta memastikan elemen UI disembunyikan dan pemutaran video berlanjut bila
|
diperlukan, serta memastikan elemen UI disembunyikan dan pemutaran video berlanjut bila
|
||||||
aktivitas dalam mode PIP.</p>
|
aktivitas dalam mode PIP.</p>
|
||||||
@@ -72,7 +74,7 @@ aktivitas dalam mode PIP.</p>
|
|||||||
|
|
||||||
<p>Secara default, sistem tidak secara otomatis mendukung PIP untuk aplikasi.
|
<p>Secara default, sistem tidak secara otomatis mendukung PIP untuk aplikasi.
|
||||||
Jika Anda ingin mendukung PIP dalam aplikasi, daftarkan aktivitas
|
Jika Anda ingin mendukung PIP dalam aplikasi, daftarkan aktivitas
|
||||||
video Anda dalam manifes dengan mengatur
|
video Anda dalam manifes dengan menyetel
|
||||||
<code>android:supportsPictureInPicture</code> dan
|
<code>android:supportsPictureInPicture</code> dan
|
||||||
<code>android:resizeableActivity</code> ke <code>true</code>. Juga, tetapkan
|
<code>android:resizeableActivity</code> ke <code>true</code>. Juga, tetapkan
|
||||||
bahwa aktivitas Anda menangani perubahan konfigurasi layout sehingga aktivitas
|
bahwa aktivitas Anda menangani perubahan konfigurasi layout sehingga aktivitas
|
||||||
@@ -88,16 +90,16 @@ Anda tidak diluncurkan ulang saat terjadi perubahan layout selama transisi mode
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>Saat mendaftarkan aktivitas Anda, ingatlah bahwa dalam mode PIP aktivitas
|
<p>Saat mendaftarkan aktivitas Anda, ingatlah bahwa dalam mode PIP aktivitas
|
||||||
Anda akan ditampilkan pada jendela overlay kecil pada layar TV. Aktivitas
|
Anda akan ditampilkan pada jendela hamparan kecil pada layar TV. Aktivitas
|
||||||
pemutaran video dengan UI minimal akan memberikan pengalaman pengguna terbaik. Aktivitas yang
|
pemutaran video dengan UI minimal akan memberikan pengalaman pengguna terbaik. Aktivitas yang
|
||||||
berisi elemen UI kecil mungkin tidak memberikan pengalaman pengguna yang baik
|
mengandung elemen UI kecil mungkin tidak memberikan pengalaman pengguna yang baik
|
||||||
bila beralih ke mode PIP, karena pengguna tidak bisa melihat elemen UI secara detail
|
ketika beralih ke mode PIP, karena pengguna tidak dapat melihat elemen UI secara jelas
|
||||||
di jendela PIP.</p>
|
di jendela PIP.</p>
|
||||||
|
|
||||||
<h2 id="pip_button">Mengalihkan Aktivitas Anda ke Gambar-dalam-gambar</h2>
|
<h2 id="pip_button">Mengalihkan Aktivitas Anda ke Gambar-dalam-gambar</h2>
|
||||||
|
|
||||||
Bila Anda perlu untuk mengalihkan aktivitas Anda ke mode PIP, panggil
|
Bila Anda perlu untuk mengalihkan aktivitas ke mode PIP, panggil
|
||||||
<code>Activity.enterPictureInPicture()</code>. Contoh berikut mengalihkan
|
<code>Activity.enterPictureInPictureMode()</code>. Contoh berikut mengalihkan
|
||||||
ke mode PIP bila pengguna memilih tombol PIP khusus pada baris
|
ke mode PIP bila pengguna memilih tombol PIP khusus pada baris
|
||||||
kontrol media:</p>
|
kontrol media:</p>
|
||||||
|
|
||||||
@@ -105,7 +107,7 @@ kontrol media:</p>
|
|||||||
@Override
|
@Override
|
||||||
public void onActionClicked(Action action) {
|
public void onActionClicked(Action action) {
|
||||||
if (action.getId() == R.id.lb_control_picture_in_picture) {
|
if (action.getId() == R.id.lb_control_picture_in_picture) {
|
||||||
getActivity().enterPictureInPicture();
|
getActivity().enterPictureInPictureMode();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
...
|
...
|
||||||
@@ -124,17 +126,17 @@ tindakan PIP baris kontrol dan menggunakan ikon PIP.</p>
|
|||||||
|
|
||||||
<h2 id="handling_ui">Menangani UI Selama Gambar-dalam-gambar</h2>
|
<h2 id="handling_ui">Menangani UI Selama Gambar-dalam-gambar</h2>
|
||||||
|
|
||||||
<p>Bila aktivitas Anda memasuki mode PIP, aktivitas Anda seharusnya hanya menampilkan pemutaran
|
<p>Bila aktivitas memasuki mode PIP, aktivitas Anda seharusnya hanya menampilkan pemutaran
|
||||||
video. Hilangkan elemen UI sebelum aktivitas Anda memasuki PIP,
|
video. Buang elemen UI sebelum aktivitas Anda memasuki PIP,
|
||||||
dan pulihkan elemen ini bila aktivitas Anda beralih ke layar penuh lagi.
|
dan pulihkan elemen ini bila aktivitas Anda beralih ke layar penuh lagi.
|
||||||
Kesampingkan <code>Activity.onPictureInPictureChanged()</code> atau
|
Ganti <code>Activity.onPictureInPictureModeChanged()</code> atau
|
||||||
<code>Fragment.onPictureInPictureChanged()</code> dan aktifkan atau
|
<code>Fragment.onPictureInPictureModeChanged()</code> dan aktifkan atau
|
||||||
nonaktifkan elemen UI saat diperlukan, misalnya:</p>
|
nonaktifkan elemen UI saat diperlukan, misalnya:</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
@Override
|
@Override
|
||||||
public void onPictureInPictureChanged(boolean inPictureInPicture) {
|
public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
|
||||||
if (inPictureInPicture) {
|
if (isInPictureInPictureMode) {
|
||||||
// Hide the controls in picture-in-picture mode.
|
// Hide the controls in picture-in-picture mode.
|
||||||
...
|
...
|
||||||
} else {
|
} else {
|
||||||
@@ -157,8 +159,8 @@ misalnya:</p>
|
|||||||
<pre>
|
<pre>
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
// If called due to PIP, do not pause playback
|
// If called while in PIP mode, do not pause playback
|
||||||
if (inPictureInPicture()) {
|
if (isInPictureInPictureMode()) {
|
||||||
// Continue playback
|
// Continue playback
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
@@ -167,13 +169,38 @@ public void onPause() {
|
|||||||
}
|
}
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>Bila aktivitas Anda meninggalkan mode PIP dan kembali ke mode layar penuh, sistem
|
<p>Bila aktivitas meninggalkan mode PIP dan kembali ke mode layar penuh, sistem
|
||||||
akan melanjutkan aktivitas Anda dan memanggil metode <code>onResume()</code> Anda.</p>
|
akan melanjutkan aktivitas Anda dan memanggil metode <code>onResume()</code>.</p>
|
||||||
|
|
||||||
|
<h2 id="single_playback">Menggunakan Aktivitas Pemutaran Tunggal untuk
|
||||||
|
Gambar-dalam-gambar</h2>
|
||||||
|
|
||||||
|
<p>Di aplikasi Anda, seorang pengguna bisa memilih video baru saat menyusuri materi di
|
||||||
|
layar utama, selagi aktivitas pemutaran video dalam mode PIP. Putar
|
||||||
|
video baru di aktivitas pemutaran yang ada dalam mode layar penuh, sebagai ganti
|
||||||
|
meluncurkan aktivitas baru yang dapat membingungkan pengguna.</p>
|
||||||
|
|
||||||
|
<p>Guna memastikan aktivitas tunggal digunakan untuk permintaan pemutaran video dan
|
||||||
|
beralih ke atau dari mode PIP bila dibutuhkan, setel
|
||||||
|
<code>android:launchMode</code> aktivitas ke <code>singleTask</code> dalam manifes Anda:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
<activity android:name="VideoActivity"
|
||||||
|
...
|
||||||
|
android:supportsPictureInPicture="true"
|
||||||
|
android:launchMode="singleTask"
|
||||||
|
...
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>Di aktivitas Anda, ganti {@link android.app.Activity#onNewIntent
|
||||||
|
Activity.onNewIntent()} dan tangani video baru, yang akan menghentikan pemutaran video
|
||||||
|
jika diperlukan.</p>
|
||||||
|
|
||||||
<h2 id="best">Praktik Terbaik</h2>
|
<h2 id="best">Praktik Terbaik</h2>
|
||||||
|
|
||||||
<p>PIP ditujukan untuk aktivitas yang memutar video layar penuh. Saat mengalihkan
|
<p>PIP ditujukan untuk aktivitas yang memutar video layar penuh. Saat mengalihkan
|
||||||
aktivitas Anda ke mode PIP, hindari menampilkan apa pun selain konten video.
|
aktivitas Anda ke mode PIP, hindari menampilkan apa pun selain materi video.
|
||||||
Pantau saat aktivitas Anda memasuki mode PIP dan sembunyikan elemen UI, seperti dijelaskan
|
Pantau saat aktivitas Anda memasuki mode PIP dan sembunyikan elemen UI, seperti dijelaskan
|
||||||
dalam <a href="#handling_ui">Menangani UI Selama Gambar-dalam-gambar</a>.</p>
|
dalam <a href="#handling_ui">Menangani UI Selama Gambar-dalam-gambar</a>.</p>
|
||||||
|
|
||||||
@@ -181,6 +208,6 @@ dalam <a href="#handling_ui">Menangani UI Selama Gambar-dalam-gambar</a>.</p>
|
|||||||
layar, Anda harus menghindari menampilkan informasi penting di layar utama
|
layar, Anda harus menghindari menampilkan informasi penting di layar utama
|
||||||
di area mana saja yang bisa terhalang oleh jendela PIP.</p>
|
di area mana saja yang bisa terhalang oleh jendela PIP.</p>
|
||||||
|
|
||||||
<p>Bila aktivitas ada berada dalam mode PIP, secara default aktivitas itu tidak mendapatkan fokus input. Untuk
|
<p>Bila aktivitas ada berada dalam mode PIP, secara default aktivitas itu tidak mendapatkan fokus masukan. Untuk
|
||||||
menerima kejadian input saat dalam mode PIP, gunakan
|
menerima kejadian masukan saat dalam mode PIP, gunakan
|
||||||
<code>MediaSession.setMediaButtonReceiver()</code>.</p>
|
<code>MediaSession.setMediaButtonReceiver()</code>.</p>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Scoped Directory Access
|
page.title=Scoped Directory Access
|
||||||
page.keywords=preview,sdk,scoped directory access
|
page.keywords=pratinjau,sdk,scoped directory access
|
||||||
page.tags=androidn
|
page.tags=androidn
|
||||||
|
|
||||||
@jd:body
|
@jd:body
|
||||||
@@ -17,15 +17,15 @@ page.tags=androidn
|
|||||||
|
|
||||||
<p>Aplikasi seperti aplikasi foto biasanya hanya memerlukan akses ke direktori tertentu dalam
|
<p>Aplikasi seperti aplikasi foto biasanya hanya memerlukan akses ke direktori tertentu dalam
|
||||||
penyimpanan eksternal, seperti direktori <code>Pictures</code>. Pendekatan
|
penyimpanan eksternal, seperti direktori <code>Pictures</code>. Pendekatan
|
||||||
yang ada untuk mengakses penyimpanan eksternal tidak didesain untuk memberikan
|
yang ada dalam mengakses penyimpanan eksternal tidak didesain untuk memberi kemudahan
|
||||||
akses direktori target dengan mudah untuk tipe aplikasi ini. Misalnya:</p>
|
akses direktori tertarget untuk tipe aplikasi ini. Misalnya:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Meminta {@link android.Manifest.permission#READ_EXTERNAL_STORAGE}
|
<li>Meminta {@link android.Manifest.permission#READ_EXTERNAL_STORAGE}
|
||||||
atau {@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE} dalam manifes Anda
|
atau {@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE} dalam manifes Anda
|
||||||
akan memungkinkan akses ke semua direktori publik pada penyimpanan eksternal, yang mungkin
|
akan memungkinkan akses ke semua direktori publik pada penyimpanan eksternal, yang mungkin
|
||||||
lebih banyak akses dari yang dibutuhkan aplikasi Anda.</li>
|
lebih banyak akses dari yang dibutuhkan aplikasi Anda.</li>
|
||||||
<li>Penggunaan
|
<li>Menggunakan
|
||||||
<a href="{@docRoot}guide/topics/providers/document-provider.html">Storage
|
<a href="{@docRoot}guide/topics/providers/document-provider.html">Storage
|
||||||
Access Framework</a> biasanya membuat pengguna Anda memilih direktori
|
Access Framework</a> biasanya membuat pengguna Anda memilih direktori
|
||||||
melalui UI sistem, yang tidak diperlukan jika aplikasi Anda selalu mengakses
|
melalui UI sistem, yang tidak diperlukan jika aplikasi Anda selalu mengakses
|
||||||
@@ -41,9 +41,23 @@ direktori penyimpanan eksternal umum. </p>
|
|||||||
<code>StorageVolume</code> yang tepat. Kemudian, buat intent dengan memanggil metode
|
<code>StorageVolume</code> yang tepat. Kemudian, buat intent dengan memanggil metode
|
||||||
<code>StorageVolume.createAccessIntent()</code> dari instance itu.
|
<code>StorageVolume.createAccessIntent()</code> dari instance itu.
|
||||||
Gunakan intent ini untuk mengakses direktori penyimpanan eksternal. Untuk mendapatkan daftar
|
Gunakan intent ini untuk mengakses direktori penyimpanan eksternal. Untuk mendapatkan daftar
|
||||||
semua isi yang tersedia, termasuk isi media lepas-pasang, gunakan
|
semua volume yang tersedia, termasuk volume media lepas-pasang, gunakan
|
||||||
<code>StorageManager.getVolumesList()</code>.</p>
|
<code>StorageManager.getVolumesList()</code>.</p>
|
||||||
|
|
||||||
|
<p>Jika Anda memiliki informasi tentang file spesifik, gunakan
|
||||||
|
<code>StorageManager.getStorageVolume(File)</code> untuk mendapatkan
|
||||||
|
<code>StorageVolume</code> yang berisi file tersebut. Panggil
|
||||||
|
<code>createAccessIntent()</code> pada <code>StorageVolume</code> ini untuk mengakses
|
||||||
|
direktori penyimpanan eksternal untuk file tersebut.</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Di volume kedua, seperti kartu SD eksternal, teruskan null saat memanggil
|
||||||
|
<code>StorageVolume.createAccessIntent()</code> untuk meminta akses ke seluruh
|
||||||
|
volume, sebagai ganti direktori spesifik.
|
||||||
|
<code>StorageVolume.createAccessIntent()</code> akan mengembalikan null jika Anda meneruskan
|
||||||
|
null ke volume utama, atau jika Anda meneruskan nama direktori yang tidak valid.
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>Cuplikan kode berikut adalah contoh cara membuka direktori
|
<p>Cuplikan kode berikut adalah contoh cara membuka direktori
|
||||||
<code>Pictures</code> dalam penyimpanan bersama utama:</p>
|
<code>Pictures</code> dalam penyimpanan bersama utama:</p>
|
||||||
|
|
||||||
@@ -62,7 +76,7 @@ diperlukan mengonfirmasi akses dengan pengguna menggunakan UI yang disederhanaka
|
|||||||
<p class="img-caption"><strong>Gambar 1.</strong> Sebuah aplikasi yang meminta
|
<p class="img-caption"><strong>Gambar 1.</strong> Sebuah aplikasi yang meminta
|
||||||
akses ke direktori Pictures.</p>
|
akses ke direktori Pictures.</p>
|
||||||
|
|
||||||
<p>Jika pengguna memberi akses, sistem akan memanggil pengesampingan
|
<p>Jika pengguna memberi akses, sistem akan memanggil penggantian
|
||||||
<code>onActivityResult()</code> Anda dengan kode hasil
|
<code>onActivityResult()</code> Anda dengan kode hasil
|
||||||
<code>Activity.RESULT_OK</code>, dan data intent yang berisi URI. Gunakan
|
<code>Activity.RESULT_OK</code>, dan data intent yang berisi URI. Gunakan
|
||||||
URI yang disediakan untuk mengakses informasi direktori, serupa dengan menggunakan URI
|
URI yang disediakan untuk mengakses informasi direktori, serupa dengan menggunakan URI
|
||||||
@@ -70,7 +84,7 @@ yang dikembalikan oleh
|
|||||||
<a href="{@docRoot}guide/topics/providers/document-provider.html">Storage
|
<a href="{@docRoot}guide/topics/providers/document-provider.html">Storage
|
||||||
Access Framework</a>.</p>
|
Access Framework</a>.</p>
|
||||||
|
|
||||||
<p>Jika pengguna tidak memberi akses, sistem akan memanggil pengesampingan
|
<p>Jika pengguna tidak memberi akses, sistem akan memanggil penggantian
|
||||||
<code>onActivityResult()</code> Anda dengan kode hasil
|
<code>onActivityResult()</code> Anda dengan kode hasil
|
||||||
<code>Activity.RESULT_CANCELED</code>, dan data intent nol.</p>
|
<code>Activity.RESULT_CANCELED</code>, dan data intent nol.</p>
|
||||||
|
|
||||||
@@ -121,4 +135,14 @@ pengguna.</p>
|
|||||||
|
|
||||||
<p>Jika pengguna menolak akses ke direktori eksternal, jangan langsung
|
<p>Jika pengguna menolak akses ke direktori eksternal, jangan langsung
|
||||||
meminta akses lagi. Berulang kali meminta akses akan menghasilkan pengalaman
|
meminta akses lagi. Berulang kali meminta akses akan menghasilkan pengalaman
|
||||||
pengguna yang buruk.</p>
|
pengguna yang buruk. Jika permintaan ditolak oleh pengguna, dan aplikasi meminta akses
|
||||||
|
lagi, UI akan menampilkan kotak centang <b>Don't ask again</b>:</p>
|
||||||
|
|
||||||
|
<img src="{@docRoot}preview/images/scoped-folder-access-dont-ask.png" srcset="{@docRoot}preview/images/scoped-folder-access-dont-ask.png 1x,
|
||||||
|
{@docRoot}preview/images/scoped-folder-access-dont-ask_2x.png 2x" />
|
||||||
|
<p class="img-caption"><strong>Gambar 1.</strong> Sebuah aplikasi membuat
|
||||||
|
permintaan kedua untuk mengakses media lepas-pasang.</p>
|
||||||
|
|
||||||
|
<p>Jika pengguna memilih <b>Don't ask again</b> dan menolak permintaan,
|
||||||
|
semua permintaan berikutnya untuk direktori yang diberikan dari aplikasi
|
||||||
|
Anda secara otomatis akan ditolak, dan tidak ada UI permintaan yang akan ditampilkan ke pengguna.</p>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Network Security Configuration
|
page.title=Konfigurasi Keamanan Jaringan
|
||||||
page.keywords=androidn,security,network
|
page.keywords=androidn,keamanan,jaringan
|
||||||
page.image=images/cards/card-nyc_2x.jpg
|
page.image=images/cards/card-nyc_2x.jpg
|
||||||
|
|
||||||
@jd:body
|
@jd:body
|
||||||
@@ -12,12 +12,12 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
<li><a href="#manifest">Menambahkan File Konfigurasi Keamanan</a></li>
|
<li><a href="#manifest">Menambahkan File Konfigurasi Keamanan</a></li>
|
||||||
<li><a href="#CustomTrust">Menyesuaikan CA Tepercaya</a>
|
<li><a href="#CustomTrust">Menyesuaikan CA Tepercaya</a>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#ConfigCustom">Mengonfigurasi CA Tepercaya Custom</a></li>
|
<li><a href="#ConfigCustom">Mengonfigurasi CA Tepercaya Khusus</a></li>
|
||||||
<li><a href="#LimitingCas">Membatasi Set CA Tepercaya</a></li>
|
<li><a href="#LimitingCas">Membatasi Set CA Tepercaya</a></li>
|
||||||
<li><a href="#TrustingAdditionalCas">Mempercayai CA Tambahan</a></li>
|
<li><a href="#TrustingAdditionalCas">Mempercayai CA Tambahan</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#TrustingDebugCa">Merunut CA Saja</a></li>
|
<li><a href="#TrustingDebugCa">CA Debug Saja</a></li>
|
||||||
<li><a href="#UsesCleartextTraffic">Berhenti dari Lalu Lintas Cleartext</a></li>
|
<li><a href="#UsesCleartextTraffic">Berhenti dari Lalu Lintas Cleartext</a></li>
|
||||||
<li><a href="#CertificatePinning">Menyematkan Sertifikat</a></li>
|
<li><a href="#CertificatePinning">Menyematkan Sertifikat</a></li>
|
||||||
<li><a href="#ConfigInheritance">Perilaku Pewarisan Konfigurasi</a></li>
|
<li><a href="#ConfigInheritance">Perilaku Pewarisan Konfigurasi</a></li>
|
||||||
@@ -29,23 +29,23 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Android N menyertakan fitur
|
Android N menyertakan fitur
|
||||||
Network Security Configuration yang memungkinkan aplikasi menyesuaikan pengaturan keamanan jaringan mereka dalam
|
Network Security Configuration yang memungkinkan aplikasi menyesuaikan setelan keamanan jaringan mereka dalam
|
||||||
file konfigurasi deklaratif yang aman tanpa memodifikasi kode aplikasi. Pengaturan ini bisa
|
file konfigurasi deklaratif yang aman tanpa memodifikasi kode aplikasi. Setelan ini bisa
|
||||||
dikonfigurasi untuk domain dan aplikasi tertentu. Kemampuan
|
dikonfigurasi untuk domain dan aplikasi tertentu. Kemampuan
|
||||||
utama fitur ini adalah sebagai berikut:
|
utama fitur ini adalah sebagai berikut:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<b>Trust-anchor custom:</b> Menyesuaikan Certificate Authorities (CA) mana
|
<b>Trust-anchor khusus:</b> Menyesuaikan Certificate Authorities (CA) mana
|
||||||
yang dipercaya untuk koneksi aman aplikasi. Misalnya,
|
yang dipercaya untuk koneksi aman aplikasi. Misalnya,
|
||||||
mempercayai sertifikat tertentu yang ditandatangani sendiri atau membatasi
|
mempercayai sertifikat tertentu yang ditandatangani sendiri atau membatasi
|
||||||
set CA umum yang dipercaya aplikasi.
|
set CA umum yang dipercaya aplikasi.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<b>Pengesampingan hanya-runut:</b> Merunut secara aman koneksi aman dalam aplikasi
|
<b>Penggantian hanya-debug:</b> Men-debug secara aman koneksi aman dalam aplikasi
|
||||||
tanpa menambahkan risiko pada basis yang telah diinstal.
|
tanpa menambahkan risiko pada basis yang telah dipasang.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
@@ -64,35 +64,36 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Fitur Network Security Configuration menggunakan file XML tempat Anda menetapkan
|
Fitur Network Security Configuration menggunakan file XML tempat Anda menetapkan
|
||||||
pengaturan untuk aplikasi. Anda harus menyertakan sebuah entri dalam manifes aplikasi
|
setelan untuk aplikasi. Anda harus menyertakan sebuah entri dalam manifes aplikasi
|
||||||
untuk menunjuk ke file ini. Kutipan kode berikut dari sebuah manifes
|
untuk menunjuk ke file ini. Kutipan kode berikut dari sebuah manifes
|
||||||
yang memperagakan cara membuat entri ini:
|
yang memperagakan cara membuat entri ini:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
...
|
<manifest ... >
|
||||||
<app ...>
|
<application ... >
|
||||||
<meta-data android:name="android.security.net.config"
|
<meta-data android:name="android.security.net.config"
|
||||||
android:resource="@xml/network_security_config" />
|
android:resource="@xml/network_security_config" />
|
||||||
...
|
...
|
||||||
</app>
|
</application>
|
||||||
|
</manifest>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<h2 id="CustomTrust">Menyesuaikan CA Tepercaya</h2>
|
<h2 id="CustomTrust">Menyesuaikan CA Tepercaya</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Aplikasi mungkin perlu mempercayai set CA custom sebagai ganti default
|
Aplikasi mungkin perlu mempercayai set CA khusus sebagai ganti default
|
||||||
platform. Alasannya yang paling umum adalah:
|
platform. Alasannya yang paling umum adalah:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Menghubungkan ke host dengan otoritas sertifikat custom (ditandatangani sendiri,
|
<li>Menghubungkan ke host dengan otoritas sertifikat khusus (ditandatangani sendiri,
|
||||||
dikeluarkan oleh CA internal, dll).
|
dikeluarkan oleh CA internal, dll).
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Membatasi set CA hanya untuk CA yang Anda percaya sebagai ganti setiap CA
|
<li>Membatasi set CA hanya untuk CA yang Anda percaya sebagai ganti setiap CA
|
||||||
yang sudah terinstal.
|
yang sudah terpasang.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>Mempercayai CA tambahan yang tidak disertakan dalam sistem.
|
<li>Mempercayai CA tambahan yang tidak disertakan dalam sistem.
|
||||||
@@ -100,16 +101,16 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Secara default koneksi (misalnya TLS, HTTPS) aman dari semua aplikasi mempercayai
|
Secara default koneksi (mis. TLS, HTTPS) aman dari semua aplikasi mempercayai
|
||||||
CA yang telah diinstal oleh sistem, dan aplikasi yang menargetkan API level 23
|
CA yang telah dipasang oleh sistem, dan aplikasi yang menargetkan API level 23
|
||||||
(Android M) ke bawah, juga mempercayai penyimpanan CA yang ditambahkan pengguna secara default. Aplikasi
|
(Android M) ke bawah, juga mempercayai penyimpanan CA yang ditambahkan pengguna secara default. Aplikasi
|
||||||
bisa menyesuaikan koneksinya sendiri menggunakan {@code base-config} (untuk
|
bisa menyesuaikan koneksinya menggunakan {@code base-config} (untuk
|
||||||
penyesuaian di tingkat aplikasi) atau {@code domain-config} (untuk penyesuaian
|
penyesuaian lebar-aplikasi) atau {@code domain-config} (untuk penyesuaian
|
||||||
per-domain).
|
per-domain).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3 id="ConfigCustom">Mengonfigurasi CA Custom</h3>
|
<h3 id="ConfigCustom">Mengonfigurasi CA Khusus</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Anggaplah Anda ingin menghubungkan ke host Anda yang menggunakan sertifikat
|
Anggaplah Anda ingin menghubungkan ke host Anda yang menggunakan sertifikat
|
||||||
@@ -147,7 +148,7 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Konfigurasi untuk membatasi set CA tepercaya mirip dengan <a href="#TrustingACustomCa">mempercayai CA custom</a> untuk domain tertentu selain
|
Konfigurasi untuk membatasi set CA tepercaya mirip dengan <a href="#TrustingACustomCa">mempercayai CA khusus</a> untuk domain tertentu selain
|
||||||
beberapa CA disediakan dalam sumber daya.
|
beberapa CA disediakan dalam sumber daya.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -203,23 +204,23 @@ sebagai ganti satu elemen.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="TrustingDebugCa">Mengonfigurasi CA untuk Perunutan</h2>
|
<h2 id="TrustingDebugCa">Mengonfigurasi CA untuk Debug</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Saat merunut aplikasi yang terhubung melalui HTTPS, Anda mungkin perlu
|
Saat men-debug aplikasi yang terhubung melalui HTTPS, Anda mungkin perlu
|
||||||
menghubungkan ke server pengembangan lokal, yang tidak memiliki sertifikat
|
menghubungkan ke server pengembangan lokal, yang tidak memiliki sertifikat
|
||||||
SSL untuk server produksi Anda. Untuk mendukungnya tanpa
|
SSL untuk server produksi Anda. Untuk mendukungnya tanpa
|
||||||
memodifikasi kode aplikasi, Anda bisa menetapkan CA hanya-runut
|
memodifikasi kode aplikasi, Anda bisa menetapkan CA hanya-debug
|
||||||
yang <i>hanya</i> dipercaya bila <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">
|
yang <i>hanya</i> dipercaya bila <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">
|
||||||
android:debuggable</a>
|
android:debuggable</a>
|
||||||
adalah {@code true} dengan menggunakan {@code debug-overrides}. Biasanya IDE dan alat
|
adalah {@code true} dengan menggunakan {@code debug-overrides}. Biasanya IDE dan alat
|
||||||
build mengatur flag ini secara otomatis untuk build non-rilis.
|
build menyetel flag ini secara otomatis untuk build non-rilis.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Ini lebih aman daripada kode kondisional biasa karena, sebagai tindakan
|
Ini lebih aman daripada kode kondisional biasa karena, sebagai tindakan
|
||||||
pencegahan keamanan, toko aplikasi tidak menerima aplikasi yang ditandai
|
pencegahan keamanan, toko aplikasi tidak menerima aplikasi yang ditandai
|
||||||
bisa-dirunut.
|
bisa-di-debug.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -240,9 +241,9 @@ android:debuggable</a>
|
|||||||
<h2 id="UsesCleartextTraffic">Berhenti dari Lalu Lintas Cleartext</h2>
|
<h2 id="UsesCleartextTraffic">Berhenti dari Lalu Lintas Cleartext</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Aplikasi yang bermaksud menghubungkan ke tujuan dengan hanya menggunakan koneksi
|
Aplikasi bermaksud menyambung ke tujuan hanya menggunakan koneksi
|
||||||
aman bisa berhenti mendukung cleartext (menggunakan protokol
|
aman dapat memilih keluar dari dukungan cleartext (menggunakan protokol
|
||||||
HTTP yang tidak dienkripsi sebagai ganti HTTPS) ke tujuan tersebut. Opsi ini akan membantu mencegah
|
HTTP yang tidak terenkripsi sebagai ganti HTTPS) ke tujuan tersebut. Opsi ini akan membantu mencegah
|
||||||
regresi tidak disengaja dalam aplikasi karena perubahan dalam URL yang disediakan oleh sumber-sumber
|
regresi tidak disengaja dalam aplikasi karena perubahan dalam URL yang disediakan oleh sumber-sumber
|
||||||
eksternal seperti server backend.
|
eksternal seperti server backend.
|
||||||
Lihat {@link android.security.NetworkSecurityPolicy#isCleartextTrafficPermitted
|
Lihat {@link android.security.NetworkSecurityPolicy#isCleartextTrafficPermitted
|
||||||
@@ -271,7 +272,7 @@ android:debuggable</a>
|
|||||||
<h2 id="CertificatePinning">Menyematkan Sertifikat</h2>
|
<h2 id="CertificatePinning">Menyematkan Sertifikat</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Biasanya aplikasi mempercayai semua CA yang telah terinstal. Jika salah satu dari CA ini
|
Biasanya aplikasi mempercayai semua CA yang telah terpasang. Jika salah satu dari CA ini
|
||||||
mengeluarkan sertifikat palsu, aplikasi akan berisiko terkena serangan
|
mengeluarkan sertifikat palsu, aplikasi akan berisiko terkena serangan
|
||||||
MiTM. Beberapa aplikasi memilih untuk membatasi set sertifikat yang mereka terima
|
MiTM. Beberapa aplikasi memilih untuk membatasi set sertifikat yang mereka terima
|
||||||
baik dengan membatasi set CA yang mereka percaya atau dengan menyematkan sertifikat.
|
baik dengan membatasi set CA yang mereka percaya atau dengan menyematkan sertifikat.
|
||||||
@@ -293,9 +294,9 @@ android:debuggable</a>
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Selain itu bisa juga mengatur waktu kedaluwarsa untuk pin yang setelah
|
Selain itu dimungkinkan juga menyetel waktu habis masa berlaku untuk pin setelah
|
||||||
itu penyematan tidak dilakukan. Hal ini membantu mencegah masalah konektivitas dalam
|
penyematan tidak dilakukan. Hal ini membantu mencegah masalah konektivitas dalam
|
||||||
aplikasi yang belum diperbarui. Akan tetapi, mengatur waktu kedaluwarsa
|
aplikasi yang belum diperbarui. Akan tetapi, menyetel waktu kedaluwarsa
|
||||||
pada pin mungkin akan membuat penyematan bisa diabaikan.
|
pada pin mungkin akan membuat penyematan bisa diabaikan.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -310,6 +311,7 @@ android:debuggable</a>
|
|||||||
<pin digest="SHA-256">7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=</pin>
|
<pin digest="SHA-256">7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=</pin>
|
||||||
<!-- backup pin -->
|
<!-- backup pin -->
|
||||||
<pin digest="SHA-256">fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=</pin>
|
<pin digest="SHA-256">fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=</pin>
|
||||||
|
</pin-set>
|
||||||
</domain-config>
|
</domain-config>
|
||||||
</network-security-config>
|
</network-security-config>
|
||||||
</pre>
|
</pre>
|
||||||
@@ -319,21 +321,21 @@ android:debuggable</a>
|
|||||||
<h2 id="ConfigInheritance">Perilaku Pewarisan Konfigurasi</h2>
|
<h2 id="ConfigInheritance">Perilaku Pewarisan Konfigurasi</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Nilai yang tidak diatur dalam konfigurasi tertentu akan diwariskan. Perilaku ini memungkinkan konfigurasi
|
Nilai yang tidak disetel dalam konfigurasi tertentu akan diwariskan. Perilaku ini memungkinkan konfigurasi
|
||||||
yang lebih kompleks sambil menjaga file konfigurasi tetap terbaca.
|
yang lebih kompleks sambil menjaga file konfigurasi tetap terbaca.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Jika nilai tidak diatur dalam entri tertentu maka nilai dari entri berikutnya yang lebih
|
Jika nilai tidak disetel dalam entri tertentu maka nilai dari entri berikutnya yang lebih
|
||||||
umum akan digunakan. Nilai yang tidak diatur dalam {@code domain-config} akan
|
umum akan digunakan. Nilai yang tidak disetel dalam {@code domain-config} akan
|
||||||
diambil dari {@code domain-config} induk, jika tersarang, atau dari {@code
|
diambil dari {@code domain-config} induk, jika tersarang, atau dari {@code
|
||||||
base-config} jika tidak. Nilai yang tidak diatur dalam {@code base-config} akan menggunakan
|
base-config} jika tidak. Nilai yang tidak disetel dalam {@code base-config} akan menggunakan
|
||||||
nilai default platform.
|
nilai default platform.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Misalnya pertimbangkan, bila semua koneksi ke subdomain {@code
|
Misalnya pertimbangkan, bila semua koneksi ke subdomain {@code
|
||||||
example.com} harus menggunakan set CA custom. Selain itu, lalu lintas cleartext ke
|
example.com} harus menggunakan set CA khusus. Selain itu, lalu lintas cleartext ke
|
||||||
domain ini diizinkan <em>kecuali</em> saat menghubungkan ke {@code
|
domain ini diizinkan <em>kecuali</em> saat menghubungkan ke {@code
|
||||||
secure.example.com}. Dengan menyarangkan konfigurasi untuk {@code
|
secure.example.com}. Dengan menyarangkan konfigurasi untuk {@code
|
||||||
secure.example.com} dalam konfigurasi untuk {@code example.com},
|
secure.example.com} dalam konfigurasi untuk {@code example.com},
|
||||||
@@ -454,7 +456,7 @@ android:debuggable</a>
|
|||||||
tercakup oleh <a href="#domain-config"><code>domain-config</code></a>.
|
tercakup oleh <a href="#domain-config"><code>domain-config</code></a>.
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Nilai yang tidak diatur akan menggunakan nilai default platform. Konfigurasi
|
Nilai yang tidak disetel akan menggunakan nilai default platform. Konfigurasi
|
||||||
default untuk aplikasi yang menargetkan API level 24 ke atas:
|
default untuk aplikasi yang menargetkan API level 24 ke atas:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -572,7 +574,7 @@ akan digunakan.</p></dd>
|
|||||||
yang dihasilkan oleh alat IDE dan build. Trust-anchor yang ditetapkan dalam {@code
|
yang dihasilkan oleh alat IDE dan build. Trust-anchor yang ditetapkan dalam {@code
|
||||||
debug-overrides} akan ditambahkan ke semua konfigurasi lainnya dan penyematan
|
debug-overrides} akan ditambahkan ke semua konfigurasi lainnya dan penyematan
|
||||||
sertifikat tidak dilakukan bila rantai sertifikat server menggunakan satu dari
|
sertifikat tidak dilakukan bila rantai sertifikat server menggunakan satu dari
|
||||||
trust-anchor hanya-runut ini. Jika <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">android:debuggable</a>
|
trust-anchor hanya-debug ini. Jika <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">android:debuggable</a>
|
||||||
adalah {@code "false"} maka bagian ini akan diabaikan sepenuhnya.
|
adalah {@code "false"} maka bagian ini akan diabaikan sepenuhnya.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
@@ -630,7 +632,7 @@ Sumber sertifikat CA, bisa salah satu dari
|
|||||||
komentar.
|
komentar.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>{@code "system"} untuk sertifikat CA sistem yang telah terinstal.
|
<li>{@code "system"} untuk sertifikat CA sistem yang telah terpasang.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>{@code "user"} untuk sertifikat CA yang ditambahkan pengguna.
|
<li>{@code "user"} untuk sertifikat CA yang ditambahkan pengguna.
|
||||||
@@ -642,9 +644,9 @@ Sumber sertifikat CA, bisa salah satu dari
|
|||||||
<dd>
|
<dd>
|
||||||
<p>
|
<p>
|
||||||
Menetapkan apakah CA dari sumber akan mengabaikan penyematan sertifikat. Jika {@code
|
Menetapkan apakah CA dari sumber akan mengabaikan penyematan sertifikat. Jika {@code
|
||||||
"true"} maka rantai sertifikat yang rantainya melalui salah satu CA dari
|
"true"} kemudian rangkaian sertifikat melalui salah satu CA dari
|
||||||
sumber ini tidak akan disematkan. Hal ini bisa berguna untuk CA
|
sumber ini maka tidak dilakukan penyematan. Hal ini bisa berguna untuk debug CA
|
||||||
perunutan atau untuk mendukung dengan memungkinkan pengguna melakukan MiTM atas lalu lintas aman aplikasi Anda.
|
atau untuk mendukung dengan memungkinkan pengguna melakukan MiTM atas lalu lintas aman aplikasi Anda.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -701,11 +703,11 @@ Sumber sertifikat CA, bisa salah satu dari
|
|||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
Tanggal, dalam format {@code yyyy-MM-dd}, pada saat dan setelah pin
|
Tanggal, dalam format {@code yyyy-MM-dd}, pada saat dan setelah pin
|
||||||
kedaluwarsa, sehingga menonaktifkan penyematan. Jika atribut tidak diatur maka
|
kedaluwarsa, sehingga menonaktifkan penyematan. Jika atribut tidak disetel maka
|
||||||
pin tidak kedaluwarsa.
|
pin tidak kedaluwarsa.
|
||||||
<p>
|
<p>
|
||||||
Tanggal kedaluwarsa membantu mencegah masalah konektivitas di aplikasi yang
|
Tanggal kedaluwarsa membantu mencegah masalah konektivitas di aplikasi yang
|
||||||
tidak mendapatkan pembaruan untuk set pin mereka, misalnya karena pengguna
|
tidak mengambil pembaruan untuk set pin mereka, misalnya karena pengguna
|
||||||
menonaktifkan pembaruan aplikasi.
|
menonaktifkan pembaruan aplikasi.
|
||||||
</p>
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
@@ -737,7 +739,7 @@ Sumber sertifikat CA, bisa salah satu dari
|
|||||||
</dt>
|
</dt>
|
||||||
|
|
||||||
<dd>
|
<dd>
|
||||||
Algoritma intisari yang digunakan untuk menghasilkan pin. Saat ini, hanya
|
Algoritme intisari yang digunakan untuk menghasilkan pin. Saat ini, hanya
|
||||||
{@code "SHA-256"} yang didukung.
|
{@code "SHA-256"} yang didukung.
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
page.title=Perekaman TV
|
page.title=Perekaman TV
|
||||||
page.keywords=preview,sdk,tv,recording
|
page.keywords=pratinjau,sdk,tv,perekaman
|
||||||
page.tags=androidn
|
page.tags=androidn
|
||||||
page.image=images/cards/card-nyc_2x.jpg
|
page.image=images/cards/card-nyc_2x.jpg
|
||||||
|
|
||||||
@@ -18,22 +18,43 @@ page.image=images/cards/card-nyc_2x.jpg
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>Layanan input TV memungkinkan pengguna menghentikan sementara dan melanjutkan pemutaran saluran melalui
|
<p>Layanan masukan TV memungkinkan pengguna menghentikan sementara dan melanjutkan pemutaran saluran melalui
|
||||||
API perekaman atau time-shifting. Android N telah berkembang hingga ke perekaman
|
API perekaman. Android N telah berkembang hingga ke perekaman
|
||||||
dengan memungkinkan pengguna menyimpan beberapa sesi rekaman.</p>
|
dengan memungkinkan pengguna menyimpan beberapa sesi rekaman.</p>
|
||||||
|
|
||||||
<p>Pengguna bisa menjadwalkan rekaman terlebih dahulu, atau memulai rekaman sambil menonton
|
<p>Pengguna bisa menjadwalkan rekaman terlebih dahulu, atau memulai rekaman sambil menonton
|
||||||
suatu acara. Setelah sistem menyimpan rekaman, pengguna bisa melihat-lihat, menata,
|
suatu acara. Setelah sistem menyimpan rekaman, pengguna bisa menjelajah, menata,
|
||||||
dan memutar kembali rekaman tersebut menggunakan aplikasi TV di sistem.</p>
|
dan memutar kembali rekaman tersebut menggunakan aplikasi TV di sistem.</p>
|
||||||
|
|
||||||
<p>Jika Anda ingin menyediakan fungsionalitas perekaman untuk layanan input TV,
|
<p>Jika Anda ingin menyediakan fungsi perekaman untuk layanan masukan TV,
|
||||||
Anda harus menunjukkan pada sistem bahwa aplikasi Anda mendukung perekaman, mengimplementasikan
|
Anda harus menunjukkan pada sistem bahwa aplikasi Anda mendukung perekaman, mengimplementasikan
|
||||||
kemampuan untuk merekam acara, menangani dan memberitahukan setiap kesalahan yang terjadi
|
kemampuan merekam program, menangani dan mengomunikasikan kesalahan yang muncul
|
||||||
selama perekaman, serta mengelola sesi yang telah Anda rekam.</p>
|
selama perekaman, dan mengelola sesi perekaman Anda.</p>
|
||||||
|
|
||||||
|
<p class="note"><strong>Catatan:</strong> Aplikasi Live Channels belum
|
||||||
|
menyediakan cara bagi pengguna untuk membuat atau mengakses perekaman. Hingga dibuat perubahan
|
||||||
|
di aplikasi Live Channels, mungkin sulit menguji sepenuhnya pengalaman
|
||||||
|
perekaman untuk layanan masukan TV Anda.</p>
|
||||||
|
|
||||||
<h2 id="supporting">Menunjukkan Dukungan untuk Perekaman</h2>
|
<h2 id="supporting">Menunjukkan Dukungan untuk Perekaman</h2>
|
||||||
|
|
||||||
<p>Untuk memberi tahu sistem bahwa layanan input TV Anda mendukung perekaman, ikuti
|
<p>Untuk memberi tahu sistem bahwa layanan masukan TV Anda mendukung perekaman, setel
|
||||||
|
atribut <code>android:canRecord</code> di file XML metadata layanan Anda
|
||||||
|
ke <code>true</code>:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
<tv-input xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
<b>android:canRecord="true"</b>
|
||||||
|
android:setupActivity="com.example.sampletvinput.SampleTvInputSetupActivity" />
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>Untuk informasi selengkapnya mengenai layanan file metadata, lihat
|
||||||
|
<a href="{@docRoot}training/tv/tif/tvinput.html#manifest">Mendeklarasikan Layanan Masukan TV Anda
|
||||||
|
di Manifes</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>Atau, Anda bisa menunjukkan dukungan perekaman dalam kode Anda menggunakan
|
||||||
langkah-langkah ini:</p>
|
langkah-langkah ini:</p>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
@@ -42,16 +63,16 @@ langkah-langkah ini:</p>
|
|||||||
</li>
|
</li>
|
||||||
<li>Saat membuat objek <code>TvInputInfo</code> baru, panggil
|
<li>Saat membuat objek <code>TvInputInfo</code> baru, panggil
|
||||||
<code>setCanRecord(true)</code> sebelum memanggil <code>build()</code> untuk
|
<code>setCanRecord(true)</code> sebelum memanggil <code>build()</code> untuk
|
||||||
menunjukkan bahwa layanan Anda mendukung perekaman.</li>
|
menunjukkan layanan Anda mendukung perekaman.</li>
|
||||||
<li>Daftarkan objek <code>TvInputInfo</code> Anda pada sistem dengan memanggil
|
<li>Daftarkan objek <code>TvInputInfo</code> Anda pada sistem dengan memanggil
|
||||||
<code>TvInputService.updateTvInputInfo()</code>.</li>
|
<code>TvInputManager.updateTvInputInfo()</code>.</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<h2 id="recording">Merekam Sesi</h2>
|
<h2 id="recording">Merekam Sesi</h2>
|
||||||
|
|
||||||
<p>Setelah layanan input TV Anda didaftarkan bahwa ia mendukung fungsionalitas
|
<p>Setelah layanan masukan TV Anda mendaftar bahwa mendukung fungsionalitas
|
||||||
perekaman, sistem akan memanggil
|
perekaman, sistem akan memanggil
|
||||||
<code>TvInputService.onCreateRecordingSession()</code> Anda bila perlu mengakses
|
<code>TvInputService.onCreateRecordingSession()</code> bila perlu untuk mengakses
|
||||||
implementasi perekaman aplikasi Anda. Implementasikan subkelas
|
implementasi perekaman aplikasi Anda. Implementasikan subkelas
|
||||||
<code>TvInputService.RecordingSession</code> Anda sendiri dan kembalikan
|
<code>TvInputService.RecordingSession</code> Anda sendiri dan kembalikan
|
||||||
bila callback <code>onCreateRecordingSession()</code> dipicu.
|
bila callback <code>onCreateRecordingSession()</code> dipicu.
|
||||||
@@ -84,9 +105,9 @@ lihat <a href="#sessions">Mengelola Sesi yang Direkam</a>.</p>
|
|||||||
|
|
||||||
<h2 id="errors">Menangani Kesalahan Perekaman</h2>
|
<h2 id="errors">Menangani Kesalahan Perekaman</h2>
|
||||||
|
|
||||||
<p>Jika terjadi kesalahan selama perekaman, rendering data yang terekam menjadi tidak bisa digunakan,
|
<p>Jika terjadi kesalahan selama perekaman, yang menghasilkan data terekam yang tidak bisa digunakan,
|
||||||
beri tahu sistem dengan memanggil <code>RecordingSession.notifyError()</code>.
|
beri tahu sistem dengan memanggil <code>RecordingSession.notifyError()</code>.
|
||||||
Begitu pula, Anda bisa memanggil <code>notifyError()</code> setelah sesi perekaman dibuat
|
Begitu juga, Anda bisa memanggil <code>notifyError()</code> setelah sesi rekaman dibuat
|
||||||
agar sistem mengetahui bahwa aplikasi Anda tidak bisa lagi merekam sesi.</p>
|
agar sistem mengetahui bahwa aplikasi Anda tidak bisa lagi merekam sesi.</p>
|
||||||
|
|
||||||
<p>Jika terjadi kesalahan selama perekaman, namun Anda ingin menyediakan rekaman parsial
|
<p>Jika terjadi kesalahan selama perekaman, namun Anda ingin menyediakan rekaman parsial
|
||||||
@@ -97,14 +118,14 @@ menggunakan sesi parsial.</p>
|
|||||||
<h2 id="sessions">Mengelola Sesi yang Direkam</h2>
|
<h2 id="sessions">Mengelola Sesi yang Direkam</h2>
|
||||||
|
|
||||||
<p>Sistem menyimpan informasi untuk semua sesi yang direkam dari semua
|
<p>Sistem menyimpan informasi untuk semua sesi yang direkam dari semua
|
||||||
aplikasi saluran yang mampu merekam dalam tabel penyedia konten <code>TvContract.RecordedPrograms</code>.
|
aplikasi saluran yang mampu merekam dalam tabel penyedia materi <code>TvContract.RecordedPrograms</code>.
|
||||||
Informasi ini bisa diakses lewat URI konten
|
Informasi ini bisa diakses lewat URI materi
|
||||||
<code>RecordedPrograms.Uri</code>. Gunakan API konten penyedia untuk
|
<code>RecordedPrograms.Uri</code>. Gunakan API penyedia materi untuk
|
||||||
membaca, menambah, dan menghapus entri dari tabel ini.</p>
|
membaca, menambahkan, dan menghapus entri dari tabel ini.</p>
|
||||||
|
|
||||||
<p>Untuk informasi selengkapnya tentang menangani data penyedia konten, lihat
|
<p>Untuk informasi selengkapnya tentang menangani data penyedia materi, lihat
|
||||||
<a href="{@docRoot}guide/topics/providers/content-provider-basics.html">
|
<a href="{@docRoot}guide/topics/providers/content-provider-basics.html">
|
||||||
Dasar-Dasar Penyedia Konten</a>.</p>
|
Dasar-Dasar Penyedia Materi</a>.</p>
|
||||||
|
|
||||||
<h2 id="best">Praktik Terbaik</h2>
|
<h2 id="best">Praktik Terbaik</h2>
|
||||||
|
|
||||||
|
|||||||
190
docs/html-intl/intl/in/preview/guide.jd
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
page.title=Panduan Pengujian
|
||||||
|
page.image=images/cards/card-n-guide_2x.png
|
||||||
|
meta.tags="preview", "testing"
|
||||||
|
page.tags="preview", "developer preview"
|
||||||
|
|
||||||
|
@jd:body
|
||||||
|
|
||||||
|
<div id="qv-wrapper">
|
||||||
|
<div id="qv">
|
||||||
|
<h2>Dalam dokumen ini</h2>
|
||||||
|
<ol>
|
||||||
|
<li><a href="#runtime-permissions">Izin Pengujian</a></li>
|
||||||
|
<li><a href="#doze-standby">Menguji Istirahatkan dan Aplikasi Siaga</a></li>
|
||||||
|
<li><a href="#ids">Pencadangan Otomatis dan Identifier Perangkat</a></li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Android N memberi Anda kesempatan untuk memastikan aplikasi bekerja pada
|
||||||
|
platform versi berikutnya. Pratinjau ini berisi beberapa API dan perubahan perilaku yang bisa
|
||||||
|
memengaruhi aplikasi Anda, sebagaimana dijelaskan dalam <a href="{@docRoot}preview/api-overview.html">Ringkasan
|
||||||
|
API</a> dan <a href="{@docRoot}preview/behavior-changes.html">Perubahan Perilaku</a>. Dalam menguji
|
||||||
|
aplikasi dengan pratinjau, ada beberapa perubahan sistem spesifik yang harus Anda fokuskan untuk
|
||||||
|
memastikan pengguna mendapatkan pengalaman yang bagus.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Panduan ini menjelaskan apa dan bagaimana menguji fitur pratinjau dengan aplikasi Anda. Anda harus
|
||||||
|
mengutamakan pengujian fitur pratinjau spesifik ini, dikarenakan pengaruhnya yang besar pada
|
||||||
|
perilaku aplikasi Anda:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><a href="#runtime-permissions">Izin</a>
|
||||||
|
</li>
|
||||||
|
<li><a href="#doze-standby">Istirahatkan dan Aplikasi Siaga</a>
|
||||||
|
</li>
|
||||||
|
<li><a href="#ids">Pencadangan Otomatis dan Identifier Perangkat</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Untuk informasi selengkapnya tentang cara menyiapkan perangkat atau perangkat maya dengan citra sistem pratinjau
|
||||||
|
untuk pengujian, lihat <a href="{@docRoot}preview/setup-sdk.html">Menyiapkan
|
||||||
|
Android N SDK</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2 id="runtime-permissions">Izin Pengujian</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Model <a href="{@docRoot}preview/features/runtime-permissions.html">Izin</a> yang baru
|
||||||
|
mengubah cara alokasi izin untuk aplikasi Anda oleh pengguna. Sebagai ganti memberi semua
|
||||||
|
izin selama prosedur pemasangan, aplikasi Anda harus meminta izin kepada pengguna secara individual
|
||||||
|
pada waktu proses. Bagi pengguna, perilaku ini memberi kontrol yang lebih detail atas setiap aktivitas aplikasi, dan
|
||||||
|
juga konteks yang lebih untuk memahami sebab aplikasi meminta izin tertentu. Pengguna
|
||||||
|
bisa memberi atau mencabut izin yang diberikan pada suatu aplikasi secara individual kapan saja. Fitur
|
||||||
|
pratinjau ini kemungkinan besar memengaruhi perilaku aplikasi Anda dan mungkin menghambat fungsi beberapa
|
||||||
|
fitur aplikasi Anda, atau mengurangi kualitas kerjanya.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="caution">
|
||||||
|
Perubahan ini memengaruhi semua aplikasi yang berjalan di platform baru, bahkan aplikasi yang tidak menargetkan versi
|
||||||
|
platform baru. Platform ini memberikan perilaku kompatibilitas terbatas untuk aplikasi lawas, namun Anda
|
||||||
|
harus mulai merencanakan migrasi aplikasi ke model izin baru sekarang juga, dengan tujuan
|
||||||
|
mempublikasikan versi terbaru aplikasi Anda saat peluncuran platform secara resmi.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h3 id="permission-test-tips">Tip pengujian</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Gunakan tip berikut untuk membantu Anda merencanakan dan menjalankan pengujian aplikasi dengan
|
||||||
|
perilaku izin yang baru.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Identifikasi izin aplikasi Anda saat ini dan jalur kode terkait.</li>
|
||||||
|
<li>Uji alur pengguna pada semua layanan dan data yang dilindungi izin.</li>
|
||||||
|
<li>Uji dengan berbagai kombinasi izin yang diberikan/dicabut.</li>
|
||||||
|
<li>Gunakan alat bantu {@code adb} untuk mengelola izin dari baris perintah:
|
||||||
|
<ul>
|
||||||
|
<li>Cantumkan daftar izin dan status berdasarkan kelompok:
|
||||||
|
<pre>adb shell pm list permissions -d -g</pre>
|
||||||
|
</li>
|
||||||
|
<li>Beri atau cabut satu atau beberapa izin menggunakan sintaks berikut:<br>
|
||||||
|
<pre>adb shell pm [grant|revoke] <permission.name> ...</pre>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>Analisis aplikasi Anda untuk layanan yang menggunakan izin.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3 id="permission-test-strategy">Strategi pengujian</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Perubahan izin memengaruhi struktur dan desain aplikasi Anda, begitu juga
|
||||||
|
pengalaman pengguna dan alur yang Anda sediakan untuk pengguna. Anda harus menilai penggunaan izin
|
||||||
|
aplikasi saat ini dan mulai merencanakan alur baru yang ingin ditawarkan. Rilis platform
|
||||||
|
resmi menyediakan perilaku kompatibilitas, namun Anda harus merencanakan pembaruan aplikasi dan tidak
|
||||||
|
bergantung pada perilaku ini.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Identifikasi izin yang sebenarnya diperlukan dan digunakan aplikasi Anda, kemudian temukan berbagai
|
||||||
|
jalur kode yang menggunakan layanan yang dilindungi izin. Anda bisa melakukan ini melalui kombinasi
|
||||||
|
pengujian pada platform baru dan analisis kode. Dalam pengujian, Anda harus fokus pada pemilihan
|
||||||
|
izin waktu proses dengan mengubah {@code targetSdkVersion} aplikasi ke versi pratinjau. Untuk
|
||||||
|
informasi selengkapnya, lihat <a href="{@docRoot}preview/setup-sdk.html#">Menyiapkan
|
||||||
|
Android N SDK</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Uji dengan berbagai kombinasi izin yang dicabut dan ditambahkan, untuk menyoroti alur pengguna yang
|
||||||
|
bergantung pada izin. Jika dependensi tidak jelas atau logis, Anda harus mempertimbangkan
|
||||||
|
optimalisasi atau kompartementalisasi alur tersebut untuk mengeliminasi dependensi atau menjelaskan alasan
|
||||||
|
diperlukannya izin.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Untuk informasi selengkapnya tentang perilaku izin waktu proses, pengujian, dan praktik terbaik, lihat
|
||||||
|
halaman pratinjau <a href="{@docRoot}preview/features/runtime-permissions.html">Izin</a>
|
||||||
|
pengembang.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2 id="doze-standby">Menguji Istirahatkan dan Aplikasi Siaga</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Fitur penghematan daya Istirahatkan dan Aplikasi Siaga membatasi jumlah pemrosesan latar belakang yang
|
||||||
|
bisa dikerjakan aplikasi Anda saat perangkat dalam keadaan diam atau saat aplikasi Anda sedang tidak fokus. Pembatasan
|
||||||
|
yang dapat diberlakukan oleh sistem pada aplikasi termasuk akses jaringan terbatas atau tidak ada,
|
||||||
|
tugas latar belakang yang ditangguhkan, Pemberitahuan yang ditangguhkan, permintaan membangunkan yang diabaikan, serta alarm. Untuk memastikan
|
||||||
|
aplikasi Anda berperilaku dengan benar pada optimalisasi penghematan daya ini, Anda harus menguji aplikasi dengan
|
||||||
|
menyimulasikan keadaan baterai yang sedang tinggal sedikit ini.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4 id="doze">Menguji aplikasi Anda dengan Istirahatkan</h4>
|
||||||
|
|
||||||
|
<p>Untuk menguji Istirahatkan dengan aplikasi Anda:</p>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>Konfigurasikan perangkat keras atau perangkat maya dengan citra sistem Android N.</li>
|
||||||
|
<li>Hubungkan perangkat dengan mesin pengembangan dan pasang aplikasi Anda.</li>
|
||||||
|
<li>Jalankan aplikasi Anda dan biarkan aktif.</li>
|
||||||
|
<li>Simulasikan perangkat yang sedang masuk ke dalam mode Istirahatkan dengan menjalankan perintah berikut:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
$ adb shell dumpsys battery unplug
|
||||||
|
$ adb shell dumpsys deviceidle step
|
||||||
|
$ adb shell dumpsys deviceidle -h
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li>Amati perilaku aplikasi Anda saat perangkat diaktifkan kembali. Pastikan aplikasi
|
||||||
|
pulih dengan baik saat perangkat keluar dari Istirahatkan.</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
<h4 id="standby">Menguji aplikasi dengan Aplikasi Siaga</h4>
|
||||||
|
|
||||||
|
<p>Untuk menguji mode Aplikasi Siaga dengan aplikasi Anda:</p>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>Konfigurasikan perangkat keras atau perangkat maya dengan citra sistem Android N.</li>
|
||||||
|
<li>Hubungkan perangkat dengan mesin pengembangan dan pasang aplikasi Anda.</li>
|
||||||
|
<li>Jalankan aplikasi Anda dan biarkan aktif.</li>
|
||||||
|
<li>Simulasikan aplikasi yang sedang masuk ke dalam mode siaga dengan menjalankan perintah berikut:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
$ adb shell am broadcast -a android.os.action.DISCHARGING
|
||||||
|
$ adb shell am set-idle <packageName> true
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li>Simulasikan membangunkan aplikasi Anda menggunakan perintah berikut:
|
||||||
|
<pre>$ adb shell am set-idle <packageName> false</pre>
|
||||||
|
</li>
|
||||||
|
<li>Amati perilaku aplikasi Anda saat dibangunkan. Pastikan aplikasi pulih dengan baik
|
||||||
|
dari mode siaga. Secara khusus, Anda harus memeriksa apakah Pemberitahuan aplikasi dan pekerjaan latar belakang
|
||||||
|
tetap berjalan sebagaimana yang diharapkan.</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<h2 id="ids">Auto Backup for Apps dan Identifier Perangkat Spesifik</h2>
|
||||||
|
|
||||||
|
<p>Jika aplikasi Anda mempertahankan identifier perangkat spesifik, seperti ID pendaftaran Google
|
||||||
|
Cloud Messaging, dalam penyimpanan internal,
|
||||||
|
pastikan Anda mengikuti praktik terbaik untuk mengecualikan lokasi
|
||||||
|
penyimpanan dari pencadangan otomatis, seperti dijelaskan dalam <a href="{@docRoot}preview/backup/index.html">Auto
|
||||||
|
Backup for Apps</a>. </p>
|
||||||
BIN
docs/html-intl/intl/in/preview/images/bundles.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
docs/html-intl/intl/in/preview/images/bundles_2x.png
Normal file
|
After Width: | Height: | Size: 322 KiB |
BIN
docs/html-intl/intl/in/preview/images/datasaver.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
docs/html-intl/intl/in/preview/images/doze-diagram-1.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
docs/html-intl/intl/in/preview/images/doze-diagram-2.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
docs/html-intl/intl/in/preview/images/inline-reply.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
docs/html-intl/intl/in/preview/images/inline-reply_2x.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
docs/html-intl/intl/in/preview/images/inline-type-reply.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
docs/html-intl/intl/in/preview/images/inline-type-reply_2x.png
Normal file
|
After Width: | Height: | Size: 262 KiB |
|
After Width: | Height: | Size: 10 KiB |
BIN
docs/html-intl/intl/in/preview/images/m-preview-timeline.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
docs/html-intl/intl/in/preview/images/mw-portrait.png
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
docs/html-intl/intl/in/preview/images/mw-splitscreen.png
Normal file
|
After Width: | Height: | Size: 167 KiB |
BIN
docs/html-intl/intl/in/preview/images/mw-splitscreen_2x.png
Normal file
|
After Width: | Height: | Size: 546 KiB |
BIN
docs/html-intl/intl/in/preview/images/n-preview-setup.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
docs/html-intl/intl/in/preview/images/notifications-1.png
Normal file
|
After Width: | Height: | Size: 143 KiB |
BIN
docs/html-intl/intl/in/preview/images/notifications-2.png
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
docs/html-intl/intl/in/preview/images/notifications-3.png
Normal file
|
After Width: | Height: | Size: 197 KiB |
BIN
docs/html-intl/intl/in/preview/images/notifications-card.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
docs/html-intl/intl/in/preview/images/pip-active.png
Normal file
|
After Width: | Height: | Size: 374 KiB |
BIN
docs/html-intl/intl/in/preview/images/pip-button.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
docs/html-intl/intl/in/preview/images/quicksettings.png
Normal file
|
After Width: | Height: | Size: 122 KiB |