
Japanese: 
[音楽]
Android Studioの新機能に関する
セッションへようこそ
ジャマルと申します
こちらはトーアです
今日はAndroid Studioの
新機能に加え
Android Developer Summitの
基調講演で扱った
いくつかの点を詳しくお話しします
このセッションでは
Stableチャンネルで利用できる機能から
Canaryチャンネルで利用できる
最先端の機能までご紹介します
さて
ここまでの進展を
少し振り返らせていただきます
Google I/Oでは
Android Studio 3.5ベータ版を公開しました
このバージョンではシステムの健全性 
機能のブラッシュアップ
バグのバックログに焦点を合わせました
この１か月でAndroid Studio 3.6
Betaチャンネルを公開することができました
このバージョンには
Google Mapsと統合された
エミュレータ
設計ツールの改良
KotlinとJNIのサポートが含まれています

Indonesian: 
[SUARA MUSIK]
JAMAL EASON:
Selamat datang di sesi kami,
apa yang baru di Android Studio.
Saya Jamal, dan saya
ditemani rekan saya Tor.
Kali ini kami akan
membahas semua fitur terbaru
di Android Studio, juga
membahas lebih lanjut beberapa hal
yang Anda dengar saat presentasi utama
Android Developer Summit.
Sebagai framework sesi kali ini,
kami akan membahas fitur
yang kini tersedia di saluran stabil,
hingga fitur yang sudah diuji sebagian
di saluran Canary.
Baiklah.
Untuk memulai, mari
sejenak kembali ke masa lalu.
Pada Google I/O, kami meluncurkan
Android Studio 3.5 ke versi beta.
Saat itu, kami berfokus pada
performa sistem, penyempurnaan fitur,
dan backlog bug.
Bulan lalu, kami
meluncurkan Android Studio 3.6
ke saluran beta.
Yang memiliki dukungan [...],
emulator dengan Google Maps terintegrasi,
penyempurnaan alat desain,
serta dukungan Kotlin dan JNI.

English: 
[MUSIC PLAYING]
JAMAL EASON: Welcome to
our session on what's
new in Android Studio.
My name's Jamal, and I
have with me Tor today.
Today, we're going to talk about
all the latest new features
inside of Android Studio, plus
take a deep dive on some things
you heard about during the
Android Developer Summit
keynote.
As a framework for our
session today, we'll
talk about features that are
available in stable today, all
the way to the bleeding
edge features you'll
find in the Canary channel.
All right.
To get us up to speed, let's
take a quick step back.
At Google I/O, we launched
Android Studio 3.5 into beta.
There, we focused on system
health, feature polish,
and our bug backlog.
Just this past month, we
launched Android Studio 3.6
into the beta channel.
That had things like
[INAUDIBLE] support,
emulator with
integrated Google Maps,
design tools improvements,
and Kotlin and JNI support.

Spanish: 
Bienvenidos a la sesión
sobre las novedades en Android Studio.
Soy Jamal y, hoy, estoy con Tor.
Hoy, vamos a hablar
sobre las funciones más nuevas
de Android Studio
y vamos a ver, en profundidad,
cosas que escucharon
durante la inauguración
de la Cumbre
de Desarrolladores de Android.
En esta sesión,
hablaremos sobre funciones
disponibles en Stable
y las funciones de vanguardia
que encontrarán en el canal Canary.
Para ponernos al corriente,
hagamos un repaso rápido.
En Google I/O,
lanzamos Android Studio 3.5 en beta.
Allí, nos enfocamos en el estado
del sistema, la mejora del sistema
y la solución de errores pendientes.
El mes pasado, lanzamos Android Studio 3.6
en el canal beta.
Tenía cosas como soporte [INAUDIBLE],
emulador con Google Maps integrado,
mejoras de herramientas de diseño
y soporte para Kotlin e INI.

Chinese: 
欢迎来到 Android Studio 的进展与新功能
我是 Jamal 今天和我一起来到这里的还有 Tor
今天我们要讨论的是 Android Studio 中包含的所有新功能
并深入探讨一些大家在主题演讲上听说过的东西
今天演讲的框架是 讨论现已进入稳定版的功能
Canary 渠道中的新功能 等等
好 现在进入正题 首先我们来做一个简短的回顾
在 Google I/O 大会上 我们发布了 Android Studio 3.5 Beta
并关注了系统健康 功能优化 以及 bug 补缺等问题
上个月 我们在 Beta 渠道中发布了 Android Studio 3.6
其中包括了视图绑定支持 整合了 Google 地图的模拟器
设计工具改进 以及对 Kotlin 和 JNI 的支持

Korean: 
[음악 재생중]
Android 스튜디오의 새로운 기능을
살펴보는 세션에
참석해 주셔서 감사합니다
저는 자말이고
옆에 계신 분은 토르입니다
오늘은 Android 스튜디오의
모든 최신 기능에 대해 이야기하고
Android Developer Summit
키노트 중에
여러분이 들으셨던
몇 가지 기능을
자세히 살펴보겠습니다
이번 시간의 골자로서
현재 Stable 채널에서
사용할 수 있는 기능에 대해
먼저 이야기할 거고요
거기서부터
Canary 채널에서 찾을 수 있는
최신 기능에 이르기까지
모두 설명드릴 것입니다
좋습니다
속도를 내기 위해
한 걸음 물러나 보죠
Google I/O에서 베타 버전으로
Android 스튜디오 3.5를 출시했는데요
시스템 상태와 기능 개선
버그 백로그에 초점을 맞췄습니다
그리고 바로 지난달에 베타 채널에
Android 스튜디오 3.6을 출시했습니다
뷰 바인딩 지원과
Google 지도가 통합된 에뮬레이터
디자인 도구 개선,
Kotlin과 JNI 지원 등이 있는 버전이죠

Portuguese: 
Sejam bem-vindos à nossa sessão
sobre as novidades do Android Studio.
Meu nome é Jamal, e este é o Tor.
Mostraremos todos os novos recursos
do Android Studio.
Além disso, veremos em detalhes
algumas coisas mencionadas
na palestra principal
da Conferência de Desenvolvedores Android.
Na sessão de hoje,
veremos desde recursos
que já estão estáveis
até os mais avançados
que vocês encontrarão no canal Canary.
Para nos situarmos,
vamos voltar um pouquinho no tempo.
No Google I/O, lançamos a versão Beta
do Android Studio 3.5.
Na ocasião,
focamos na integridade do sistema,
no aperfeiçoamento dos recursos
e no backlog de bugs.
No mês passado,
lançamos o Android Studio 3.6 Beta.
Ele tem suporte
à vinculação de visualizações,
emulador com integração do Google Maps,
melhorias nas ferramentas de design,
além de suporte a Kotlin e JNI.

Japanese: 
今日は
Android Studio 4.0の詳細について
少しお話しします
まずはStableチャンネルの
機能についてです
繰り返しになりますが
Android Studio 3.5では
３つの柱に焦点を合わせています
システムの健全性 機能のブラッシュアップ 
バグのバックログです
これらの取り組みを
Project Marbleと名付けました
Project Marbleは
小さなプロジェクトに分けられ
全てチームで取り組みました
クラッシュ 変更を適用する改善 
ハングアップ
エミュレータのCPU使用率 R8の改良 
バグのバックログなどが含まれます
これからいくつかの改良点と
Project Marbleの成果について
お話ししたいと思います
私たちが最初に取り組んだ問題は
ハングアウトと遅延に関するものでした
具体的な例をお見せします
XMLタイピングと
データバインディングに注目しました
タイピングした内容に致命的な
ボトルネックがあることに気付きました
それらを分析し 改善しました
XMLだけでなく

Indonesian: 
Dan kali ini, kami ingin sedikit membahas
Android Studio 4.0.
Oke.
Dengan konteks ini,
mari kita bahas apa yang kini
tersedia di saluran stabil.
Secara ringkas, Android 3.5
berfokus pada tiga pilar utama--
performa sistem,
penyempurnaan fitur, dan backlog bug.
Ketiganya tergabung dalam
Project Marble.
Secara khusus, Project Marble
menyertakan beberapa project kecil
yang dikerjakan tim
kami di seluruh bidang.
Hal-hal seperti error,
penyempurnaan untuk menerapkan perubahan,
hang, penggunaan CPU untuk
emulator, penyempurnaan R8,
dan backlog bug.
Kini, saya ingin
membahas beberapa penyempurnaan,
serta keberhasilan
Project Marble sebagai info untuk Anda.
Oke.
Salah satu masalah yang
kami bahas dan coba atasi
yakni seputar hang dan latensi.
Untuk contoh khusus di layar,
kami memeriksa
penulisan XML dan data binding.
Dan kami menemukan
adanya beberapa penghambat
serius dalam penulisan.
Jadi, kami melakukan
analisis & menyempurnakannya.
Tidak hanya untuk XML.

Chinese: 
今天 很高兴可以和大家详细谈一谈 Android Studio 4.0
好 说完这些大面上的内容后 
我们先来讲讲今天在 Stable 频道中又有了哪些新内容
回顾一下 Android Studio 3.5 重点关心的是三大支柱
系统健康 功能优化 Bug 补缺
这些工作最终被命名为 Project Marble 
具体来说 Project Marble 包含了一系列较小的项目
这些都是我们的团队通力合作的产物
包括崩溃、应用更改 (Apply Changes) 方面的改进、挂起
模拟器的 CPU 占用 R8 改进 以及我们的 Bug 补缺
现在我想谈谈 Project Marble 做出的改进和成果
好 我们讨论并实践的第一个问题是挂起和延迟问题
具体到屏幕上的这个例子
我们关注的是 XML 输入和数据绑定
我们发现 输入方面存在着一些重要的瓶颈
我们分析并改进了这些东西
我们这样做不仅是为了 XML

English: 
And today, we're excited
to talk a little bit more
about Android Studio 4.0.
OK.
With this context, let's
talk about what's inside
of our stable channel today.
To recap, Android Studio 3.5
focuses on three main pillars--
system health, feature
polish, and our bug backlog.
Now, that all
culminated in something
we called Project Marble.
Now, specifically,
Project Marble
included a number
of smaller projects
that our team worked
on across the board.
Things like crashes,
improvements to apply changes,
hangs, CPU usage for the
emulator, R8 improvements,
and our bug backlog.
Now, I want to talk about
some of the improvements,
but also the
successes of Project
Marble for your awareness.
OK.
One of the first issues we
talked about and worked on
was around hangs and latency.
For this specific
example on the screen,
we looked at XML typing
and data binding.
And what we found is there
are some critical bottlenecks
we had in typing.
So we analyzed and
improve those things.
We did that not only for XML.

Spanish: 
Estamos emocionados por hablar un poco más
sobre Android Studio 4.0.
Bien.
Con este contexto,
hablemos sobre qué hay
en nuestro canal Stable hoy.
Recapitulando, Android Studio 3.5
se enfoca en tres pilares principales:
estado del sistema, mejora de funciones
y solución de errores pendientes.
Ahora, todo esto terminó
en lo que llamamos Proyecto Marble.
En especial, Proyecto Marble
incluyó proyectos más pequeños
en los que trabajó nuestro equipo,
como que la computadora se cuelgue,
mejoras para cambios,
uso de CPU para el emulador,
mejoras de R8 y la solución
de errores pendientes.
Quiero hablar sobre
algunas de las mejoras,
pero también los logros
del Proyecto Marble
para que ustedes sepan.
Bien.
Un problema en el que trabajamos
fue la latencia
y que el equipo se cuelgue.
Para el ejemplo específico en pantalla
vimos escritura XML y enlace de datos.
Encontramos algunos obstáculos críticos
en la escritura.
Entonces, analizamos y mejoramos eso.
No solo lo hicimos para XML,

Portuguese: 
Hoje vamos falar um pouco mais
sobre o Android Studio 4.0.
Com esse contexto,
vejamos o que há no canal Stable.
Para recapitular, o Android Studio 3.5
tem três pilares principais:
integridade do sistema,
aprimoramento de recursos
e backlog de bugs.
Isso tudo culminou
no chamado Project Marble.
Especificamente, o Project Marble
incluiu vários projetos menores
desenvolvidos pela nossa equipe
em várias áreas.
Coisas como falhas,
melhorias no Apply Changes,
travamentos, uso da CPU para o emulador,
aprimoramentos de R8 e o backlog de bugs.
Quero falar sobre algumas melhorias,
mas também
sobre os sucessos do Project Marble.
Um dos primeiros problemas
que discutimos e tentamos resolver
foi relacionado
a travamentos e latência.
Neste exemplo específico na tela,
temos a digitação em XML
e a vinculação de dados.
Descobrimos
alguns gargalos críticos na digitação.
Assim, analisamos e melhoramos isso.

Korean: 
그리고 오늘
Android 스튜디오 4.0에 대해
좀 더 이야기하게 되어
너무 기쁩니다
자, 그럼
이와 관련하여 오늘날
Stable 채널 안에
무엇이 있는지에 대해 이야기해보죠
요약하자면, Android 스튜디오 3.5는
세 가지 주요 기능에 초점을 맞추었습니다
시스템 상태, 기능 개선
버그 백로그죠
그 모든 것이 모여
최종적으로
Project Marble이라는
프로젝트가 되었습니다
구체적으로 말하자면
Project Marble에는
저희 팀 전반적으로 작업한
작은 프로젝트가
여러 개 포함되어 있습니다
비정상 종료, 변경 사항 적용 개선,
멈춤, 에뮬레이터 CPU 사용량
R8 개선, 버그 백로그 같은 것들이요
저는 몇 가지 개선 사항뿐 아니라
Project Marble의 성공에 대해서도
여러분에게
말씀드리고자 합니다
자, 그럼
저희가 이야기하고 작업했던
첫 번째 문제 중 하나는
멈춤과 대기 시간과 관련된 것이었습니다
화면에 나온 이 사례에서
저희는 XML 타이핑과
데이터 바인딩을 살펴봤습니다
그리고 타이핑에 있는
중대한 병목 현상을
찾아냈습니다
저희는 그러한 것들을
분석하고 개선했는데요
XML만을 위한 것이 아닙니다

Spanish: 
sino también para Java
y los lenguajes de programación Kotlin.
Otro punto débil
que nos comentaron fue el de la memoria.
Y el problema es que el ID
funciona lento y no responde.
La causa raíz es la memoria en sí.
Entonces, lo primero que hicimos
fue crear un nuevo conjunto
de infraestructuras y paneles
para atrapar estos problemas
al verificar el código en Android Studio.
Y, obviamente, no detectamos todo,
por eso, agregamos
un nuevo set de análisis para ustedes.
Si notan que Android Studio
funciona más lento,
pueden crear su propia imagen de volcado
y compartirnos una versión limpia.
Así entendemos mejor qué le pasa
a su máquina y podemos resolverlo.
Por último, escuchamos a muchos
quejarse sobre la velocidad
de Android Studio.
Descubrimos de la participación
que muchas personas
usaban los ajustes
por defecto de Android Studio.
Está bien para proyectos internos
o iniciar un proyecto,
pero si avanzan
y agregan más funciones,
pueden aumentar el almacenamiento
para mejor rendimiento

Chinese: 
受益的还包括 Java Kotlin 等编程语言
我们从大家那里获取来的另一个痛点是内存问题
这个问题的表现形式是 IDE 速度迟缓 反应速度不佳
根本原因在于内存问题本身
我们做的第一件事是 创建一套新的基础设施和仪表板
以便我们在把代码输入 Android Studio 时找到这些问题
当然 我们无法找出所有的问题
所以我们又加入了一套新的客户端分析工具
如果你注意到 Android Studio 速度变慢
那么现在你可以创建你自己的堆 dump 文件
并把清理过的 dump 分享给我们
让我们了解问题出在哪里 如何解决问题
最后 我们听到很多人抱怨 Android Studio 的整体速度问题
我们从提交过来的数据中发现 
很多人在使用 Android Studio 的默认设置
如果你在做的是临时项目和入门型项目 这么做没问题
但随着你的项目的扩展 你就要加入更多的功能
你可以增加你的堆容量 来达到更好的效果
如果你曾经见到过它的出现

Indonesian: 
Kami juga melakukannya untuk
bahasa pemrograman Kotlin dan Java.
Masalah lain yang kami
dengar dari Anda yakni memori.
Dan gejalanya adalah ID
yang lambat dan tidak responsif.
Akar masalahnya sebenarnya adalah
masalah memori itu sendiri.
Jadi, kami terlebih dahulu
membuat kumpulan
infrastruktur dan dasbor baru
guna mengatasi masalah
ini selagi memasukkan kode
ke Android Studio.
Dan tentunya kami
tidak dapat mengatasi semuanya,
jadi kami menambahkan kumpulan
analisis sisi klien baru untuk Anda.
Jika ditemukan bahwa
Android Studio lebih lambat,
Anda kini dapat
membuat heap dump
dan membuat versi heap dump yang bersih
yang dapat dibagikan dengan kami,
agar kami tahu masalah pada mesin Anda
dan cara terbaik
mengatasi masalah tersebut.
Terakhir, kami mendengar banyak
keluhan tentang kecepatan
keseluruhan Android Studio.
Kami menemukan, dalam data
keikutsertaan, bahwa banyak orang
menggunakan setelan
default Android Studio.
Tidak masalah untuk
project sementara dan awal,
namun seiring dengan perluasan project
dan penambahan fungsi lainnya,
Anda dapat menambah ukuran
heap guna meningkatkan performa.
Jika ini muncul--biasanya di

Japanese: 
JavaやKotlinの
プログラミング言語でも行いました
寄せられたもう１つの問題点は
メモリに関するものでした
具体的な症状は ”遅い”とか
”反応がない”というものでした
その根本原因は
メモリ自体の問題でした
最初に行ったのは
新しい一連のインフラストラクチャと
ダッシュボードを作成し
Android Studioのコードを調べながら
問題をキャッチすることです
もちろん すべての問題は
キャッチできないので
クライアント側で行える
分析ツールを新たに追加しました
Android Studioが遅いと思ったら
ヒープダンプを作成できます
私たちと共有できるように
サニタイズ版も作成できます
これでユーザーのマシンで
起きていることを把握し
それらの問題の最善の解決策を
見つけることができます
最後にAndroid Studioは
全般的に速度が遅いという
報告も多くいただきました
オプトインデータから
ユーザーの多くがAndroid Studioの
デフォルト設定を使用していた
ことがわかりました
一時的または開始したばかりの
プロジェクトでは問題ないのですが
プロジェクトが大きくなったり
多くの機能を追加したりすると
パフォーマンスを安定させるには
ヒープサイズを増やす必要があります

English: 
We did that for Java and the
Kotlin programming languages
as well.
Another pain point we heard
from you is about memory.
And the symptom of this
is that, hey, the ID
is slow and not responsive.
And the root cause of that
is actually the memory
issues itself.
So the first thing
we did is actually
create a new set of
infrastructure and dashboards
to catch these issues
as we checked in code
into Android Studio.
And of course, we
can't catch everything,
so then we added a new set of
client side analysis for you.
So if you notice if Android
Studio is slower and sluggish,
you can now create
your own heap dump
and have a sanitized
version of heap dump
that you can share
with us, so we
can understand what's
going on with your machine
and how to best
solve those problems.
Then lastly, we
heard a lot of people
complain about sort of the
overall speed of Android
Studio.
What we found from the opt-in
data is that a lot of people
were using the default
settings of Android Studio.
Well, this is fine for
interim projects and beginning
projects, but as
your project expands
and you add more
functionality, you
can actually increase your heap
size for better performance.

Portuguese: 
Fizemos isso com XML, Java e Kotlin.
Outro problema que vocês citaram
é com relação à memória.
O sintoma dessa situação
é o código lento e sem resposta.
A causa disso
são os problemas de memória.
Primeiro, criamos um novo conjunto
de infraestrutura e painéis
para detectar esses problemas
conforme verificávamos
no código do Android Studio.
Obviamente, não dá para detectar tudo.
Por isso, adicionamos um novo conjunto
de análise do cliente para vocês.
Assim, ao perceber
que o Android Studio está lento,
é possível criar
seu próprio despejo de heap
e ter uma versão limpa dele
para compartilhar conosco.
Assim, sabemos o que acontece na máquina
e vemos como resolver os problemas.
Por fim, muitos reclamaram
da velocidade geral do Android Studio.
Com os dados de permissões,
percebemos que muitas pessoas
usavam as configurações
padrão do Android Studio.
Isso é bom no caso de projetos
provisórios e de iniciantes,
mas, à medida que o projeto
cresce e ganha recursos,
aumentar o tamanho do heap
melhora o desempenho.

Korean: 
자바와 Kotlin 프로그래밍 언어를
위한 것이기도 합니다
여러분이 말씀해주신 또 다른
문제점은 메모리에 대한 것입니다
그 문제점이란 ID가 느리고
응답하지 않는 증상이죠
이 증상의 근본 원인은
사실 메모리 문제
그 자체입니다
따라서
저희가 가장 먼저 한 일은
새로운 인프라와
대시보드 세트를 생성하여
Android 스튜디오에
코드를 체크인하며 이러한 문제를
포착하게 한 것입니다
당연하지만 모든 것을
포착할 수는 없습니다
그래서 여러분을 위해 새로운 클라이언트 측
분석 세트를 추가했습니다
Android 스튜디오가 느려지고
굼떠진 걸 알아차리셨다면
이제 힙 덤프를 생성하고
정리된 버전의 힙 덤프를 확보해서
저희가 여러분의 기계에서
벌어지는 일을 이해하고
그러한 문제에 대한 최고의
해결책을 알아낼 수 있도록
그 덤프를 공유해 주시면 됩니다
그럼 마지막으로
많은 분이 Android 스튜디오의
전반적인 속도에 대해
불만을 말씀해 주셨습니다
저희는 사전 동의 데이터를 통해
많은 분이 Android 스튜디오의
기본 설정을 사용했다는 것을
알았습니다
임시 프로젝트와 시작 프로젝트면
그것도 괜찮습니다
하지만, 프로젝트가 확장되고
기능을 추가할수록
더 좋은 성능을 내기 위해 실제로
힙 크기를 늘릴 수 있습니다

English: 
So if you ever see this pop
up-- many come up in the bottom
right-hand corner
of Android Studio--
please look at that and
accept those settings.
We've actually applied some
analysis and some models
to understand how to best
configure your Android Studio
and your Gradle plugin to
have better performance.
So speaking of the build
speeds, we spent a lot of time
during Project Marble to look
at how to improve build speeds.
So before Project Marble, we
had about a 12.5-second average
build speed.
And we've drilled that
down to about 9.5 seconds
post-Project Marble.
Digging in a little bit into
the data you saw this morning,
specifically, we're
actually working on
build speeds along the way,
from 3.0 all the way to 3.3.
What was happening, we noticed,
is that projects are just
becoming more complex.
Either if you added annotation
processors or more features
to your build speeds,
it was just slowing down
and you weren't able to keep up.
So in the 3.3, 3.4
time frame, we now
were able to stabilize that.
And what we're excited about
is, with Android Studio Gradle
plugin 3.5, we actually
have seen a decrease
in build speeds.
So if you haven't moved to
Android Studio Gradle plugin

Korean: 
지금껏 이 팝업 창을 못 봤다면
보통 오른쪽 아래 표시되는데요
그걸 살펴보고 그 설정을
승인해 주십시오
여러분의 Android 스튜디오와
Gradle 플러그인에 대한
최선의 구성법을 이해하여
더 좋은 성능을 낼 수 있도록
몇몇 분석과 모델을 적용했습니다
빌드 속도에 대해 말씀드리자면
Project Marble 기간에
빌드 속도 개선법을 찾기
위해 많은 시간을 들였습니다
Project Marble 전에는
평균 빌드 속도가
12.5초였습니다
Project Marble 이후로는
그 시간이
9.5초까지 줄었습니다
특히, 오늘 아침에 살펴보신 데이터를
조금 더 파헤쳐보자면
3.0에서 3.3까지 계속해서 저희는
빌드 속도 작업을 하고 있습니다
저희가 알아챈 것은
프로젝트가 점점 더
복잡해지고 있다는 것입니다
여러분이 빌드 속도에
주석 프로세서를 추가하든
더 많은 기능을 추가하든
느려지기만 했고
속도를 낼 수 없었습니다
3.3과 3.4에서는
그걸 안정화할 수 있었습니다
정말 신나는 일은
Android 스튜디오 Gradle
플러그인 3.5를 통해
실제 빌드 속도가
줄어든 것입니다
아직 Android 스튜디오 Gradle
플러그인 3.5로 넘어가지 않았다면

Chinese: 
大多数时候它是在 Android Studio 的右下角出现
那么请看看它 并接受那些设置
我们采纳了一些分析和模型以便掌握如何才能把
Android Studio 和 Gradle 插件设置到最佳状态
从而改善性能表现
谈到构建速度 
我们在 Project Marble 中
花费了大量时间用来改善构建速度
在 Project Marble 之前 
我们的构建速度平均是12.5秒 经过 Project Marble 
我们已经把这个时间降低到了大约9.5秒
下面来详细讲讲今早大家看到的那些数据
具体来讲 从版本3.0到3.3 我们一直致力于提升构建速度
我们注意到 现在的项目正在变得愈发复杂
其中可能会添加注解处理器 
或是为提升构建速度添加更多功能
总之 速度在变慢 而你无法跟上
在3.3和3.4版本的时间框架中
我们现在已经可以把它稳定下来
让我们感到兴奋的是 
随着 Android Studio Gradle 插件3.5的出现
我们发现构建时间下降了
所以 如果你还没有采用 Android Studio Gradle 插件 3.5

Japanese: 
このポップアップは大抵
Android Studioの右下隅に
表示されます
内容を確認し その設定を
受け入れてください
実際に分析して
いくつかのモデルに適用し
より良いパフォーマンスを得るための
Android Studioと
Gradleプラグインの最適な構成を
突き止めました
次にビルド速度についてですが
Project Marbleでは
多くの時間をかけて
ビルド速度の向上に努めました
Project Marble以前では
ビルドに平均12.5秒かかっていました
Project Marble後には
それを約9.5秒に短縮しました
今朝ご覧いただいたデータを
もう少し掘り下げたいと思います
ビルド速度について
これまでも取り組んできましたが
3.0から3.3までの間に
プロジェクトがより複雑に
なったことに気付きました
アノテーションプロセッサや
多くの機能を追加すると
ビルド速度は低下し
そのままにはしておけませんでした
そこで3.3 3.4のタイムフレームで
安定させることに成功しました
Android Studio Gradle
プラグイン3.5では
ビルドにかかる時間を
短くすることに成功しました
Android Studio Gradleプラグイン3.5に
まだ移行していない方は

Spanish: 
Si ven esta ventana emergente, que aparece
en la esquina inferior derecha,
léanla y acepten los ajustes.
Aplicamos algunos análisis y modelos
para entender
cómo configurar Android Studio
y el complemento Gradle
para lograr mejor rendimiento.
Durante el Proyecto Marble,
pasamos mucho tiempo
viendo cómo mejorar
las velocidades de producción.
Antes del Proyecto Marble, teníamos
un promedio de 12,5 s de velocidad.
La bajamos a 9,5 segundos
luego del Proyecto Marble.
Indagando en los datos
que vieron esta mañana,
estamos trabajando
en velocidades de producción
sobre la marcha, desde 3.0 a 3.3.
Lo que notamos
fue que los proyectos se están
volviendo más complejos.
Aunque agregaran procesadores
de anotación o más funciones
a sus velocidades, todo bajó la velocidad
y no podían seguir avanzando.
Entonces, en el período 3.3, 3.4,
pudimos estabilizar eso.
Y nos emociona que, con el complemento
de Android Studio Gradle,
versión 3.5 pudimos disminuir
las velocidades de producción.
Si no cambiaron
al complemento de Android Studio

Indonesian: 
pojok kanan bawah Android Studio--
harap diperhatikan
dan terima setelan tersebut.
Kami telah menerapkan
beberapa analisis dan model
guna memahami konfigurasi
terbaik untuk Android Studio
dan plugin Gradle untuk
menyempurnakan performa.
Bicara tentang kecepatan versi,
kami menghabiskan banyak waktu
dalam Project Marble agar
dapat meningkatkan kecepatan versi.
Sebelum Project Marble, kecepatan
versi rata-rata yakni 12,5 detik.
Dan kami mempercepatnya hingga 9,5 detik
setelah Project Marble.
Lebih lanjut mengenai
data yang Anda lihat pagi ini,
secara khusus, kami terus berupaya
meningkatkan kecepatan,
dari versi 3.0 hingga 3.3.
Yang terjadi adalah project yang ada
menjadi semakin kompleks.
Anda telah menambahkan
prosesor anotasi atau fitur lainnya
untuk kecepatan versi,
namun tetap lambat
dan Anda semakin tertinggal.
Jadi, dalam jangka
waktu versi 3.3 dan 3.4,
kami kini dapat menstabilkannya.
Dan kami sangat antusias untuk plugin
Android Studio Gradle 3.5,
sebenarnya terjadi
penurunan pada
kecepatan versi.
Jadi, jika belum,
sebaiknya Anda berpindah ke

Portuguese: 
Se vocês virem este pop-up
no canto direito do Android Studio,
deem uma olhada
e aceitem as configurações.
Aplicamos análises e modelos
em busca da configuração ideal
do Android Studio e do plug-in do Gradle
para aprimorar o desempenho.
Sobre a velocidade da compilação,
dedicamos muito tempo
a melhorar isso durante o Project Marble.
Antes dele,
a velocidade de compilação
média era de 12,5 segundos.
Depois,
reduzimos para cerca de 9,5 segundos.
Pensando nos dados
que vimos hoje pela manhã,
atualmente trabalhamos
com velocidades de 3,0 a 3,3.
Percebemos que os projetos
estão ficando mais complexos.
Mesmo que vocês adicionassem
processadores de anotações
ou mais recursos às velocidades,
elas só estavam diminuindo,
não era possível mantê-las.
Na época das versões 3.3 e 3.4,
conseguimos estabilizar isso.
Estamos felizes porque, com o plug-in 3.5
do Gradle para Android Studio,
houve uma diminuição
nas velocidades de compilação.
Se vocês não mudaram
para o plug-in 3.5 do Gradle,

