
Portuguese: 
[MÚSICA]
Olá pessoal.
Me chamo Tianyu.
Trabalho no suporte do
Android Studio C++,
e hoje vou falar sobre os novos recursos
nessa área.
Vamos começar com o
suporte de JNI estendido.
O JNI permite que desenvolvedores chamem
a função C ou C++ do Java
ou Kotlin.
E para isso, basta declarar
uma função externa
em Kotlin ou um método nativo em Java
e fornecer a implementação 
em C ou C++.
Observe que assinatura e nome da definição
da função JNI
precisar corresponder à contraparte em
Java e Kotlin
de acordo com a especificação JNI.
Do contrário
você recebe um erro
de tempo de execução.
Sem o suporte de JNI estendido,
o fluxo de trabalho normal
é assim.
Você escreve o código, compila,
abre no emulador ou
em um dispositivo real
e o app trava na hora.

Indonesian: 
[SUARA MUSIK]
TIANYU GENG: Halo semuanya.
Saya Tianyu.
Saya bekerja di
dukungan C++ Android Studio,
dan hari ini saya akan
membahas tentang fitur baru di
bidang ini.
Pertama, mari kita bahas
tentang dukungan JNI yang diperluas.
JNI memungkinkan developer memanggil
fungsi C atau C++ dari Java atau Kotlin.
Dan untuk melakukannya, Anda hanya
harus mendeklarasikan fungsi eksternal
di Kotlin atau
metode native di Java,
lalu memberikan
penerapan di C atau C++.
Perlu dicatat bahwa
tanda tangan & nama definisi fungsi JNI
harus cocok dengan
pasangannya di Java & Kotlin
sesuai dengan
spesifikasi DNI,
jika tidak Anda akan
mengalami error waktu proses.
Tanpa dukungan
JNI yang diperluas,
alur kerja umum
terlihat seperti ini.
Anda menulis
kode, membuat aplikasi,
lalu meluncurkannya ke
emulator atau perangkat sungguhan,
dan aplikasi
langsung error.

Korean: 
[음악 재생]
안녕하세요?
저는 티안유입니다
Android 스튜디오 C++
지원팀에서 일하고 있고요
오늘은 이 분야의
새로운 기능 몇 가지를
소개하려 합니다
첫 번째는 확장 GNI 지원인데요
GNI는 개발자가 자바 Kotlin에서
C나 C++ 함수를
호출할 수 있게 해줍니다
Kotlin이나 자바의
네이티브 메서드에서
외부 함수를 간단히
선언하기만 하면
C나 C++가 구현되죠
여기에서 GNI 사양에 따라
서명과 GNI 함수 정의 이름이
자바와 Kotlin에서 대응되는 항목과
일치해야 한다는 점에 주의하세요
그렇지 않으면 런타임 오류가 발생하죠
따라서 확장 GNI 지원이 없을 경우
일반적인 워크플로는 보통 이렇습니다
코드를 쓰고 빌드한 후
에뮬레이터나 실제 기기에서
이를 실행하죠
그러면 앱이 바로 비정상 종료됩니다

Japanese: 
こんにちは
ティアンユーです
Android Studio C++の
サポートを担当しており
本日はその新機能について
お話しします
まずは拡張されたJNIサポートです
JNIよりJavaとKotlinから
CまたはC++関数を呼び出せます
Kotlinで外部関数を宣言するか
Javaのネイティブメソッドを宣言すると
CまたはC++での実装を提供します
このJNI関数定義のシグネチャと名称は
JNIの仕様に基づき
JavaとKotlinのものと
一致させないと
ランタイムエラーが発生します
拡張JNIサポートがなければ
典型的なワークフローはこうなります
コードを書き ビルドして
エミュレーターまたは
実際のデバイスで起動すると
アプリはすぐにクラッシュします