Korean: 
업그레이드해 빌드 속도에 대한 모든
주요 개선사항을 활용해보기를
강력하게 권해드립니다
그리고 마지막으로 살펴본 것은
배포 속도입니다
배포 속도는 Android 스튜디오에서
변경한 내용이
실행 중인 장치나
에뮬레이터에 표시될 때까지
걸리는 시간입니다
Project Marble 전의 평균이
7.9초였고, 그 시간을
3.6초 정도까지 줄였습니다
그 중심에는 Apply Changes라는
기능이 있었습니다
아직 모르신다면,
Apply Changes는
Instant Run을 대체합니다
그리고 Apply Changes를 통해
빠르고 반복적으로
애플리케이션을 변경할 수 있습니다
그러니, Apply Changes를
사용해보지 않았다면
꼭 사용해보시기를 바랍니다
Android 스튜디오에서의
앱 개발에 대한
워크플로와 지속적인 변경이
극적으로 개선될 테니까요
자, 그럼
요약하자면, Project Marble을 통해
다양한 개선을 이루었으며
이러한 개선을 이루게 되어
정말 기쁩니다
이건 모두 버그를 알려주고
사전 동의 데이터를 공유해주신
여러분 덕분입니다
그 정보가 없었다면
더 원활한 개발을 위해
가장 필요한 것이 무엇인지
알지 못했을 것입니다
하지만 품질 목표는
아직 이루지 못했습니다
저희가 앞으로 계속
유지하기를 바라는

Spanish: 
Gradle 3.5, recomiendo que aprovechen
todas las principales mejoras
para velocidad de producción.
Lo último que vimos
fue la velocidad de implementación,
que es el tiempo
que les lleva
hacer un cambio en Android Studio
y verlo ejecutándose
en un dispositivo o emulador.
El promedio antes de eso,
antes de Marble,
era 7,9 segundos y lo bajamos
a unos 3,6 segundos.
Y se debió a la función Apply Changes,
que, si aún no lo saben,
reemplaza a Instant Run.
Apply Changes hace cambios de forma
rápida e iterativa a su aplicación.
Si aún no la usaron,
recomiendo que lo hagan,
ya que les permitirá
mejorar el cambio incremental
y el flujo de trabajo para
desarrollar su aplicación
en Android Studio.
Para resumir, mejoramos mucho
para el Proyecto Marble
y nos emociona lo que hicimos.
Gracias a los que encontraron errores
y compartieron datos con nosotros.
Sin eso, no hubiéramos sabido
qué priorizar para facilitarles
su labor de desarrolladores.
Definitivamente,
la calidad no está resuelta.
Establecimos unos niveles de calidad

Indonesian: 
plugin Android Studio
Gradle 3.5 guna memanfaatkan
semua penyempurnaan
signifikan pada kecepatan versi.
Dan hal terakhir yang kami
kerjakan yakni kecepatan penerapan.
Ini adalah waktu
yang diperlukan untuk
membuat perubahan pada Android Studio
hingga dijalankan di
perangkat atau emulator.
Kecepatannya sebelum Project Marble
yakni sekitar 7,9 detik,
dan kami mempercepatnya
hingga sekitar 3,6 detik.
Dan ini seputar fitur
yang disebut Apply Changes.
Fitur ini, jika Anda belum tahu,
adalah pengganti Instant Run.
Ini adalah cara cepat dan iteratif
untuk membuat perubahan pada aplikasi.
Jika belum, sebaiknya
gunakan juga Apply Changes
karena akan secara pesat
meningkatkan alur kerja
dan perubahan inkremental dalam
pengembangan aplikasi di Android Studio.
Baiklah. Ringkasnya, kami
telah menyempurnakan Project Marble
dan kami sangat
antusias untuk ini.
Terima kasih telah
melaporkan bug dan membagikan
data keikutsertaan.
Tanpa informasi itu,
kami tak tahu
prioritas utama
untuk menyempurnakan
proses pengembangan Anda.
Namun kualitas ini
masih belum sempurna.
Kami menetapkan sendiri
standar kualitas baru

Chinese: 
我强烈推荐你试一试 充分利用构建速度方面的重大改良
我们关注的最后一个问题是部署速度
部署速度代表的是你在 Android Studio 中
作出修改 并在可运行设备或模拟器上看到它所需的时间
在 Project Marble 之前 耗时中位数约为7.9秒
而我们把它降低到了3.6秒
这些都是 Apply Changes 功能变动的一部分
而 Apply Changes 是用来取代 Instant Run 的
Apply Changes 是一种更快速 更利于迭代的修改应用的方法
如果你还没用过 Apply Changes
我强烈推荐你使用它
因为它可以当你在 Android Studio 开发应用时
大幅度提升你的速度 加速你的工作流程
好 回顾一下 我们已经在 Project Marble 中
做了很多改动 我们对此感到很激动
感谢提交 bug 和分享体验数据给我们的各位
如果没有这些信息 我们就不会知道应该优先关注什么
才能改善大家的开发体验
不过 品质改善的工作肯定还没有完成
我们为自己定下了全新的品质标准

English: 
3.5, I highly
encourage it to take
advantage of all the major
improvements for build speed.
And the last we looked at for
us is on deployment speed.
So deployment speed
is the time it
takes for you to make a
change on Android Studio
and see it on a running
device or an emulator.
So the medium before that,
before Project Marble,
was about 7.9 seconds,
and we drove that down
to about 3.6 seconds.
And that was all around the
feature called Apply Changes.
And Apply Changes,
if you don't know,
is a replacement to Instant Run.
And Apply Changes is
a fast, iterative way
to make changes to
your application.
So if you haven't been
using Apply Changes,
I highly encourage
you to use that
as well because that
will dramatically
improve your incremental change
and workflow in developing
with your app in Android Studio.
All right.
So recap, we've done a number of
improvements for Project Marble
and we're really excited
about those things.
And thank you to all of you who
filed bugs and shared with us
opt-in data.
Without that
information, we wouldn't
know what to prioritize
to make things better
for your development.
But quality is
definitely not done.
We set a new quality
bar for ourselves

Portuguese: 
recomendo que façam isso
para aproveitar as melhorias
na velocidade de compilação.
Vamos ver agora
como ficou a velocidade de implantação,
o tempo que leva para fazer uma mudança
no Android Studio e aplicá-la
em um dispositivo ou emulador em execução.
A média antes do Project Marble
era de cerca de 7,9 segundos.
Nós a reduzimos
para cerca de 3,6 segundos.
Isso graças ao Apply Changes,
que é o substituto do Instant Run.
É uma forma rápida e iterativa
de fazer alterações ao app.
Caso não usem o Apply Changes,
recomendo muito que façam isso.
Ele vai melhorar muito
a alteração incremental
e o fluxo de trabalho no desenvolvimento
do seu app no Android Studio.
Para recapitular,
fizemos várias melhorias no Project Marble
e estamos animados com isso.
Agradecemos a todos que relataram erros
e compartilharam dados de permissões.
Sem essas informações,
não saberíamos o que priorizar
para melhorar a experiência de vocês.
Mas a qualidade ainda não está completa.

Japanese: 
ビルド速度が大幅に改善された
このバージョンをお試しください
最後に見直したのはデプロイ速度です
デプロイ速度とは
Android Studioで変更した内容を
実行中のデバイスやエミュレータで
実行できるようにするためにかかる時間です
Project Marble以前には
約7.9秒かかっていましたが
現在は約3.6秒まで
短くなっています
これはApply Changesと呼ばれる
オールラウンドの機能です
Apply Changesは
Instant Runに代わるものです
Apply Changesは素早く繰り返して
変更を加える手段です
Apply Changesを
使用したことがなければ
是非お試しください
増分変更や
Android Studioで
アプリを開発する際の
ワークフローを劇的に向上させるでしょう
まとめですが
Project Marbleでは
数多くの改良点を加えました
これらは皆さまのお役に立つと
期待しています
バグを報告しオプトインデータを
共有してくださった皆さんに感謝します
それらの情報なしには
皆さんの開発にとって
優先すべき改善点を
見極められませんでした
まだ改善点は残っています
進歩し続けるために
私たち自身の

Korean: 
새로운 품질 기준을 세웠습니다
앞으로 나아가기 위해
스스로 세운 이 품질 기준을 통해
저희는 Android 스튜디오의
새 기능을 계속
탐구해 나가려 합니다
그래서 오늘
작업 중에 있는
Android 스튜디오 내부의
다양한 새 기능에 대해
간단히 소개하겠습니다
하지만, 이러한 기능을 Canary에서
Stable로 이전하기 전에
이러한 기능을 평가하고
우선순위를 정하고
Project Marble 기간에 세운
품질 기준에
맞춰볼 것입니다
따라서 Android 스튜디오에
추가한 멋진 기능을 모두
이야기하기보다는 토르가
Android 스튜디오 안에 있는
멋진 기능 몇 가지에 대해
말씀드릴 것입니다
좋아요
감사합니다, 자말
여러분이 계속해서 말씀해 주신
한 가지는
빌드를 더 빨리 실행하고
싶다는 것입니다
그리고 방금 보셨듯
괜찮은 성과를 이루었습니다
그러나 곧 보게 되시겠지만
Android 플러그인의 속도 증가는
그 성과의 일부분일 뿐입니다
앱을 코딩하고 그걸 더 빠르게
만들고 싶을 때
프로파일러를 실행하시죠?
저희가 작업해온 것이 바로
빌드를 위한 프로파일러입니다
그게 어떤 식인지
보여드리겠습니다

Indonesian: 
untuk dipertahankan ke depannya.
Jadi, dengan standar kualitas ini,
kami ingin terus
menyempurnakan fitur Android Studio.
Kali ini kami akan menunjukkan
pratinjau dari banyak
hal baru yang kami kerjakan
dalam Android Studio.
Namun sebelum memigrasikan fitur
tersebut dari saluran Canary ke stabil,
kami akan memprioritaskan,
menilai,
dan mencocokkannya
dengan standar kualitas
yang ditetapkan
selama Project Marble.
Jadi, sebelum membahas semua fitur menarik
baru di Android Studio,
Tor akan memandu kita
terkait beberapa hal menarik
yang ada dalam Android Studio.
TOR NORBYE: Baik.
Terima kasih, Jamal.
Satu hal yang terus kami dengar
yakni Anda ingin versi
yang berjalan lebih cepat.
Dan seperti yang dilihat, kami
telah membuat kemajuan yang baik.
Namun Anda akan segera sadar
bahwa mempercepat plugin Android
bukanlah masalah yang utama.
Jadi, saat ingin menulis
dan mempercepat aplikasi,
Anda harus menjalankan profiler bukan?
Jadi, kami telah
mengupayakan profiler untuk versi Anda.
Saya akan menunjukkannya pada Anda.

English: 
that we want to
maintain going forward.
So with this quality bar
set forward for ourselves,
we want to continue working
on new features for Android
Studio.
So today, we're
going to give you
a preview of a lot of the
new things we're working
on inside of Android Studio.
But before we migrate those
features from Canary to stable,
we're going to prioritize
and assess those features
and match them to
the quality bar
that we set during
Project Marble.
So instead of talking about
all those cool features
we added to Android
Studio, I'm going
to have Tor walk us through
some of the cool things
that we have inside
of Android Studio.
TOR NORBYE: All right.
Thank you, Jamal.
So one thing we hear
over and over again
is that you want your
builds to run faster.
And as you just saw, we've
been making some good progress.
But as you'll see shortly, just
speeding up the Android plugin
is only part of the puzzle.
So when you want to write your
apps and make them faster,
you run a profiler, right?
Well, what we've been working on
is a profiler for your builds.
So I'm going to show you
what that looks like.

Chinese: 
将会在今后继续遵循
今后 我们将继续开发 Android Studio 的新功能
今天 我们会给大家提供一个预览 
看看我们正在 Android Studio 项目里做什么
不过 在我们把功能从 Canary 移到稳定版之前
我们会划分优先级 评估这些功能 并把它们
和我们之前在 Project Marble 中设定的品质标准相比较
与其空谈我们为 Android Studio 加入了什么酷炫的功能
不如让 Tor 为我们介绍一些 Android Studio 的亮点
谢谢 Jamal 
大家反复向我们反映
希望自己构建的速度能再快一点
如你所见 我们近来进步很快
但是大家很快就会发现 
提升 Android 插件的速度只是解决了问题的一小部分
当你在编写应用时 如果想让它运行的快一点
那么你就会运行分析器 (Profiler) 对吧？
我们近来研发的正是一款针对你的构建研发的分析器
来让大家看看它的样子

Spanish: 
que queremos mantener de acá en adelante.
Con estos niveles queremos
seguir trabajando en nuevas funciones
para Android Studio
Hoy, vamos a contarles
muchas de las cosas
en las que estamos trabajando
en Android Studio.
Pero, antes de migrar
esas funciones desde Canary a Stable,
vamos a priorizar y evaluar esas funciones
y compararlas con los niveles
de calidad que establecimos
durante el proyecto Marble.
En lugar de hablar de
las grandes funciones
agregadas a Studio,
voy a dejar que Tor
nos muestre algunas cosas
que tenemos en Android Studio.
Gracias, Jamal.
Algo que escuchamos mucho
es que quieren que sus producciones
sean más rápidas.
Como ya vieron, progresamos bastante.
Pero, como verán en breve,
acelerar el complemento de Android
es solo una parte de la solución.
Si quieren escribir aplicaciones
y hacerlas más rápidas,
ejecutan un generador de perfiles, ¿no?
Trabajamos en un generador
de perfiles para sus producciones.
Voy a mostrarles cómo se ve.

Japanese: 
新たな品質基準を設けました
その品質基準に沿って
Android Studioの新機能を
今後も開発したいと思います
これからAndroid Studioで
私たちが現在取り組んでいる
新機能を いくつか
ご紹介したいと思います
CanaryからStableに
それらの機能を移行する前に
それらに優先順位を付け
評価します
またProject Marbleの
期間中に設定した
品質基準に到達させます
Android Studioに追加した
これらの機能全てについて
私がお話しする代わりに
Android Studioに加えた
素晴らしい機能について
トーアに説明してもらいましょう
分かりました
ジャマルありがとう
ビルドの速度を上げるという
話がありましたが
ご覧いただいたように
ある程度成功を収めることができました
しかし これからご覧いただきますが
Androidのプラグインの速度を上げても
問題のほんの一部を改善したに過ぎません
アプリを構築し
その処理速度を上げたい場合
プロファイラーを実行しませんか？
私たちが取り組んだのは
ビルド用のプロファイラーです
どのようなものか
これからお見せしましょう

Portuguese: 
Definimos um novo parâmetro de qualidade
e queremos mantê-lo a partir de agora.
Com ele, queremos continuar trabalhando
em novos recursos para o Android Studio.
Hoje, vamos mostrar muitas coisas novas
em que estamos trabalhando
no Android Studio.
Porém, antes de migrarmos
esses recursos do Canary para o Stable,
vamos priorizá-los e avaliá-los
para que atinjam o parâmetro
definido durante o Project Marble.
Em vez de falar
sobre todos os recursos adicionados
ao Android Studio,
Tor vai mostrar algumas coisas legais.
Obrigado, Jamal!
Ouvimos bastante que
vocês querem compilações mais rápidas.
Estamos evoluindo bem com relação a isso.
Mas, como vocês verão,
agilizar o plug-in do Android
é somente parte do problema.
Para escrever os apps
e deixá-los mais rápidos,
usamos um criador de perfil, certo?
Estamos desenvolvendo um criador de perfil
para suas compilações. Eu vou mostrar.

Japanese: 
これはSanta Tracker Projectです
いくつかのビルドのミスを
意図的に加えています
ビルドを実行すると
この新しいビルド速度タスクを受け取ります
実行したビルドごとに１つです
これはビルド中に何が起こったか
概要を教えてくれます
例えば ここにビルド時間を決定した
全てのタスクの概要があります
これはタスクがクリティカルパス上に
あることを示しています
クリティカルパス上にないタスクを
最適化しても意味がありません
より短時間で行えるようにします
まだ短くできます
各プラグインのビルド時間に関する
概要もお見せします
これをご覧ください
このビルドの40%を占める
プラグインがあります
これはサードパーティライセンスの
プラグインです
行っている処理は非常に重要です
ネットワーク上のライセンスファイルを
フェッチしています
これをヘルプメニューに挿入しています
しかし 恐らく
単一のフルデバッグビルド全てで
それを実行する必要はありません
そこで リリースビルドを見てみます
これは行える事柄について
役立つ情報を与えてくれます

Chinese: 
这是 Santa Tracker Project 
我刻意在其中加入了一些构建错误
在构建完成后 你会得到这个全新的构建速度任务
你运行的每个 build 都能得到一个这样的任务
这就为我解析了构建期间所发生的事情
例如 这里我详细分解了所有影响构建时间的任务
它为我展示了位于关键路径上的任务
没必要尝试去优化一个不在关键路径上的任务
你让它速度变快之后 还是要等更长的任务
我们还为大家分解了每个插件的构建时间
比如这里 这个插件占据了这个构建40%的时长
它属于第三方许可插件 它的行为非常有价值
它在网络上寻找许可文件
并将其插入到“帮助”菜单
不过 也许我并不需要在每个完整的 debug 构建中使用它吧？
或许我可以多查查这个 或者进行 release 版的构建
从而掌握相关信息 随后针对性地采取对策

English: 
So this is the Santa Tracker
Project with some deliberate
build mistakes I've added in.
And after you've built now, you
get this new build speed task,
one for each build that you run.
And this gives me a
breakdown into what
happened during the build.
So for example, here,
I have a breakdown
of all the tasks that
determined the build duration.
Right?
So this is showing me the
tasks are on the critical path.
There's no point in trying
to optimize a task that
is not on the critical path.
You make it faster, you're
still waiting for a longer task.
Right?
We also give you a breakdown of
the build time for each plugin.
So you can see here,
I have a plugin that's
taking up 40% of this build.
This happens to be a third
party license plugin,
so what it's doing
is very valuable.
It's fetching license
files over the network
and inserting it
into the Help menu.
But maybe, I don't
need to do that
on every single full
debug build, right?
So I can maybe investigate
and get into release builds.
So this gives me an
insight that I can then
go and do something about.

Korean: 
이건 Santa Tracker Project입니다
일부러 빌드에 실수를 추가해 두었죠
그리고 빌드한 후에는
실행하는 빌드마다
이 새로운 빌드 스피드 작업이 표시됩니다
그리고 이게 빌드 중에
발생하는 일을
저에게 자세히 알려줍니다
예를 들어, 여기
빌드 기간을 결정한
모든 작업에 대한
세부 명세가 있습니다
그렇죠?
이게 작업이 중요 경로에 있음을
보여줍니다
중요 경로에 있지 않은
태스크를 최적화하려
노력하는 건 의미가 없습니다
더 빠르게 만들어도, 여전히
더 긴 작업을 기다려야 합니다
그렇죠?
저희는 각 플러그인의 빌드 시간에
대한 세부 정보도 제공합니다
보시다시피 빌드의 40%를
차지하는 플러그인이 있습니다
이건 타사 라이선스
플러그인인데요
이 플러그인이 하는 일은
매우 중요합니다
네트워크를 통해 라이선스
파일을 가져오고
그 파일을 Help 메뉴에 삽입합니다
하지만, 전체 디버그 빌드
하나하나마다
그렇게 해줄 필요는
없지 않겠어요?
어쩌면 먼저 조사한 다음
릴리즈 빌드를 시작할 수도 있지요
이렇게 하면 제가
뭔가 조치를 취할 수 있는
아이디어를 얻을 수 있죠

Spanish: 
Este es el Proyecto Santa Tracker
con algunos errores de producción
que agregué a propósito.
Cuando terminen, obtendrán esta
nueva tarea de velocidad de producción,
una para cada producción,
lo que arroja un desglose
de qué sucedió durante la producción.
Por ejemplo, aquí, tengo un desglose
de todas las tareas que determinaron
la duración de la producción.
Entonces, esto me muestra
que las tareas son críticas.
No es necesario optimizar tareas
que no son críticas.
Son más rápidas,
aún esperan una tarea más larga.
¿Correcto?
También les dimos un desglose del tiempo
de producción para cada complemento.
Por lo que pueden ver aquí
que tengo un complemento
que lleva el 40% de esta producción.
Este es un complemento de otro fabricante
y lo que hace es valioso:
busca archivos de licencia en la red
y los inserta en el menú de Ayuda.
Pero, quizás, no tengo que hacer eso
en cada depuración.
Quizás, pueda investigar
y lanzar producciones.
Esto me permite saber
que puedo hacer algo al respecto.

Portuguese: 
Este é o projeto Siga o Papai Noel
com erros de compilação propositais.
Após compilar,
agora há esta nova tarefa
de velocidade
para cada compilação executada.
Isso mostra um detalhamento
do que aconteceu durante a compilação.
Por exemplo, aqui eu tenho um detalhamento
de todas as tarefas que determinaram
a duração da compilação.
Isso mostra
que as tarefas estão no caminho crítico.
Não adianta tentar otimizar uma tarefa
que não esteja no caminho crítico.
Ela fica mais rápida
e continua esperando uma tarefa maior.
Há também um detalhamento
do tempo de compilação para cada plug-in.
Eu tenho um plug-in
ocupando 40% desta compilação.
Trata-se de um plug-in
de licença de terceiros.
O que ele está fazendo
é algo muito valioso.
Ele busca
arquivos de licença na rede
e os insere no menu "Ajuda".
Talvez não seja necessário fazer isso
em todas as versões de depuração.
Posso investigar
e acessar versões de lançamento.
Isso me dá um insight
para que eu possa fazer algo a respeito.

Indonesian: 
Ini adalah Project Santa
Tracker dengan beberapa kesalahan
versi yang sengaja saya tambahkan.
Dan setelah membuat aplikasi,
Anda akan melihat tugas kecepatan versi,
masing-masing untuk versi yang dijalankan.
Dan akan terdapat pembagian untuk
apa yang terjadi saat pembuatan versi.
Misalnya, di sini ada pembagian
untuk semua tugas yang
menentukan durasi pembuatan versi.
Benar kan?
Di sini ditunjukkan tugas
ini berada di jalur penting.
Tak ada gunanya
mencoba mengoptimalkan tugas yang
tak berada di jalur penting.
Jika dipercepat, Anda tetap
menunggu tugas yang lebih lama.
Benar?
Di sini juga terdapat pembagian
waktu pembuatan versi untuk setiap plugin.
Dapat dilihat di sini,
ada plugin yang
mencakup 40% versi ini.
Kebetulan, ini
plugin lisensi pihak ketiga,
jadi fungsinya sangat penting.
Yakni mengambil file lisensi
melalui jaringan
dan memasukkannya
ke menu Bantuan.
Mungkin ini tak perlu dilakukan
di setiap versi debug penuh bukan?
Mungkin saya bisa menginvestigasi
dan memulai versi rilis.
Jadi, saya mendapat data
yang dapat dibuka dan digunakan.

Indonesian: 
Kami juga mencoba
memunculkan banyak masalah di versi ini.
Misalnya, selalu jalankan tugas.
Tugas harusnya hanya berjalan
saat input-nya telah berubah,
namun seperti
yang terlihat, tugas ini tidak
mendeklarasikan input-nya.
Dan artinya tugas ini
harus berjalan setiap saat.
Jadi, jika ini tugas Anda,
Anda tahu ini harus diperbaiki.
Atau, Anda dapat menghubungi penulis
dan meminta perbaikan.
Masalah lain yang kami tunjukkan
yakni masalah penyiapan tugas.
Jadi jika mengonfigurasi
beberapa tugas agar memiliki
direktori output sama, tugas itu
tidak dapat berjalan secara inkremental.
Jika melakukannya,
Anda akan merusak
kompilasi inkremental,
dan sekali lagi,
kami memunculkannya di sini,
yang mencantumkan
tugas yang bertentangan.
Tugas yang tak bisa disimpan di cache.
Ini penting jika Anda ingin
menggunakan cache yang didistribusikan.
Ini tidak akan berfungsi.
Dan tentu saja, prosesor
anotasi non-inkremental.
Jadi, jika menggunakan prosesor anotasi
yang tidak bersifat inkremental,
akan terjadi pembuatan ulang versi penuh.

Japanese: 
ビルド内に隠されている一連の問題の
表面化にも努めました
例えば タスクは常に実行されています
タスクは入力が変更されたときにだけ
実行されるべきです
しかし ご存知の通り
これらのタスクは
入力を明示しません
つまり 毎回実行しなければなりません
それが自分のタスクであれば
自分で修正する必要があります
自分のタスクでなければ
作成者に修正を
依頼する必要があります
もう１つの問題は
タスクのセットアップについてです
同じ出力ディレクトリを共有するように
複数のタスクを構成すると
それらを段階的に
実行することはできません
その場合は分割して
インクリメンタルコンパイルを実行します
ここでもう一度
問題を表面化させましょう
競合しているタスクをリスト化します
キャッシュできないタスクです
分散キャッシュを使用したい場合
これは非常に重要です
これらは機能しません
もちろん非インクリメンタル
アノテーションプロセッサです
アノテーションプロセッサを
使用する場合
それは増分を認識しません
完全な再ビルドを強制します

Spanish: 
También intentamos abordar
muchos problemas en la producción.
Por ejemplo, las tareas
de ejecución permanente.
Las tareas solo se deben ejecutar
cuando cambiaron sus entradas,
pero, como ven, estas tareas
no anuncian sus entradas,
por lo que tenemos que ejecutar
cada tiempo individual.
Si esta es su tarea,
saben que deben solucionarla.
Si no, deben hablar con el autor
y pedir que la solucione.
Otro problema que detallamos aquí
es el problema de configuración de tareas.
Si configuran múltiples tareas
que comparten
un directorio de salida, no pueden
ejecutarlas de forma incremental.
Si lo hacen, estarán rompiendo
la compilación incremental y, otra vez,
se lo mostramos aquí,
en el listado de tareas con problemas.
Tareas sin caché.
Esto es muy importante si quieren
usar el caché distribuido.
No van a funcionar.
Y tenemos los procesadores de anotaciones
no incrementales.
Si usan un procesador de anotación
que desconoce el incremento,
forzará la reproducción total.

Portuguese: 
Também tentamos tratar
diversos problemas na compilação.
Por exemplo, sempre executar tarefas.
As tarefas precisam operar
somente quando há mudança nas entradas.
Mas as tarefas
não estão declarando as entradas.
Elas terão que operar todas as vezes.
Se essa for sua tarefa,
será necessário corrigí-la.
Caso contrário, será preciso
pedir a correção ao autor.
Também identificamos
problemas de configuração das tarefas.
Ao configurar
várias tarefas para compartilhar
o mesmo diretório de saída, não há
como executá-las de forma incremental.
Se fizerem isso,
a compilação incremental será dividida.
Mais uma vez, estamos tratando isso aqui,
listando as tarefas conflitantes.
Tarefas não armazenáveis em cache,
isso é muito importante.
Caso queiram usar o cache distribuído.
Isso não funcionará.
E, consequentemente,
nem os processadores
de anotações não incrementais.
Se usarem um processador de anotações
que não seja incremental,
uma recompilação completa será forçada.

English: 
We also tried to surface a
bunch of problems in the build.
So for example,
always run tasks.
Tasks should only run when
their inputs have changed,
but as you can see, these
tasks are not actually
declaring their inputs.
And that means they're going to
have to run every single time.
So if this is your task, then
you know you should fix it.
Otherwise, you should
contact the author
and ask them to fix it.
Another problem that
we pinpoint for you
here is task setup issues.
So if you configure multiple
tasks to share the same output
directory, then they
can't run incrementally.
So if you do that,
you're breaking
incremental compilation,
and again, we're
surfacing that to
you right here,
listing the tasks
that are conflicting.
Non-cacheable tasks.
This is pretty
important if you want
to use the distributed cache.
These are not going to work.
And then, of course,
non-incremental annotation
processors.
So if you use an
annotation processor
that's not incremental-aware,
it'll force a full rebuild.

Korean: 
빌드의 수많은 문제를
표면화하려고도 노력했습니다
예를 들어
항상 작업을 실행합니다
작업은 입력이 변경되었을 때만
실행되어야 하지만
보시다시피 이 작업들은
입력을 선언하지 않습니다
그 말은 매번 실행해야
한다는 뜻입니다
이게 여러분의 작업이라면
수정하셔야 되겠죠
아니면, 작성자에게 연락해
수정해 달라고 해야 합니다
여기서 짚어 볼 또 다른 문제는
작업 설정 문제입니다
여러 개의 작업이 하나의
출력 디렉토리를 공유하도록 구성하면
작업들은 증분적으로
실행될 수 없습니다
따라서 그렇게 하면
증분 컴파일을
깨뜨리게 됩니다
여러분께 보여드리기 위해
충돌하는 작업들을
여기에 나열하도록 하겠습니다
캐시할 수 없는 작업입니다
분산 캐시를 사용하고 싶다면
이건 매우 중요합니다
통하지 않을 테니까요
그리고 다음은
비증분 주석 프로세서입니다
따라서 증분을 인식하지 못하는
주석 프로세서를 사용한다면
처음부터 다시 빌드해야 합니다

Chinese: 
我们还尝试着在构建中为大家曝光一些问题
例如 无间歇运行任务
任务只应在输入改变的情况下运行
但是 如你所见 这些任务其实并未声明它们的输入
这意味着 它们需要每次都运行
如果这就是你的任务 那么你需要修正它
否则 你就要联系作者让他来修正
我们要指出的另一个问题就是任务设置问题
如果你可以设置多个任务来分享相同的输出目录
那么它们就无法增量式运行
如果你这样做了 你就破坏了增量编译
我们把这个问题在这里曝光给你
列出冲突的任务
不可缓存的任务
如果你想要使用分布式缓存 那么这个是很重要的
它们不会生效
此外 还有非增量式注解处理器
如果你使用非增量式注解处理器
那么它就会强制使用完全重构

English: 
And they all have to
be incremental-aware.
Now, we've been working
on a lot of them
and working with annotation
processor authors
to actually update to Gradle
support for incremental APIs,
and so in some cases,
it's as easy for you
as updating to the
latest version.
So when we know,
for example, here,
we're telling you auto-value,
switch to version 1.6.4
and your build will run faster.
And then there's
configuration time.
So configuration is where tasks
are created, whether or not
they're going to run.
This is supposed to be
a very fast operation.
But some plugins will actually
do a lot of computation
during configuration.
I've actually created
a slow one here
that waits for two seconds.
It's simulating, doing
lots of computation
that you shouldn't,
but this gives you
a chance to sort of dig in and
see exactly what's going wrong.
So as I mentioned, you
get one Build Speed tab
each time you invoke the build.
So I did a full build here for
about three minutes, two, three
minutes.
I then did an incremental build.
So now, I can see the
breakdown of what happens
in my incremental build.

Japanese: 
すべてのタスクが増分を
認識する必要があります
インクリメンタルAPIに関して
Gradleサポートを更新するために
これらのタスクの多くに
取り組んできました
アノテーションプロセッサの
作成者とも連携してきました
そのため場合によっては
最新バージョンに更新するだけで
この問題を簡単に解決できます
自動値をお伝えします
例えば
バージョン1.6.4に切り替えると
ビルド速度が上がります
次に構成時間があります
構成とは タスクを作成する場所であり
タスクを実行するかどうかを決定します
この処理は非常に速い速度で
行われるべきです
一部のプラグインでは
構成中に多数の計算が行われます
実際に
２秒かかる遅いものを作成しました
シミュレーションを行い
不要な計算を多数実行します
しかしこれは入念に調べて
何が問題となっているかを
突き止める機会を与えてくれます
先ほど述べたように
ビルドを呼び出すたびに
[Build Speed]が表示されます
ここで２～３分かかる
フルビルドを実行しました
それから
インクリメンタルビルドを実行しました
インクリメンタルビルドで何が起きたか
概要を確認できます

Korean: 
그리고 모두 증분 인식이
되어야 합니다
현재 저희는 이런 문제를
부지런히 해결하고 있으며
주석 프로세서 작성자들과 협력하여
실제 증분 API를 지원하는 Gradle로
업그레이드했습니다
따라서 경우에 따라서는
최신 버전으로 업데이트하는 것이
더 쉬울지도 모릅니다
예를 들어, 여기에서는
auto-value에 대해 이야기하고 있는데요
1.6.4 버전으로 전환하면
빌드가 더 빨리 실행될 것입니다
그리고 구성 시간을 다뤄보죠
구성은 실행되든 실행되지 않든
작업이 생성되는 지점입니다
이건 아주 빠르게 작동해야 합니다
하지만 일부 플러그인은
실제로 구성 중에
많은 계산을 합니다
여기 실제로 2초 동안 대기하는
느린 구성을 만들었습니다
이 구성은 많은 계산을 하며
시뮬레이션을 합니다
그렇게 만들면 안 되지만
이걸 통해 정확히 무엇이 잘못되었는지
분석하고 확인해볼 수 있죠
따라서 앞서 언급했듯
빌드를 호출할 때마다
하나의 Build Speed 탭을
얻습니다
그래서 저는 2~3분 정도의
완전한 빌드를 구성했습니다
그런 다음 증분 빌드를 구성했죠
그래서 이제 제 증분 빌드에서
벌어지는 일에 대한
완전한 세부 정보를
확인할 수 있습니다

Spanish: 
Todos deben conocer el incremento.
Ahora, trabajamos mucho en eso
y con autores de procesadores de anotación
para actualizar al soporte de Gradle
para API incrementales
y, en algunos casos, es tan fácil
como actualizar a la última versión.
Entonces, por ejemplo aquí,
les decimos el valor automático,
cambian a la versión 1.6.4
y la producción será más rápida.
Y está el tiempo de configuración.
La configuración es donde
se crean las tareas,
ya sea que se ejecuten o no.
Esta debería ser una operación rápida.
Pero, algunos complementos
procesan muchas cosas
en la configuración.
De hecho, creé una tarea lenta
que espera durante dos segundos.
Hace simulaciones y procesamientos
que ustedes no deberían hacer,
pero les da la posibilidad de indagar
y ver exactamente qué anda mal.
Como mencioné,
obtienen la pestaña Build Speed
cuando aplican la producción.
Creé una producción completa
de 2 o 3 minutos
y, luego, una producción incremental.
Ahora, puedo ver el desglose
de mi producción incremental.

Chinese: 
它们全部都需要改为增量式
我们努力改进它们
并且不断联系注解处理器作者
更新对增量式 API 的 Gradle 支持
有时 你只需升级到最新版本即可
比如在这里 我们会告诉你自动数值
转换到版本1.6.4 这样你的构建就可以更快了
此外 还有配置时间
配置是创建任务 无论它们是否运行 
这个操作应该是非常快速的
但是 有些插件其实会在配置期间做大量的运算
我创建了一个速度比较慢的版本 等待时间是2秒
它在模拟 做了很多本不该做的运算工作
不过 它会使你得以深入了解出问题的地方在哪里
正如我之前所提到的 你在每次构建的时候
都会得到一个 Build Speed 标签页
我在这里做了一个完整的构建 大约有2-3分钟
我随后制作了一个增量式构建
现在我可以观察增量式构建内部发生的细节
大家可以看到 之前提到的许可问题在这里已经不存在了

Indonesian: 
Dan ini harus bersifat inkremental.
Kami telah
mengupayakan banyak di antaranya
dan bekerja sama
dengan penulis prosesor anotasi
untuk mengupdate dukungan
Gradle untuk API inkremental,
dalam beberapa kasus,
ini semudah
mengupdate ke versi terbaru.
Jadi, saat tahu, misalnya,
kita perintahkan nilai
otomatis, beralih ke versi 1.6.4
dan versi Anda akan berjalan lebih cepat.
Selanjutnya, waktu konfigurasi.
Konfigurasi adalah tempat
membuat tugas, entah akan berjalan
atau tidak.
Operasi ini harusnya sangat cepat.
Namun beberapa plugin
akan melakukan banyak komputasi
saat konfigurasi.
Saya telah membuat yang lambat
yang memerlukan waktu dua detik.
Simulasi kini berjalan,
begitu juga komputasi
yang harusnya tidak
dilakukan, namun dengan ini
Anda dapat mempelajari lebih
lanjut dan mengetahui apa yang salah.
Seperti yang saya sebutkan,
akan muncul tab Kecepatan Versi
setiap kali Anda memanggil versi.
Saya membuat versi
lengkap untuk sekitar dua-tiga menit.
Lalu, saya membuat versi inkremental.
Inilah pembagian dari
yang terjadi di versi inkremental saya.
Dapat dilihat pemberian
lisensi bukan lagi masalah di sini.

Portuguese: 
Todos eles precisam ser incrementais.
Temos trabalhado
em muitos desses processadores
e com os autores deles
para que usem versões do Gradle
compatíveis com APIs incrementais.
Em alguns casos,
é mais fácil atualizar
para a versão mais recente.
Quando notamos,
enviamos uma notificação para mudar
para a versão 1.6.4.
Assim, a execução será mais rápida.
E há o momento da configuração.
É na configuração
que as tarefas são criadas,
mesmo que não sejam executadas.
Essa operação geralmente é muito rápida.
Mas alguns plug-ins
fazem muita computação
durante a configuração.
Criei algo bem lento aqui,
que espera por dois segundos.
É uma simulação
que faz muita computação desnecessária.
No entanto,
ela oferece uma chance de analisar
e ver exatamente o que há de errado.
Uma guia de velocidade é exibida
sempre que a compilação é invocada.
Criei uma compilação completa
em cerca de três minutos.
Depois fiz uma compilação incremental.
Agora posso ver
o que ocorre na compilação incremental.
Perceba que o licenciamento
não é mais o problema.

Spanish: 
Pueden ver que aquí la licencia
ya no es un problema.
Entonces, al desglosar cada producción,
pueden decidir
si quieren optimizar para CI,
todo el escenario de producción
o si quieren optimizar
para su producción incremental
en IDE o ambos.
Probablemente, tendrán más valor
de las producciones incrementales
si las hacen una y otra vez.
Esa es la nueva función
de atribución de producción
que tenemos en 4.0.
En este momento, no está en Canary 1,
pero esperamos que lo esté pronto.
Entonces, ya que estamos
hablando sobre Gradle,
ahora admitimos Kotlin Gradle DSL.
Esto significa que pueden escribir
sus archivos de producción en Kotlin.
Esto es muy bueno para el IDE,
ya que podemos pensar en Kotlin.
Está escrito estáticamente.
El soporte del editor es mejor.
Por ejemplo, la finalización del código…
si alguna se preguntaron
qué tienen permitido hacer
en la configuración por defecto,
ya no más.
Pueden ver la lista exacta aquí.
De manera similar, las opciones de Lint.
Si quieren saber qué pueden aplicar

English: 
You can see the licensing
is no longer the issue here.
And so, by breaking
this up for each build,
you can decide whether you
want to optimize for CI,
the full build
scenario, or if you
want to optimize
for your incremental
build in the IDE
or preferably both.
But you're probably going
to have more value out
of the incremental
builds as you do those
over and over and over again.
So that's the new build
attribution feature
that we have in 4.0.
It's not actually in
Canary 1, but hopefully, we
will land it soon.
All right.
So while we're on
the topic of Gradle,
we now support the
Kotlin Gradle DSL.
So that means that you can write
your build files in Kotlin.
And that's really
good for the IDE
because we can
reason about Kotlin.
It's statically typed, so
the editor support is better.
And so, for example,
code completion now,
if you've ever
wondered what you're
allowed to configure
inside default config,
well, wonder no more.
You can see the exact list here.
Similarly, lint options.
If you want to know
what you can invoke

Japanese: 
ライセンスは問題となっていない
ことが分かります
各ビルドに分割することで
CIつまりフルビルドシナリオ
のために最適化するか
IDEで
インクリメンタルビルド用に最適化するか
またはその両方を行うか
判断できます
何度も繰り返し行っているうちに
インクリメンタルビルド以外に関する
さらに価値ある情報が
得られるようになるでしょう
これらが4.0で使用できるようになる
新しいビルド属性の機能です
Canary 1にではなく
Stableに追加したいと考えています
さて
Gradleについてお話ししてきましたが
Kotlin Gradle DSLを
サポートするようになりました
つまり ビルドファイルを
Kotlinで記述できます
これはIDEにとって望ましいことです
なぜならKotlinについて
考えることができるからです
静的にタイプされるため
エディタサポートが向上します
例えば コード補完ですが
デフォルト構成の中で
何を構成できるだろうか
と悩んだことがあるならば
もう悩まないでください
正確なリストを確認できます
同様にlintオプションもあります
呼び出せるもの

Indonesian: 
Dan dengan membaginya untuk setiap versi,
Anda dapat memutuskan
apakah ingin pengoptimalan CI,
skenario versi penuh, atau
pengoptimalan versi inkremental
di IDE atau sebaiknya keduanya.
Namun, mungkin akan ada lebih banyak nilai
dari versi inkremental karena Anda
terus mengulanginya.
Itulah fitur atribusi versi baru
yang ada di versi 4.0.
Sebenarnya belum mencapai Canary 1,
tapi semoga dapat segera dirilis.
Baiklah.
Selagi masih membahas Gradle,
kami beritahukan bahwa kami
kini mendukung Kotlin Gradle DSL.
Artinya, Anda dapat
menulis file versi di Kotlin.
Dan ini sangat bagus untuk IDE
karena ada alasan untuk Kotlin.
Pengetikannya statis, jadi
dukungan editor akan lebih baik.
Misalnya, penyelesaian kode,
jika penasaran apa yang
boleh dikonfigurasikan
dalam konfigurasi default,
jangan lagi.
Anda dapat melihat daftarnya di sini.
Begitu juga dengan opsi lint.
Jika ingin tahu
apa yang dapat dipanggil

Korean: 
여기를 보시면 이제 라이선스가
문제되지 않는 것을 알 수 있습니다
따라서 각 빌드에 대해
이를 분해해서
전체 빌드 시나리오 CI를 위해
최적화할지
IDE의 증분 빌드를 위해
최적화할지
아니면 둘 모두를 위해 최적화할지
결정할 수 있습니다
아마 이 작업을 계속해서
수행함에 따라
증분 빌드에서 더 많은 가치를
얻게 될 것입니다
이것이 4.0에 포함된
새로운 빌드 귀속 기능입니다
Canary 1에는 없지만
곧 공개되기를 바라고 있습니다
그럼
Gradle 얘기가 나왔으니
말씀드리자면
저희는 이제 Kotlin Gradle DSL을
지원합니다
즉, Kotlin에 빌드를
작성할 수 있다는 말이지요
이건 IDE에
정말 좋은 소식인데요
Kotlin에 대해 추론할 수 있기
때문입니다
정적으로 입력되었으므로
편집기 지원이 더 나아졌고요
예를 들면 이제
코드 완성이 있습니다
기본 구성 안에서 무엇을
구성할 수 있는지 궁금했다면
이제 궁금증을 해결할 수 있죠
여기에서 정확한 목록을
확인할 수 있습니다
린트 옵션도 마찬가지입니다
호출할 수 있는 것과
맞춤설정할 수 있는 것을

Portuguese: 
Assim, ao detalhar em cada compilação,
é possível decidir
se você quer otimizar para CI,
o cenário de compilação completo,
para a compilação incremental
no IDE ou, de preferência, para ambos.
Provavelmente, as compilações incrementais
ajudarão mais se as fizer repetidamente.
Esse é o novo recurso
de atribuição de compilação
na versão 4.0.
Ainda não está no Canary 1,
mas esperamos que esteja em breve.
Já que o assunto é o Gradle,
agora temos suporte ao Kotlin Gradle DSL.
Ou seja, é possível escrever
arquivos de compilação no Kotlin.
Isso é ótimo para o IDE,
já que podemos
entender a lógica do Kotlin.
Tem tipos estáticos.
Assim, o suporte ao editor é melhor.
Por exemplo,
sobre o preenchimento do código.
Chega de dúvidas sobre
o que é permitido configurar como padrão.
É possível ver a lista exata aqui.
As opções de lint
funcionam de forma semelhante.

Chinese: 
针对每个 build 把它拆分开来
你就可以决定是要针对 CI 或完整构建场景进行优化
还是针对 IDE 中的增量式构建来优化
抑或是两者兼顾
在不断的尝试中
你可能会从增量式构建那里获取更多的益处
这就是我们在4.0版本中引入的全新构建属性功能
它其实没有出现在 Canary 1 中 
但我们希望能把它尽快上线
继续谈 Gradle 这个话题
现在我们支持 Kotlin Gradle DSL
也就是说 你可以用 Kotlin 写你的构建文件
这很有利于 IDE 因为能用到 Kotlin 的特性
类型是静态的 编辑器支持更好
比如 我们来看代码补全
如果你曾经想过 
你可以在默认配置中配置什么
那么不必多想了 这里就有详细的列表
Lint 选项也是类似的情况
如果你想知道你可以调用什么 定制什么

Spanish: 
y qué pueden personalizar, aparece aquí.
También pueden
abrir documentos para el DSL,
que es muy práctico,
directamente desde IDE.
También ejecutamos Lint
en sus archivos KKS.
Y, en 4.0, el mayor trabajo para nosotros
era implementar
la capacidad de leer, analizar y escribir
archivos de producción.
Ahora, el diálogo de la estructura
del producto también admite Kotlin DSL.
Por ejemplo, puedo venir aquí
y aceptar estas sugerencias
para actualizar a la última versión
de estas bibliotecas.
Luego, hago clic en Actualizar
y va a reescribir el archivo de producción
y ejecutar otra sincronización.
Vayamos al número 2.
Veamos la sección Opciones de compilación.
Verán esta nueva bandera aquí,
coreLibraryDesugaringEnabled.
Es para una nueva función en 4.0
llamada desazucarización,
que les permite acceder a API

Indonesian: 
dan disesuaikan,
daftarnya ada di sini.
Anda juga dapat menggunakan
dokumen untuk DSL, yang akan
berguna, langsung dari IDE.
[TEPUK TANGAN]
Kami juga menjalankan lint di file KKS.
Dan di versi 4.0, hal yang
paling kami upayakan yakni
penerapan kemampuan
membaca, analisis,
dan penulisan file versi ini.
Kini dialog struktur produk
juga menangani Kotlin DSL.
Jadi, saya dapat membukanya
dan menerima saran
guna mengupdate ke versi
terbaru library ini, misalnya.
Klik Update, lalu
file versi akan ditulis ulang dan
sinkronisasi lainnya akan dijalankan.
Oke.
Kita lihat.
Berlanjut ke langkah berikutnya.
Mari kita lihat bagian CompileOptions.
Akan ada flag baru yang disebut
coreLibraryDesugaringEnabled.
Ini adalah fitur baru di versi
4.0 yang disebut desugaring library,
ini memungkinkan Anda mengakses API yang

Japanese: 
カスタマイズできるものが
そこにリストされます
非常に有用な
DSLのドキュメントも IDEから
直接取得できます
[拍手]
KKSファイルでも
lintを実行できます
4.0で最も労力を費やしたのは
これらビルドファイルの
読み取り 分析 書き込み機能を
実装するための作業でした
またProduct Structureダイアログで
Kotlin DSLも処理できるようになりました
例えば このダイアログで
表示される提案を受け入れ
ライブラリの最新バージョンを
更新できます
[Update]をクリックします
すると
ビルドファイルが書き換えられ
別の同期が実行されます
さて
次の点に移りましょう
[Compile Options]について
見ていきます
coreLibraryDesugaringEnabledという
新しいフラグがあります
これは4.0の新機能で
ライブラリのデシュガーに関するものです
これにより
古いAPIレベルで

Chinese: 
你可以查看这里的列表
你还可以看 DSL 文档
直接从 IDE 打开即可 非常方便
我们还能在你的 KTS 文件中运行 Lint
在4.0版本中 我们的最大工作量来自
实现读取 分析 编写这些构建文件的功能
项目结构对话框现在也可以处理 Kotlin DSL
我可以在这里 接受这些建议
更新到最新版本的代码库
点击更新 然后它会重写 构建文件
再运行一次同步
好 下面我们来看2号
也就是 Compile Options 部分
大家可以看到这里的这个新开关值
名叫 coreLibraryDesugaringEnabled
它可以支持4.0中的一个新功能：代码库脱糖

English: 
and what you can customize,
they're listed here.
And you can also pull up docs
for the DSL, which is pretty
handy, right from the IDE.
[APPLAUSE]
We also run lint
on your KKS files.
And in 4.0, the biggest
amount of work for us
was to implement the
ability to read, analyze,
and write these build files.
So the product structure dialog
now also handles Kotlin DSL.
So I can go in here and I
can accept these suggestions
to update to the latest
version of these libraries,
for example.
And then hit Update,
and then it's
going to rewrite the build
file and run another sync.
OK.
Let's see.
Let's go to number two.
So let's take a look at the
Compile Options section.
You'll see this new
flag here called
coreLibraryDesugaringEnabled.
So this is for a new feature in
4.0 called library desugaring,
and this lets you
access APIs that

Korean: 
알고 싶다면
여기에 나열되어 있습니다
그리고 IDE에서 바로 편리하게
DSL을 위한 문서를
가져올 수도 있습니다
[박수]
KKS 파일에서도 린트를 실행합니다
그리고 4.0에서 가장 큰 작업은
이러한 빌드 파일을 읽고 분석하고
작성하는 기능을
구현하는 것이었습니다
제품 구조 대화 상자가 이제
Kotlin DSL도 처리하는 거죠
예를 들어, 여기에 들어가서
이러한 제안을 수락해
최신 버전의 라이브러리로
업데이트 할 수 있습니다
그런 다음 업데이트를 누르면
빌드 파일을 다시 작성하고
또 다른 동기화를 수행합니다
됐네요
어디 보죠
두 번째로 가보죠
Compile Options 섹션을
살펴보겠습니다
여기 새로운 플래그가 보일 텐데요
coreLibraryDesugaringEnabled라고
합니다
이건 라이브러리 디슈가링이라는
4.0의 새 기능인데요
일반적으로 더 높은 API 레벨을
요구하는 API에

Portuguese: 
Há uma lista com
o que é possível invocar e personalizar.
Também é possível abrir documentos no DSL
diretamente no IDE, o que é muito útil.
Também executamos lint
nos seus arquivos KKS.
Na versão 4.0, nosso maior trabalho foi
implementar leitura, análise e gravação
dos arquivos de compilação.
Agora a caixa de estrutura de produto
também lida com o Kotlin DSL.
Posso entrar aqui
e aceitar estas sugestões
para atualizar para a versão mais recente
destas bibliotecas, por exemplo.
Clico em "Atualizar"
para reescrever o arquivo de compilação
e executar outra sincronização.
Vamos até o número dois.
Vamos ver a sessão
de opções de compilação.
Vocês verão uma nova sinalização
chamada "coreLibraryDesugaringEnabled".
Ela serve para um novo recurso
da versão 4.0: "library desugaring".

Indonesian: 
umumnya memerlukan tingkat API lebih
tinggi pada tingkat API yang lebih lama.
Kita akan menulis ulang
panggilan tadi ke library backboard
yang dipaketkan dengan aplikasi Anda.
Mari lihat seperti apa hasilnya.
Di sini saya menggunakan Java.util.stream,
lint memberi tahu bahwa
akan terjadi error sebelum API
tingkat 27, jadi Anda
tidak dapat menggunakannya.
Oke?
Kini, jika
mengaktifkan desugaring library--
ada keluhan dalam modul ini
karena kode tidak berada di modul
tempat desugaring library diaktifkan,
namun jika beralih ke kode yang
sama di modul desugaring library saya,
dapat dilihat bahwa lint tidak bermasalah
karena ini akan berfungsi.
Saya akan menunjukkan
bytecode untuk melihat cara kerjanya.
Metode ini sama dengan
yang baru saya tunjukkan,
dan jika dilihat bytecode-nya,
dapat dilihat bahwa
java.util.stream telah digantikan dengan
j$util.stream.
Pada dasarnya ini
adalah library backboard.
Dan sebaiknya kenali ini

Spanish: 
que, en general, requieren un mayor nivel
de API en un nivel más antiguo.
Lo que hacemos es reescribir
esas señales en una biblioteca
que combinamos con su aplicación.
Entonces, veamos cómo se ve.
Aquí, estoy usando Java.util.stream.
Lint me dice que no va a funcionar
antes de la API nivel 24,
por lo que no pueden usarlo.
¿Correcto?
Bien, si activan
la desazucarización de la biblioteca…
se está quejando en este módulo
porque el código
no está en el módulo
donde activo la desazucarización,
pero si cambio al mismo código,
pueden ver que Lint está feliz
porque va a funcionar.
Voy a mostrarles el código de byte
para ver cómo funciona.
Es el mismo método
que acabo de mostrarles.
Si vemos el código de byte, pueden ver
que se reemplazó java.util.stream con
j$util.stream.
Básicamente,
eso es la biblioteca en panel.
Y es bueno saber esto

Chinese: 
它可以让你访问那些通常需要较早和较高 API 等级
才能访问的 API 
我们把调用重写为底板库
再把这个库和你的应用绑定到一起
现在我们来看看它是什么样子的
这里我采用的是 java.util.stream
Lint 告诉我 它会在 API 等级低于 24 时崩溃
所以 不能使用它
现在 如果你打开代码库脱糖功能
它就会在这个模块中显示警告
因为这个代码并不在我打开代码库脱糖功能的那个模块中
但是 如果我切换到我的代码库脱糖模块中的同样代码
你就可以看到 Lint 很开心
这是因为 这样做是行得通的
我来展示一下字节码 看看它是如何运作的
这个就是我之前展示过的方法
观察一下字节码 可以发现
java.util.stream 已经被 j$/util/stream 取代
底板库基本就是这样
了解这一点很有好处 因为你可能可以看到

Portuguese: 
Com isso, é possível acessar
APIs que normalmente exigem
um nível mais alto
em um mais antigo da API.
Nós reescrevemos essas chamadas
em uma biblioteca de apoio
que incorporamos ao app.
Vejamos como isso funciona.
Aqui estou usando "java.util.stream".
O lint me informa que haverá falha
em APIs anteriores ao nível 24,
então não é possível usá-lo.
Agora, se ativo
o "library desugaring",
vejo que há um problema no módulo,
já que este código não está no módulo
em que ativei o recurso.
No entanto,
se eu mudo para o mesmo código
no meu módulo do "library desugaring",
o lint não tem problemas porque funciona.
Vejam como o bytecode funciona.
É o mesmo método que acabei de mostrar.
Ao analisar o bytecode,
vemos que o "java.util.stream"
foi substituído por "j$/util/stream".
É basicamente a biblioteca de apoio.
É bom saber disso
porque vocês podem se deparar

Korean: 
기존 API 레벨에서
액세스하게 해줍니다
저희가 하는 일은 앱과 함께 제공되는
백보드 라이브러리에 대한
이러한 호출을
다시 작성하는 것입니다
그럼 어떤 식인지
살펴보겠습니다
여기서 저는 Java.util.stream을
사용하고 있습니다
린트에선 이게 API 레벨 24 이전에
충돌이 발생한다고 하므로
사용할 수 없습니다
그렇죠?
자, 이제, 라이브러리
디슈가링을 켜면
이 모듈에서는 린트가
오류 메시지를 띄우고 있는데요
이 코드는 제가 라이브러리
디슈가링을 켠 모듈에
있지 않기 때문이죠
하지만 같은 코드를
라이브러리 디슈가링 모듈로 바꾸면
린트가 조용해집니다
이제 작동할 수 있기 때문이죠
바이트코드를 통해 작동 방식을
보여드리겠습니다
이건 방금 보여드린 것과
같은 메서드입니다
그리고 바이트코드를 보면
java.util.stream이
j$util.stream으로 대체된 것을
알 수 있습니다
기본적으로 이건
백보드 라이브러리입니다
스택 추적 및 디버거 등에

Japanese: 
より高いAPIレベルを必要とするAPIに
アクセスできます
ここではアプリにバンドルする
バックボードライブラリへの
呼び出しを書き換えます
どのようなものか見ていきましょう
ここでは
Java.util.streamを使用します
lintでは
APIレベル24より前で
クラッシュしてしまいます
これは使用できません
ライブラリのデシュガーをオンにすると
このモードでエラーが表示されます
このコードはライブラリのデシュガーを
オンにしたモジュールにないからです
しかしライブラリをデシュガーした
モジュールの同じコードに切り替えると
lintでエラーが発生しません
これが機能するからです
これがどのように機能しているか
バイトコードをお見せします
先ほどお見せした方法と同じです
バイトコードに注目してみると
“java.util.stream”が“j$util.stream”に
置き換わっているのが分かります
これはバックボードライブラリです
スタックトレースやデバッガーで

English: 
normally require a higher API
level on an older API level.
What we do is we rewrite those
calls into a backboard library
that we bundle with your app.
So let's take a look at
what that looks like.
So here, I'm using
Java.util.stream,
lint tells me that this is
going to crash prior to API
level 24 so you can't use it.
Right?
Well, now, if you turn
on library desugaring--
it's actually complaining
in this module
because this code isn't in the
module where I turn on library
desugaring, but if I switch
to the same code in my library
desugaring module, you
can see lint is happy
because this is going to work.
And let me show you the
bytecode to see how this works.
So this is the same
method I just showed you,
and if we look at the
bytecode, you can see that
java.util.stream has
been replaced with this
j$util.stream.
That's basically the
backboard library.
And it's good to
be aware of this

Indonesian: 
karena Anda mungkin melihat
nama paket dalam pelacakan tumpukan
dan debugger dan seterusnya.
Dan perlu diketahui, ini tidak
terbatas pada java.util.stream.
Ini dapat digunakan untuk java.time.
Ini dapat digunakan
untuk java.util.function,
java.util.optional, dan kami
bahkan menulis ulang referensi
ke concurrenthashmap.
Karena ternyata, di beberapa perangkat,
concurrenthashmap memiliki bug yang parah.
Dengan menggunakan fitur ini, kami akan
mengganti penggunaan
concurrenthashmap dengan yang lebih aman
dan Anda tidak perlu
khawatir tentang bug tadi.
Baiklah.
Bicara tentang dek dan [...] dan R8,
untuk pengecilan kode,
kami masih menggunakan
file ProGuard untuk memprosesnya.
Jadi, di versi 4.0, kami menyempurnakan
dukungan untuk file ProGuard.
Kini terdapat penyelesaian
kode lebih baik, deklarasi go-to,
dan yang terpenting,
kini dapat menemukan
penggunaan dan
sadar pemfaktoran ulang.
Jika misalnya saya
mengganti nama class yang
kebetulan adalah
referensi dari file ProGuard
dan saya terapkan pemfaktoran ulang tadi,
dapat dilihat bahwa file
ProGuard juga diperbarui.