English: 
[MUSIC PLAYING]
TIANYU GENG: So hello everyone.
My name is Tianyu.
I work on the Android
Studio C++ support,
and today I'm going to talk
about the new features in this
area.
So first, let's talk about
the expanded GNI support.
GNI allows developers to call
C or C++ function from Java
Kotlin.
And to do so, one simply
declares an external function
in Kotlin or a native
method in Java,
and then provides the
implementation in C or C++.
Note that the signature and
the name of this GNI function
definition must match the
counterpart in Java and Kotlin
according to the DNI
spec, otherwise you
get the runtime error.
So without the
expanded GNI support,
the typical workflow
looks like this.
You write your
code, you build it,
you launch to the
emulator or a real device,
and the app instantly crashes.

Spanish: 
Hola a todos.
Mi nombre es Tianyu.
Trabajo en la compatibilidad
de Android Studio C++.
Hoy hablaré acerca de las nuevas funciones
de esta área.
Primero, hablaremos
sobre la compatibilidad extendida de GNI.
GNI permite a los desarrolladores
llamar a la función C o C++
desde Java o Kotlin.
Para ello, simplemente
se declara una función externa
en Kotlin
o un método nativo en Java
y luego se proporciona la implementación
en C o C++.
Tengan en cuenta que la firma o el nombre
de esta definición de función GNI
debe coincidir
con la contraparte en Java y Kotlin
según la especificación de DNI.
De lo contrario,
verán un error de tiempo de ejecución.
Sin la compatibilidad extendida de GNI
el flujo de trabajo típico se ve así.
Escriben el código, lo compilan
lo lanzan en el emulador
o en un dispositivo real
y la app falla instantáneamente.

Chinese: 
[播放音乐]
大家好
我叫Tianyu
负责开发Android Studio中对C++的支持功能
今天我将谈谈这个领域的
新功能
首先要说的是扩展的GNI支持
GNI让开发者可以从Java和Kotlin调用
C或C++函数
具体来说，只需在Kotlin中声明外部函数
或在Java中声明原生方法
然后在C或C++中提供实现
请注意，该GNI函数定义的签名和名称
必须匹配Java和Kotlin中的对应部分
并遵从DNI规范
否则会出现运行时错误
如果没有扩展的GNI支持
工作流通常是这样的
编写代码、构建代码
发布至模拟器或真实设备
应用立即崩溃

Indonesian: 
Jika membuka Logcat,
Anda mungkin melihat
error link yang tidak memuaskan.
Lalu Anda
memeriksa kode, dan melihat ada
salah ketik.
Lalu Anda memperbaikinya.
Proses ini menyusahkan
karena feedback
loop-nya sangat lama.
Kini, dengan
dukungan JNI yang diperluas,
ID akan menandai
error secara real time
saat mengetik, dan bahkan
terkadang menawarkan saran untuk Anda
untuk memperbaikinya secara otomatis.
Ini akan
memudahkan proses.
Misalnya, jika lupa
memberikan penerapan JNI
untuk native method,
dukungan ini kini menandai error di Kotlin
Berikut contoh lain saat Anda
memiliki ketidakcocokan tanda tangan.
Anda membuat
parameter ekstra
dalam penerapan, namun
ini tidak seharusnya ada di sini.
Selain itu, ID
juga memahami hubungan
antara penerapan
dan deklarasi metode native,
jadi ID menawarkan
penelusuran referensi navigasi,
dan memfaktorkan ulang dukungan.
Kami juga menerapkan
petunjuk jenis, sehingga
lebih mudah
untuk menulis kode JNI.

Spanish: 
Entonces, al abrir Logcat
probablemente vean
un error de vínculo faltante.
Luego, miran el código
y descubren que hay un error.
Luego lo corrigen.
Todo este proceso es frustrante
porque el ciclo de reacción es muy largo.
Ahora, con la compatibilidad
extendida de GNI
el ID destaca el error
en tiempo real mientras escriben
y, a veces, hasta les ofrece sugerencias
para corregirlo automáticamente.
Hace que sea mucho más fácil.
Por ejemplo, si olvidaron proporcionar
una implementación de GNI
para el método nativo,
destaca un error en Kotlin.
Aquí hay otro ejemplo
en el que no coincide la firma.
Proporcionaron un parámetro adicional
en la implementación,
pero no debería estar allí.
Y el ID comprende la conexión
entre la declaración del método nativo
y la implementación
por lo que ofrece navegación,
búsqueda de referencias
y compatibilidad con refactorización.
También implementamos 
sugerencias de escritura
para escribir tu código de GNI fácilmente.