Japanese: 
これらのパッケージ名を見ることがあるので
知っておくと良いでしょう
これはjava.util.streamに限定されていません
java.time
java.util.function
java.util.optionalにも使用できます
同時ハッシュマップのリファレンスも
書き直します
一部のデバイスでは
同時ハッシュマップに
重大なバグが発生することが
分かっています
この機能を使用して
同時ハッシュマップを安全なものに
置き換えます
これでバグに悩まされることは
なくなります
次に
デッキとR8についてお話しします
コードを圧縮する際
ProGuardファイルを使用して
プロセスを進めます
4.0ではProGuardファイルの
サポートを向上させました
より優れたコード補完機能 
定義箇所へ移動する機能を備えました
そして最も重要なのが
使用箇所を探す機能と
リファクタリング検出機能です
例えば
ProGuardファイルから参照される
このクラスの名前を変更し
そのリファクタリングを適用すると
ProGuardファイルも更新されます

Portuguese: 
com esses nomes de pacotes
nos stack traces, no depurador etc.
Isso não se limita ao java.util.stream.
É possível usar essa informação
para java.time, java.util.function,
java.util.optional
e até mesmo para reescrever
referências ao mapa hash simultâneo.
Isso porque, em alguns dispositivos,
o mapa hash simultâneo
tem um bug bem sério.
Com esse recurso, substituiremos
o mapa hash simultâneo pelo mais seguro,
e o bug não terá efeito.
Com relação a Dex, D8s e R8s,
para diminuir o código,
ainda usamos arquivos
ProGuard para guiar o processo.
Na versão 4.0,
melhoramos o suporte a esses arquivos.
Temos melhor preenchimento de código,
acesso às declarações e, mais importante,
detecção de usos e refatoração.
Por exemplo, se eu renomear esta classe
que foi referenciada
de um arquivo ProGuard
e aplicar essa refatoração,
o arquivo ProGuard também será atualizado.

Korean: 
이러한 패키지 이름이
표시될 수 있으므로
알고 계시는 것이 좋습니다
그리고 이게 java.util.stream으로만
제한되지 않는다는다는 사실에 주목하세요
java.time에도 사용할 수 있거든요
java.util.function과
java.util.optional에도
사용할 수 있으며
ConcurrentHashMap에 대한
참조도 다시 작성했습니다
왜냐하면 일부 기기에서는
ConcurrentHashMap에
굉장히 고약한 버그가
있기 때문입니다
이 기능을 사용하여
ConcurrentHashMap 용법을
안전한 것으로 대체하기만 하면
그 버그에 시달리지 않을 것입니다
자, 그럼
덱과 D8, R8에 대해
말씀드리자면
코드 축소를 위해
아직 ProGuard를 사용하여
프로세스를 구동하고 있습니다
그리고 4.0에서는 ProGuard 파일
지원을 개선했습니다
코드 완성이 개선됐고
Go to 선언이 있으며
가장 중요한 부분은
이제 그게 용법과
refactoring-aware를
찾는다는 것입니다
예를 들어, 제가 ProGuard
파일로부터 참조가 발생한
이 클래스 이름을 바꾸고
리팩토링을 적용하면
ProGuard 파일 또한
업데이트되는 것을
볼 수 있습니다

Spanish: 
porque podrían ver
estos nombres en trazas apiladas
y depuradores.
Tengan en cuenta que
no se limita a java.util.stream.
Pueden usar esto para java.time
Pueden usar esto para java.util.function,
java.util.optional e, incluso,
reescribir referencias
para mapas
de funciones hash simultáneas.
En algunos dispositivos,
el mapa de funciones hash simultáneas
tiene un error.
Entonces, si uso esta función,
reemplazaremos sus usos
del mapa con uno seguro
y no serán perjudicados por ese error.
Hablando de plataformas y R8,
para la reducción de códigos,
usamos archivos
ProGuard para realizar el proceso.
Y, en 4.0, mejoramos nuestro
soporte de archivos ProGuard.
Tenemos mejor finalización de códigos,
declaraciones únicas
y, lo más importante, es que ahora permite
usos de búsqueda y reestructuración.
Por ejemplo,
si renombro esta clase
a la que se hace referencia
en el archivo ProGuard
y aplico esa reestructuración,
pueden ver que el archivo se actualiza.

English: 
because you might see these
package names in stack traces
and debugger and so on.
And note that this is not
limited to java.util.stream.
You can use this for java.time.
You can use it for
java.util.function,
java.util.optional, and
we even rewrite references
to concurrent hash map.
Because it turns out
that, on some devices,
concurrent hash map
has a really bad bug.
And so by using this
feature, we will just
replace your concurrent hash
map usages with the safe one
and you won't be
bit by that bug.
All right.
Speaking of decks and
[INAUDIBLE] and R8s,
for code shrinking,
we still use ProGuard
files to drive the process.
And so in 4.0, we've improved
our support for ProGuard files.
We have better code completion,
we have go-to declarations,
and the most important
part is that it is now find
usages and refactoring aware.
So if I, for example,
rename this class that
happened to be referenced
from a ProGuard file
and I apply that
refactoring, you
can see that the ProGuard
file is also updated.

Chinese: 
这些栈追踪文件和 debugger 中的封包名称
请注意 这种现象不仅限于 java.util.stream
你还可以把它用于 java.time
java.util.function java.util.optional 
我们甚至针对引用重写了并发式的哈希映射
因为 在某些设备上
并发式的哈希映射存在着非常严重的 bug
我们可以使用这个功能
来让安全的哈希映射取代不安全的版本
这就为你消除了这个 bug 带来的风险
好 说到层级和 R8
在压缩代码时 我们仍在使用 ProGuard 文件
来驱动这个流程
在4.0中 我们改进了对 ProGuard 文件的支持
我们有更好的代码补全 首选声明
最重要的是 它现在可以支持引用查找和重构
如果我重命名这个类
而这个类恰好是被 ProGuard 文件引用过的
当我应用重构
那么你可以看到 ProGuard 文件也得到了更新

Japanese: 
今後はProGuardが
同期されなくなることはありません
[拍手]
Gradleファイルに戻りましょう
ビューバインディングを調整しました
ビューバインディングは
データバインディングに非常に似ています
しかし より簡単に使用でき
ビルド速度に与える影響も
小さくなります
この機能をオンにすると
レイアウトごとに
バインディングクラスが作成されます
ここに従来の方法で処理する
クラスがありますね
一連のコンテンツビューがあります
レイアウトリソースを通り過ぎて
次のような検索方法で
ビュー階層を探します
機能すると思われるキャストを適用し
一か八かで
そのオブジェクトにアクセスしてみます
ビューバインディングでは
生成したバインディングクラスで
レイアウトにアクセスするか
インフレートします
ここで レイアウトに存在している
ビューを正確に示す
バインディングインスタンスを取得します
この場合 テキストビューが
メインアクティビティの
すべてのバージョンに存在しています

Korean: 
따라서, 더는 오래된
ProGuard 파일이 없습니다
[박수]
좋습니다
다시 Gradle 파일로 돌아가 보죠
뷰 바인딩도 켰습니다
뷰 바인딩은 데이터 바인딩과
매우 비슷합니다
하지만, 사용이 더 쉽고
빌드 속도에
영향을 덜 줍니다
뷰 바인딩을 켜면
각 레이아웃에 대한
바인딩 클래스를 생성합니다
여기 먼저 고전적인 방식으로
작동하는 클래스가 있습니다
콘텐츠 뷰를 설정하고
레이아웃 리소스를 전달한 다음
이러한 파인드 메서드를 통해
뷰 계층 구조를 뒤적거립니다
캐스트가 작동하길 바라며 적용한 다음
그 객체에 액세스하게 되겠죠
뷰 바인딩을 사용하는 경우
저희가 대신 하는 일은
생성된 바인딩 클래스로
레이아웃에 액세스하거나
팽창시키는 것입니다
그리고 이제 레이아웃에
어떤 뷰가 있는지
정확히 아는
바인딩 인스턴스를 얻습니다
따라서 이 경우
텍스트 뷰는
모든 버전의
activity main에 존재합니다

Spanish: 
Entonces, ya no habrá archivos
ProGuard obsoletos después de esto.
Entonces, volviendo
a nuestro archivo Gradle,
también activé el enlace de vistas,
que se parece mucho
al enlace de datos,
pero es más fácil de usar
y tiene un menor impacto
en la velocidad de producción.
Entonces, una vez que activen esto,
crearán una clase de enlace
para cada una de las disposiciones.
Aquí hay una clase
que primero hace las cosas
de la forma clásica.
Tenemos una vista de contenido,
vamos a pasar al recurso de disposición
y mirar la jerarquía de la vista
con estos métodos.
Aplicamos un modo
que con suerte va a funcionar,
y tratamos de de acceder a ese objeto.
Con el enlace de vista,
lo que hacemos
es acceder o agrandar la disposición
con esta clase de enlace generada.
Tenemos esta instancia de enlace
que sabe exactamente qué
vistas están presentes en la disposición.
En este caso, la vista de texto
está presente en todas las versiones
de la actividad principal.

English: 
So no more stale ProGuard
files after this.
[APPLAUSE]
All right.
So back to our
Gradle file again.
I've also turned
on view binding.
So view binding is very
much like data binding,
but it is easier to use
and it has a smaller impact
on your build speed.
So once you turn this on,
it'll create a binding class
for each one of your layouts.
So here's a class
that first does things
the classic way, right?
So we have a set
content view, we'll
be passing in a
layout resource, then
we fish around in
the view hierarchy
with these find methods.
We apply a cast
that'll hopefully work,
and then we take our chances
accessing that object.
With view binding,
what we do instead
is we access or
inflate the layout
with this generated
binding class.
And now, we get this
binding instance
which knows exactly which views
are present in the layout.
So in this case, text view
is present in all versions
of activity main.

Chinese: 
所以 在这之后 就不会再有没更新的 ProGuard 文件了
好 再来看我们的 Gradle 文件
我也打开了视图绑定
视图绑定很像是数据绑定
但是它用起来更简单 对构建速度的影响更小
打开这个功能之后 
它会为你的每个布局创建一个绑定类
这个代码首先会试图采用传统方式来解决问题 对吧？
我们有一系列的内容视图
我们传入一个布局资源
然后我们使用这些 find 方法在视图层级里搜索视图
我们使用类型转换 希望它能够正常运行
然后我们会尝试着访问这个对象
在视图绑定时我们是这样做的：
使用生成出来的绑定类来访问或 inflate 布局
现在我们得到了这个绑定实例
它完全了解哪些视图会在布局中出现
在本例中 textView 出现在所有版本中的主活动窗口中

Indonesian: 
Jadi, tidak perlu lagi
menggunakan file ProGuard yang usang.
[TEPUK TANGAN]
Baiklah. Kembali ke file Gradle.
Saya juga telah
mengaktifkan view binding.
View binding mirip dengan data binding,
namun lebih mudah
digunakan dan memiliki efek lebih kecil
terhadap kecepatan versi.
Jadi, setelah mengaktifkannya,
akan dibuat binding class
untuk setiap tata letak.
Ini adalah class yang awalnya berfungsi
dengan cara lama, lihat?
Di sini ada setContentView,
yang akan diteruskan
ke resource tata letak,
lalu kita pancing hierarki tampilan
dengan metode findViewById.
Kita terapkan transmisi, semoga berfungsi,
dan kita akan coba
mengakses objek tersebut.
Dengan view binding, kita akan
mengakses atau meningkatkan tata letak
dengan binding class yang telah dibuat.
Kini, sudah ada instance binding
yang tahu persis tampilan
mana yang ada di tata letak.
Jadi, dalam kasus ini,
textView ada di semua versi
utama aktivitas.

Portuguese: 
Após isso, os arquivos ProGuard 
não ficarão mais desatualizados.
De volta ao nosso arquivo do Gradle.
Eu também ativei
a vinculação da visualização.
É algo muito parecido
com a vinculação de dados,
mas é mais fácil de usar
e tem um impacto menor
na sua velocidade de compilação.
Após a ativação,
será criada uma classe de veiculação
para cada um dos seus layouts.
Esta é uma classe que primeiro
faz as coisas da maneira clássica.
Temos setContentView,
passaremos um recurso de layout
e pesquisaremos a hierarquia
de visualização com métodos de busca.
Aplicaremos uma transmissão
e veremos se é possível acessar o objeto.
Com a vinculação de visualização,
acessamos ou aumentamos o layout
com uma classe de vinculação gerada.
Esta instância de vinculação conhece
as visualizações presentes no layout.
Neste caso, textView está presente
em todas as versões de ActivityMain.

Chinese: 
这意味着 我们知道它是不可空的 也是可以安全访问的
我不会在这里遇到空指针异常
视图绑定知道 一个布局上缺失了那个按钮
所以它是被标记为可空的
如果我不在这里带个问号
Kotlin 就会拒绝编译
所以 视图绑定非常适合用来捕捉空引用
它的性能表现也是很不错的
视图绑定让我们可以轻松访问并更新视图
但我们正在制作一个更加强力 更加易用的全新框架
它就是 Jetpack Compose 
这是使用 Compose 写的 Hello World
我们可以找到一个既存的 Composable 或 widget
我们可以把它放进我们自己的方法里
并使用一些参数来定制它
在我们把 @Composable 注解放在它上面之后
看 我们就创建出了自己的 widget
我们也可以使用这个 Preview 注解来标注它

Spanish: 
Eso significa que sabemos
que no se puede anular
y es seguro para acceder.
No voy a tener excepciones de nulidad.
El enlace de vista sabe
que falta ese botón en una disposición.
Se marca como anulable.
Si no hubiera usado el operador Elvis,
Kotlin hubiera rechazado la compilación.
El enlace de vista es excelente
para detectar nulidades
y tiene un muy buen rendimiento.
Entonces, el enlace de vistas
facilita el acceso y la actualización
de sus vistas, pero estamos
trabajando en un nuevo entorno
para que sea aún más potente y fácil.
Y es Jetpack Compose.
Esto es Hello World de Compose.
Lo que tenemos aquí es que
podemos tomar un ajuste existente
o widget e incluirlo a nuestra función
y personalizarla con argumentos.
En cuanto agreguemos
una anotación ajustable,
creamos nuestro propio widget.
También podemos anunciar
con esta anotación de previsualización.
Luego, aparece
en un panel de previsualización

Indonesian: 
Artinya, kita tahu
bahwa ini tidak nullable
dan aman untuk diakses.
Saya tidak akan
mengecualikan pointer null di sini.
View binding tahu tombol
tersebut hilang dari satu tata letak.
Ini ditandai sebagai nullable.
Tanpa operator elvis,
Kotlin akan menolak tindakan kompilasi.
View binding sangat
bagus untuk menemukan nilai null,
dan performanya juga cukup baik.
Baiklah. View binding
memudahkan akses dan pembaruan
tampilan, namun kami sedang
mengupayakan framework baru
guna meningkatkan
performa dan kemudahannya.
Inilah Jetpack Compose.
Ini adalah Hello World
dari Compose.
Di sini, kita dapat
menggunakan @Composable yang sudah ada,
atau widget, dan kita dapat
menggabungkannya dalam fungsi kita
dan menyesuaikannya
dengan beberapa argumen.
Dan begitu kita
meletakkan anotasi @Composable
di sini, yap, jadilah widget kita.
Kita juga dapat
menandainya dengan anotasi @Preview.

Portuguese: 
Ou seja, sabemos que ela não é anulável
e tem acesso seguro.
Não terei exceções de ponteiro nulo aqui.
A vinculação identifica que o botão
está faltando em um dos layouts.
Ele é marcado como anulável.
Se eu não usasse o operador "elvis",
o Kotlin recusaria a compilação.
A vinculação da visualização
é ótima para identificar nulidade,
além de ter excelente desempenho.
Esse tipo de vinculação
facilita o acesso e a atualização
das visualizações.
Estamos trabalhando em um novo framework
para tornar esse processo
ainda mais fácil e eficiente.
Trata-se do Jetpack Compose.
Este é o "Hello World" do Compose.
Aqui podemos pegar
um item combinável ou widget atual,
incorporá-lo à nossa própria função
e personalizá-lo com alguns argumentos.
Assim que inserimos
uma anotação combinável,
nosso próprio widget é criado.
Também é possível marcá-lo
com esta anotação de visualização.

English: 
So that means that we
know it's non-nullable
and it's safe to access.
I will have no null pointer
exceptions with this one.
View binding knows that
button is actually missing
from one of the layouts.
So it's marked as nullable.
And if I hadn't used
the elvis operator here,
Kotlin would have
refused to compile.
So view binding is great
for catching nullness,
and it's also pretty
good performance.
All right.
So view binding makes it really
easy to access and update
your views, but we're working
on a brand new framework
to make it even more
powerful and easy.
And that's Jetpack Compose.
So this is Hello
World from Compose.
So what we do here is we can
take an existing composable,
or a widget, and we can
wrap it in our own function
and customize it
with some arguments.
And as soon as we put
a composable annotation
on it, voila, we've
created our own widget.
And we can also market with
this preview annotation.

Japanese: 
これは null非許容型で
安全にアクセスできることを示します
これには
nullポインタの例外は発生しません
ビューバインディングでは
レイアウトのいずれかで
ボタンが欠けていることを認識します
null許容型としてマークされます
ここでエルビス演算子を
使用していなければ
Kotlinはコンパイルを拒否します
ビューバインディングは
nullをキャッチするのに適しています
パフォーマンスも優れています
ビューバインディングはビューへのアクセスや
更新を簡単にしますが
よりパワフルで処理が簡単になる
最新のフレームワークを開発しています
Jetpack Composeです
これはComposeの“Hello World”です
ここでは既存のウィジェット
Composableを利用し
それを独自の関数でラップしたり
いくつかの引数で
カスタマイズできるようにしたりします
Composableアノテーションを
含めるとすぐに
独自のウィジェットが作成されます
このPreviewアノテーションとして
マークを付けることもできます

Korean: 
즉, null이 불가능하며
액세스가 안전하다는 것을
안다는 뜻입니다
여기에 대해서는 null 포인터
예외가 없습니다
뷰 바인딩은 레이아웃 중 하나에서
버튼이 사라진 것을
그래서 null 가능으로 표시했습니다
제가 여기에 엘비스 연산자를
사용하지 않았다면
Kotlin이 컴파일을
거부했을 것입니다
따라서 뷰 바인딩은
null 포착에 유용하며
성능도 꽤 좋습니다
자
뷰 바인딩은 뷰 액세스와 업데이트를
정말 쉽게 만들어주지만
그걸 더 쉽고
강력하게 만들기 위해
최신 프레임워크를 개발 중입니다
바로 Jetpack Compose입니다
이건 Compose의
Hello World입니다
여기서 저희는 기존의
컴포저블이나 위젯을 가져와
자체 함수로 감싼 다음
몇 가지 인수로
커스터마이즈할 수 있게 했습니다
거기에 컴포저블 주석을 놓자마자
짜잔, 저희의 위젯이 만들어졌습니다
이 미리보기 주석으로
표시를 해둘 수도 있습니다

Spanish: 
dentro del archivo Kotlin.
Es como nuestro soporte
de datos de muestra
en el viejo Layout Editor,
pero aplicado para Compose.
Entonces, creamos nuestro
propio widget llamado Greeting.
Podemos seguir y agregar un circuito
y otros condicionales.
Podemos incluirlo
en otro elemento ajustable.
Entonces, crean nuevos widgets
con ajustes.
El nombre tiene mucho sentido.
Nuevamente, tenemos la vista previa,
que no se limita a solo una.
Aquí, tengo el widget de botón que creé.
Tiene dos estados, encendido y apagado.
Vean cómo puedo
previsualizar todos los estados,
incluso en modo oscuro,
que es muy práctico.
Aquí hay un ejemplo más complejo
de la aplicación Newsreader.
Esta es una tarjeta que usamos
para mostrar historias disponibles.
Y aquí, pueden ver cómo se ve,
por ejemplo, con una fuente
de sistema más grande.
La previsualización integrada

English: 
And then it shows up in a
preview pane inside the Kotlin
file.
This is a bit like
our sample data
support in the
old Layout Editor,
but now applied for Compose.
And so we've created our own
widget called Greeting here.
We can take that further and we
can throw a for-loop around it
and other conditionals.
And we can wrap it inside
another composable.
So you compose new widgets
by adding composables.
So the name makes
a lot of sense.
So we had the preview again, and
note that this preview is not
limited to one.
So here, I have a button
widget that I've created.
It has two states, on and off.
And notice how I can preview
all the states, including
in dark mode as well,
which is pretty handy.
And here's an even
more complex example
from our Newsreader app.
So this is a card we used
to show available stories.
And here, you can see
we're also showing you,
for example, what this looks
like with a larger system font.
So the embedded
preview is really

Chinese: 
然后它会在 Kotlin 文件里的预览面板上出现
这个有点像是我们在旧版 Layout Editor 里面的样本数据显示
只是现在应用在了 Compose 上面
我们创建了自己的 widget 名叫 Greeting
我们可以再进一步 在它周围安排一个 for-loop
以及其他条件句
我们还可以把它封装进另一个 Composable 里
所以 你要通过添加组合来编写新的 widget
这样一来 这个名字的含义就说得通了
我们现在有了预览 注意 这个预览不仅限于一个
这里我创建出来了一个按钮 widget
它有两个状态 开和关
请注意 我可以预览所有的状态
包括夜间模式 非常方便
这个来自 Newsreader 的例子更复杂一些
我们使用这张卡片来展示一个故事
这里可以看到 我们还在向你展示
它用到更大的系统字体时看起来是什么样子
内嵌式预览非常适合用来微调视图

Japanese: 
そうするとKotlinファイルで
[Preview]ペインに表示されます
これは従来のLayout Editorで
サポートされていた
サンプルデータに似ていますが
今はComposeに適用されています
“Greeting”という名前で
独自のウィジェットを作成しました
それを拡張してFor Loopまたは
その他の条件文をスローできます
それを別のComposableで
ラップできます
Composableを追加することで
新しいウィジェットを作成します
ですから この名前は理にかなっています
もう一度Previewに戻りましょう
このPreviewは１つに限定されていません
ここに自分で作成した
ボタンウィジェットがあります
オンとオフの２つの状態があります
ダークモードも含め
すべての状態がどのように
プレビューされるかに注目してください
これはとても便利です
ここにもっと複雑な
Newsreaderアプリの例があります
これは利用可能なストーリーを
表示するために使用したカードです
より大きなシステムフォントを使用すると
どのように見えるかを示す
例も確認できます
組み込まれているプレビュー機能は
ビューを微調整したり

Indonesian: 
Lalu akan muncul di
panel pratinjau dalam file Kotlin.
Ini agak mirip dengan
dukungan contoh data
di Layout Editor yang lama,
namun kini diterapkan untuk Compose.
Jadi, kita telah membuat
widget dengan nama Greeting.
Kita dapat menyempurnakannya & membuat
for-loop serta ketentuan lain untuknya.
Dan kita dapat
menggabungkannya dalam @Composable lain.
Anda membuat widget
dengan menambahkan @Composable.
Dari sinilah nama itu berasal.
Pratinjau ini muncul lagi,
dan perlu diketahui, ini tidak
terbatas pada satu saja.
Di sini, saya telah membuat widget tombol.
Statusnya ada dua, aktif dan nonaktif.
Dan dapat dilihat bahwa saya
dapat melihat pratinjau semua status,
termasuk dalam mode
gelap, yang cukup berguna.
Berikut contoh yang lebih kompleks
dari aplikasi Newsreader.
Ini adalah kartu yang digunakan
untuk menunjukkan artikel yang tersedia.
Di sini, bisa dilihat
kami juga menunjukkan,
misalnya, bagaimana tampilannya
dengan font sistem yang lebih besar.
Pratinjau tersemat sangat bagus

Korean: 
그러면 Kotlin 파일
내부의 미리보기 창에
나타납니다
이는 기존 Layout Editor에서의
샘플 데이터 지원과 비슷하지만
이제는 Compose에 적용됩니다
여기서 Greeting이라고 하는
저희의 위젯을 생성했습니다
더 나아가서 위젯과
다른 조건을 중심으로
for 루프를 사용할 수 있습니다
그리고 그걸 다른 컴포저블 안에
넣을 수 있습니다
컴포저블을 추가하여
새 위젯을 구성하도록 말이죠
그러니 왜 이런 이름이
붙었는지 아시겠죠?
여기 미리보기가 다시 나왔고요
미리보기가 한 개로
제한되지 않았다는 데 주목하세요
여기에 제가 생성한
버튼 위젯이 있습니다
버튼 상태는 켜짐과 꺼짐
두 가지입니다
그리고 다크 모드도 포함하여
모든 상태를 미리 볼 수 있는 방법에
주목해 주세요
매우 편리하니까요
Newsreader 앱의
더 복잡한 사례도 있습니다
이건 읽을 수 있는 기사를
보여주기 위해 사용한 카드입니다
예를 들어 더 큰 시스템 글꼴로는
어떤 모습으로 보일지도
여기에서 확인하실 수 있습니다
따라서, 내장된 미리보기는

Portuguese: 
Assim, ele é exibido
em um painel de visualização
no arquivo do Kotlin.
É um pouco parecido
com o suporte aos dados de amostra
do antigo editor de layout,
mas agora aplicado ao Compose.
Criamos nosso próprio widget
chamado "Greeting".
Podemos avançar
e aplicar um loop "for" nele,
além de outras condicionais.
Podemos incorporá-lo em outro combinável.
Criar novos widgets
adicionando elementos combináveis.
O nome faz bastante sentido.
Aqui está a visualização novamente.
E pode haver mais de uma.
Este é o widget de botão criado por mim.
Ele tem dois estados: ativo e inativo.
É possível visualizar todos os estados,
incluindo o modo escuro, muito útil.
Aqui temos um exemplo mais complexo
do nosso app de notícias.
É um card que usamos
para mostrar histórias disponíveis.
Também mostramos, por exemplo,
como fica o visual
com a fonte do sistema maior.
A visualização incorporada
é ótima para fazer ajustes

Japanese: 
テーマやフォントサイズなどが異なる表示を
確認したりするのに非常に優れています
時々アプリを実行して動作を修正したい
と思うことがあるかと思います
それで次の機能は優れていると思います
基調講演をご覧になっていれば
既に目にしていますが
それでもこれはすごいと思います
Studio 1.0より前から
あったら良いなと思っていた機能です
技術的には非常に
難易度が高いものでしたが
チームは成功を収めつつあります
これはIDE内部に
エミュレータを組み込む技術のことで
私もとても気に入っています
[拍手]
これは本物のエミュレータです
別個にアプリを
シミュレーションするものではありません
Accountsをインストールできます
Intentsを起動できます
IDE内部にこれを組み込める利点は
ウィンドウ管理に追加できることです
ソースエディタの使用中に
フォーカスしたいときに
キーバインディングを叩くと
メインエディタに移ります
簡単に戻ることもできます
非常に便利です
今実行しているのは
私のComposeアプリです
ここに注目してください
[Bookmark]アイコンを
クリックしてみましょう

Chinese: 
以及观察不同维度 比如主题和字号等 上的状态
不过有时候 你需要运行应用才能调整其行为
下一个功能是我非常喜欢的
如果你之前看过主题演讲 那么你已经见过它了
我很喜欢这个功能
我从 Studio 1.0 之前就想要这个功能了
它的技术难度非常大
不过我们的团队现在正在努力解决
这个功能就是 在 IDE 中内嵌模拟器
我很喜欢它
这是真实完整的模拟器
而不是孤立地只模拟运行这个应用
我可以安装账户 启动 Intent
在 IDE 中内嵌模拟器的好处是
它会参与窗口管理
如果我在编写代码 我想要集中注意力
我点击按键 就能一头扎进编辑器里
我也可以轻松地把模拟器重新打开
非常方便
这就是我的 Compose 应用的运行情况
我们可以把它安放在这里
下面我们来点击一下收藏图标

Portuguese: 
e conferir diferentes dimensões
como tamanhos de fontes, temas etc.
No entanto,
às vezes queremos executar o app
para modificar o comportamento.
Estou animado com o próximo recurso.
Ele foi mostrado na palestra principal.
É um recurso
que eu queria desde antes do Studio 1.0,
mas era tecnicamente muito desafiador.
No entanto, a equipe
está no processo de lançamento.
É a capacidade
de incorporar o emulador ao IDE.
Eu adoro esse recurso.
Este é o emulador real.
Não é só uma simulação do app isolado.
Posso instalar contas,
lançar intents, tudo isso.
O bom de ter isso no IDE
é que ele participa
do gerenciamento de janelas.
Se estou no editor e preciso de foco,
basta pressionar um comando
e o emulador volta.
É muito conveniente.
Este é meu app Compose em execução.
Podemos entrar em detalhes.
Vamos clicar no ícone de favorito.

English: 
great for tweaking your views
as well as seeing what they'll
look like across different
dimensions like theme and font
size and things like that.
But sometimes, you really
want to run the app
to modify the behavior.
And so I'm very excited
about this next feature.
If you watched the keynote,
you've already seen it,
but I'm still excited about it.
This is a feature I've wanted
since before Studio 1.0
but it was very
technically challenging,
but the team is in the
process of pulling it off.
And that is, of
course, the ability
to have the emulator
embedded inside the IDE.
Yeah, I love this.
[APPLAUSE]
So this is the real
emulator, right?
It's not just simulating
the app in isolation.
I can install accounts, I can
launch intents and all that.
And what's nice about
having it inside the IDE
is that it participates in
window management, right?
So if I'm the source
editor and I want to focus,
I press a key binding,
I'm in my editor,
and I can bring it
back very easily.
So it's super convenient.
So this is my
Compose app running.
We can drill into it here.
And let's click on
the Bookmark icon.