Portuguese: 
Então você abre o Logcat
e vai encontrar ali
um erro de link
não satisfeito.
E você analisa o código e percebe um erro
de digitação.
Então você corrige.
Esse processo todo é frustrante
porque o loop de feedback é bem longo.
E agora com o suporte de JNI estendido,
o IDE destaca o erro em tempo real
durante a digitação e até
oferece sugestões
de correção automática.
Isso facilita muito.
Se você esquecer de fornecer
uma implementação JNI
para o método nativo,
um erro é destacado no Kotlin.
Temos outro exemplo de falta de
correspondência de assinaturas.
Está fornecendo um parâmetro extra
na implementação,
mas não deveria.
O IDE também entende a conexão
entre declaração e implementação de
método nativo,
e oferece suporte a navegação,
pesquisa de referência
e refatoração.
E implementamos dicas de digitação
para facilitar
a escrita do seu código JNI.

Korean: 
그럼 Logcat을 연 후
처리되지 않은 링크 오류를
찾게 될 겁니다
코드를 한참 들여다보다가 
어딘가에 오타가 있었다는 걸
알게 되죠
그제야 수정을 하게 됩니다
이런 절차는 정말 복잡하죠
피드백 루프가 아주 기니까요
하지만 확장 GNI 지원이 있으면
코드를 입력할 때 생기는 오류를
ID가 실시간으로 강조해 표시해줍니다
심지어 여러분이 자동으로 오류를
수정하도록 제안을 해주기도 하죠
일이 훨씬 쉬워집니다
예를 들어 네이티브 메서드에 
GNI를 구현하는 것을 잊어버렸다면
Kotlin 상에서 오류가 바로
강조 표시됩니다
또 다른 예로, 서명이 일치하지 않는
경우를 살펴보죠
여러분은 구현 과정에서
추가 매개변수를 제공하지만
이는 거기에 있으면 안 되는 것이죠
ID는 네이티브 메서드 선언과
구현 사이의 연결을 이해하기 때문에
탐색과 참조 검색
그리고 리팩토링 지원을 제공해 줍니다
게다가 타입 힌트도 구현되기 때문에
GNI 코드를 쓰는 게 더 수월해지죠

Japanese: 
Logcatを開くと
UnsatisfiedLinkErrorが
恐らく確認できます
次にコードを見ていくと誤記があることに
気づきます
修正します
フィードバックまでが長いため
プロセスはじれったいものになります
拡張JNIサポートなら
IDEがエラーを記述中にリアルタイムで強調し
さらに自動的に修正する提案を
する場合もあります
非常に簡単になります
たとえばネイティブメソッドの
JNI実装を提供するのを忘れていた場合
このようにKotlinのエラーを
強調します
別の例としてシグネチャの不一致を見ます
実装に余計なパラメータを入れていますが
入れるべきではありません
またIDEは
ネイティブメソッドの宣言と実装の関係性も
理解するので
ナビゲーションと参照と検索と
リファクタリングサポートを提供します
さらにヒントも表示するので
JNIコードをより簡単に記述できます

Chinese: 
然后打开Logcat
很可能会看到一个有待解决的
链接错误
然后检查代码，发现有
拼写错误
改正过来
整个流程令人沮丧
因为反馈环很长
现在，有了扩展的GNI支持
随着您输入代码
IDE会实时高亮显示错误
有时还会向您提供
自动修复建议
这让编码过程轻松了很多
例如，如果您忘记为原生方法
提供GNI实现，它会在Kotlin中高亮显示
错误
再看另一个例子，签名不匹配
您在实现中提供了一个
额外的参数，但它实际上不应该在这里
同样，IDE理解原生方法声明
和实现之间的联系
它会提供导航、引用搜索
和重构支持
我们还实现了类型提示
编写GNI代码变得更加容易

English: 
So you open up Logcat, and you
probably see a unsatisfied link
error there.
Then you stare at your code,
and you figure out, oh, there's
a typo.
Then you fix it.
Well, this whole
process is frustrating
because the feedback
loop is very long.
And now with the
expanded GNI support,
the ID highlights
error in real time
as you type, and sometimes
even offers suggestions for you
to fix it automatically.
And this makes it much easier.
So for example, if you've forgot
to provide a GNI implementation
for the native method, it
highlights an error in Kotlin
now.
And here's another example where
you have a signature mismatch.
You're providing
an extra parameter
in the implementation,
but it shouldn't be there.
And also the ID
understands the connection
between the native method
declaration and implementation,
so it offers navigation,
reference search,
and refactoring support.
And also we implement
type hint, so it's easier
to write your GNI code.

English: 
And also, all these features
works with native function
that's bound through calling
RegisterNatives in addition
to name mangling.
And the second thing you can do
with GNI is manipulating Java
or Kotlin objects,
methods, fields,
and arrays inside C or C++.
And this is achieved through
calling special functions
defined in the GNI.h header file
that's part of the Android NDK.
Again, without the
expanded GNI support,
this workflow is frustrating.
And we're here to help
with more static checks.
So for example, we implemented
completion and inspection
for the parameters
of FindClass call,
and similarly for
GetMethodID, where
we complete the method
name and type for you,
and again, similarly,
for FieldID.
We also implement
specific checks
that is custom to
these [? method ?]
of these special functions
in the GNI header.

Chinese: 
此外，所有这些功能都兼容原生函数
两者可通过名称改编和调用RegisterNatives
相结合
您还可以用GNI来操纵Java
或Kotlin对象、方法、字段
以及C或C++中的数组
这可以通过调用GNI.h头文件中
定义的特殊函数来实现
头文件是Android NDK的一部分
同样，没有扩展的GNI支持
这个工作流也会非常麻烦
我们的目的是帮助解决更多静态检查问题
例如，针对FindClass调用的参数
我们实现了补全和检查功能
针对GetMethodID也是如此
我们会为您补全方法名称和类型
类似的，对于FieldID也一样
我们还实现了特定检查
这些检查是针对GNI头文件中这些特定函数的
方法定制的

Indonesian: 
Selain itu, semua fitur ini
berfungsi dengan fungsi native
yang terikat melalui
pemanggilan RegisterNatives, selain dari
name mangling.
Hal kedua yang dapat
dilakukan dengan JNI yakni memanipulasi
objek, metode,
kolom, dan array
di dalam C atau
C++ dari Java atau Kotlin.
Ini dapat dilakukan
melalui pemanggilan fungsi spesial
yang ditentukan di file header
jni.h, yang merupakan bagian Android NDK.
Lagi-lagi, tanpa
dukungan JNI yang diperluas,
alur kerja ini
akan menyusahkan.
Kami di sini untuk
membantu terkait pemeriksaan statis.
Misalnya, kita menerapkan
penyelesaian dan pemeriksaan
untuk parameter
panggilan FindClass,
dan juga untuk
GetMethodID, tempat kami
menyelesaikan nama
metode dan mengetik untuk Anda,
dan juga, sama
halnya untuk FieldID.
Kami juga
menerapkan pemeriksaan tertentu
yang bersifat
kustom untuk metode ini,
untuk fungsi
khusus ini di header JNI.