Spanish: 
es excelente
para modificar sus vistas y ver
cómo se verán en diferentes dimensiones,
como el tamaño del tema y la fuente.
Pero otras veces,
quieren ejecutar la aplicación
para modificar el comportamiento.
Estoy muy emocionado por esta función.
Si fueron a la conferencia, ya lo vieron,
pero igual me emociona.
Esta es una función que he querido
desde antes de Studio 1.0
pero era técnicamente desafiante,
pero el equipo
está en proceso de conseguirla.
Obviamente, es la habilidad
de tener el emulador integrado en el IDE.
Sí, me encanta.
Este es el emulador real.
No solo simula la aplicación aisladamente.
Puedo instalar cuentas,
ejecutar intenciones, etc.
Y lo bueno de estar dentro del IDE
es que participa
en la administración de ventanas.
Si soy el editor original
y quiero enfocarme,
presiono un enlace de claves
y puedo recuperarlo fácilmente.
Es muy práctico.
Esta es mi aplicación
Compose ejecutándose.
Podemos verla aquí.
Voy a hacer clic en el ícono Bookmark.

Korean: 
뷰 조정에 정말 유용할 뿐 아니라
테마와 글꼴 크기 같은 다양한
차원에서의 모양을 확인하는 데도
정말 좋습니다
하지만 가끔은 동작을
수정하기 위해
앱을 실행하고 싶을 수 있습니다
그렇기에 다음 기능을 소개하게 되어
무척 기쁩니다
키노트를 보셨다면
이미 아시겠지만
그래도 저는 여전히 흥분되는데요
이 기능은 제가 스튜디오 1.0 이전부터
바라던 기능입니다
하지만 기술적으로
어려운 기능이었죠
하지만, 팀이 그걸 해내고 있습니다
바로 IDE 안에
에뮬레이터를 내장하는 기능입니다
네, 제가 정말 좋아하는 기능이죠
[박수]
이건 진짜 에뮬레이터입니다,
그렇죠?
앱을 별개로 시뮬레이션하는 것이
아닙니다
계정을 설치하고 인텐트를 시작하는 등의 작업을
모두 할 수 있습니다
그리고 IDE 내부에
에뮬레이터가 있어 좋은 점은
에뮬레이터가
창 관리에 참여한다는 거죠
제가 소스 편집기에 있고
집중하고 싶다면
키 바인딩을 누르고
제 편집기 안에 있다면
아주 쉽게 그걸
되찾아올 수 있습니다
굉장히 편리하죠
이게 제 Compose 앱 실행입니다
여기에서 자세히 살펴볼 수 있습니다
북마크 아이콘을 클릭해보죠

Indonesian: 
untuk menyesuaikan tampilan
dan melihat seperti apa tampilannya
di berbagai dimensi
seperti tema dan ukuran font
dan semacamnya.
Namun terkadang, Anda
ingin menjalankan aplikasi
untuk mengubah perilaku.
Saya sangat suka fitur berikutnya.
Ini telah ditampilkan di presentasi utama,
namun saya tetap antusias.
Ini adalah fitur yang saya
inginkan sejak sebelum Studio 1.0
namun sangat menantang secara teknis,
untungnya tim telah
hampir menyelesaikannya.
Fitur ini, tentu saja, kemampuan
untuk menyematkan emulator dalam IDE.
Ya, saya suka ini.
[TEPUK TANGAN]
Ini adalah emulator sungguhan, oke?
Tidak hanya
menyimulasikan aplikasi secara terpisah.
Saya dapat menginstal
akun, meluncurkan intent, dll.
Dan keuntungan dari
menyematkannya dalam IDE
adalah partisipasinya
dalam pengelolaan jendela, bukan?
Jika saya editor sumber dan ingin fokus,
Akan saya klik binding
utama, masuk ke editor,
dan dapat kembali dengan mudah.
Jadi, ini sangat praktis.
Ini adalah aplikasi
Compose saya yang berjalan.
Kita dapat mencobanya di sini.
Kita klik ikon Bookmark.

Chinese: 
我这样做就启动了一个 Intent
而这不是我想要做的
所以 我给这个应用添加了一个 bug
那么我们来解决这个问题吧
我跳转到相关代码
这是收藏开关部分的代码
好 这里有待办项 还有一个 STOPSHIP 标记
我们来试试 应用更改
现在它重新载入了应用
我可以操作收藏按钮 成功了
这个组合在 IDE 里运行的效率很高
关于 Compose 我最后想提的一点是
我们正在努力让编辑器体验变得更好
至于代码补全 我们将 Composable 排在首位
请注意 通常类型位于右侧
但是我们正在从右侧移除类型
从而留出更多的空间用于展示参数
我们还隐藏了默认值
我们还提供了特殊的代码补全插入点
比方说 如果我插入一个 Row
这时如果我不输入任何参数就点了回车
就会移除参数列表 等等

Japanese: 
そうするとエミュレータが起動します
これは違いますね
アプリにバグを入れてしまいました
戻って修正しましょう
関係するコードにジャンプします
これがtoggleBookmarkコードです
ここを修正する必要があります
そしてStopshipマーカーもです
アプリの変更を試しましょう
これでアプリがリロードされました
ブックマークを起動できます
機能しました
IDEで実行される
この組み合わせは非常に生産的です
Composeのサポートについて
最後にお伝えしたい点は
エディタのエクスペリエンス向上に
大きな力を注いでいることです
例えば コード補完用に
Composableを一番上に配置しています
通常 右側に
タイプが表示されますが
それらのタイプが右側に
表示されないようにし
全てのパラメータを表示する
スペースを確保しました
デフォルトを非表示にしました
特別なコード補完挿入ハンドラも
作成しました
例えば 行を挿入するときに
パラメータとして何も入力しない場合
Enterを押すと
パラメータリストが
表示されなくなります

English: 
And when I do
that, I'm launching
an attempt and that's actually
not what I wanted to do.
So I've introduced
a bug in the app.
So let's just go and fix that.
So I'll jump to
the related code.
This is the toggle
bookmark code.
Oh yeah, I had a to-do here
and a stopship marker, too.
Let's try Apply Changes.
And it's now reloaded the app,
and I can invoke the bookmark
and it works.
So this combination is
pretty productive right here,
running in the IDE.
One last thing I'll mention
about our Compose support
is we're working pretty
hard on making the editor
experience better, right?
So for code completion,
for example,
we are ranking
composables to the top.
Notice that we're
also-- normally,
you'll have types on the right,
but we are removing types
from the right so
we have more space
to show you all the parameters.
We're hiding defaults.
And we also have a special
code completion insert handler.
So if I, for example,
insert a row,
if I don't enter anything as
a parameter and I hit Enter,
we remove the parameter
list, and so on.

Portuguese: 
Ao fazer isso, inicio um intent.
Não era isso que eu queria.
Introduzi um bug no app.
Vamos corrigi-lo.
Passarei ao código relacionado.
Este é o código de favoritos.
Há uma tarefa
e um marcador "stopship" aqui.
Vamos tentar aplicar as alterações.
O app foi recarregado,
posso invocar o favorito.
E ele funciona.
Esta combinação é muito produtiva no IDE.
Um último fator
a comentar sobre o suporte ao Compose
é que estamos trabalhando muito
para melhorar a experiência do editor.
Por exemplo,
com relação ao preenchimento de código,
estamos classificando
os combináveis na parte superior.
Normalmente, há tipos à direita,
mas eles estão sendo removidos desse local
para que os parâmetros tenham mais espaço.
Os padrões estão sendo ocultados.
Também temos um gerenciador de inserção
especial de preenchimento de códigos.
Por exemplo, se eu inserir uma linha
sem inserir um parâmetro
e pressionar Enter,
a lista de parâmetros será removida.

Indonesian: 
Saat melakukannya, saya meluncurkan
percobaan dan
bukan itu yang saya inginkan.
Saya telah menanamkan bug di aplikasi.
Mari kita perbaiki.
Akan saya buka kode terkait.
Ini adalah kode toggleBookmark.
Oh ya, di sini juga ada
TODO dan penanda STOPSHIP.
Mari coba Apply Changes.
Kini aplikasi sedang dimuat ulang,
dan saya dapat memanggil bookmark
dan ini berfungsi.
Kombinasi ini sangat produktif di sini,
berjalan dalam IDE.
Satu hal terakhir
tentang dukungan Compose
yakni kami sedang berusaha keras
memperbaiki pengalaman editor.
Jadi untuk penyelesaian kode misalnya,
kami sangat memprioritaskan @Composable.
Perhatikan juga bahwa kami--biasanya,
ada jenis di sisi kanan,
namun kami menghapusnya
dari sisi kanan untuk menambah ruang
guna menunjukkan semua parameter.
Kami menyembunyikan default.
Terdapat juga handler
sisipan penyelesaian kode.
Jadi, jika memasukkan Row, misalnya,
jika saya tidak memasukkan apa pun
sebagai parameter dan mengklik Enter,
daftar parameter akan terhapus.

Spanish: 
Cuando lo hago, ejecuto
un intento y eso no es lo que quería.
Agregué un error a la aplicación.
Arreglemos ese error.
Voy a saltar al código relacionado.
Es el código favorito de conmutación.
Tengo un marcador To-Do y Stopship aquí.
Apliquemos los cambios.
Está recargando la aplicación
y puedo invocar los favoritos
y funciona.
Esta combinación es muy productiva aquí,
ejecutándose en el IDE.
Algo más que quiero decir
del soporte de Compose
es que trabaja duro
para que la experiencia
del editor sea mejor.
Para la finalización del código,
ordenamos los ajustes arriba.
Tengan en cuenta
que hay clases a la derecha,
aunque las eliminamos ahora
para tener más espacio
para mostrarles los parámetros.
Ocultamos los predeterminados.
Tenemos un operario
de inserción de código especial.
Entonces si inserto una fila,
y no quiero ingresar nada
como parámetro y aprieto Intro,
eliminamos la lista de parámetros.

Korean: 
북마크 아이콘을 클릭하면
시도를 실행하게 되는데
이건 제가 원했던 것이 아닙니다
그래서 앱에 버그를 도입했습니다
그러니까 그냥 가서 고쳐보죠
관련 코드로 바로 갑니다
이건 토글 북마크 코드입니다
네, 여기 할 일이 있었고
정지 표시도 있네요
Apply Changes를 사용해보죠
이제 앱이 다시 로드되었고
저는 북마크를 호출할 수 있고
제대로 작동하네요
따라서 바로 여기
IDE에서 실행되는 경우
이 조합은 매우 생산적입니다
Compose 지원에 대해
마지막으로 말씀드릴 것은
더 좋은 편집기 환경을
만들기 위해
저희가 무척 열심히 일하고
있다는 것입니다
예를 들어, 코드 완성의 경우
컴포저블을 최고 순위에
두고 있습니다
또한 보통 오른쪽에서
입력하지만
저희는 입력을
오른쪽에서 이동시켜
모든 매개변수를
보여줄 공간을
더 확보했습니다
기본값을 숨기고요
그리고 특수 코드 완성
삽입 핸들러도 있습니다
예를 들어, 제가 행을 삽입한다면
매개변수로 아무것도
입력하지 않고 Enter를 누르면
저희는 매개변수 목록
등을 제거합니다

English: 
So we're trying to make
this editor really smooth
as you're working on Compose.
OK.
We're also working on
the classic view system.
So let me switch over
to the Layout Editor.
It's the Sunflower app.
So here's an XML file.
Now, do you remember
how, in the Compose file,
we included the previewer right
there in the source editor?
We've done the same thing
for layout XML files.
We used to have a
separate tool window,
and in the Layout Editor, we
had Design and Source tabs.
What we're doing
now is, instead, we
have these three
buttons at the top.
This works in Compose.
It works in the Layout Editor.
And you can use key bindings
to quickly map between them.
So if I press Control-Shift-Left
here, I'm in pure source.
If I go to the middle one, I
can have them side by side.
And if I go all the
way to the right,
I have the full Layout Editor.
And this also works
for custom views.
So here, I have an
Android custom view,

Korean: 
그래서 이 편집기를 Compose에서 작동하는 것처럼
정말 부드럽게 돌아가도록
만들려고 노력 중입니다
자, 그럼
저희는 고전적인 뷰 시스템도
개선 중입니다
Layout Editor로 전환하겠습니다
Sunflower 앱입니다
여기 XML 파일이 있고요
Compose 파일에서
소스 편집기에 미리보기를
어떻게 바로 포함했는지
기억하시나요?
레이아웃 XML 파일에도
같은 일을 했습니다
전에는 별개의
도구 창이 있었습니다
그리고 Layout Editor에는
Design and Source 탭이 있었죠
대신 지금은
상단에 3개의 버튼이 있습니다
Compose에서 작동하죠
Layout Editor에서도 작동합니다
그리고 키 바인딩을 사용하여
이 둘 사이를 빠르게 매핑할 수 있습니다
여기서 Control-Shift-Left를 누르면,
순수하게 소스만 보이고
중간으로 이동하면
나란히 볼 수 있고
그리고 오른쪽 끝까지 가면
Layout Editor만 크게 볼 수 있죠
이건 사용자 지정 뷰에서도 작동합니다
여기 Android 사용자 지정 뷰가
있습니다

Spanish: 
Estamos intentando hacer que este editor
sea fácil de usar
cuando trabaja con Compose.
También trabajamos
en el sistema de vista clásica.
Voy a cambiar a Layout Editor.
Es la aplicación Sunflower.
Aquí tengo un archivo XML.
Ahora, ¿recuerdan cómo,
en el archivo Compose,
incluimos el previsualizador
en el editor original?
Hicimos lo mismo para los archivos XML.
Solíamos tener una ventana
de herramientas separada
y, en el Layout Editor,
teníamos las pestañas Design y Source.
Lo que estamos haciendo ahora
es que tenemos 3 botones arriba
Esto funciona en Compose.
Funciona en Layout Editor.
Pueden usar enlaces de claves
para mapearlas rápidamente.
Si presiono Control-Shift-Izquierda,
voy a la fuente pura.
Si voy al centro,
puedo tenerlas lado a lado.
Si voy hacia a la derecha,
tengo el Layout Editor completo.
También funciona en vistas personalizadas.
Tengo una vista
personalizada de Android acá

Japanese: 
Composeで作業する際に
このエディタをよりスムーズに
使用できるようにしています
それから
従来のビューシステムにも
改良を加えています
Layout Editorに切り替えます
これはSunflowerアプリです
XMLファイルがあります
Composeファイルのソースエディタに
プレビューがどのように組み込まれていたか
覚えていますか？
XMLファイルのレイアウトも
同じようにしました
ツールウィンドウは分かれていました
Layout Editorに
[Design]タブと[Source]タブがありました
その代わりに
上部に３つのボタンを配置しました
これはComposeで機能します
Layout Editorでも機能します
キーバインディングを使用して
それらを素早くマップできます
Control-Shift-Leftを押すと
今はソースのみが表示されています
真ん中を押すと 並べて表示できます
右をクリックすると
Layout Editorを全表示できます
カスタムビューでも
同様に機能します
Androidカスタムビューを表示します

Chinese: 
我们想让这个编辑器在你操作 Compose 的时候更加流畅
此外 我们还在改进经典视图系统
下面我来切换到 Layout Editor
这是一个 Sunflower 应用
这里是一个 XML 文件
你还记得我们是如何在 Compose 文件中
直接在编辑器里整合进预览的吗？
我们对布局 XML 文件也做了同样的事情
我们之前使用的是单独的工具窗口
在 Layout Editor 里有 Design 和 Source 标签页
而现在 我们在顶部设置了3个按钮
这种做法在 Compose 和 Layout Editor 中都奏效
你可以使用按键绑定 来迅速在它们之间切换
如果我点击 Control-Shift-左 
就可以进入干净的代码页面
如果我使用中间的按钮 就可以让代码和预览并排
如果我使用最右的按钮 就可以使用完整的 Layout Editor
这个操作对定制视图也适用
这里是一张 Android 定制视图

Indonesian: 
Jadi, kami berusaha
memudahkan proses editor ini
saat Anda mengerjakan Compose.
Oke.
Kami juga berusaha
menyempurnakan sistem tampilan klasik ini.
Saya akan beralih ke Layout Editor.
Ini adalah aplikasi Sunflower.
Berikut file XML-nya.
Apa Anda ingat bahwa
dalam file Compose,
kami menyertakan
pratinjau di editor sumber bukan?
Kami juga
melakukannya untuk file XML tata letak.
Dulu terdapat jendela alat terpisah,
dan di Layout Editor,
terdapat tab Desain dan Sumber.
Kami kini memindahkan
ketiga tombol ini di sisi atas.
Ini berfungsi di Compose.
Ini juga berfungsi di Layout Editor.
Anda dapat menggunakan binding
utama untuk memetakan dengan cepat.
Jadi, jika menekan
Control-Shift-Kiri, akan muncul sumber.
Jika mengklik yang di tengah,
ini dapat diletakkan bersebelahan.
Jika mengklik yang paling kanan,
akan muncul Layout Editor lengkap.
Dan ini juga
berfungsi untuk tampilan kustom.
Di sini, terdapat tampilan kustom Android,

Portuguese: 
Estamos tentando melhorar esse editor
à medida que trabalhamos no Compose.
Também estamos trabalhando
no sistema clássico de visualização.
Passarei agora ao editor de layout.
Este é o app Sunflower.
Aqui temos um arquivo XML.
Lembram-se de como incluíamos,
no arquivo do Compose, o visualizador
diretamente no editor de fontes?
Fizemos o mesmo
com arquivos de layout XML.
Havia uma janela de ferramentas separada.
No editor de layout,
tínhamos as guias "Design" e "Fonte".
Agora,
temos estes três botões na parte superior.
Isso funciona para o Compose
e para o editor de layout.
É possível usar atalhos do teclado
para acessá-los rapidamente.
Se eu pressionar
Ctrl + Shift + seta para a esquerda,
ficarei só com o código.
Se eu clicar no do meio,
os dois ficarão lado a lado.
Se clicar no da direita,
tenho o editor de layout completo.
Isso também funciona
para visualizações personalizadas.
Aqui tenho uma visualização
personalizada do Android.

Indonesian: 
dan kini, dalam editor Java atau Kotlin,
dapat dilihat tampilan kustom.
Saat menyesuaikan kode paint,
akan muncul di sini.
Ini semakin memudahkan proses kerja.
[TEPUK TANGAN]
Baiklah. Mari kita buka Layout Inspector.
Saya akan menjalankan aplikasi ini.
Kembali, buka emulator.
Baiklah.
Ini adalah Layout Inspector.
Sebenarnya bukan.
Aplikasinya sedang berjalan.
Inilah Layout Inspector.
Ini akan ditempelkan
ke aplikasi yang berjalan.
Kita lihat, Oke, sudah tersambung.
Kini, keseluruhan
hierarki tampilan akan ditarik.
Itu dia.
Mari kita tambahkan ruang.
Jadi, pertama saya dapat
mengklik berbagai tampilan
dan melihat nilainya.
Ini juga ada di Layout Inspector lama.
Yang baru adalah bagian
Atribut Yang Dideklarasikan.

Korean: 
그리고 이제는 자바 또는
Kotlin 편집기 내부에서
제 사용자 지정 뷰를 볼 수 있습니다
그리고 코드를 조정할 때
바로 여기에 있죠
작업을 정말
쉽게 만들어줍니다
[박수]
네
그럼 Layout Inspector를
살펴보겠습니다
이 앱을 다시 실행하겠습니다
에뮬레이터를 엽니다
됐네요
이게 Layout Inspector입니다
잠시만요, 아니네요
이건 실행 중인 앱이고
이게 Layout Inspector입니다
그리고 이걸 제 실행 앱에
부착할 겁니다
자, 됐네요,
벌써 연결되고 있네요
지금 하고 있는 일은
전체 뷰 계층 구조를
허무는 것입니다
여기 있네요
공간을 좀 넓게 써 보죠
여기서 제가 가장 먼저 할 수 있는 작업은
다양한 뷰를 클릭하고
그 값을 보는 겁니다
예전 Layout Inspector에서도
가능한 작업이었죠
하지만 새로운 부분이 있는데
Declared Attributes 섹션입니다

Portuguese: 
Agora, no editor Java ou Kotlin, posso
acessar a visualização personalizada.
Ela está lá ao ajustar o código.
Isso facilita muito o trabalho.
Vejamos o Layout Inspector.
Executo o app outra vez.
Abro o emulador.
Este é o Layout Inspector.
Na verdade, não. É o app.
Agora, sim, o Layout Inspector.
Ele será anexado
ao meu app em execução.
Já está sendo conectado.
Ele extrairá
toda a hierarquia de visualização.
Vamos aumentar o espaço.
A primeira coisa que posso fazer
é clicar em diversas visualizações
e ver os valores delas.
Já tínhamos isso no Layout Inspector.
A novidade é
a seção de atributos declarados.

English: 
and I now, within the
Java or Kotlin editor,
I can see my custom view.
When I'm tweaking
the [INAUDIBLE] code,
it's right there.
And it makes it a lot
easier to work with.
[APPLAUSE]
Right.
So let's look at the
Layout Inspector.
So I'm going to
run this app again.
Open up the emulator.
All right.
So this is the Layout Inspector.
And actually, that's not.
That's the app running.
This is the Layout Inspector.
And it's going to attach
to my running app.
See, OK, it's
already connecting.
So what it's doing now,
it's going to pull down
the whole view hierarchy.
There it is.
Let's give ourselves
some more space.
So the first thing I can do here
is I can click on various views
and I can see their values.
We had that in the
old Layout Inspector.
But what's new is this
Declared Attributes section.

Chinese: 
在 Java 或 Kotlin 编辑器内
我可以看到我的定制视图
当我微调绘图代码的时候 它就在那里
这样使用起来就简单多了
下面我们来看看 Layout Inspector
我再把这个应用运行一遍
打开模拟器
这就是 Layout Inspector
哦说错了 那个其实是运行中的应用
这个才是 Layout Inspector
它会连接到运行中的应用
它已经开始连接了
它现在会获得整个视图层级树 就是这样
我们来多腾出点空间
我要做的第一件事就是 点击不同的视图
并查看它们内部的值
这个功能我们的旧版 Layout Inspector 里面也有
新颖之处在于这个 Declared Attributes 部分

Spanish: 
y puedo verla dentro del editor
de Java o Kotlin
Si modifico el código,
está aquí.
Y es mucho más fácil trabajar.
Veamos el Layout Inspector.
Voy a ejecutar la aplicación otra vez.
Voy a abrir el emulador.
Entonces, este es el Layout Inspector.
De hecho, no lo es.
Es la aplicación en ejecución.
Este es el Layout Inspector.
Y se va a agregar
a mi aplicación en ejecución.
Ven, ya se está conectando.
Lo que hace ahora es bajar
toda la jerarquía de vistas.
Ahí está.
Démonos más espacio.
Lo primero que puedo hacer
es hacer clic en varias vistas
y puedo ver esos valores.
Está en el viejo Layout Inspector.
Lo nuevo es la sección
Declared Attributes.

Japanese: 
JavaまたはKotlinエディタで
カスタムビューを表示できます
コードに変更を加える際は
そこで行います
非常に使いやすくなりました
[拍手]
次にLayout Inspectorに
注目してみましょう
このアプリをもう一度立ち上げます
エミュレータを開きます
これがLayout Inspectorです
いや違いますね
これは実行中のアプリでした
これがLayout Inspectorです
実行中のアプリと接続します
これで接続されています
今ビュー階層全体を
表示させようとしています
これです
もう少しスペースを広げましょう
ここでは
さまざまなビューをクリックできます
値も確認できます
これは従来のLayout Inspectorでも
行えました
新しいのは
[Declared Attributes]セクションです

Indonesian: 
Di sini, Anda dapat melihat resource
yang berasal dari
resource biner atau resource XML.
Mari lihat labelnya, Add Plant.
Dari mana asalnya?
Saya dapat meluaskannya dan
dapat dilihat ini ditentukan
di sini di file tata letak.
Dan saya dapat
melanjutkan dengan stack resolusi
dan melihat baris
persis serta bahasa asalnya.
Biasanya tidak sulit menemukan
dari mana string berasal.
Anda dapat menelusurinya.
Tapi bagaimana dengan warna?
Dapat dilihat tombol ini berwarna hijau.
Dari mana asalnya?
Sekali lagi, saya dapat
meluaskannya dan Anda dapat
melihat beberapa alternatif.
Dan mungkin ini terlalu kecil.
Maksud saya, saya tidak dapat melihatnya.
Tapi ada tombol coret
di semua referensi tema
untuk materi tempat
warna ini biasanya akan
ditentukan sebagai abu-abu.
Sebagai gantinya,
ada beberapa atribut lainnya
dengan prioritas tinggi yang unggul,
jadi dapat dilihat bahwa warna hijau
berasal dari referensi tata letak lokal
ke atribut tema, yang sekali lagi, dapat
dilacak nilainya.

Chinese: 
你可以在这里看到来自二进制资源或 XML 资源的资源
下面我们来看看它的文字标签 Add Plant
它是从哪来的？
我可以展开它 然后我可以看到 
它来自 Layout 文件那里
我可以继续深入查看
查看它来自哪种语言 哪行代码
通常 找出字符串的出处并不是什么难事
只要搜索就行了
那么颜色呢？
大家可以看到 这个按钮是绿色的
这个颜色是从哪来的？
我可以展开 大家可以看到这里有几个选项
可能字太小了 大家看不清
因为就连我在这里都只是刚刚能看清而已
所有引用自 Material 主题的值都有删除线
而这个颜色通常是会被指定为灰色的
我们还有一些其他的优先级更高的值
我可以看到 真正的绿色来自这个本地布局 引用自主题里的属性值
而我们可以追踪它的值

English: 
So here, you can
see resources that
are coming from binary
resources or XML resources.
So let's take a look at
the label, Add Plant.
Where's that coming from?
Well, I can expand
that and I can
see that it was
actually specified
right there in the Layout file.
And I can continue with
the whole resolution stack
and see the exact line and
language that it came from.
And normally, it's
not difficult to find
where a string came from.
You can just search for it.
But what about colors?
So you can see that this
button has a green color.
Where's is that coming from?
And again, I can
expand and you can
see we have multiple
alternatives here.
And it's probably too
small for you to see.
I mean, I can barely
see it from here.
But there's strikethrough
on all the theme references
for material where this
color would normally
be specified as gray.
Instead, we have
some other attributes
that have a higher
priority that are winning,
so I can see that
the real green is
coming from this
local layout reference
to a theme attribute,
which again, we
can chase down the values for.

Japanese: 
ここにはバイナリリソースや
XMLリソースなどの
リソースが表示されます
[Add Plant] のラベルに
注目してみましょう
これはどこで設定されているでしょうか
これを展開すると
レイアウトファイルの
ここで指定されています
解像度スタック全体に移ることができます
設定されているその行と言語を表示できます
通常文字列を
見つけるのは難しくありません
それを検索できます
しかし 色はどうでしょうか
このボタンは緑色であることが
わかります
ここで設定されています
もう一度展開すると
いくつかのオプションを確認できます
少し小さ過ぎるかもしれません
ここからは辛うじて見えますが
すべてのテーマリファレンスに
取り消し線が引かれています
通常グレーとして
指定されているものです
代わりに
より高い優先度に設定された
その他の属性があります
この緑色は
ローカルのレイアウトリファレンスから
テーマ属性に設定されていることを
確認できます
ここでも値を追跡できます

Korean: 
여기서 바이너리 리소스나
XML 리소스에서 나오는
리소스를 볼 수 있습니다
Add Plant 라벨을 살펴보죠
어디서 왔을까요?
이렇게 확장해 보면
실제로 레이아웃 파일에
지정된 것을
볼 수 있습니다
전체 분석 스택으로
계속할 수 있고
라벨이 나온 정확한 줄과
언어를 볼 수 있습니다
그리고 보통은
원래 문자열을 찾기가
어렵지 않습니다
검색만 하면 되죠
하지만 색상은요?
여기 버튼이
녹색으로 지정된 것이 보이시죠
저건 어디서 왔을까요?
그리고 다시 확장해 보면
여기 대안이 여러 가지 있는 것을
확인하실 수 있습니다
아마 너무 작아서
잘 안 보이겠네요
여기서도
간신히 보이거든요
하지만 여기 보시면
취소선이 있습니다
보통 색상이 회색으로 지정되는
머티리얼에 대한
모든 테마 참조에 말이죠
대신 우선순위가 더 높은
다른 속성이 있습니다
따라서, 녹색이 테마 속성에 대한
이 로컬 레이아웃 참조에서
나온다는 것을 알 수 있습니다
다시 말씀드리지만
값을 추적할 수 있는 참조 말이죠

Spanish: 
Aquí, pueden ver recursos
que vienen de recursos binarios o XML.
Veamos la etiqueta, Add Plant.
¿De dónde viene?
Bueno, puedo expandirla
y ver que se especificó
en el archivo Layout.
Puedo continuar
con toda la pila de resoluciones,
ver la línea exacta
y el lenguaje de donde proviene.
En general, es fácil de saber
de dónde es la secuencia.
Pueden buscarla.
¿Qué sucede con los colores?
Pueden ver que este botón es verde.
¿De dónde viene?
Otra vez, puede expandirlo
y ver que hay varias alternativas.
Quizás es muy pequeño para que vean.
Casi ni yo puedo verlo desde acá.
Las referencias temáticas del material
están tachadas
donde el color, por lo general,
está especificado como gris.
En cambio, tenemos algunos otros atributos
con mayor prioridad que están ganando,
por lo que veo que el verde
proviene de la referencia de diseño local
a un atributo temático,
que, otra vez, podemos
usar para dar con los valores.

Portuguese: 
Aqui é possível ver recursos
provenientes de recursos binários ou XML.
Vejamos o rótulo: "Add Plant".
De onde ele vem?
É possível expandir
para ver que a especificação
foi feita no arquivo de layout.
Posso seguir com toda a pilha de resolução
e ver a linha exata
e a linguagem de origem.
Normalmente, não é difícil descobrir
a origem de uma string. Basta procurar.
Mas e as cores?
Perceba que este botão tem a cor verde.
Qual é a origem?
Mais uma vez, é possível expandir
para ver que temos várias alternativas.
Talvez esteja muito pequeno para vocês.
Eu mal posso ver daqui.
Mas as referências de tema estão riscadas
quando a cor normalmente seria cinza.
E temos outros atributos
com prioridade maior em evidência.
Podemos ver que o verde
vem dessa referência de layout local
para um atributo de tema
de que podemos buscar os valores.

Japanese: 
これは少しChrome DevToolsに似ています
解像度全体を調べ
目的のフォントや色がどんなものでも
なぜこのテキストなのか
解明することができます
ここでお伝えしておきたいのは
このインスペクタは
ただのビュー階層の静的ダンプでは
ないことです
オプションでライブにできます
エミュレータを立ち上げて
[Plant list]をクリックすると
すべてのサーフェスをフェッチして
最新の状態にします
続けてアプリで何が起きているか確認できます
素晴らしいことに
３Dにドラッグできるようになりました
フルビュースタックを確認できます
[拍手]
便利なのは
背後にあるフルテクスチャを確認できることです
非表示のテクスチャが
どのように表示されているかご覧ください
これはただのデバイスの
スクリーンショットではありません
すべてのサーフェスを取得しています
これはAndroid 10で
実行されているからです

Indonesian: 
Jadi, ini agak mirip
dengan Chrome DevTools,
tempat Anda dapat memeriksa keseluruhan
resolusi guna mencari tahu
alasan digunakannya teks tertentu,
apa pun font atau
warna yang ingin diketahui.
Satu hal penting lainnya yakni
bahwa inspector ini bukan hanya
dump statis dari hierarki
tampilan. Ini bisa disetel live.
Jika di-scroll ke atas,
dan di emulator, klik, misalnya,
daftar Plant, dapat dilihat kini
semua permukaan
akan diambil dan diperbarui.
Saya dapat terus melihat
apa yang terjadi di aplikasi.
Dan hal menariknya
saya kini dapat menariknya secara 3D
dan melihat stack lengkapnya.
[TEPUK TANGAN]
Dan hal yang sangat berguna yakni,
terdapat tekstur lengkap di sini.
Dapat dilihat cara
kami menunjukkan tekstur
yang tersembunyi bukan?
Jadi, ini bukan hanya
tangkapan layar dari perangkat.
Kita dapat melihat
semua permukaan karena ini
berjalan di Android 10.
Jadi perlu ditambahkan dukungan

Spanish: 
Es como Chrome DevTools,
donde pueden investigar
toda la resolución
para saber porqué este texto
tiene una fuente o un color en particular.
Algo más para señalar
es que este inspector
no es un vertedero estático
de la jerarquía de vistas
Puede estar en vivo
Entonces, si subo
en mi emulador, y hago clic
en la lista Plant, pueden ver que ahora
va a buscar todas las superficies
y permanecer actualizado.
Entonces, puedo seguir viendo
qué sucede en la aplicación.
Y, algo realmente bueno sobre esto
es que se puede arrastrar en 3D
y ver la pila completa aquí.
Lo que es realmente útil
es que tenemos una textura completa aquí.
Vean cómo mostramos texturas
que estaban ocultas.
Esta no es una captura
que tomamos de un dispositivo.
Obtenemos estas superficies
porque se ejecutan
en Android 10.

Portuguese: 
Isso é semelhante ao Chrome DevTools,
onde é possível investigar
a resolução completa
para descobrir por que certo texto
está relacionado a uma fonte ou cor.
Também é importante notar
que o Inspector não é só
um despejo estático
da hierarquia de visualização.
Ele pode ficar em tempo real.
Se eu acessar o emulador
e clicar na lista de plantas,
todas as superfícies serão buscadas
e ele ficará atualizado.
Assim, posso continuar
verificando o que ocorre no app.
O interessante é que agora
posso arrastar este item em 3D
e conferir a pilha de visualização aqui.
Temos uma textura completa aqui,
o que é algo bastante útil.
Percebam como exibimos texturas ocultas.
Não é só uma captura de tela.
Estamos acessando todas as superfícies
porque a execução
está ocorrendo no Android 10.

Korean: 
Chrome DevTools와도
비슷하죠
전체 분석을 조사해서
왜 이 텍스트가
이런 글꼴이나 색상인지
알아내는 거예요
하나 더 지적할 것은
이 Inspector는
그저 뷰 계층 구조의
정적 덤프가 아니라는 사실입니다
실시간으로 선택할 수 있습니다
예를 들어
실행 중인 에뮬레이터에서
Plant 목록을 클릭하면,
모든 표면을 가져와서
최신 상태로 유지하는 것을
알 수 있습니다
앱에서 일어나는 일을
계속 볼 수 있는 거죠
이게 정말 좋은 점은
이걸 3D로 끌어와서
전체 뷰 스택을
볼 수 있다는 것입니다
[박수]
정말 유용한 것은
여기 전체 텍스처가
뒤에 놓여 있다는 것입니다
그리고 숨겨진 텍스처를
어떻게 보여주고 있는지
주목해 주세요
이건 그냥 기기에서 찍은
스크린샷이 아닙니다
모든 표면을 볼 수 있는데
이게 Android 10에서
실행 중이기 때문입니다

Chinese: 
这个有点像是 Chrome DevTools
你可以精确挖掘 找出为什么文本会使用这个字体或颜色
值得指出的是 这个 Inspector 不是视图的静态抓取结果
根据需要它可以是完全实时的
如果我向上 在运行的模拟器中
比如说点击 Plant 列表
就可以看到 它现在会读取所有项目 并保持最新状态
这样我就可以持续看到应用中发生的事情
一个好处在于 我现在可以在 3D 空间中拖动它
并在这里查看完整的视图结构
还有一个很有用的东西 
后面这里还有一个完整的背景贴图
请注意 我们展示的是隐藏的贴图
这并不是从设备上抓取的截屏
我们拿到了所有被渲染的内容
因为它运行在 Android 10 上

English: 
So this is a bit like
the Chrome DevTools,
where you can sort
of investigate
the whole resolution to figure
out why, oh why is this text,
whatever font or color
you're concerned about.
One other thing to point out is
that this inspector is not just
a static dump of
the view hierarchy.
It is optionally live.
So if I go up, and in my running
emulator, click, for example,
on the Plant list, you
can see that it's now
going to fetch all the
surfaces and stay up to date.
So I can continue to see
what's happening in the app.
And one really nice
thing about that
is that I can now
drag this in 3D
and see the full
view stack here.
[APPLAUSE]
And the really useful
thing is, look,
we have a full texture
sitting back here.
And notice how we're
showing textures
that are hidden, right?
So this is not just a
screen grab from the device.
We're getting all the
surfaces because this
is running on Android 10.

Indonesian: 
guna melakukan pelacakan
nilai dan pengambilan bitmap.
Namun kini, dapat dilihat
tekstur ini disembunyikan
dari layar.
Ini adalah overdraw, ini tidak bagus,
dan alat ini memudahkan pelacakan
bug dan masalah semacam
ini dengan clipping.
Jadi, itulah Layout Inspector.
Baiklah.
Mari kita bahas Motion Editor.
Baiklah.
Di sini, saya telah membuat
tata letak batasan yang sederhana.
Dan saya ingin menganimasikan item ini
agar terlihat lebih
hidup saat tata letak ini muncul.
Jadi, yang saya lakukan adalah
membuka Convert Motion Layout.
Ini akan memigrasikan
tata letak saya ke Motion Layout,
juga membuat file scene yang akan
menyimpan semua
bingkai utama yang akan kita buat.
Jadi, pertama saya
dapat memilih status awal.
Akan ada awal dan akhir bukan?
Saya akan memilih status awal, lalu
mulai mengubah
beberapa batasan dalam scene.

Korean: 
이 비트맵을 가져오고
값을 추적하기 위해선
지원을 추가해야 했습니다
하지만 이제 이 텍스처가
화면 뒤에 숨겨져 있음을
알 수 있습니다
그러니 오버드로되었거나
상태가 나쁘다면
이 도구를 사용하여
그런 종류의 버그와
클리핑 문제를 쉽게
추적할 수 있습니다
이것이 Layout Inspector입니다
좋아요
Motion Editor에 대해
이야기해보죠
자
여기서 저는 아주 간단한
제약 조건 레이아웃을 만들었습니다
저는 이걸 애니메이션으로
만들고 싶습니다
이 레이아웃이 표시될 때
좀 더 생기있도록 말이죠
그래서 Convert를 열어서
Motion Layout으로 이동합니다
이러면 레이아웃을
모션 레이아웃으로
마이그레이션하고 생성하려는
모든 키 프레임을 저장할
장면 파일이 생성됩니다
가장 먼저 할 수 있는 일은
시작 상태를 선택하는 것입니다
시작과 끝이 있죠?
시작 상태를 선택한 다음
이 장면에서 일부 제약 조건을
변경하기 시작합니다

Spanish: 
Tenemos que agregar soporte
para rastrear el valor
y esta búsqueda de mapas de bits.
Podemos ver que esta textura está oculta
por la pantalla
Esto está superpuesto, está mal.
La herramienta facilita el rastreo
de esos errores y problemas con recortes.
Este es el Layout Inspector.
Hablemos sobre el Motion Editor.
Aquí, creé una disposición
de restricción muy simple.
Y lo que quiero hacer es animar esto
para que se vea más vivo
cuando aparezca esta disposición.
Lo que voy a hacer es abrir
Convert to Motion Layout,
que migrará mi disposición
a una disposición de movimiento
y creará un archivo de escena
que almacenará todos los marcos clave
que vamos a crear.
Lo primero que voy a hacer
es seleccionar el estado de inicio.
Tenemos un inicio y final. ¿Bien?
Voy a seleccionar un estado de inicio
y cambiaré algunas restricciones
en el escenario.

Portuguese: 
Então adicionamos suporte para
rastreamento de valores e busca de bitmap.
Agora, temos esta textura oculta na tela.
Trata-se de overdraw, algo indesejado.
Esta ferramenta facilita o rastreamento
desse tipo de bug e problemas de recorte.
Esse é o Layout Inspector.
Agora falaremos sobre o Motion Editor.
Criei um layout muito simples e limitado.
Agora quero animá-lo
para que fique mais dinâmico
quando for exibido.
Então, abrirei
"Convert to MotionLayout".
Assim, o layout será convertido
em um layout de movimento.
Além disso, será criado um arquivo de cena
que armazenará os frames-chave criados.
Primeiro, seleciono o estado inicial.
Temos início e fim.
Após isso, começarei a alterar
algumas restrições na cena.

English: 
So we had to actually
add some support
to do the value tracking
and this bitmap fetching.
But now, we can see that
we have this texture hidden
by the screen.
So this is overdraw,
this is bad,
and this tool makes
it easy to track down
those kinds of bugs as well
as issues with clipping.
So that's the Layout Inspector.
All right.
Let's talk about
the Motion Editor.
All right.
So here, I've created a very
simple constraint layout.
And what I want to do is
I want to animate this
so that it's a bit more lively
when this layout shows up.
So what I do is I open up
Convert to Motion Layout.
This will migrate my layout
into a motion layout,
plus create a scene
file that's going
to store all the key frames
that we're about to create.
So the first thing I can do
is to select the start state.
So we have start and end, right?
I'll select a start
state, and then I'll
start changing some of the
constraints in the scene here.

Chinese: 
所以我们必须添加一些支持 来追踪数值 抓取位图
现在 我们可以看到 贴图被屏幕内容挡住了
这是过度绘制 这是不好的
这个工具可以简化对这些 bug 的追踪流程
以及裁切遮挡问题
这就是 Layout Inspector
下面我们来谈谈 Motion Editor
我在这里创建了一个非常简单的约束式布局
我想把它动画化
让布局出现的时候可以更加生动
所以 我打开了 Convert to Motion Layout
这样就可以把我的布局迁移到动效布局
此外还可以创建出一个场景文件
并在其中储存我们将要创建的所有关键帧
首先 我可以选取开始状态
有开始和结束 对吧？
我选择开始状态 然后我就开始更改场景内的约束条件

Japanese: 
値トラッキングや
ビットマップフェッチングを実行するために
いくつかのサポートを
追加する必要がありました
画面で隠れるテクスチャを
確認できるようになりました
これはオーバードローだ
これは良くないなどと
バグやクリッピングの問題を
見つけやすくなりました
それがLayout Inspectorです
Motion Editorについて話しましょう
非常に簡単なレイアウトを作成しました
ここにアニメーションを作りたいと思っています
レイアウトを表示させるときに
もっと躍動感を加えたいのです
[Convert to Motion Layout]を開きます
これでレイアウトが
モーションレイアウトに変わります
またこれから作成する
キーフレームすべてを保存する
シーンファイルを作成します
まず開始状態を選択します
開始と終了を設定します
開始状態を選択し
動きのないシーンに変化を加えていきます

English: 
So I'm going to be deleting this
to move the text to the top.
Let's also attach this
button to the bottom.
And now, we've already created
ourselves an animation.
So if I switch to the
transition view and I hit play,
you can see it's now going
to start animating this.
And we can go ahead and
turn on showing paths
so you can sort of
see these lines here
showing how these widgets
are going to move.
So the next thing
I can do is I can
try to make this motion
a bit more interesting.
So I don't want a linear
path for the label.
So I'm going to now
add a key frame,
a position-based key
frame, on the text view.
And I'm going to have the
type be relative to parent.
And let's move it about 100%.
I just learned, by the
way, that in Android, we
use one-based percent, which
doesn't make a lot of sense.
All right.
So you can see now that the
motion is a little bit more

Chinese: 
我要删除这个 把文本放在顶部
我们再把这个按钮设置到底部
现在我们已经创建了一个动画
如果我切换到转场视图 并点击播放
可以看到 它现在把这些东西动画化了
我们再把显示路径打开
这样你就可以看到这里的线条
展示出这些 widget 是如何移动的
接下来 我可以让这个动效变得更有趣一些
我不想在这个标签上使用线性路径
现在我要在文本视图上
添加一个基于位置的关键帧
把这个类型设为 parentRelative
我们把它移动到 100%
顺便说一句 我了解到 在 Android 中
我们使用的是基于一的百分比 这个有点讲不通
现在我们可以看到 动效变得有趣了一些

Portuguese: 
Excluirei este item
para mover o texto para cima.
Além disso,
adicionaremos este botão à parte de baixo.
Pronto, já criamos uma animação.
Se eu mudar
para a visualização de transição
e pressionar "Reproduzir",
a animação será iniciada.
Podemos ativar "showPaths".
Assim, é possível ver estas linhas
que mostram como os widgets se moverão.
Em seguida, posso tentar
deixar esse movimento mais interessante.
Não quero um caminho linear para o rótulo.
Então, adicionarei um frame-chave
com base em posição ao "textView".
E o tipo será relativo ao pai.
Moveremos cerca de 100%.
A propósito, eu soube que no Android
usamos uma porcentagem com base em um,
o que não faz muito sentido.
Vejam que agora
o movimento é mais interessante.

Korean: 
그래서 저는 이걸 삭제하고
텍스트를 상단으로 옮길 것입니다
이 버튼도 하단에 붙여보죠
저희는 이미 애니메이션을
만들었습니다
트랜지션 뷰로 전환하고
재생을 누르면
이게 애니메이션으로
만들어지는 것을 볼 수 있습니다
계속 진행하며 경로 표시를 켭니다
그러면 여기 이런 선이
표시됩니다
이러한 위젯이 어떻게
움직이는지 보여주는 선이죠
다음으로 할 수 있는 일은
이 동작을 좀 더 흥미롭게
만들어 보는 것입니다
레이블 경로를 직선으로
만들고 싶지 않으니
이제 텍스트 뷰에
위치 기반 키 프레임을
추가하겠습니다
그리고 그 유형을 상위 항목과
관련되게 할 것입니다
그리고 100% 정도로 움직여 보죠
그나저나, 방금 한 가지 사실을 알아차렸는데요
Android에서는
1 기반 퍼센트를 사용한다는 것을요
왜 그런지 잘 모르겠네요
자, 그럼
이제 동작이 좀 더

Japanese: 
これを削除し
テキストを一番上に移動します
このボタンを一番下にくっつけます
これでアニメーションを作成できました
[Transition]ビューに切り替えて
[Play]をクリックすると
アニメーションが開始します
パスの表示をオンにします
ウィジェットが
どのように動くかを示す
行が表示されます
次はこの動作を
もう少し面白い動きにしましょう
ラベルを直線的ではない
動きにしたいと思います
キーフレームを追加します
位置ベースのキーフレームを選択し
テキストビューを選択します
タイプを親関係にします
100%まで動かします
今 Androidでは
１ベースパーセントを使用していることに
気付きました
意味はあまりありません
少し動きに面白みが出たと思いませんか？

Indonesian: 
Jadi, saya akan menghapus ini
guna memindahkan teks ke sisi atas.
Mari pindahkan 
tombol ini ke sisi bawah.
Dan kini, jadilah animasi kita.
Jadi, jika beralih ke
tampilan Transition dan mengklik putar,
dapat dilihat animasi akan mulai berjalan.
Kita kini dapat melanjutkan
dan mengaktifkan showing path
agar dapat melihat garisnya,
yang menunjukkan
cara widget ini akan bergerak.
Selanjutnya saya dapat
mencoba mengubah
motion ini agar lebih menarik.
Saya tidak menginginkan
jalur lurus untuk label ini.
Jadi, saya kini akan
menambahkan frame utama,
frame utama berbasis
posisi, pada textview.
Dan saya akan menyetel
jenisnya ke parentrelative.
Mari pindahkan hingga 100%.
Saya baru tahu, bahwa di Android,
kita menggunakan persentase
berbasis satu, yang kurang masuk akal.
Baiklah.
Dapat dilihat kini
motion-nya sedikit lebih
menarik bukan?

Spanish: 
Voy a borrar esto
para mover el texto hacia arriba.
También adjuntemos este botón
a la parte inferior.
Ahora, ya creamos una animación.
Si cambio a la vista de transición
y comienzo la reproducción,
pueden ver que va a comenzar la animación.
Podemos seguir y mostrar las rutas
para que puedan ver estas líneas
y ver cómo se van a mover estos widgets.
Lo que puedo hacer ahora es tratar
que este movimiento sea más interesante.
No quiero una ruta lineal
para la etiqueta.
Voy a agregar un marco clave,
un marco clave basado
en la posición, en la vista de texto.
Mi tipo va a estar
relacionado con la matriz.
Movámoslo casi un 100 %.
Por cierto, acabo de descubrir
que en Android
usamos 1%, lo que no tiene mucho sentido.
Ahora, pueden ver que el movimiento
es más interesante. ¿Verdad?

Spanish: 
También podemos disipar el botón
desde la parte inferior.
Lo que voy a hacer ahora es agregar
un marco clave según un atributo.
Vamos a elegir el alfa
y ponerlo en el botón.
Entonces, se va a disipar desde casi 0,5
y podemos cambiarlo para que sea…
empecemos desde
completamente transparente.
Ahora, se va a disipar este botón.
Agreguemos algunas rotaciones;
me gustan las rotaciones.
Entonces, otro atributo clave.
Ahora, vamos a rotar la vista de texto.
Entonces, la rotación en alfa
comienza a 45 grados.
Me gusta darle más giro
porque las rotaciones son geniales.
Hagamos 145.
También debemos sacarlo
de la pantalla
para que no empiece a la mitad.
Para eso, primero
voy a seleccionar States, Text View
y voy a agregar relleno inferior aquí.

Indonesian: 
Kita juga membuat tombol transparan
di bagian bawah.
Jadi, saya dapat menambahkan
frame utama berdasarkan atribut.
Kita akan memilih alfa
dan meletakkannya di tombol.
Kini, tombol akan menjadi
transparan sekitar 0,5,
dan kita dapat mengubahnya menjadi--
mari mulai dari yang
sepenuhnya transparan saja.
Kini, tombol ini akan
menjadi transparan.
Mari tambahkan beberapa
rotasi karena saya menyukainya.
Tambahkan atribut utama lainnya.
Dan kali ini, kita akan
memutar textview.
Ganti alfa dengan rotasi.
Ini dimulai pada sudut 45 derajat.
Saya ingin memberinya sedikit putaran
karena rotasi sangat menarik.
Mari putar 145 derajat.
Dan kita juga harus
memindahkannya dari layar
agar tidak dimulai di tengah.
Dan untuk melakukannya, pertama
saya akan memilih States, textview,
lalu kita akan
menambahkan padding bawah di sini.

Japanese: 
ボタンを下からフェードインする
こともできます
その場合は
属性に基づくキーフレームを追加します
[alpha]を選択し
ここで[button]を選択します
0.5からフェードインするようにします
そのように変更できます
完全な透明から開始しましょう
これで このボタンは
フェードインするようになります
私は回転が好きなので
少し回転を追加しましょう
別のキー属性です
今回はテキストビューを回転させます
[alpha]ではなく
[rotation]を選択します
45度で開始します
もう少し回転させたいと思います
かっこいいので
145でいきましょう
真ん中で開始されないので
オフスクリーンで
動かす必要があります
それには
[States] [TextView]を選択して
ここで下のパディングを追加します

Chinese: 
我们还可以安排一个从底部开始淡入的按钮
这就需要添加一个基于属性的关键帧
我们会挑选 alpha 把它放在按钮上
现在它会从0.5的位置开始淡入
我们可以把它改变成...就从全透明开始
现在这个按钮会这样淡入
现在我们来添加一些旋转 因为我喜欢旋转
另一个关键属性
这次我们要旋转文本视图
这里把 alpha 改成旋转
它起初是45度
我想再加一些 旋转看起来好酷
所以我们把它加到145度
我们还应该把它移出屏幕
这样它才不会从屏幕中间开始出现
所以我要首先选中 State textView
然后添加底部 padding 比如就300吧

Korean: 
흥미로워졌죠?
버튼이 하단에서부터
페이드인하게 할 수 있습니다
그런 다음 속성에 따라 키 프레임을
추가하면 됩니다
알파를 선택하여 버튼에 놓겠습니다
그럼 이제, 약 0.5에서부터
페이드인하고
그걸 변경해 보죠
완전히 투명한 상태에서
시작하도록 말이죠
이제 이 버튼은
페이드인할 겁니다
회전을 조금 추가해보죠
제가 회전을 좋아하거든요
또 다른 키 속성입니다
이번에는 텍스트 뷰를
회전하겠습니다
알파에서 회전을 선택하고요
45도에서 시작할까요
조금 더 회전을 주고 싶네요
회전은 멋지잖아요
그러니까 145도로 지정하죠
또한 이걸 화면 밖으로
옮겨야 합니다
중앙에서 시작하지 않도록 말이죠
그렇게 하려면, 먼저
States, Text View를 선택한 다음
여기에 하단 패딩을 추가합니다

English: 
interesting, right?
We can also fade in the
button from the bottom.
So what I do then is I add a
key frame based on an attribute.
So we'll pick the alpha and
we'll put this on the button.
So now, this is going to
fade in from about 0.5,
and we can change that to be--
let's start from completely
transparent instead.
So now, this button
is going to fade in.
And let's add some rotations
because I like rotations.
So another key attribute.
And this time, we're going
to be rotating the text view.
So rotation on alpha.
It starts out at 45 degrees.
I like to give it
a bit more spin
because rotations are cool.
So let's do 145.
And we should also
move it off screen
so it doesn't start
in the middle.
And so to do that, I will first
select the States, Text View,
and then we'll add
bottom padding here.

Portuguese: 
Também podemos fazer
o botão aparecer na parte inferior.
Eu adiciono um frame-chave
com base em um atributo.
Escolherei "alpha" e o aplicarei ao botão.
Ele aparecerá a partir de 0,5.
E podemos mudar para...
Vamos começar com transparência total.
Este botão surgirá lentamente.
Adicionaremos algumas rotações,
porque eu gosto delas.
Outro atributo-chave.
Desta vez, rodaremos "textView".
"rotation" em "alpha".
Ela começa em 45 graus.
Gosto de fazer girar mais.
É muito legal.
145 graus.
Além disso, moveremos para fora da tela.
Assim, ela não iniciará no centro.
Para fazer isso,
primeiro selecionarei os estados,
"textView",
e adicionarei o padding inferior.

Japanese: 
300に設定しましょう
どのように開始されるでしょうか
再生すると
このように動きます
[拍手]
ご覧の通り
いろいろなことができます
かつてウェブページでロゴが
くるくる回っていたのを覚えているでしょうか？
やり過ぎは禁物です
しかし洗練されたデザインを施せば
このツールで多くのことを
実現できます
少し複雑なレイアウトに切り替えます
これから表示するものは
開始と終了だけです
デフォルトのままです
他にもいろいろな状態を作成できます
これはベースとなる状態です
さまざまな色のカードが
ただ並べられています
すべてのカードが重なった
状態もあります
３番目の状態では
カードは左上の画面外に移ります
これらの状態の間で好きなように
推移する順番を付けます
このように推移させることができます

Spanish: 
Digamos 300 más o menos.
Bien, veamos cómo luce ahora.
Entonces, si lo reproduzco,
tengo algo de movimiento.
Pueden ver que fácilmente
uno llega al extremo.
¿Recuerdan, hace tiempo, la web
con logos girando en la página web?
No vayan tan lejos.
Con un diseño de buen gusto
pueden lograr mucho con esta herramienta.
Voy cambiar a una disposición
algo más compleja.
Aquí, ven estados de inicio y fin. ¿No?
Bueno, son los predeterminados.
También pueden crear muchos otros estados.
Aquí, tengo un estado base.
Solo es un grupo de tarjetas
dispuestas con diferentes colores.
Tengo este otro estado
donde las tarjetas están encimadas.
Y un tercer estado donde están
fuera de la pantalla, a la izquierda.
Pueden ordenar
la secuencia de la transición
entre los diferentes estados
exactamente como lo desean.
Podemos tener esta transición.

Portuguese: 
Por volta de 300.
Vejamos como está ficando.
Quando clico em "Reproduzir",
vemos o movimento.
Vocês podem ser extravagantes.
Lembram-se daqueles sites antigos
com logotipos giratórios?
Mas não precisam ir tão longe.
Com bom gosto,
é possível fazer muito nesta ferramenta.
Agora usarei um layout
um pouco mais complexo.
Temos somente estados iniciais e finais.
Este é só o padrão.
Também é possível criar
muitos outros estados.
Tenho um estado básico.
São só alguns cards
com cores diferentes.
Neste outro estado,
os cards estão empilhados.
Há esta terceira opção,
em que estão fora da tela, à esquerda.
É possível sequenciar a transição
entre os estados, do jeito que quiser.
Podemos ter esta transição.
E mais esta.

Chinese: 
好 我们来看看效果
点击播放 现在可以看到一些动效
大家可以看到 你可以做很多事情
还记得以前的网页上的那些旋转的 logo 吗？
别做得太过分了就好
你可以用这个工具做到很多 前提是设计方案要有品位
下面切换到一个稍微复杂些的布局
这里显示的只是开始状态和结束状态 
这只是默认设置而已
你还可以创建很多种状态
这里我就有一个 base 状态
这里列出了很多不同颜色的卡片
在另一个状态下 
这些卡片都叠到了一起
在第三个状态下 它们全都跑到了屏幕的左上角并消失了
现在你可以根据自己的需要
对这个不同状态之间的转换过程进行排序
比如我们可以安排这样的转换 或者这样

English: 
Let's say 300 or so.
All right, let's see how
this is starting to look.
So when I play, OK,
we got some motion.
[APPLAUSE]
Yeah.
So you can see that you
can really go overboard.
Do you remember the
web in the old days
with the spinning
logos on the web page?
Yeah.
Don't go too far.
But with some
tasteful design, you
can really accomplish
a lot with this tool.
So let me switch to a
slightly more complex layout.
So what you see here is just
start and end states, right?
Well, that's just the default.
You can also create
many other states.
So here, I have a base state.
This is just a bunch of cards
laid out with different colors.
I have this other state
where all the cards are
on top of each other,
and then there's
a third state where they're
all sort of off screen
up to the left.
And now you can sort of
sequence the transition
between all these different
states exactly how you
want them.
So we can have this transition.

Indonesian: 
Misalnya saja 300 derajat.
Baiklah, mari lihat tampilannya.
Jadi saat diputar, Oke, inilah motion-nya.
[TEPUK TANGAN]
Ya. Jadi, Anda dapat
melakukan lebih banyak hal di sini.
Apa Anda ingat web lama
dengan logo yang berputar di halaman web?
Ya.
Jangan lakukan itu.
Namun dengan desain yang apik,
Anda dapat melakukan
banyak hal dengan alat ini.
Saya akan beralih ke tata
letak yang agak lebih kompleks.
Yang Anda lihat di sini
hanya status awal dan akhir bukan?
Itu hanya setelan default-nya.
Anda juga dapat
membuat banyak status lainnya.
Di sini, ada status dasar.
Ini hanyalah kumpulan kartu yang
ditampilkan dengan berbagai warna.
Ada status lainnya tempat semua kartu
saling bertumpukan, dan ada
status ketiga tempat kartu
berada di luar layar hingga ke kiri.
Dan Anda kini dapat mengurutkan transisi
antara semua status
ini sesuai keinginan Anda.
Kita dapat memilih transisi ini.
Kita dapat memilih transisi ini.

Korean: 
300 정도로 해보죠
됐네요
어떤 모습일지 확인해보죠
재생을 누르면
이렇게 동작이 수행됩니다
[APPLAUSE]
네
이 기능으로 아주 과하게
효과를 줄 수도 있어요
그런 웹 기억하시나요?
예전에 웹페이지에서
로고가 빙글빙글 돌던 것요
네
너무 과하게 하진 마세요
하지만, 멋진 디자인과
이 도구를 사용하면
정말 대단한 작업물을 만들 수 있습니다
약간 더 복잡한 레이아웃으로
전환해보겠습니다
여기서 보는 것은 시작 상태와
끝 상태뿐이었잖아요?
그건 그냥 기본입니다
다른 많은 상태를
생성할 수도 있습니다
여기에 기본 상태가 있습니다
다양한 색상의 카드가
놓여 있습니다
모든 카드가
각 카드의 위에 있는
다른 상태가 있으며
모두 왼쪽으로
화면을 벗어난
세 번째 상태가 있습니다
그리고 이제
원하는 방식으로
이러한 상태가 전환하도록
순서를 정할 수 있습니다
이렇게 전환할 수 있고요