Japanese: 
これらすべての機能は
名前マングリングに加えて
RegisterNativesを呼び出して
バインドされたネイティブ関数に
対応しています
JNIで可能な第２の機能は
CまたはC++内の
JavaまたはKotlinのオブジェクト
メソッド フィールド
アレイを操作できることです
これはAndroid NDKの一部である
jni.hヘッダーファイルで定義されている
特別な関数を呼び出すことで実現できます
繰り返しますが拡張JNIサポートがなければ
ワークフローはもどかしいものですが
さらなる静的解析で支援します
たとえば
FindClass呼び出しのパラメータの
入力と解析を実装しています
同様にGetMethodIDでも
メソッド名を入力します
さらにFieldIDも同様です
また JNIヘッダーの
これらの特別な関数のメソッドに特有の
解析も実装しています

Portuguese: 
E todos esses recursos funcionam
com função nativa
vinculada pela chamada de
RegisterNatives
além da name mangling.
E a segunda coisa que pode fazer com JNI 
é manipular objetos,
métodos,campos e matrizes
Java ou Kotlin dentro do C ou C++.
Isso é feito pela chamada
das funções especiais
definidas no arquivo de cabeçalho JNI.h
parte do Android NDK.
Sem o suporte de JNI expandido,
esse fluxo de trabalho é frustrante.
E estamos aqui para ajudar com mais
verificações estáticas.
Implementamos
preenchimento e inspeção
de parâmetros da chamada FindClass
e para GetMethodID,
em que
preenchemos o nome e tipo
de método para você,
e da mesma forma, para o FieldID.
E também implementamos
verificações específicas
personalizadas para essas funções
especiais no cabeçalho JNI.

Spanish: 
Además, todo esto
funciona con la función nativa
que está vinculada
al llamar a RegisterNatives
además del planchado de nombres.
Lo segundo que pueden hacer con GNI
es manipular objetos, métodos, campos
y conjuntos Java o Kotlin
dentro de C o C++.
Y esto se logra al llamar a funciones
especiales definidas en el archivo
de encabezado de GNI.h,
parte del NDK de Android.
De nuevo,
sin la compatibilidad expandida de GNI
este flujo de trabajo es frustrante.
Y estamos aquí para ayudar
con más comprobaciones estáticas.
Por ejemplo, implementamos
inspección y finalización
para los parámetros
de la llamada FindClass
y de manera similar, para GetMethodID,
donde completamos el nombre
y el tipo de método por ustedes
y, de manera similar, para FieldID.
También
implementamos comprobaciones específicas
personalizadas para estas
funciones específicas
en el encabezado de GNI.

Korean: 
그뿐 아니라, 이 모든 기능은
네임 맹글링이나
RegisterNatives 호출 등의
네이티브 함수와
호환됩니다
GNI가 가진 두 번째 기능은
C나 C++에 있는
자바나 Kotlin의 객체와 메서드,
필드, 어레이를
조작할 수 있다는 겁니다
이는 Android NDK의 일부인
GNI.h 헤더 파일 정의에 따른
특별 함수를 호출함으로써 가능하죠
말씀드렸듯, 확장 GNI 지원이 없으면
이 워크플로는 상당히 복잡해집니다
그래서 더욱 정적인 분석을 통해
여러분을 도와드리고자 합니다
그 예로, 저희는 FindClass 호출의
매개변수를 완료 및 검사하고
GetMethodID에서도
같은 작업을 제공하죠
여러분을 위해 메서드 이름과 
타입을 완성하고
비슷한 방식으로 FieldID에도
마찬가지 작업을 합니다
GNI 헤더에 있는 이러한 특별 함수에
커스텀 되어 있는 메서드에 대해서도
분석을 실행합니다