English: 
We can have this transition.
We can have-- let's see.
I chose a state.
We can have this transition.
And let's check
out the translation
curves down here, too.
So you can do really advanced
things with this tool.
The last thing I
want to highlight
is that you can easily
also create click and swipe
handlers.
So when you do
that, Motion Layout
is going to add the code for
you to basically add listeners.
So if I had a swipe handler,
for example, the user can swipe
and then Motion
Layout will scrub
through the animation, a
bit like the Quick Settings
pull-down on Android.
You can do this
through the tool,
which is pretty fantastic.
There is so much to show
here that I don't have time
to get into.
But the good news
is, if you stay
in your seats for two
or three more hours,
there's a whole talk from
the Design Tools team
that are going to show you
through all the goodies
that I couldn't show you today.
All right.
So a couple more quick
things to show you.

Portuguese: 
E podemos... Escolhi um estado.
E também podemos ter esta transição.
E conferir
as curvas da transição também.
É possível fazer coisas
muito avançadas com esta ferramenta.
Por fim, quero destacar
a possibilidade de criar facilmente
gerenciadores de clique e deslize.
Com isso,
o Motion Layout adicionará o código
para que vocês adicionem os listeners.
Se eu tivesse
um gerenciador de deslize, por exemplo,
o usuário poderia deslizar
e o Motion Layout exibiria a animação.
Semelhante ao menu
de configurações rápidas no Android.
Isso pode ser feito pela ferramenta.
Fantástico.
Há tanto a mostrar
que não tenho tempo para isso.
A boa notícia é que, se vocês ficarem
aqui por mais duas ou três horas,
haverá uma apresentação
da equipe de ferramentas de design.
Eles mostrarão tudo que não consegui.
Mais algumas coisas rápidas.

Korean: 
이렇게 전환할 수도 있습니다
그리고 또... 어디 보죠
상태를 선택하고요
이렇게 전환할 수 있습니다
여기 아래에서 전환 곡선도
확인해보죠
이 도구로 상당한 고급 작업을
수행할 수 있습니다
마지막으로 강조하고 싶은 것은
클릭 및 스와이프 핸들러도
쉽게 만들 수 있다는 것입니다
핸들러를 만들 때
Motion Layout이
기본적으로 리스너를 추가하는
코드를 추가할 것입니다
예를 들어
스와이프 핸들러가 있다면
사용자가 스와이프하면
Motion Layout이
Android의 Quick Settings 같은
애니메이션을
스크러빙합니다
이 도구를 사용하여
이런 작업을 할 수 있다니
정말 멋지죠
시간은 없는데 보여드릴 게
너무 많네요
하지만, 좋은 소식은
2~3시간 정도만 더 앉아 계시면
Design Tools 팀이 나와서
제가 오늘 보여드리지 못한
모든 기능을
소개할 거라는 사실입니다
좋습니다
몇 가지만 빠르게 보여드리죠

Chinese: 
选取状态 还可以这样转换
看看这里的 translation 曲线
大家可以用这个工具进行很多高级操作
我最后想强调的一个东西是
大家可以轻松地创建点击滑动处理器
这时 Motion Layout 会代你添加代码
从而完成 listener 的添加
如果我添加了一个滑动处理器
那么用户只需滑动一下
Motion Layout 就会做出快进或快退的动画效果
有点像是 Android 的 Quick Settings 下拉菜单
你可以使用工具来做到这一点 非常棒
因为时间关系 我没办法一一展示
不过好消息是 如果你肯再多待两三个小时
到时还会有一个完整的演讲
来自我们的设计工具团队
他们会一一为大家展示我今天没说完的好东西
再简单给大家看几样东西

Japanese: 
このようにもできます
こんなのも...
ちょっと待ってください
状態を選択します
このようにも推移させることができます
ここでこの推移を表す曲線を
確認することもできます
このツールで高度なことを行えます
私が強調したい最後の点は
クリックとスワイプのハンドラを
簡単に作成できることです
これらを作成すると
Motion Layoutが自動的にコードを
基本的にリスナーに追加してくれます
例えば
スワイプハンドラを追加すると
ユーザーはスワイプできます
Motion Layoutは
アニメーションをスクラブします
Androidのクイック設定の
プルダウンに少し似ています
このツールでこれが行えます
素晴らしいですね
お見せしたいことは山ほどありますが
取り上げる時間がありません
良いお知らせがあります
もう２～３時間ここに
留まっていただけたら
デザインツールチームの話を
お聴きいただけます
私がお伝えしきれなかった
素晴らしい機能を
彼らがご紹介します
もう少しだけ手短にお伝えします

Indonesian: 
Kita dapat--mari kita lihat.
Saya memilih status.
Kita dapat memilih transisi ini.
Dan mari kita lihat kurva transisi
di bawah sini.
Jadi Anda dapat melakukan hal
yang bersifat lanjutan dengan alat ini.
Hal terakhir yang ingin saya perjelas
yakni Anda juga dapat dengan
mudah membuat handler geser dan klik.
Jadi, saat
melakukannya, Motion Layout akan
menambahkan kode
untuk menambahkan listener.
Jadi, jika ada handler geser
misalnya, pengguna dapat menggeser
lalu Motion Layout akan menggesek
animasi, agak mirip dengan pull-down
Setelan Cepat di Android.
Anda dapat melakukannya melalui alat ini,
dan ini sangat hebat.
Ada banyak hal yang bisa 
saya tunjukkan, namun waktunya
sangat terbatas.
Namun kabar baiknya, jika Anda
tetap di sini selama
dua atau tiga jam lagi,
akan ada seminar
lengkap dari tim Alat Desain
yang akan menunjukkan semua hal hebat
yang tidak dapat saya tunjukkan kali ini.
Baiklah. Ada beberapa hal
singkat lain yang akan saya tunjukkan.

Spanish: 
Podemos tener esta transición.
Podemos… veamos.
Elegí un estado.
Podemos tener esta transición.
Vean las curvas de esta transición.
Pueden hacer cosas realmente
avanzadas con esta herramienta.
Lo último que quiere resaltar
es que pueden crear
controladores para hacer clic y arrastrar.
Cuando lo hacen, Motion Layout
va a agregar el código
para que agreguen oyentes.
Si tengo un controlador que arrastra,
el usuario puede arrastrar el dedo
y Motion Layout desplazará la animación,
como la Configuración rápida en Android.
Pueden hacer esto en la herramienta,
que es bastante fantástico.
Hay tanto que mostrarles y no tengo tiempo
para mostrarles todo.
Pero, las buena noticia es que,
si se quedan por 2 o 3 horas más,
habrá una charla completa
del equipo de Herramientas de Diseño
que les va a mostrar todo lo bueno
que yo no tuve tiempo de decir.
Algunas otras cosas que quiero mostrarles.

Portuguese: 
Primeiro, no Resource Manager, atualizamos
o assistente de recursos de vetor
com novos cliparts.
O site do Material Design
tem muitos ícones.
Eles foram adicionados.
Agora temos suporte
a todos os diferentes tipos.
Há ícones preenchidos e de contorno.
Até mesmo ícones de dois tons.
Esperamos que seja útil.
Outra coisa que fizemos
com relação a edição
foi a transferência
de todos os modelos dinâmicos
do Android para o Kotlin.
Por exemplo, caso queira adicionar uma tag
de geração de registros nesta classe,
basta digitar "logt" e pressionar Tab.
Com isso,
a tag de geração de registros será criada
com base no nome do arquivo atual.
Algo mais importante e incrível: "logm".
Isso serve para registrar
o nome do método atual
com todos os parâmetros.

Korean: 
먼저, Resource Manager에서
최신 클립아트를 포함하여
Vector Asset Wizard를
업데이트했습니다
Materials Design 웹사이트를 보시면
많은 아이콘이 있는데요
그것도 추가했고요
더 중요한 것은, 이제 모든
다양한 유형을 지원한다는 것입니다
예를 들어, 안이 채워진 아이콘을
윤곽 아이콘으로 전환할 수 있으며
두 가지 색 아이콘으로도
전환할 수 있습니다
유용하게
사용하셨으면 좋겠군요
최근에 저희가 편집에서 또 개선한 건
모든 Android 라이브 템플릿을
Kotlin에 이식한 것입니다
예를 들어, 이 클래스에
로깅 태그를 추가하고 싶다면
logt를 입력하고 Tab을
누르기만 하면 됩니다
그러면 현재 파일 이름을 기반으로
로깅 태그를 생성할 것입니다
그렇죠?
이보다 더 좋은 건
logm입니다
이건 기본적으로
모든 매개변수와 함께
현재 메서드 이름을 기록합니다
멋지죠?
[박수]

Spanish: 
Primero, en Resource Manager,
actualizamos el Vector Asset Wizard
con nuevas imágenes predeterminadas.
El sitio de Materials Design
tiene muchos íconos. Los agregamos.
Lo más importante,
es que admitimos varios tipos.
Pueden cambiar de íconos rellenos
a íconos delineados
o a íconos de doble tono.
Esperamos que les sea útil.
Otra cosa que hicimos
recientemente para la edición
es que conectamos todas
nuestras plantillas en vivo a Kotlin.
Entonces, si, por ejemplo,
quiero agregar una etiqueta de registro
a esta clase, solo escribo logt
y presiono la tecla Tab.
Se creará una etiqueta de registro
basada en el nombre del archivo actual.
Lo más importante o sorprendente,
si me preguntan, es logm.
Básicamente, registra el nombre del método
actual con todos los parámetros.

Chinese: 
第一 在 Resource Manager 中
我们更新了 Vector Asset Wizard 
其中带有全新的切片资源
Material Design 网站有很多图标资源
我们都添加了进来
更重要的是 我们现在支持各种不同的类型
你可以从 比如说 实心图标 
切换成空心图标 甚至是双色图标
希望大家能觉得这个功能有用
在编辑方面 我们还做了一件事
我们把所有 Android 实时模版都移植到了 Kotlin
比如说 如果我想添加一个记录 tag 这个类
我只需输入 logt 点击 Tab
这样就会创建出一个基于当前文件名的记录 tag
更重要的 也是更棒的是 logm
它可以记录当前的方法名及其全部参数

Japanese: 
まずResource Managerについてです
最新のクリップアートで
Vector Assetウィザードを更新しました
マテリアルデザインのウェブサイトに
たくさんのアイコンが用意されています
さまざまなタイプを
サポートするようになりました
例えば
[Filled]アイコン [Outlined]アイコン
[Two Tone]アイコンにも
切り替えられます
役立てていただければ幸いです
編集用に最近行った
もう１つは
すべてのAndroidライブテンプレートを
Kotlinに移植したことです
例えば ロギングタグを
このクラスに追加したい場合
“logt”とだけ入力し
Tabキーを押します
これで現在のファイル名に基づいて
ロギングタブが作成されます
もっと素晴らしいのは“logm”です
これは現在のメソッド名を
すべてのパラメータとともに記録します
[拍手]

English: 
First of all, in the
Resource Manager,
we've updated the Vector Asset
Wizard with brand new clipart.
So the Materials Design
website has many icons.
We've added them.
More importantly, we now
support all the different types.
So you can switch from,
for example, filled icons
to outline icons to
even the two-tone icons.
So hopefully, you'll
find that useful.
Another thing we
recently did for editing
is we ported all of our Android
live templates to Kotlin.
So if I, for example,
want to add a logging
tag into this class, I
just type logt, hit Tab.
This will create a
logging tag for me
based on the current file name.
Right?
And more importantly, or more
awesomely, if you ask me, logm.
This one will basically
log the current method name
with all the parameters.
Right?
[APPLAUSE]

Indonesian: 
Pertama, di Resource Manager,
kami telah mengupdate Wizard
Aset Vektor dengan clipart baru.
Jadi situs Material Design
memiliki banyak ikon.
Kami telah menambahkannya.
Yang lebih penting, kami
kini mendukung semua jenis.
Jadi Anda dapat beralih
dari, misalnya ikon terisi
ke ikon outline,
bahkan ke ikon dua corak.
Jadi, semoga ini dapat berguna.
Hal lainnya yang baru
kami lakukan untuk pengeditan
yakni memindahkan semua
template live Android ke Kotlin.
Misalnya, jika ingin
menambahkan tag logging
ke class ini, saya hanya
perlu mengetik logt, klik Tab.
Tag logging akan dibuat
berdasarkan nama file saat ini.
Lihat?
Yang lebih penting, atau mungkin
lebih hebat, menurut saya, adalah logm.
Ini akan melakukan logging
untuk nama metode saat ini
dengan semua parameter.
Lihat?
[TEPUK TANGAN]

Spanish: 
Si quieren un comentario
de ordenamiento en bloque
entre la pestaña SPC, pueden
escribir sus comentarios o lo que deseen.
Lo que querrán hacer es abrir
la IU de Live Templates,
Live Templates Settings y navegar
para saber qué etiquetas pueden escribir.
Les ahorrará mucho tiempo.
Ahora, voy a mostrarles
algunas cosas en el emulador.
Miren, todavía se ejecuta localmente.
Entonces, si abro las opciones, Android
ahora admite múltiples pantallas.
Hicimos que sea muy fácil
probar varias pantallas en el emulador.
Todo lo que tengo que hacer
es agregar pantallas adicionales.
Puedo cambiar los tipos de densidad
y sugerir esta disposición de aquí.
Si pulso Apply Changes ahora,
pueden ver que tengo mi emulador
conectado a múltiples pantallas
con las que puedo interactuar.

Chinese: 
如果你想要在 SPC 标签页中间
添加一块注释 
那么你可以输入你的评论
你需要打开 Live Templates UI
Live Templates Settings 然后浏览所有内容
以便了解你可以用 Tab 来输入哪些 tag
它会为你省下大量时间
好 下面给大家展示一些模拟器内的东西
看 它还是可以独立运行
打开选项列表
Android 现在支持多显示屏幕
在模拟器内测试多显示屏幕 被大大简化
我们只需添加显示设备
我可以调整像素密度
它推荐采用这个布局
如果我点击 应用更改
大家看 我的模拟器就连接上了多个显示设备
接下来我就可以操作了

English: 
And if you want a block
structuring comment
in between SPC tab, you can
type in your comment, whatever.
So what you want to do is
open up the Live Templates
UI, Live Templates Settings,
and browse through all of these
to learn what tags you
can type in with tab.
It'll save you a lot
of time, I think.
All right.
Next, I'm going to show you
some stuff in the emulator.
So look, still also
runs standalone.
So if I pull up the
options, Android now
supports multiple displays.
And so we've made it really
easy to test multiple displays
in the emulator.
All I have to do is go in
and add additional displays.
I can tweak what kinds
of density I want.
So it's suggesting
this layout right here.
If I hit Apply
Changes now, you can
see I have my emulator
connected to multiple displays
that I can then start
interacting with.
Yeah.

Japanese: 
SPCタブの間に
ブロック構造コメントを追加したい場合
コメントを何でも入力できます
ライブテンプレートUIや
ライブテンプレート設定を始めたい場合
これらを見て
タブに入力できるタグがわかります
時間をかなり節約できるでしょう
次にエミュレータに関するものを
お見せしたいと思います
ご覧ください
まだスタンドアロンで実行されています
オプションを表示すると
Androidでマルチディスプレイが
サポートされたことが分かります
エミュレータで簡単に
テストできるようになりました
ディスプレイを追加するだけでいいのです
密度を好きなように調整できます
ここにあるようにレイアウトを
設定することをお勧めします
ここで[Apply Changes]をクリックすると
エミュレータが複数のディスプレイに
接続されたことが分かります
こちらから操作できます

Korean: 
그리고 SPC 탭 사이에
블록 구조 주석을 넣고 싶으시다면
원하는 주석을 입력할 수 있습니다
Live Templates UI,
Live Templates Settings를 열고
전부 살펴본 다음
탭과 함께 입력할 수 있는
태그가 무엇인지 알아보면 됩니다
시간을 많이 절약하실 수
있을 겁니다
좋습니다
다음으로 에뮬레이터에 있는 것을
몇 가지 보여드리겠습니다
여전히 독립적으로도
실행되고요
옵션을 열면 Android가 이제
다중 디스플레이를 지원합니다
그리고 에뮬레이터에서
다중 디스플레이를 정말 쉽게
테스트하도록 만들었습니다
여기서 디스플레이를
추가하기만 하면 됩니다
원하는 유형의 밀도를
조정할 수 있습니다
여기 보시면 이 레이아웃을
제안하고 있는데요
지금 Apply Changes를 누르면
제 에뮬레이터가 여러
디스플레이에 연결되고
상호작용할 수 있습니다
네

Portuguese: 
Se quiser uma estrutura
em bloco para os comentários,
vá para o meio, pressione espaço,
depois Tab e digite seu comentário.
Abra a IU dos modelos dinâmicos,
acesse as configurações
e navegue por todas elas
para conhecer as tags
que é possível digitar com Tab.
Acredito que isso
economizará bastante do seu tempo.
Em seguida,
mostrarei alguns itens no emulador.
Ele também opera de modo autônomo.
Se eu extrair as opções,
o Android agora é compatível
com várias telas.
Facilitamos bastante o teste
de várias telas no emulador.
Só é necessário acessar
e adicionar outras telas.
Posso ajustar
quais tipos de densidade eu quero.
A sugestão aqui é este layout.
Quando aplico as alterações,
meu emulador é conectado
a várias telas
com que posso interagir.

Indonesian: 
Dan jika ingin memblokir komentar struktur
di antara tab SPC, Anda dapat
mengetik di komentar, apa saja.
Anda harus membuka UI Template Live,
Setelan Template Live, dan menjelajahinya
guna mempelajari tag mana
yang dapat diketik dengan tab.
Saya rasa, ini akan mempersingkat waktu.
Baiklah.
Berikutnya, saya akan
menunjukkan beberapa hal di emulator.
Lihatlah, masih berjalan sendiri.
Jadi, jika menggunakan opsinya,
Android kini
mendukung beberapa tampilan.
Dan kami telah mempermudah
cara pengujian beberapa tampilan
di emulator.
Saya hanya harus membukanya
dan menambahkan beberapa tampilan.
Saya dapat menyesuaikan kepadatan.
Tata letak disarankan di sini.
Jika mengklik Apply Changes,
Anda dapat
melihat bahwa emulator akan
tersambung ke beberapa tampilan
yang kemudian dapat mulai berinteraksi.
Ya.

Portuguese: 
Vale a pena testar.
Também facilitamos
o teste das localizações.
Digamos que precise testar o movimento,
por exemplo,
em um app de condicionamento físico.
Poderia dizer:
"Quero navegar até o Googleplex".
Começaria do ponto em que estamos agora,
Google Building MP7.
Agora posso salvar como um trajeto.
Ele se chamará "Demo".
Salvar.
E posso executar esse trajeto.
Vejamos o que acontece
se eu acessar o Google Maps no emulador.
Ao clicar no ícone "Onde estou",
ele mostrará que estamos nos movendo.
Funcionou.
A não ser que eu tenha esquecido algo,
essa foi minha demonstração.

English: 
So definitely give that a try.
All right.
We've also made it
easier to test locations.
So let's say I want
to test motion.
Let's say I have some sort
of fitness app or whatever.
What it can do is say, I want
to navigate to the Googleplex.
And I'm going to
start from where
we are right now, which is
Google Building MP7, I think.
I can now save this as a route.
I'll call it Demo.
Save.
And now, I can play this route.
And let's see what happens
if I go into Google Maps
here on my emulator.
If I click the Where
Am I icon, it's
now supposed to be showing
us that we're moving.
And we are.
[APPLAUSE]
All right.
Unless I forgot something,
I think that's my demo.

Spanish: 
Pruébenlo.
También hicimos que sea
más fácil probar ubicaciones.
Digamos que quiero probar el movimiento.
Digamos que tengo
una aplicación de ejercicio.
Lo que quiero hacer es ir a Googleplex.
Voy a empezar desde donde estoy,
que es Google Building MP7, creo.
Puedo guardar esto como una ruta.
La voy a llamar Demo.
Y la guardo.
Ahora, pueden reproducir esta ruta.
Veamos qué sucede si voy a Google Maps
aquí en el emulador.
Si hago clic en el ícono Dónde estoy
supuestamente me debería mostrar
que nos estamos moviendo.
Y así es.
Si no olvidé nada, eso es todo.

Indonesian: 
Anda harus mencobanya.
Baiklah. Kami juga
memudahkan pengujian lokasi.
Misalnya, saya ingin menguji motion.
Misalnya saya memiliki
semacam aplikasi kebugaran.
Ini akan dapat, misalnya,
saya ingin membuka Googleplex.
Dan saya akan memulai
dari sini,
Google Building MP7 saya rasa.
Saya kini dapat menyimpannya sebagai rute.
Saya beri nama Demo.
Simpan.
Dan kini, saya dapat memainkan rute ini.
Dan kita lihat apa yang
terjadi jika saya buka Google Maps
di emulator saya.
Jika saya klik ikon Lokasi Saya,
ini akan menunjukkan bahwa kita bergerak.
Dan berhasil.
[TEPUK TANGAN]
Baiklah. Saya kira, itulah demo saya.

Japanese: 
是非お試しください
ロケーションのテストも簡単になりました
動作をテストしたいとします
例えば フィットネスアプリで
まずGoogleplexにナビゲートします
ここから
つまりGoogle Building MP7から
始めたいと思います
これをルートとして保存できます
デモを呼び出します
保存します
このルートを再生できるようになりました
エミュレータでGoogleマップを立ち上げると
どうなるか見てみましょう
現在地のアイコンをクリックすると
私たちが移動しているかのように
表示されるはずです
実際にはここにいますが
[拍手]
私が何か忘れていなければ
これで私のデモは終わりです

Korean: 
꼭 해보세요
좋습니다
위치 테스트도
더 쉽게 만들었습니다
동작을 테스트하고 싶다고 해보죠
일종의 피트니스 앱이 있다고 해보죠
제가 할 수 있는 일은, 이를테면
Googleplex로 이동하고 싶다고 하죠
그러면 현재 있는 곳에서
출발할 겁니다
아마 Google Building MP7일 거예요
이제 이걸 경로로 저장할 수 있습니다
이걸 Demo라고 하겠습니다
저장하고요
이제 이 경로를 재생할 수 있습니다
에뮬레이터에서 Google Maps로
이동하면
어떻게 되는지 보죠
Where Am I 아이콘을 클릭하면
움직이고 있다는 것을
보여줄 겁니다
보여주네요
[박수]
좋습니다
제가 뭔가 잊어버리지 않은 한,
제 시연은 여기까지 같네요

Chinese: 
请大家务必试试这个功能
好 我们还简化了位置测试流程
假如我想要测试运动
比方说 我有一个健身类应用
它可以说 我想要导航到 Googleplex
我要从目前所在的地方起步
也就是 Google Building MP7
现在我可以把它保存为一个路线
我把它命名为 Demo 保存
现在我可以回放这个路线了
现在看看如果我在模拟器中进入 Google Maps 会怎样
如果我点击 我在哪儿
现在它应该显示出 我们正在移动
而我们确实正在移动
好 如果我没漏什么的话 我的演示就到此为止了

Spanish: 
Ahora, voy a dejar a Jamal que hable
y ojalá disfruten Studio 4.0.
Bien, algunas excelentes demostraciones.
Lástima que no podemos mostrar todo,
por lo que voy a hablar
sobre algunas funciones
que estamos lanzando
en Android Studio.
Uno, actualizamos
funciones dinámicas.
Como ya saben,
con funciones dinámicas,
puedo tener una función del módulo
conectada al módulo principal.
Estamos actualizando eso.
Pueden tener dependencia entre funciones.
Por ejemplo, hay un módulo de cámara
y quiero agregar un módulo de video.
Ahora hay dependencia directa
al módulo de cámara
sin dependencia directa
al de la aplicación.
Es una gran función agregada
a las funciones dinámicas
Otra cosa que agregamos
son las mejoras del Layer Editor.
Lo que hicimos fue tomar las bibliotecas
de los dispositivos
y las agregamos directamente al IDE.
Cosas como Skia e ICE ahora están
disponibles en Android Studio.
Esto nos permite dos cosas importantes.
Una es el rendimiento,

English: 
So now, I'm going to turn
it back over to Jamal,
and I hope you enjoy Studio 4.0.
[APPLAUSE]
JAMAL EASON: All right,
so some really cool demos.
Unfortunately, we don't have
time to demo everything,
so I'll spend a
few moments talking
about some additional features
we're launching inside
of Android Studio.
So first, we're updating
dynamic features.
So as you know, today,
with dynamic features,
I can have a module feature
connected to the main module.
What we're updating is that
now, you can have feature
to feature dependency.
So let's say I have
a camera module
and I want to add a
video module to that.
So now, I have a direct
dependency to the camera module
without having a direct
dependency on the app module.
So that's a cool feature we've
added for dynamic features.
Another thing that we
added behind the scenes
is actually improvements
to the Layer Editor.
So actually, what we did, we
took the rendering libraries
that we have on the devices and
put them directly in the IDE.
So things like Skia
and ICU are now
available inside
of Android Studio.
And what that enables
is two important things.
One is the performance.
So all the demos
you saw Tor using

Chinese: 
现在我把话筒交回 Jamal
希望大家都能喜欢 Studio 4.0
非常不错的演示
不幸的是 由于时间关系 我们无法演示所有东西
所以我来简单和大家谈谈
我们准备在 Android Studio 内推出的其他功能
首先 我们更新了动态功能
动态功能的作用是 把模块功能连接到主模块
而我们的更新内容是 现在你可以拥有从功能到功能的依赖
比如 我有一个摄像头模块 
而我想给它添加一个视频模块
现在我就有了一个对摄像头模块的直接依赖
而无需直接依赖应用模块
这是我们为动态功能添加的一个很酷的功能
我们还改进了 Layout Editor
我们把设备上的渲染库直接放进了 IDE
所以类似 Skia 和 ICU 这样的东西
现在在 Android Studio 内可用了
这个功能带来了两个重要的转变
第一 性能表现 

Korean: 
이제 자말에게 다시
마이크를 넘기겠습니다
스튜디오 4.0을 만족스럽게
사용하셨으면 좋겠군요
[박수]
정말 멋진 시연이었습니다
안타깝지만
모든 기능을 시연해 볼 시간은 없습니다
그래서 Android 스튜디오 안에 넣은
몇 가지 추가 기능에 대해
잠깐 이야기해보겠습니다
먼저, 동적 기능을 업데이트했습니다
아시다시피, 현재 동적 기능으로
모듈 기능을 주 모듈에
연결할 수 있습니다
지금 업데이트하는 것은
여러분이 기능 간 종속성을
구현할 수 있다는 것입니다
저에게 카메라 모듈이 있고
거기에 비디오 모듈을
추가하고 싶다고 해보죠
그러면, 카메라 모듈에
직접 의존합니다
앱 모듈에 직접
의존하지 않고 말이죠
동적 기능을 위해 저희가 추가한
멋진 기능입니다
저희가 비밀스럽게
추가한 것이 한 가지 더 있는데요
바로 Layer Editor를 개선한 것입니다
기기에 있는
렌더링 라이브러리를
IDE에 직접 가져다 놓았는데요
따라서, Skia와 ICU 같은 것들을
이제 Android 스튜디오 안에서
사용할 수 있습니다
하나는 성능입니다
토르가 보여드린 모든 시연은

Japanese: 
ジャマルと代わりたいと思います
Studio 4.0を楽しんで
いただけることを願っています
[拍手]
素晴らしいデモでした
残念ながらすべてのデモを
お見せする時間がありません
残りわずかな時間で
Android Studioで公開する
いくつかの機能についてお話しします
まず 動的機能を更新しています
ご存知の通り 動的機能では
メインモジュールに接続された
モジュール機能があります
更新しているのは
機能間の依存関係です
カメラモジュールがあるとします
それにビデオモジュールを
追加したいと思っています
アプリモジュールと
直接的な依存関係を持たずに
カメラモジュールとの直接的な
依存関係を持たせることができます
これが動的機能に追加された
便利機能です
それ以外に私たちは
Layer Editorも改良しています
デバイスに配置し
IDEで直接使用できる
レンダリングライブラリを追加しました
SkiaやICUなどを
Android Studioで
使用できるようになりました
それにより２つの重要なことが
向上しました
１つはパフォーマンスです
ご覧いただいたデモでは

Portuguese: 
Vou passar a bola para o Jamal.
Espero que vocês gostem do Studio 4.0.
Foram demonstrações muito interessantes.
Infelizmente,
não temos tempo para demonstrar tudo.
Falarei um pouco
sobre alguns recursos adicionais
que estamos lançando no Android Studio.
Para começar,
estamos atualizando os recursos dinâmicos.
Com os atuais,
posso ter um recurso de módulo
conectado ao módulo principal.
A atualização terá
dependência recurso a recurso.
Digamos que eu tenha um módulo de câmera
e queira adicionar
um módulo de vídeo a ele.
Tenho uma dependência direta
ao módulo de câmera,
sem dependência direta no do app.
Uma função interessante
dos recursos dinâmicos.
Outro item que adicionamos
foram as melhorias no editor de layout.
Pegamos as bibliotecas de renderização
que temos nos dispositivos
e as inserimos diretamente no IDE.
Coisas como Skia e ICU
agora estão disponíveis no Android Studio.
Isso possibilita duas coisas importantes.
Uma delas é o desempenho.