Korean: 
예를 들어 문자열 클래스에서
charAt 메서드를
호출한다고 하면
이 메소드가 char를 반환하기 때문에
bully 메서드보다는 
char 메서드를 호출하는 게 맞습니다
이건 실수죠
IDE는 이걸 감지하고요
또 다른 예를 들자면
저희는 CallCharMethod의
매개변수에 대해서도
더 많은 점검을 진행합니다
이 경우, char add가 
하나의 매개변수를 나타냅니다
하지만 저희는 이를 두 개로 패스하죠
마지막으로 IDE는
클래스를 찾기 위해 패스된
문자열 간 연결을 이해하고
메서드 ID와 필드 ID를 구해서
이와 상응하는 자바 또는 Kotlin 심볼과
연결합니다
그래서 여기에서도 탐색, 참조 검색
리프랙션이 작동하는 거죠
한 가지 더 말씀드리고자 하는 것은
APK 디버깅 새로고침인데요
APK 디버깅이란 무엇일까요?
어떤 개발자는 앱을 만들 때 
Android 스튜디오가 아닌
다른 툴을 사용합니다
하지만 디버그 작업은

Spanish: 
Por ejemplo, aquí,
como llamamos al método charAt
desde la clase de strings
pero este método muestra un "char".
Lo correcto aquí es CallCharMethod
en lugar de CallBullyMethod
Esto es un error y el IDE lo sabe.
Este es otro ejemplo.
Realizamos más comprobaciones
en los parámetros,
incluso para CallCharMethod.
En este caso, charAt
expresa un parámetro
pero estamos pasando dos.
Por último, ahora el IDE
comprende la conexión
entre la iteración de la string
pasada para encontrar la clase
el ID del método
y el ID del campo get
y establece la conexión entre eso
y los símbolos Java
o Kotlin correspondientes.
Nuevamente, la navegación,
la búsqueda de referencias
y la refracción funcionan.
Ahora quiero hablarles acerca de algo más
la recarga de depuración de APK.
¿Qué es la depuración de APK?
Algunos desarrolladores
no usan Android Studio
para compilar sus apps

Indonesian: 
Misalnya, karena kita
memanggil metode charAt
dari string class--
namun metode ini
menampilkan karakter, jadi yang harus
dipanggil di sini yakni
CallCharMethod, bukan CallBooleanMethod.
Ini adalah kesalahan,
dan IDE mengetahuinya.
Berikut contoh lainnya.
Kami menjalankan pemeriksaan
lainnya untuk parameter, bahkan
untuk CallCharMethod.
Dalam kasus ini, charAt
menunjukkan satu parameter,
namun kita
meneruskannya dua.
Terakhir, IDE kini
memahami hubungan
antara string
literacy yang diteruskan
ke FindClass,
GetMethodID, dan GetFieldID,
serta membuat
hubungan antara hal tersebut
dan simbol Java
atau Kotlin yang sesuai.
Sekali lagi, penelusuran
referensi navigasi, dan refraksi
telah berhasil.
Satu hal lagi
yang ingin saya bahas
yakni pemuatan
ulang proses debug APK.
Apa itu
proses debug APK?
Beberapa developer
menggunakan alat selain Android Studio
untuk membuat
aplikasi, namun mereka tetap

Portuguese: 
Aqui estamos chamando
o método charAt da stringClass,
mas esse método retorna um char,
então o flavor correto
para chamar aqui é CallCharMethod
em vez de CallBooleanMethod.
E isso é um erro,
e o IDE detecta.
E mais um exemplo.
Estamos fazendo mais verificações
nos parâmetros até
para CallCharMethod.
Nesse caso, CharAt expressa um parâmetro,
mas estamos passando dois.
E por último,
o IDE agora entende a conexão
entre os literais da string passados
para FindClass,
GetMethodID e GetFieldID
e estabelece a conexão entre eles
e os símbolos Java e Kotlin
correspondentes.
Então navegação, pesquisa de 
referência e refatoração funcionam.
E mais uma coisa de que
quero falar,
é recarregamento
de depuração de APK.
O que é depuração de APK?
Alguns desenvolvedores usam outras
ferramentas que não o Studio
para criar apps, mas ainda preferem

English: 
So for example, here since
we're calling the charat method
from string class--
but this method returns a
char, so the right [? flavor ?]
to call here is call char method
rather than call bully method.
And this is a mistake, and
the IDE knows about it.
And here's another example.
We're performing more checks
on the parameters even
for CallCharMethod.
In this case, char add
expresses one parameter,
but we're passing it two.
And lastly, the IDE now
understands the connection
between the string
[? literacy ?] passed
to find class, get method
ID, and get field ID,
and establishes the
connection between that
and the corresponding
Java or Kotlin symbols.
So again, navigation, reference
search, and refraction
just works.
And now one more thing
I want to talk about
is APK debugging reload.
So what is APK debugging?
Some developers use other
tools than Android Studio
to build their
apps, but they still

Japanese: 
ここではstringClassから
charAtメソッドを呼び出しています
しかしこのメソッドはcharを返すので
正しいメソッドは
BooleanではなくCharです
これは誤りであり IDEは認識します
こちらは別の例です
パラメータの解析を増やしており
CallCharMethodも対象です
charAtは１つのパラメータを扱いますが
ここでは２つあります
最後に IDEは
findClass GetMethodID
GetFieldIDに渡される
文字列リテラルの紐づけを
理解できます
それらと対応する
JavaまたはKotlinのシンボルを
関連付けます
ここでもナビゲーションと参照と
検索とリフレクションが
機能します
もう１つお話ししたいことは
APKデバッグリロードです
APKデバッグとは？
一部の開発者は
Android Studio以外で
アプリをビルドしますが

Chinese: 
例如，我们从字符串类
调用charAt方法
但这种方法会返回字符
因此这里要调用的正确flavor是
char方法，而非调用boolean方法
这里错了，IDE知道这一点
再看另一个例子
我们将对参数执行更多检查
即使是CallCharMethod也是如此
在这个例子中，charAt表达一个参数
但我们给它传递了两个
最后，IDE理解了所传递的
字符串字母之间的关系
然后查找类，获取方法ID、字段ID
并建立与相应的Java或Kotlin
符号之间的联系
同样，导航、引用搜索和重构
都适用
我想介绍的另一项功能是
APK调试重新加载
什么是APK调试？
一些开发者使用其他工具
而非Android Studio

Chinese: 
希望使用Android Studio进行调试
APK调试正好适合他们
他们可以在Android Studio中直接打开APK
并在其中启动调试会话
之前没有APK调试重新加载时
工作流是这样的
开发者每创建一个新的APK版本
都必须手动重新导入
并配置调试符号和源代码
以使源代码显示在IDE中
现在有了APK调试重新加载
IDE会在文件系统中自动获取APK的变化
用户无需
一次又一次执行配置过程
这有助于用户大幅提高迭代速度
Android Studio C++支持的新功能就介绍到这里
感谢大家的关注
请享受Android开发者峰会的其他精彩内容
[掌声]
[播放音乐]

English: 
want to debug with
Android Studio,
and APK debugging is for them.
They can open the APK
directly in Android Studio
and start a debugging
session there.
So previously, without
APK debugging reload,
the workflow looks like this.
Every time the developer creates
a new build of their APK,
they have to reimport it
manually and configure
the debugging symbols and
source code so that the source
code can show up in the IDE.
Now with the APK
debugging reload,
the IDE picks up the changes
of the APK on the file systems
automatically, so
users don't have
to go through that configuration
process over and over again,
and this helps the user
iterate much faster.
That's it for what's new in
Android Studio C++ support.
Thank you for your
attention, and enjoy
the rest of Android Dev Summit.
[APPLAUSE]
[MUSIC PLAYING]

Portuguese: 
depurar com o Android Studio,
e depuração de APK é para eles.
Eles podem abrir o APK direto no
Android Studio
e começar uma sessão de depuração.
Sem recarregamento
de depuração de APK,
o fluxo de trabalho é assim.
Sempre que o desenvolvedor cria
uma nova versão do APK,
precisa reimportar 
manualmente e configurar
símbolos de depuração 
e código fonte para que
o código fonte apareça no IDE.
Com recarregamento
de depuração de APK,
o IDE pega as alterações do APK nos
sistemas de arquivo
automaticamente,
e os usuários não têm
que passar por aquele processo de
configuração novamente,
e isso ajuda o usuário a iterar
bem mais rápido.
Essas são as novidades no suporte
do Android Studio C++.
Obrigado pela atenção e
aproveitem o restante da Conferência.
[APLAUSO]
[MÚSICA]