Indonesian: 
Kini, saya akan mengembalikannya ke Jamal,
dan semoga Anda suka Studio 4.0.
[TEPUK TANGAN]
JAMAL EASON: Baiklah, demo yang keren.
Sayangnya, waktunya
tidak cukup untuk semua demo,
jadi saya akan sedikit membahas
beberapa fitur tambahan yang
kami luncurkan di Android Studio.
Pertama, kami mengupdate fitur dinamis.
Seperti Anda tahu,
kini dengan fitur dinamis
saya dapat menyambungkan
fitur modul ke modul utama.
Yang kami update yakni, kini
terdapat dependensi antarfitur.
Misalnya, saya punya modul kamera
dan ingin menambahkan modul video.
Kini, terdapat dependensi
langsung ke modul kamera
tanpa dependensi
langsung ke modul aplikasi.
Inilah fitur dinamis
keren yang kami tambahkan.
Hal lain yang kami
tambahkan di belakang layar
adalah penyempurnaan pada Layer Editor.
Kami mengambil library rendering
yang ada pada perangkat dan
meletakkannya langsung di IDE.
Hal-hal seperti Skia dan ICU
kini tersedia di Android Studio.
Dan ini menyempurnakan dua hal penting.
Yang pertama adalah performanya.
Semua demo yang
Tor tunjukkan

Korean: 
반응형 성능을 사용한 것입니다
두 번째는 충실도가 더 높은
정확도를 갖는 것입니다
특히 이제
텍스트 정렬 모드 같은
기능이 지원됩니다
세밀한 그림자나 3D 원근법
텍스트 경로 렌더링을
이제 Layout Editor 안에서
사용할 수 있습니다
이러한 일들이 모두
더 나은 Android 스튜디오
내부 환경을 제공하기 위해
비밀스럽게 진행되었습니다
짧게 알려드리자면
프래그먼트에 대한 템플릿도
크게 업데이트되었는데요
새로운 마법사를
사용할 수 있습니다
프래그먼트에 대한 모든 템플릿을
업데이트했으니
프래그먼트를 사용하신다면
Android 스튜디오 안에서
이 부분도 확인해보세요
Android 에뮬레이터에 대규모
업데이트가 있는데요
저희는 이걸 듀얼 ARM x86
지원이라고 부릅니다
ARM만 지원하는
C++ 코드가 있다고 해보죠
그럼 x86 에뮬레이터를
사용할 수 없었습니다
빠른 환경을
지원하지 않기 때문이죠
현재 ARM API와 x86을
모두 지원하는
특별한 버전의
에뮬레이터가 있습니다
이 버전은 하나의 에뮬레이터에서
레거시나 C++ 코드를 실행할 수 있고
빠른 x86 환경을 가지고 있습니다
그래서 저희는 그걸
하나의 버전으로 출시했는데요

Indonesian: 
dengan performa reaktif,
ada di sana.
Yang kedua,
akurasi fidelitasnya lebih tinggi.
Secara khusus, hal-hal
seperti penyempurnaan mode teks
rata tengah kini didukung.
Penggunaan bayangan
mendetail atau perspektif 3D.
Atau penggunaan rendering jalur teks kini
tersedia di Layout Editor.
Ini semua terjadi di belakang layar
dan menyempurnakan pengalaman Anda
di Android Studio.
Selain update cepat, kami
juga melakukan update besar
terkait fragmen pada template.
Jadi, kini terdapat wizard baru.
Kami mengupdate
semua template untuk fragmen.
Jika menggunakan
fragmen, cobalah fitur ini
di Android Studio.
Update besar untuk Android Emulator
yakni semacam dukungan dual ARM & x86.
Misalnya, jika ada kode C++
apa pun yang memiliki dukungan ARM saja,
Anda tidak akan dapat
menggunakan emulator x86
karena tidak
mendukung pengalaman tersebut.
Jadi kini, kami memiliki versi khusus
emulator yang mendukung ARM API dan x86.
Jadi, kode lama atau C++
dapat dijalankan di emulator
dan pengalaman x86 akan lebih cepat.
Jadi, kami baru merilis versi ini,

Japanese: 
レスポンスに優れた
パフォーマンスを活用していました
２つ目はフィデリティと
精度の向上です
具体的には文字の行端ぞろえが
サポートされるようになりました
高度な影を追加したり
3Dパースペクティブを使用したりできます
Layout Editorで
テキストパスレンダリングも
利用できるようになりました
こうした取り組みが
Android Studioでの皆様の
エクスペリエンスを向上させます
クイックアップデートとして
フラグメントのテンプレートに
大きな変更を加えました
新しいウィザードを作成しました
フラグメントのテンプレートを
全て変更しました
フラグメントを使用する場合
Android Studioで
そちらもご確認ください
Androidエミュレータに関する
大きなアップデートは
ARMとx86のデュアルサポートです
例えば ARMのみをサポートする
C++コードがある場合
x86エミュレータを
使用することはできませんでした
その高速エクスペリエンスを
サポートしていなかったからです
しかしARM APIとx86の両方をサポートする
特別なエミュレータを用意しました
そのC++コードを
１つのエミュレータで実行し
高速なx86エクスペリエンスも
得られます
１つのバージョンで
リリースしたばかりです

Portuguese: 
Todas as demonstrações
usadas pelo Tor têm desempenho reativo.
O segundo ponto
é ter maior precisão de fidelidade.
Coisas como a melhoria do modo
de justificação de texto são compatíveis.
Sombras detalhadas, perspectiva em 3D,
renderização do caminho do texto.
Tudo isso
está disponível no editor de layout.
Isso acontece nos bastidores
para melhorar a experiência
no Android Studio.
Só uma informação rápida:
também fizemos uma atualização
nos nossos modelos de fragmentos.
Temos um novo assistente.
Atualizamos
todos os modelos de fragmentos.
Caso usem fragmentos,
confiram isso também no Android Studio.
Agora, uma grande atualização
para o Android Emulator.
Estamos chamando
de suporte duplo ao ARM e a x86.
Por exemplo, se houvesse
qualquer código C++
somente com suporte a ARM,
não seria possível usar o emulador x86,
devido à incompatibilidade
da experiência rápida.
Hoje temos uma versão do emulador
compatível com as APIs ARM e x86.
Ela pode executar
o código legado ou C++ em um emulador
e ter a experiência x86 rápida.
Fizemos esse lançamento
em apenas uma versão.

Spanish: 
que vieron en las demostraciones
de Tor con rendimiento reactivo.
Y, dos, tener mayor
precisión de fidelidad.
Específicamente, ahora
se admiten cosas como mejorar
la justificación de texto,
sombras detalladas, perspectiva en 3D
o representaciones de texto.
Ya están en Layout Editor.
Todo esto sucede tras bambalinas
y les brinda una mejor experiencia
en Android Studio.
También hicimos una gran actualización
en las plantillas para fragmentos.
Tenemos un nuevo asistente aquí.
Actualizamos las plantillas
para fragmentos.
Entonces, si usan fragmentos,
también véanlo en Android Studio.
Una gran actualización
de Android Emulator
es el soporte doble de ARM x86.
Digamos que si tienen un código C++
que admitía ARM únicamente,
no podían usar el emulador de x86
porque no admitía la experiencia rápida.
Pero hoy, hay una versión especial
del emulador que admite API ARM y x86.
Puede ejecutar ese código heredado
o C++ en un emulador y lograr
esa experiencia rápida de x86.
Acabamos de lanzar esta versión nueva

English: 
with reactive
performance, that's there.
And two, having higher
fidelity accuracy.
So specifically, things like
improving text justification
mode is now supported.
Having detailed shadows
or having 3D perspective.
Or having text path
rendering are now
available inside
the Layout Editor.
So this is all happening
behind the scenes
and helping you have
a better experience
inside of Android Studio.
Just as a quick update, we
also did a big pass update
on our templates for fragments.
So we have a new
wizard that's there.
We updated all the
templates for fragments.
So if you use fragments,
check that out as well
inside of Android Studio.
Now, a big update for
the Android Emulator
is something we're calling kind
of this dual ARM x86 support.
So let's say, if you have any
C++ code today that had ARM
support only, you weren't
able to use the x86 emulator
because that didn't support
the fast experience.
And so today, we have
a special version
of the emulator that supports
both ARM APIs and x86.
So it can run that Legacy or C++
code on one emulator and have
that fast x86 experience.
So we just released
this on one version,

Chinese: 
Tor 使用的那些演示的反应速度 大家也看到了
第二 更高的保真度
具体来说 现在我们支持改善文本对齐模式
精致的阴影效果 3D 视角 文本路径渲染 
Layout Editor 现在可以提供所有这些
这些都是在幕后完成的
有助于获取更好的 Android Studio 体验
另外简单说一下 我们进行了一次重大的 Fragment 模版更新
我们有了新的向导 
我们更新了所有的 Fragment 模版
如果你使用 Fragment 那么请务必在 Android Studio 里试用它
Android 模拟器也迎来了重大更新
我们将其称为 ARM/x86 双重支持
比方说 如果你现在有一些仅支持 ARM 的 C++ 代码
那么在以前 你就不能使用 x86 版本的模拟器
因为那个版本的模拟器无法支持高速体验
现在 我们有了一个特别版本的模拟器
它同时支持 ARM 和 x86 API
我可以在同一台模拟器上运行旧版的 C++ 代码
并享受 x86 模拟器的高速体验
我们目前只针对一个版本进行了发布

English: 
and we're really looking
for your early feedback
to make sure we have
all the right use cases.
And we'll scale this out
as you add more features
to this going forward.
And I also have an
update on Chrome OS.
So at I/O, we
talked about having
full first-class support for
Chrome OS for Android Studio.
And one pain point for
that is that, if you wanted
to debug your app
or deploy your app,
it required you to have
an external Android device
or boots your Chrome OS device
into the developer mode.
Now, that's no longer needed.
You can do all your end-to-end
development right inside
of your Chrome OS device.
So with the updating
release of M80 of Chrome OS,
you can now do your
development, debugging,
and deploy the app right
directly into Chrome OS
to see it running inside
of the Chrome OS laptop.
[APPLAUSE]
OK.
So we talked about a range of
features that we're releasing.
Things in the stable
channel and also
things on the bleeding edge
features on the Canary release
channel.
Now, let me talk about the
Canary release channel.
Of course, it is
bleeding edge, right?

Korean: 
초기 피드백을
크게 기대하고 있습니다
적절히 활용되고 있는지 확인하고
그리고 앞으로 더 많은
기능을 추가함으로써
이 버전을 확장할 것입니다
Chrome OS에 대한
업데이트도 있습니다
I/O에서 Android 스튜디오용
Chrome OS를
완벽하게 지원하는 문제에 대해
이야기했습니다
이것이 어려운 점 가운데 하나는
앱을 디버깅하거나
배포하고자 하는 경우
외부 Android 기기를 보유해야 하거나
Chrome OS 기기를 개발자 모드로
부팅해야 한다는 것이었습니다
이제 더는 그럴 필요가 없습니다
Chrome OS 기기 안에서
처음부터 끝까지
개발을 진행할 수 있습니다
Chrome OS의 M80 업데이트
출시와 함께
Chrome OS에서 바로
앱을 개발하고
디버깅하고 배포하여
Chrome OS 노트북 안에서
실행되는 모습을
확인할 수 있습니다
[박수]
좋습니다
저희가 출시하는 다양한
기능에 대해 이야기했는데요
Stable 채널에 출시한 기능과
Canary 채널에 출시한
최신 기능까지 말이죠
이제 Canary 출시 채널에 대해
이야기해보죠
물론 굉장히 최신입니다

Portuguese: 
Queremos o feedback de vocês
para garantir
que temos os casos de uso certos.
Nós escalonaremos à medida
que adicionarmos mais recursos.
Também há uma atualização
para o Chrome OS.
No I/O, falamos sobre o suporte
de primeira classe completo para Chrome OS
no Android Studio.
Um dos problemas era que,
para depurar ou implantar o app,
era preciso usar
um dispositivo Android externo
ou inicializar o dispositivo Chrome OS
no modo de desenvolvedor.
Isso não é mais necessário.
É possível fazer todo o desenvolvimento
diretamente no dispositivo Chrome OS.
Com a versão M80 do Chrome OS,
é possível fazer o desenvolvimento,
a depuração e a implantação do app
diretamente no Chrome OS
para vê-lo em execução
no laptop Chrome OS.
Falamos sobre vários recursos
que estamos lançando.
Alguns deles no canal Stable
e outros mais avançados no Canary.
Agora falarei sobre
o canal de lançamento Canary.
Trata-se de algo avançado.

Indonesian: 
kami menantikan masukan Anda
guna memastikan
penggunaan kasus yang tepat.
Dan kami akan menskalakannya
seiring dengan bertambahnya fitur
di masa mendatang.
Ada juga update untuk Chrome OS.
Pada I/O, kami membahas
dukungan penuh kelas satu
untuk Chrome OS di Android Studio.
Dan satu masalah
di sini adalah, jika ingin
men-debug atau men-deploy aplikasi,
Anda perlu memiliki
perangkat Android eksternal
atau melakukan booting pada
perangkat Chrome OS ke mode developer.
Kini, tidak perlu melakukannya.
Anda dapat melakukan
pengembangan menyeluruh langsung
di perangkat Chrome OS.
Dengan rilis update M80 Chrome OS,
Anda kini dapat melakukan
pengembangan, proses debug,
dan men-deploy
aplikasi langsung ke Chrome OS
agar dapat melihatnya
berjalan di laptop Chrome OS.
[TEPUK TANGAN]
Oke.
Kita telah membahas
banyak fitur yang kami rilis.
Fitur yang ada di saluran stabil dan juga
yang sudah diuji sebagian
di saluran rilis Canary.
Kini, saya akan
membahas saluran rilis Canary.
Tentu saja ini masih baru bukan?

Spanish: 
y esperamos recibir opiniones
para tener los casos de uso adecuados.
Los vamos a escalar a medida
que agreguen más funciones.
Tengo una actualización de Chrome SO.
En I/O, hablamos del excelente soporte
para Chrome SO para Android Studio.
Un problema era que si querían
depurar o usar su aplicación,
necesitaban un dispositivo Android externo
o reiniciar su dispositivo con SO Chrome
en modo de desarrollador.
Ahora, ya no es necesario.
Puede hacer sus desarrollos
dentro de su dispositivo con SO Chrome.
Gracias a la actualización
de M80 de SO Chrome,
ahora pueden desarrollar, depurar
y usar la aplicación
directamente en SO Chrome
y ejecutarla
en el equipo portátil con SO Chrome.
Hablamos sobre muchas funciones
que vamos a lanzar,
cosas en el canal Stable
y funciones de vanguardia
en el canal de lanzamiento de Canary.
Ahora, permítanme hablar sobre este canal.
Obviamente, es de vanguardia. ¿Verdad?

Chinese: 
非常期待大家的早期反馈
让我们获取合适的使用案例
随着大家不断添加新的功能 我们也会持续扩大发布规模
Chrome OS 方面也有一些新消息
在 I/O 大会上 我们讨论了
让 Android Studio 对 Chrome OS 提供完整支持 
这方面的一个痛点是 如果你想调试或部署你的应用
就需要有外接的 Android 设备
或者让你的 Chrome OS 设备进入开发者模式
现在已经不需要这么做了
你可以在 Chrome OS 设备里面进行所有的端到端开发
随着 Chrome OS M80 版本的发布
现在 应用的开发 调试 部署都可以在 Chrome OS 内部完成
并在 Chrome OS 笔记本上观看运行效果
好 我们讲了很多即将发布的功能
包括稳定渠道和 Canary 渠道里的最新内容
现在我们来谈谈 Canary 渠道
当然 它是最尖端的 里面充满了各种

Japanese: 
適切なユースケースを見分けるため
皆さんからのフィードバックを
お待ちしています
将来的には
これを拡張して
さらに機能を追加していく予定です
Chrome OSに関する
アップデートもあります
I/OではAndroid Studio用の
Chrome OSに関する
完全なファーストクラスサポートについて
お話ししました
それに関して１つの問題点がありました
アプリのデバッグや
アプリのデプロイを行いたい場合
外部のAndroidデバイスを使うか
Chrome OSデバイスを
開発者モードにする必要がありました
その必要がなくなりました
ご使用のChrome OSデバイスで
エンドツーエンドの開発全てを行えます
Chrome OS M80の
アップデートリリースでは
開発 デバッグを行い
そのアプリをChrome OSに
直接デプロイして
Chrome OSラップトップ内部で
実行することを確認できます
[拍手]
リリースしているさまざまな機能について
お話ししました
Stableチャンネルの機能だけでなく
Canaryリリースチャンネルの
最新機能についてもお話ししました
Canaryリリースチャンネルについて
お話しさせてください
それらは最先端の機能です

Chinese: 
刚刚进入开发阶段的功能和我们对未来的探索
所以 这些东西都还没怎么经历测试
所以 我们推荐同时运行 
稳定版和 Canary 版的 Android Studio
只要你把 Gradle 插件连接上 Android Studio 稳定版就行
你可以在同一个项目中使用两个版本的 Android Studio
不会出现冲突
不过 build 版本需要 4.0 版本才行
对 当然是这样
说到反馈方面
我们推荐大家使用 Canary 版
因为 Canary 是我们最好的反馈通道
如果你在稳定频道中提交了故障或 bug
那对我们来说就太迟了 因为我们正在准备推出下个版本
如果你喜欢今天我们介绍的这些功能并且想提交反馈
请使用 Canary 渠道进行提交
对我们来说更重要的是品质
回顾一下我之前对 Project Marble 的看法
我们设立了全新的品质标准
所以 Canary 版本中的部分功能
可能不会在前几个正式版本中出现
因为它们可能还没有准备就绪
这没问题 因为我们只是想确保这些功能是

Japanese: 
その多くが開発段階にあり
まさに進行中のものを
掘り下げて検証しようとしています
そのため非常に軽い
テストしか行われていません
ですから
Android StudioのStableバージョンと
Canaryバージョンの
両方を実行することをお勧めします
Android StudioのStableバージョンと
タグ付けされた
Gradleプラグインを使用している限り
これを行えます
同じプロジェクトで両方を
並行して実行できます
ただし ビルド属性に関しては
4.0が必要になります
その通りです
フィードバックに関して言えば
Canaryを使用することをお勧めします
フィードバックに最適なチャンネルだからです
Stableで問題やバグを提出した場合
次のバージョンへの移行までに
間に合いません
今日ご覧になった機能で
気に入ったものがあり
フィードバックを提出したい場合
Canaryチャンネルのフィードバック
メカニズムをご活用ください
さらに重要な点として
私たちは品質を最優先にしています
Project Marbleについて
お話しした際にも触れましたが
品質に関する新たな基準を設けています
Canaryで見かけた機能が
準備が間に合わなかったために
Stableの初期バージョンに
移行されない可能性があります
これは問題ありません
なぜなら
Stableリリースバージョンで
使用できるようにする前に

Portuguese: 
Muita coisa está só em desenvolvimento,
e estamos tentando explorar
o que já está em andamento.
Foram feitos poucos testes.
Recomendamos executar
a versão Stable do Android Studio
e a versão Canary.
Isso pode ser feito desde que
o plug-in do Gradle
seja marcado com a versão Stable
do Android Studio.
Os dois podem operar
paralelamente no mesmo projeto.
Mas para atribuir compilações,
é necessária a versão 4.0.
Para o feedback,
incentivamos o uso do Canary.
Ele é o melhor canal de feedback para nós.
Se vocês relatam um erro no Stable,
fica um pouco em cima da hora
antes de irmos para a próxima versão.
Se gostaram dos recursos de hoje,
usem o canal Canary para enviar feedback.
Para nós, o mais importante é a qualidade.
Voltando ao ponto inicial
sobre o Project Marble,
definimos uma parâmetro
de qualidade para nós mesmos.
Assim, alguns itens do Canary
podem não aparecer
na versão inicial do Stable
por não estarem prontos.
Não tem problema,
queremos garantir a estabilidade

Korean: 
많은 것들이
아직 개발 중이고
저희는 진행 중인 상황을
살펴보려 합니다
사실 테스트가 조금밖에
진행되어 있지 않습니다
그래서 Stable 버전의
Android 스튜디오와
Canary 버전의 Android 스튜디오를
모두 실행해보기를 권장합니다
Gradle 플러그인에
Stable 버전의 Android 스튜디오가
태그되어있는 한
둘 다 실행해볼 수 있습니다
아무 문제 없이
같은 프로젝트에서
둘 다 병렬로 실행할 수 있습니다
하지만 빌드 속성의 경우
4.0이 필요합니다
네
그렇죠
하지만, 피드백을 주시려면
Canary를 사용하는 것이 좋은데요
Canary가 최고의
피드백 채널이기 때문입니다
Stable에 버그나 문제를 제기하면
다음 버전으로 넘어가기 전에
확인하기에는
조금 늦습니다
따라서 오늘 본 기능이
마음에 들고
피드백을 보내고 싶다면
해당 피드백 메커니즘용
Canary 채널을 이용해 주십시오
하지만 저희에게 더 중요한 것은
저희가 품질에 중점을 둔다는
것입니다
제가 앞에서 말씀드린
Project Marble으로 돌아가서 말씀드리자면
저희는 스스로 새로운
품질 기준을 세웠습니다
따라서 Canary에서
볼 수 있는 것 중 일부는
아직 준비되지 않았기 때문에
Stable의 초기 버전으로
만들지 못할 수 있습니다
그래도 괜찮습니다
Stable 릴리즈 버전에서
이용할 수 있게 되기 전에

Spanish: 
Hay muchas cosas en la etapa de desarrollo
y queremos ver cómo anda todo.
Con ese fin, se hacen pocas pruebas.
Entonces,
recomendamos ejecutar la versión Stable
y la versión Canary de Android Studio.
Y pueden hacerlo si tienen
el complemento de Gradle
en la versión Stable
de Android Studio.
Ambas versiones se ejecutan en paralelo
en el mismo proyecto sin problemas.
Para la producción, necesitan 4.0.
Sí.
Con respecto a los comentarios
recomendamos Canary,
porque es mejor para dejar comentarios.
Si envían un problema o error en Stable
es tarde para nosotros
antes de pasar a la otra versión.
Si les gusta las funciones que ven
y quieren dejar comentarios, usen Canary
para el mecanismo de comentarios.
Pero, lo más importante
es que nos importa mucho la calidad.
Volviendo a lo hablado
sobre el Proyecto Marble,
nos pusimos nuevos niveles de calidad.
Algo de lo que podrían ver en Canary
puede no estar
en la versión inicial de Stable
porque puede no estar lista.
Y, está bien, porque queremos
que sea estable y de buena calidad

English: 
A lot of things are
just in development
and we're trying to explore
things that are going on.
And to that end, it's
actually very lightly tested.
So we do recommend running
both stable version of Android
Studio and the Canary
version of Android Studio.
And you can do
that as long as you
have your Gradle plugin
tagged with the stable version
of Android Studio.
You can run both in
parallel on the same project
with no issues.
TOR NORBYE: But for build
attribution, you'll need 4.0.
JAMAL EASON: Yes.
[INAUDIBLE]
But as far as
feedback goes, we do
encourage you to use Canary
because it's the best feedback
channel for us.
If you file a issue
or a bug on stable,
it's a little too
late for us before we
moved onto the next version.
So if you like the
features you saw today
and want to give us feedback,
please use the Canary channel
for that feedback mechanism.
But even more
importantly for us,
we're actually very
quality-driven.
Going back to my earlier
point about Project Marble,
we set a new bar for
ourselves for quality.
So some of the things
you might see in Canary
may not make it into the
initial version of stable
because it may not be ready.
And that's OK because
we want to make
sure it's stable and has
a high-quality release

Indonesian: 
Banyak fitur yang masih dalam pengembangan
dan kami mencoba mempelajari hal-hal baru.
Dan karenanya, belum
diuji secara menyeluruh.
Jadi, sebaiknya
jalankan versi stabil Android
Studio dan versi Canary Android Studio.
Dan Anda dapat melakukannya
selama Anda memiliki plugin Gradle
yang diberi tag dengan versi stabil
Android Studio.
Ini dapat dijalankan secara paralel
di project yang sama tanpa masalah.
TOR NORBYE: Tapi untuk
atribusi versi, Anda butuh versi 4.0.
JAMAL EASON: Ya.
Benar.
Tapi untuk memberi masukan,
sebaiknya gunakan Canary karena
merupakan saluran masukan terbaik.
Jika melaporkan masalah
atau bug di saluran stabil,
akan agak terlambat, kami
telah berpindah ke versi berikutnya.
Jika menyukai fitur hari ini
dan ingin memberikan masukan,
gunakan saluran Canary
untuk mekanisme masukan tadi.
Tapi yang lebih penting,
kami sangat menjunjung tinggi kualitas.
Kembali ke poin awal
tentang Project Marble,
kami menetapkan standar kualitas baru.
Beberapa hal yang Anda lihat di Canary
mungkin tidak dapat
mencapai versi stabil awal
karena belum siap.
Ini bukan masalah karena kami ingin
memastikan stabilitas
dan kualitas rilis yang tinggi

Japanese: 
それらを安定した高い品質で
リリースしたいと
考えているからです
今日はたくさんのことを
お伝えしました
少し振り返ってみましょう
Android Studio 3.6の
機能についてお話ししました
マルチティスプレイモード 
Design Toolsのアップデート
Intellij 2019.2のアップデートなどです
Jetpack ComposeとMotion Editorの
サポート
現在Canaryバージョンで利用可能な
Android Studio 4.0の
機能についても話しました
Android Studioをご利用になる際に
これらの点をお確かめください
Android Studio Canaryを
ダウンロードして
これらの機能を試してください
私ジャマルとトーアでした
私たちのセッションにお越しくださり
ありがとうございました
[拍手]
[音楽]

Korean: 
안정적인 고품질 릴리즈를
만들고자 하기 때문입니다
네
오늘 다양한 기능에 대해
이야기했습니다
요약해 보죠
Android 스튜디오 3.6에
실제로 있는 몇 가지 기능에
대해 이야기했고요
다중 디스플레이 모드
Design Tools 업데이트
그리고 Intellij 2019.2
업데이트 등에 대해 이야기했습니다
그리고 Android 스튜디오 4.0 안에 있는
Jetpack Compose 및 Motion Editor
지원 등에 대해 이야기했습니다
현재 Canary에서
이용할 수 있는 것들이죠
Android 스튜디오를 사용하시면서
이 기능들을 확인해보세요
그리고 Android 스튜디오 Canary를
다운로드하여
한번 사용해보시길 바랍니다
저는 자말, 이쪽은 토르고요
저희 발표에 와주신 것을
다시 한번 감사드립니다
[박수]
[음악 재생중]

Spanish: 
antes de que esté disponible
en la versión Stable.
Hablamos sobre diferentes cosas.
En resumen, hablamos de cosas
que están en Android Studio 3.6,
como el modo de múltiples pantallas,
las actualizaciones de Design Tools
y las actualizaciones
de Intellij para 2019.2
y el soporte de Jetpack
Compose y Motion Editor,
que están dentro de Android Studio 4.0,
actualmente disponible en Canary.
Vean todo eso mientras
prueban Android Studio.
Y, con esto,
descarguen Android Studio Canary
y prueben las funciones.
Nuevamente, yo soy Jamal y él es Tor.
Gracias por venir a esta sesión.

Chinese: 
稳定 高品质的 然后才会作为稳定版发布出来
好 我们今天讲了很多东西
回顾一下 我们其实讲了一些 Android Studio 3.6 中的东西
比如多显示设备模式 设计工具更新
以及 Intellij 2019.2 更新
此外 Android 4.0 还提供了
Jetpack Compose 和 Motion Editor
这些在 Canary 版中均可使用
请大家在使用 Android Studio 时踊跃尝试 
另外 请大家下载 Android Studio 
前往 Canary 试用新功能 
我是 Jamal 这位是 Tor
感谢大家来听我们的演讲

Portuguese: 
e a alta qualidade
antes de disponibilizarmos
na versão de lançamento do Stable.
Falamos sobre muitas coisas hoje.
Para recapitular, tratamos sobre itens
que já estão no Android Studio 3.6,
coisas como o modo de várias exibições,
atualizações nas ferramentas de design
e a atualização do Intellij para 2019.2.
Vimos coisas como o suporte
ao Jetpack Compose e ao Motion Editor,
inseridos no Android Studio 4.0,
atualmente disponível no Canary.
Teste tudo isso no Android Studio.
Faça o download do Android Studio Canary
para testar esses recursos.
Eu sou o Jamal, e este é o Tor.
Muito obrigado.

Indonesian: 
sebelum
meluncurkannya di versi rilis stabil.
Oke.
Kita membahas banyak hal hari ini,
secara ringkas,
kita membahas beberapa hal
yang telah ada di Android Studio 3.6,
fitur seperti mode beberapa
tampilan, update Design Tools,
dan update IntelliJ untuk 2019.2.
Kemudian fitur seperti dukungan
Jetpack Compose dan Motion Editor,
kini telah ada di Android Studio 4.0, yang
kini tersedia di Canary.
Silakan coba fitur tersebut
selagi Anda menggunakan Android Studio.
Selain itu, silakan download
Android Studio Canary
untuk mencoba fitur ini.
Saya Jamal dan rekan saya Tor,
terima kasih telah datang ke sesi kami.
[TEPUK TANGAN]
[SUARA MUSIK]

English: 
before we make it available
to you in the stable release
version.
OK.
So we talked about a
range of things today,
and thinking about a recap,
we talked about some things
that are actually in
Android Studio 3.6,
things like the multi-display
mode, Design Tools
updates, and the Intellij
update for 2019.2.
And then things like the Jetpack
Compose and Motion Editor
support, those are inside of
Android Studio 4.0, which is
currently available in Canary.
So please check
those out as you're
trying out Android Studio.
And with that, please
download Android Studio Canary
to try these features out.
Again, I'm Jamal
and this is Tor,
and thanks for coming
to our session.
[APPLAUSE]
[MUSIC PLAYING]