Korean: 
Android 스튜디오로
하고 싶어 합니다
APK 디버깅은 그런 분을 위한 겁니다
Android 스튜디오에서
직접 APK를 열어서
디버깅 세션을 시작할 수 있습니다
APK 디버깅 새로고침 기능이 없던
이전의 경우에는
워크플로가 이러했죠
개발자가 APK의 새 빌드를 만들 때마다
직접 수작업으로 리임포트하거나
디버깅 심볼과 소스 코드를 설정해
IDE에 소스 코드가
나타나도록 해야 했습니다
APK 디버깅 새로고침에서는
IDE가 파일 시스템상에서 자동으로
APK의 변경 사항을 감지하기 때문에
사용자가 설정 프로세스를
재차 거칠 필요가 없어
반복 속도가 훨씬 더 빨라지죠
지금까지 Android 스튜디오 C++
지원의 새 기능에 대해 말씀드렸습니다
들어주셔서 감사드리며
Android Dev Summit의
나머지 세션도 즐겨 주세요
[박수]
[음악 재생]

Spanish: 
pero quieren depurar con Android Studio.
La depuración de APK es para ellos.
Pueden abrir el APK directamente
en Android Studio
y comenzar a depurar la sesión allí.
Antes, sin la recarga de depuración de APK
el flujo de trabajo se veía así.
Cada vez que el desarrollador
crea una nueva compilación para el APK
tiene que volver a importarla manualmente
y configurar símbolos de depuración
y código fuente
para que este pueda aparecer en el IDE.
Ahora, con la recarga de depuración de APK
el IDE selecciona los cambios del APK
en los sistemas de archivos en automático.
Los usuarios no tienen
que realizar el proceso una y otra vez.
Esto permite que el usuario
itere mucho más rápido.
Esas son las novedades de compatibilidad
de Android Studio C++.
Muchas gracias por su atención.
Disfruten del resto de Android Dev Summit.

Indonesian: 
ingin melakukan
debug dengan Android Studio,
dan proses debug
APK-lah yang diperlukan.
Mereka dapat membuka
APK langsung di Android Studio
dan memulai sesi
proses debug di sana.
Sebelumnya, tanpa
pemuatan ulang proses debug APK,
alur kerja
terlihat seperti ini.
Setiap kali developer
membuat versi baru APK,
mereka harus mengimpor ulang
secara manual dan mengonfigurasi
simbol proses debug dan
kode sumber agar kode tersebut
dapat
muncul di IDE.
Kini dengan pemuatan
ulang proses debug APK,
IDE mengambil
perubahan APK di sistem file
secara otomatis,
jadi pengguna tidak harus
melalui proses
konfigurasi berulang kali,
dan ini membantu pengguna
melakukan iterasi dengan lebih cepat.
Itulah yang baru di
dukungan C++ Android Studio.
Terima kasih
atas perhatiannya, dan
selamat menikmati acara
lainnya di Android Dev Summit.
[TEPUK TANGAN]
[SUARA MUSIK]

Japanese: 
Android Studioで
デバッグしたい場合
APKデバッグが使えます
Android Studioで
直接APKを開き
そこでデバッグセッションを開始できます
従来APKデバッグリロードがなかった際の
ワークフローはこの通りです
開発者はAPKの新しいビルドを作成するたび
手動で再インポートし
デバッグシンボルとソースコードを構成し
ソースコードが
IDEに表示されるようにしていました
APKデバッグリロードを使うと
IDEは自動的にファイルシステムの
APKの変更を認識するため
ユーザーは繰り返し
構成プロセスを実施する必要がありません
ユーザーの繰り返し作業の速度が
大幅に上がります
Android Studio C++サポートの
新機能は以上です
ありがとうございました
残りのも講演もお楽しみください
