Android Q Beta 5 is Out! – What's New?

안녕하세요 ZolloTech와 오늘은 Android Q 베타 5를위한 Aaron이 출시되었습니다

지원되는 모든 기기를 지원하므로 베타가 지원되는 모든 기기에서 사용할 수 있습니다 4 및 왼쪽에 목록을 남겨 두겠습니다 이제 첫 번째 변경 사항은 실제 휴대폰을위한 부팅 시퀀스는 새로운 어두운 테마를 가지고 있습니다 Google이라는 단어가 있지만 배경은 완전히 검은 색입니다 G를 얻은 다음 안드로이드로 구동되므로 멋진 부팅이 가능합니다

빠르고 첫 번째 변경은 매우 미묘하지만 실제 줄 두께는 여기 자물쇠가 조금 더 얇은 것 같아 부부도있어 제스처 표시는 여기 아래로 우리는 제스처에 대해 더 자세히 이야기 할 것입니다 알림 창에 들어가면 지금 전화 잠금을 해제하십시오 새로운 억양 색상과의 일관성을 확인하면 파란색을 얻게됩니다

강조 색상을 선택하면 실제로 모바일 데이터 아래에 표시됩니다 악센트를 붙여서 모든 것이이 멋진 파란색 악센트 색을 가지고 있고 볼 수 있습니다 배터리 절약 기능이 모두 포함되어 있기 때문에 UI 전체에서 일관성이 있습니다 여기서 볼 수 있듯이 빌드 번호가 있으며이 빌드는 qpp 51입니다

9:05 3 0014 픽셀 3 XL에 있습니다 이제이 장치의 현재 빌드 번호입니다 다음은 알림 서랍에 다른 유형이 있습니다 알림을 보내면 여기에 오래된 해군 차량이 있고 알림이 사라집니다

이중 섹션이 있으며 이는 디지털 건강 및 웰빙입니다 그래서 디스플레이를 끄면 다시 켜십시오 알림이 잠금 화면에 있습니다 여기에서 조치를 취하거나 잠금을 해제 할 수 있습니다 내 용도에 따라별로 중요하지 않은 것들은 침묵 할 것입니다

알림을 보내면 여기에 침묵하는 알림이 있습니다 그냥 우리가 침묵 통보를보고 슬쩍 할 수있는 새로운 무언가가 유용하거나 그렇지 않은 경우 Google은 Android 기반의 on을 사용하여이를 조정합니다 그건 중요한 변화 중 하나입니다 또한 집에 약간의 변화가 있습니다 여기에있는 화면은 폴더 중 하나를 탭하면 실제로는 볼 수 있습니다

폴더 자체에 실제 색조가 조금 더 가볍다 그래서 그곳에는 아무런 큰 변화가 없지만 제스처가있는 한 우리가 제스처를 좋아하지 않는다면 제스처를 해제 할 수 있습니다 이 베타 버전에서 특히 좋아합니다 여기 설정을 클릭하면 조정할 수있는 위치가 표시됩니다 하단에 가서 시스템으로 이동 한 다음 제스처를하면 앱이 그것을 켜거나 끌 수있는 능력은 당신이 제스처 탐색 기능이 마음에 들지 않으므로 버튼 2 개 또는 3 개로 전환 할 수 있습니다

버튼을 사용하여 계속 사용할 수 있지만이 새로운 동작으로 애니메이션은 여러분이 우리가 보게 될이 새로운 제스처 애니메이션으로 집으로 돌아갑니다 모퉁이에 몇 가지 작은 점수가 있고 그것들은 우리가 할 수있는 것을 의미합니다 어느 한쪽 구석에서 스 와이프하여 Google 어시스턴트를 열면 열립니다 조금 더 새로운 동작이 조금 더 장난스럽게 보입니다 그래서 내가 열면 이 응용 프로그램을 누른 다음 멀리 던져 버리면 거기에 약간의 버그가있을 수 있습니다

여기저기서 내가이 애플 리케이션에 들어가면 멀리 던져 버린다 아래로 아이콘으로 위로 그리고 아래로 아이콘으로 그것 친절하고 종류의 장난 스럽군요 만약 내가 픽셀 중 하나에 장치를 짜내면 약간의 변화가 있습니다 전화를 너무 쥐어 짜는 경우 조금씩 말하면 짜내라고 말합니다 우리는 너를 다시 보게 될거야

더 짜내 야 조금 다르다 그런 다음 말하기 위해 짜내라고 말한다 좋은 그리고 그것이 필요하다는 것을 나는 모른다 그러나 만일 당신이 가면 지금 거기에있다

말하자면 앱 스토어에 새로운 작은 엿보기 또는 슬라이드가 있습니다 잠깐 여기에 손가락을 대고 조금만 들여다 볼 수있다 여기 서랍 서랍을 열면 완전히 몸짓으로 보일 수 있지만 그냥 이렇게 움직일 수는 없어 너는 들어가야 만하는 뒤 운동이야 여기 손가락을 치면 그곳에서 일종의 엿봄 움직임이 생깁니다

측면에서 설정을 들여다 보면 멋집니다 뭔가 조금 새로운 것이고 또 다른 일이 생길 때가 있습니다 이전에 고정을 사용했다면 화면 고정으로 다시 고정 할 수 있지만 거기에서 빠져 나갈 제스처가 있습니다 그래서 여기에서 꼭대기에서 탭하면 핀에 가야합니다 화면에 고정 된 상태로 표시됩니다

고정 해제 할 때까지보기에 계속 표시됩니다 스 와이프하여 핀을 잡아 당겨서 스 와이프하여 휴대 전화가 실제로 느껴지도록합니다 약간의 햅틱 피드백과 그 다음 우리는 그것을 쓸어 낼 수있다 그래서 우리가 그 작은 동작을하지 않으면 우리는 여기에 우리가 다시 핀으로 우리가 스 와이프하면 우리는 단지 스크롤 할 것이지만 우리가 손가락을 잡고 있다면 그것을 빠져 나올 수는 없습니다 여기에 다시 햅틱 피드백을 느낄 것입니다 그리고 나서 우리는 밖으로 나가서 일종의 멋지다 당신은 그것을 끄거나 켜 놓을 수있다

우리가 여기서 오른쪽으로 미끄러 져 넘어갈 수있는 통보로 가자 기본적으로 꺼져있는 알림을 음소거하는 아이콘 이제 앱 설정으로 이동하여 다시 활성화 할 수 있습니다 알림을 보내면 Hennis가 아래로 스크롤합니다 고급 기능으로 변경되었습니다 이제 알림이 일시 중지 될 수 있습니다

여기에 우리가 통보로 돌아가서 우리가 능력이 있어야합니다 아마 들어가기까지 1 분 정도 걸릴 것입니다 그 알림을 다시 울릴 수있는 능력을 가져야합니다 할 수 있기 전에 하단의 앱 제안을 사용 중지 할 수도 있습니다 이전 베타 버전에서 그렇게하면 원하지 않으면 다시 사용할 수 없게됩니다

그렇게하면 우리가 여기에 들어갈 수 없게하고 싶다면 우리 집 밑에 보일거야 우리가 제안에 가서 어떤 이유로 빛 테마로 간다면 설정 우리는 앱을 제안 할 수 없도록 설정할 수 있습니다 그 (것)들을 유지하는 것을 선호하는 그들을 건의하지 않을 것이다 그러나 저것은 조금 인 무언가이다 조금 새로운 기능이 있습니다이 기능의 이전 버전에서 반환 된 기능이 있습니다

이제 Instagram과 같은 앱에 어두운 테마를 적용 할 수있는 베타 버전 그게 기본적으로 없어 그래서 그렇게하기 위해서는 당신이 필요가 어둠의 테마는 이미 안드로이드 q 베타에서 활성화 된 다음 귀하의 설정을 유지해야하며 개발자 설정이 켜져 있는지 확인해야합니다 당신은 시스템에 가서 고급 개발자 옵션으로 간다 그러면 개발자가 될 것이다 아래로 스크롤하면 찾으러 가는데 조금 걸릴거야 그리고 너는 찾고있어

하드웨어 가속 렌더링이라는 섹션은 우리가 그것을 켜고 나서 집으로 돌아가서 열면 힘이 어두워집니다 Instagram과 같은 것입니다 그리고 우리는 여기 내 게시물 중 하나에 있습니다 어두운 테마가있어서 정말 멋져 보인다 멋진 어두운 테마가있다 아직 가지고 있지 않은 앱이라면 무시할 수 있습니다

Instagram과 같은 어두운 모드 또는 이미 다른 트위터로 이미 어둡기 때문에 특별히 작동하지 않을 것입니다 실제로 그 것입니다 이 모든 특정 업데이트 스크롤에서는 모든 것이 실제로 상당히 빠릅니다 슈퍼 매끄러운 개폐 애플 리케이션은 매끄럽고 매끄럽고 작동하는 것 같습니다 나를 위해 베타 4에서했던 것보다 베타 5에서 훨씬 더 나아졌습니다

다음 동영상에 어떤 모습인지 알고 있지만 내 생각에는 아래 코멘트는 당연히 내가 항상하는 것처럼 내가이 벽지를 링크 할 것이고 만일 당신이 아직 가입하지 않았 으면 알림 벨을 친다 다음 번에 출시 될 예정인 순간에이 동영상을보고 싶다면 당신은이 비디오를 즐겼습니다 항상 이것을 보아 주셔서 감사합니다 애런입니다 다음에 또 봐요

Android Q Beta 4 is Out! – What's New?

안녕하세요 ZolloTech 및 Android Q 베타 4에 대한 모든 애런은 현재 여기에 있습니다

개발자와 베타 테스터는 3 백 36 포인트 내 픽셀에 8 메가 바이트 세 XL 빌드 번호는 QPP4190502018입니다 이 특별한 빌드는 더 세련된 것입니다 OS 전반에 걸쳐 모든 종류의 작은 것들 중에서 가장 먼저 할 일은 픽셀 3a 및 3a Excel을 지원하므로 이러한 장치 중 하나를 사용할 수 있습니다 그것을 설치합니다 공식 안드로이드 베타에 대한 링크를 아래의 설명에서 첫 번째 변경 사항과 첫 번째 사항을 살펴 보겠습니다

api가 개발자를 염려하는 한 최종 결정입니다 개발자가 모든 일을 처리하기를 원한다면 좋을 것입니다 이제 최종 릴리즈 준비 이제 항상 켜져있는 디스플레이에도 약간의 변화가 있습니다 그래서 여기에 들어가면 노래를 시작하면 집이나 집에서 어떻게 생겼는지 보여 드리겠습니다 항상 켜져있는 화면으로 돌아가서이 기능을 켜면 이제 글꼴이 표시됩니다

시계가 조금 더 크고 또한 노래 이름이 여기에 있지만 그 다음에는 실제 아티스트와 함께 작은 음악 아이콘이 있습니다 날씨는 있지만 더 이상 날짜와 시간을 입력하지 않으면 내가 깨우면 여기서 잠금 해제 된 것을 볼 수 있습니다 현명한 잠금 장치로 이제는 일부 사람들에게 조금 다르게 보입니다 이것은 당신이 가지고 있어야하는지 모르는 사람들을위한 픽셀 존재를 보여주고 있습니다 설치되었거나 그렇지 않은 픽셀 싹이 있지만 조금 다른 경우도 있습니다

작은 자물쇠 아이콘이 이제는 맨 위에 있습니다 설정은 지금 fennec ation에 직면 해 있습니다 나는 9 ~ 5 가지를 찾을 수 없습니다 얼굴을 검색하면 얼굴이 보일 수도 있습니다 얼굴을 볼 수 없으므로 시도해 보았습니다

저를 위해 거기서 다만 아닙니다 그러나 몇몇 사람들을 위해 가정에 지금 있을지도 모른다 화면이 약간 다르므로 글꼴이 조금 보입니다 조금 더 굵게 그래서 만약 내가 픽셀 3a XL에 가서 3a는 안드로이드 9를 실행하지만 글꼴은 약간 다르다 베타 3과도 다르다 거기에서 정말로 거대한 그러나 그것은 또한 어둡게 모드가 약간의 비틀기를 가지고있는 것으로 바뀐다 당신이 어둠의 모드에 있다면 지금 내가 볼 수있는 작은 검색입니다 막대가 이제 어둡고 전원 버튼을 누른 경우 거기에 변화가뿐만 아니라이 명령 줄에서 활성화해야하지만이 몇 가지 카드와 관련이 있습니다

잠시 후에 그 카드를 보여 드리겠습니다 일반적으로 그것은 측면에 있지만 비상시에는 약간 똑같아 보입니다 더 어둡기 때문에 약간 변경되었지만 과감한 것은 없습니다 이제 우리는 우리가 들어 와서 선택할 수있는 몇 가지 작은 것들을 추가했습니다 배경 화면 미리보기 버튼이있어서 미리보기를 탭하면 지워집니다

당신은 더 나은 아이디어를 얻을 수 있도록 디스플레이에서 모든 것을 실제 배경 화면 바닥에 멋진 정보가있는 것처럼 보입니다 정말로 좋은 공유는 조금 비틀었다 그래서 만일 내가 크롬에 여기에 들어가면 그리고 나서 작은 점 세 개를 치고 나면이 점을 조금 나눕니다 우리가 복사 할 수 있도록 여기에 복사본이 있습니다 가장 많이 사용하는 앱과 함께 앱과 공유 한 사람 또는 물건 그 아래에있는 목록은 정말 멋지다

그리고 나서 그들은 또한 돌아왔다 상황 인식 회전 회전 잠금이있는 경우 내가 이것을 회전 시키면 회전하는 것을 알고 있지만 회전시키고 싶다면 작은 버튼을 치면 회전 할 것이고 여기서 수직으로 돌아갈 것입니다 초상화를 누른 다음 다시 칠하면 우리는 내가 언급 한 것을 지금 되돌릴 수있다 이전에 작은 힘 버튼으로 우리가 이것을 밀어 넣으면 다른 것입니다

왜냐하면 저는 명령 줄에서이 기능을 활성화하여 다른 응용 프로그램 및 / 또는 설정이 아닌 다른 옵션을 사용하여 여기로 들어가서 시스템 아래에 우리가 제스처와 제스처에 가면 나는 카드와 패스가있는 커맨드 라인이있는 이것은 신용 카드 패스 티켓 및 긴급 정보 보도 자료를 보여줍니다 이것을 보여줍니다 언론에 이것을 돌리면 전원 버튼을 누르고 있습니다 전에했던 것처럼 다른 것을해라 그래서 이것은 무언가이다 나중에 Google 결제를 위해 조금씩 변경 될 수 있습니다 지금은 더 많은 것을 볼 수있을 것입니다

여기서 Wi-Fi 아이콘이 조금 달라 보이는 것을 알 수 있습니다 신호가 낮을 때마다 다르다는 것을 쉽게 알 수 있지만 조금 있습니다 알림도 다르다면 왼쪽이나 오른쪽으로 스 와이프 할 수 있습니다 그들이 돌아 왔을 때 돌아와 방해하지 마라 그렇게 볼 수있다

알림 이제 어느 방향 으로든 스 와이프 할 수 있습니다 디스플레이에서 그냥 문지르면 상관 없어요 우리가 여기 들어갈 통보에 들어가면 다른 것입니다 앱과 알림, 그리고 알림이 표시됩니다 베타 4의 새로운 애니메이션에는 자동 알림도 있습니다

우선 순위 결정은 또한 행동과 응답을 제안하고 또한 우리는 알림 점 또는 그 알림 거품 지금이 표시를 보지 못했어요 지금은 네이티브이지만 지금은 개발자 옵션 이었으므로 베타 4를 주류로 삼고 있기 때문에 약간의 문제가 있습니다 다른 것은 또한 새로운 제스처가 있기 때문에 볼 수 있듯이 나는 뒤로 당기고있다 그 작은 화살은 조금 다르다 그리고 그것은 매우 빠르지 않다 솔직히 내가 여기로 돌아 가면 우리가 돌아갈 수 있다는 것을 알게 될거야

스 와이프 홈 및 스 와이프하여 다시 실제로 작동하지만 꽤 빠르지 만 물론 뒤로 버튼을 원한다면 꺼 버릴 수 있습니다 거기서 당신은 실제로 이러한 제스처를 켜야합니다 그래서 우리가 다시 가자 시스템에 이르기까지 개발자 옵션과 개발자 옵션에 따라 몇 가지 새로운 악센트 색상 그래서 나는이 밝은 파란색 색상을 볼 수 있도록 악센트 색상과 아래로 현재 나는 바다 악센트에 있어요 우리는 이제 계피를 가지고 있으므로 거기에 변화가있을 때까지 1 분이 걸립니다 공간 그리고 난초가 있습니다 그래서 몇 가지 새로운 색상 나는 종류의 바다 색 그래서 그들은 여기에있는 새로운 것들입니다

우리가 가면 잠을 말하고 잠을 자던 곳에서 여기에서 그들은 수면 시간을 변경하여 수면 시간을 변경 한 것을 볼 수 있습니다 수면 대신에 스크린 타임 아웃을하고, 그 후에 가정 설정에서 개요 및 모든 앱 목록에서 몇 가지 제안 사항을 삭제했습니다 더 이상 거기 있지는 않지만 모든 것이 더 세련되어 보인다 훨씬 더 많은 일이 진행되는 것은 우리가 이전에 가지고 있던 것의 정교한 것일뿐입니다 그것이 더 좋아지고 있고 더 좋아지는 것처럼 보인다 더 안정되어있는 것처럼 보인다

내가 베타 3을 사용해 본 적은 거의 나쁘지는 않지만 다시 당신이 버그와 물건들을 위험에 기꺼이하지 않는다면 나는 공개 버전이 나오면 나중에 나에게 알려줘 아래의 코멘트에서 생각해보십시오이 벽지를 링크 해 드리겠습니다 이미 가입하지 않았 으면 좋겠다 비디오는 항상 감사합니다

아론 다음에 보자

What's New in Kotlin on Android, 2 Years In (Google I/O'19)

[음악 재생] JEFFREY VAN GOGH : 안녕하세요 나는 Jeffrey van Gogh입니다

저는 Android Studio의 기술 책임자입니다 그리고 나는 프로그래밍 언어를 책임지고있다 및 컴파일러 하디 해리 : 그리고 저는 하디, 개발자 옹호자입니다 JetBrains에서

[치어 리더] JEFFREY VAN GOGH : 그래서 2 년이 지났습니다 구글이 안드로이드에 대한 코 틀린의 지원을 발표 한 이후 그리고 어제 Google은 Kotlin-first를 발표했습니다 그래서 우리는 당신에게 이것을 배경으로 줄 알았습니다 그리고 물론, 우리는 2 년 전에 시작하지 않았습니다

우리는 물건을 얻기 위해 상당한 시간이 걸렸습니다 안드로이드에서 Kotlin에 대한 준비 그리고 우리는 3 년, 3 년, 1 년 반 전에 결정했습니다 Google에는 수많은 언어 괴짜가있었습니다 나도 코 틀린과 놀기 시작 했어

헤이, 이것은 실제로 아주 멋지다 물론 Android Studio는 IntelliJ를 기반으로합니다 그리고 IntelliJ는 Kotlin을 오래된 코드베이스로 사용하기 시작했습니다 그래서 우리는 점점 더 코 틀린을 보게되었습니다 Android Studio에서 사용 중입니다

그리고 동시에, 우리는 고객 권고에서 많은 고객 피드백 게시판, 설문 조사 및 임시 토론 이 같은 회의에서 사람들은 Kotlin을 정말 좋아합니다 그리고 그들은 정말로 Google이 그것을 지원하기를 바라고 있습니다 왜냐하면 그들의 회사는 그렇지 않으면 Kotlin을 채택하지 않기 때문입니다 물론, 그런 새로운 언어를 사용합니다 큰 일이다

그래서 우리는 이사들에게 이것이 투자 할 가치가있는 무언가 우리가 발견 한 가장 좋은 방법은 우리 이사들에게 코드를 작성하게 Kotlin에서 며칠 동안 그 후에 그들은 팔렸다 I / O 2017 이전에 몇 달 전에, 우리는 그것을하기로 결정했습니다 이것은 많은 회의가이 모든 것을 설정하는 것을 의미했습니다

테크니컬 리드 나 매니저로서, 당신은 더 이상 코딩 할 시간이 충분하지 않습니다 기초를 설정하십시오 따라서 Google I / O 2017 이전의 모든 준비가 완료되었습니다 Android Dev 하위 레딧에이 큰 스레드가있었습니다 구글이 결코 Kotlin을 받아들이지 않을 것입니다

물론 우리는 무슨 일이 일어날 지 알고있었습니다 하지만 그 스레드에 회신을 보내는 것은 너무 어려웠습니다 그래, 2 년 전 Steph는 무대에 올랐어 코 틀린 지원 발표 나는 그것이 개발자의 가장 큰 박수라고 생각한다

기조 그것은 훌륭했다 물론, 우리 모두는 JetBrains과 Google 모두에서 알고있었습니다 그건 우리가 많은 일을했다는 것을 의미했다 우리 앞에 Kotlin이 잘 작동했는지 확인하십시오

Android 및 일반적으로 그리고 오늘, 우리는 우리가 지난 2 년 동안해온 일의 하디가 무슨 일이 일어 났는지 얘기 할거야 지난 몇 년 동안 코 틀린에게 그리고 나서 다시 가져 가겠 어 안드로이드 측에서 우리가 한 일에 대해서 이야기하겠습니다

하리 하리 : 고마워 시작하려면 먼저 언급하고 싶습니다 코 틀린 재단 (Kotlin Foundation) Google에서 공식 지원을 발표 한 시점을 기억한다면 몇 년 전에 Kotlin을 위해, 우리는 또한 간략하게 언급했다 우리가 창안 된 기초가 될 것입니다 JetBrains와 Google이 보호, 홍보 및 홍보 언어 Kotlin

재단은 이사회의 통제를받습니다 JetBrains의 두 대표, 두 구글, 및 1 명의 독립적 인 일원 그리고 당신에게 약간의 아이디어를주기 위해서입니다 기초의 범위가 무엇인지, 직업 중 하나 현재 언어 리드 디자이너를 임명하는 것이고, 물론 Andrey Breslav가 있습니다 변화를 막기위한 언어위원회

그리고이 점을 이해하는 것이 매우 중요합니다 범위면에서 제한적입니다 따라서 변경 사항을 깨는 것입니다 Kotlin은 지금도 열려 있기 때문에 계속 개발되고 있으며, GitHub에 우리는 여전히 KEEP을 가지고 있는데 이것은 Kotlin Evolution 개선 프로세스

그러나 언어위원회는 대부분 언어에 일어날 수있는 변화를 깨고 또한 상표 소위원회가 있습니다 그것은 Kotlin의 상표를 보호하는 것입니다 Kotlin을 홍보하고 사용하는 데 도움이되는 커뮤니티와 협력 공정한 방법으로 Kotlin 그리고 당신이 기초에 관하여 더 많은 것을 발견하고 싶은 경우에, 당신은 KotlinLang 웹 사이트에 갈 수 있습니다 세부 정보뿐만 아니라 더 많은 정보를 얻을 수 있습니다

Kotlin과 상표 등을 어떻게 사용할 수 있는지에 관한 정보 그리고 그걸로 데모로 넘어 갑시다 그리고 나는 언어로 당신에게 몇 가지 것을 보여줄 것입니다 이것은 내가 다른 사람의 기계를 사용하고있는 곳이다 이것이 어떻게 진행되는지 봅시다

ID가 맞다고 생각해 예 그래서 저는 언어에 대해 몇 가지 것을 보여 드리겠습니다 아마 가장 근본적이고 가장 중요한 것입니다 우리가 한 짓은 아주 취한 것입니다

오랫동안, 당신이 코 틀린을 쓰는 것에 익숙하다면 응용 프로그램을 사용하면 주된 진입 점이 있습니다 그래서 우리는 실제로 그것을 만들었으므로 매개 변수가 없습니다 그게 전부입니다 고맙습니다 제프리, 네가 원하니? 오

[웃음] 우린 2 년이 걸렸어 아니 그래서 우리는 우리가 가지고있는 작은 것들 중 일부부터 시작할 것입니다 언어 자체로 완성되었습니다 예를 들어, when 문을 사용하면 변수의 값을 캡처해야합니다

그 변수를 검사해야합니다 너는 너의 실제 내부에서만 그것을 사용하고있어 when 문 그래서 우리는 이것을 조금 더 멋지게 만들었습니다 본질적으로 변수를 때 문 자체

따라서 범위 밖에서 참조 할 필요가 없습니다 그리고 이것은 당신에게 당신의 언어로 의미를 부여합니다 사람들은 이것이 실제로 제한되어 있음을 이해합니다 조건부로 하지만 조금 더 얘기하자

우리가 소개 한 멋진 기능들 그것들은 좋지 않았다 나는 우리가 도입 한 더 멋진 기능을 말하고 있습니다 예를 들어 응용 프로그램이 있다고 가정 해 봅시다 클래스를 만들고 싶습니다

그리고 수업을 만들겠습니다 MicroserviceAPI라고 불릴 것입니다 그래서 저는 마이크로 서비스 API의 인스턴스를 만들 수 있습니다 마이크로 서비스 API를 말할 것입니다 우리는 거기에 갈

이제,이 마이크로 서비스가 필요한지는 모르겠습니다 마지막으로 갈거야 단지 유행 일 수 있습니다 그래서 내가하고 싶은 것은 사람들에게 이게이게 친절한 사람들이야 실험적인 기능과 같습니다

우리가 할 수있는 일은 우리가 실제로 할 수있는 것입니다 주석 클래스를 만든다 예를 들어, 이것이 새로운 API라고 말할 수 있습니다 그 주석 클래스에 주석을 달아라 Experimental이라는 다른 클래스와 함께 이제 새로운 실험적 주석을 사용할 수 있습니다

나는 내가 실험적으로 생각하는 어떤 것에도 창조했다 내 API에서 그래서 여기에이 새로운 API를 추가 할 수 있습니다 그리고 내가 그렇게하면, 이것이 빨간색으로 변하고 있음을 알 수 있습니다 그래서 그것은 나에게 컴파일러 오류를주고있다

당신이 이것을 사용할 수 없다는 말입니다 이것은 실험적인 기능이기 때문입니다 그 위에 마우스를 올려 놓으면 실험적이라고 말하는 것입니다 사실, 우리는 그것을 바꿀 수 있습니다 우리는 그것이 오류가 아니라, 실제로 경고로 정의 할 수 있습니다

그래서 여기에 경고가 될 수 있습니다 그리고 지금 막 가고 있습니다 경고로 표시됩니다 그래서 이것을 사용하기 위해서, 개발자 기본적으로이 기능을 선택해야합니다 내가 할 수있는 것은 Alt-Enter입니다

이제는 함수 호출에 새 API를 추가합니다 그래서 내가 어디에서 이것을 사용하는지, 이것은 실험적인 기능이라고합니다 이것은 사람들에게 당신이 지금 생각할 수있는 아이디어를줍니다 실험적이고 비슷한 종류의 API를 만들 수 있습니다 나는 아무것도 보증하지 않을거야

내일 우리가 뭔가를 바꾸고 싶다면 괜찮아 니가 경고 했어 Alt-Enter를 누르십시오 당신이 Alt-Enter를 봤다는 것을 알았습니다 괜찮아

너 자신의 잘못이야 그리고 우리가 실제로이 일을 한 것 중 하나는 우리는이 계약 개념을 도입 했습니까? 따라서 약간의 코드 계약에 익숙하다면, 우리는 이것을 Kotlin의 실험적 기능으로 소개했습니다 게다가 그래서 나는 어떤 함수가 있다고 가정 해 봅시다 예 : printLength

그리고 이것은 nullable 인 문자열을 취할 것이고, 그리고 string이 null이 아닌 경우, 나는 println 길이 할거야 이제이 방법이 효과가 있으며 스마트 캐스트가 완료되었습니다 문자열, null이 아닌 문자열, 내가 이미 그걸 발견했기 때문에 이것이 nullable이 아니라는 것을 알아 냈습니다 그래서 나는이 똑똑한 던지기를 할 수있다 그러나 내가 이것을 취해야한다면, 그리고 널 (null)이 아닌 대신에, 나는 무언가를한다, 아니다, 나는 앞으로 나아가고 창조한다

내 함수, 그래서 내 함수를 만드는 가정 해 봅시다 String이고 notNull 인 경우 부울을 반환합니다 그런 다음 반환 값이 null이 아니라고 말합니다 그 효과가 없다는 것을 알 수 있습니다 컴파일러가 실제로 그것이 not-nullable

컴파일러에게 알려주는 것이 좋을 것입니다 이 기능은 특정 계약을 준수해야합니다 그리고 Kotlin에서 이것을 정의 할 수 있습니다 계약 람다를 사용하여 계약 함수 계약이다 그리고 그것이 수입이라고 말할 수 있습니다

그리고 나는 진정한 의미의 반환을 말할 수 있습니다 이 @ notNull이 null이 아님을 나타냅니다 이제 오류가 발생합니다 무시해 아니, 농담이야

이 오류가 발생하는 이유 이것은 위에서 언급했듯이 실험적인 기능이기 때문입니다 두 가지 방법이 있습니다 첫 번째 것을 보여주었습니다 주석을 추가 할 수있었습니다 그러나 주석을 추가하면 그 주석이 전파되지 않습니다

그래서 뭔가가 그 API를 사용하고 있다면, 또한 주석을 추가해야합니다 전파 주석을 추가 할 수 있습니다 이것,이 형식입니다, 그리고 지금 나는 그렇게하지 않아도됩니다 그 통지를 추가하자마자, 지금 자동으로 다시 null이 허용되지 않는 문자열로 변환됩니다 따라서 실제로 계약을 맺고 함수에 대한 당신의 주장 특정 조건을 충족시킵니다

그리고 그것은 기본적으로 특정 수준의 코드 정확성 실제 코드에서 그럼 우리가 뭘하고 있는거야? 글쎄, 우리는 이것을 직렬화라고 부릅니다 멀티 플랫폼 인 직렬화 라이브러리입니다 JVM, JavaScript, Kotlin / Native, iOS, macOS, 리눅스, 윈도우, 임베디드 나는 태양 아래 모든 것을 언급했다고 생각한다

그리고 이것은 다중 플랫폼 라이브러리입니다 어떤 종류의 반성도 요구하지 않는, 일부 제품의 일부입니다 우리가 언어와 생태계의 일부로하고있는 일 그것 주위 그래서 여기에서는 클래스, 전형적인 데이터 클래스, 그리고이 serializable 어노테이션을 추가했다 이 라이브러리는 Kotlin 직렬화 라이브러리의 일부이며, 그런 다음 고객이 있으며 고객 목록이 있습니다

그래서 저는 println과 같은 것을 할 수 있습니다 그리고 나서 여기에서 나는 Json을 할 것입니다 stringify, Customer, 사용하고 싶은 시리얼 화자를 표시 한 다음 실제 고객을 전달하십시오 그리고 나는 똑같은 일을 고객 명단에서 할 수 있습니다 그래서 여기에 목록을 작성한 다음 고객 목록을 전달할 수 있습니다

그리고 이것을 실행한다면, 기본적으로 무엇을 할 것인가? JSON에서 해당 데이터 클래스로 출력됩니다 우리는 JSON을 지원합니다 Protobuf에 대한 지원이 있습니다 그리고 다른 것들이 작동합니다 그리고 우리는 분명히 그 반대를 할 수 있습니다

예를 들어, 여기에 JSON이 있다고 가정 해보십시오 이제 JSON을 만들어 보겠습니다 그래서 우리는 id가 1과 같을 것이고, 그 다음에 이름이 나와 같습니다 이메일은 you@mecom과 같습니다

나는 너무 독창적이다 이제 println을 할 수 있습니다이 경우, 저는 Json을 할 것입니다 parse, serializer를 다시 통과 시키십시오 그리고 내가 전달하고자하는 실제 JSON

그리고 이것이 할 일은 본질적으로 나에 대한 실제 데이터 클래스 객체 그리고 당신은 그것이 또한 – 나를 위해 데이터 객체를 반대로 만듭니다 내가 뭘 한거지? 이메일, 이름, 이메일 관객 : [INAUDIBLE] 하리 할리 : 필드 소스가 필요합니까? 아니, 그렇지 않아 관객 : [INAUDIBLE] 하리 할리 : 아니

그건 사실 맞아 어쨌든, 그렇게 일하고있었습니다

[웃음] 제프리예요 그는 뭔가를했습니다 제프리 반 고글 : 어 – 허 [박수 갈채] HADI HARIRI : 나는 사람들이 박수를 치기를 정말 좋아합니다 그래서 나는 그곳에서 무슨 일이 일어나고 있는지 모른다

그러나 그것은 라이브 데모에 대한 좋은 점입니다 뭔가 잘못 됐는지 확인하고 싶습니다 나는 사실 그것을 실제로했다 그래서 저는 그것을 운동으로했습니다 나중에 사무실 시간에 나에게 와서 그게 뭐가 잘못 됐는지 말해 줄거야

계속 나아 갑시다 내가 너에게 보여주고 싶은 다음 주석 클래스에 대한 간략한 개요입니다 여기에 지원을위한 몇 가지 추가 사항이 추가되었습니다 열거 형 예를 들어, 주석에 enum을 가질 수 있습니다

중첩 된 주석을 가질 수 있습니다 내 동반자 개체의 일부로 속성을 가질 수 있습니다 다시 말하지만, 이것은 나에게 더 많은 표현력을줍니다 실제 주석을 사용할 때 이제 우리가 작업 해 온 또 다른 것이 있습니다

당신이 들었을지도 모르는 멀티 플랫폼 프로그래밍입니다 그리고 멀티 플랫폼 프로그래밍의 아이디어는, 한 입 가득, 그 아이디어는 바로 지금 Kotlin입니다 다른 유형의 플랫폼을 타겟팅 할 수 있습니다 그래서 JVM을 대상으로 할 수 있습니다 자바 스크립트를 타겟팅 할 수 있습니다

네이티브 등을 타겟팅 할 수 있습니다 이제 이것에 대한 위대한 것들 중 하나 코드를 공유 할 수있는 능력, 왜냐하면 내가 공유하기를 원하는 많은 코드가 있기 때문입니다 권리? 비즈니스 로직, 검증 로직 등이 있습니다 내가 공유를 끝내고 싶다 그러면 우리는 어떻게 이런 일을 할 수 있습니까? 이것이 우리가 멀티 플랫폼의 개념을 도입 한 곳입니다

프로그램 작성 그리고 그 결과로, 당신은 지금 이 다중 플랫폼 프로젝트를 가질 생각이 들었습니다 그래서 당신은 내가 IDE에서이 프로젝트를 가지고 있다는 것을 알 수 있습니다 다른 플랫폼을 타겟팅하고 있습니다 그래서 나는 macOS를 가지고 있고, JVM을 가지고 있으며 JavaScript를 가지고있다

그런 다음 일련의 공통 코드가 있습니다 이것은 보통이라고 불린다 그리고 여기 안에는 몇 가지 코드가 있습니다 그래서 여기에 hello라는이 함수가 있습니다 즉, platform

name에서 인사하는 것입니다 그리고 platformname은 object의 속성입니다 그러나 차이점은이 객체 기대라고하는이 단어가 앞에 있습니다 이것이 말하는 것은 이것이 약간의 코드라는 것입니다

내 공통 코드에서 참조 할 수있는 구현은 실제로 여기에 제공되지 않습니다 구현이 제공 될 것입니다 다른 유형의 플랫폼에서 다른 방식으로, 이는 플랫폼에 따라 다를 수 있기 때문입니다 그래서이 귀여운 것을 볼 수 있습니다 여기 모퉁이에 작은

Alt Enter를 누르면 선언에 들어가라고 말하면서, 어떤 플랫폼 선언을보고 싶은지 묻습니다 따라서 JVM이라고하면 JVM으로 연결됩니다 내가 돌아가서 macOS에서 실제 선언문으로 간다면, 그것은 나를 macOS에 데려 갈 것이다 권리? 그래서 다른 플랫폼에서 다른 구현을 할 수 있습니다 그럼에도 공통 코드에서 해당 코드를 참조 할 수 있습니다

내 공유 코드 기반의 일부로 사용하십시오 그리고 시원한 것은 그렇게 생각해

생각해라 인터페이스와 조금 닮았습니다 그러한 인터페이스의 구현 그리고 멋진 점은 정적 컴파일 시간을 얻는다는 것입니다 확인, 말하자면 그래서 내가 이것을 주석으로 달아서 여기로 돌아 가면, 당신은 그것이 저에게 오류를주는 것을 볼 수 있습니다, 실제 플랫폼 중 하나 구현이 누락되었습니다

이제이 작업을 통해 공통 코드를 공유 할 수있는 다중 플랫폼 프로젝트 기초를두고 특정 구현을 기반으로한다 실제 목표에 약간 다르게 적용됩니다 그리고 그것은 멀티 플랫폼 프로젝트의 일부입니다 우리가 코 틀린과 함께 나아갈 것을 제안하고있다 예를 들어 Android와 공통 코드 기반을 공유하는 Android 애플리케이션, iOS 등

슬라이드로 다시 전환 할 수 있다면 내가 너에게 약간 얘기 할거야 우리가 가져온 다른 것들 Kotlin에게 언어 우리는 더 많은 표준 라이브러리 API를 가지고 있습니다 우리는 여전히 메소드의 API 번호를 유지하고 있습니다 조금 낮추지 만 더 많은 기능을 추가하고 있습니다

그 지역에 부호없는 정수 지원 – 아무도? 아니? 예 [박수 갈채] 나는 누군가를 항상 알고 있기 때문에 그것을 추가했다 그것에 대해 두드림 분명히 우리는 2018 년 패킷 KotlinConf를 발표했습니다

Kotlin 네이티브가 베타를 친다 툴링면에서 우리는 향상된 성능을 제공했습니다 Gradle 프로젝트를위한 고속, 병렬 빌드, KAPT를 사용한 점진적 주석 처리 Google에서 Ivan Garvrilovic에게 큰 소리 치십시오 우리를 돕기 위해

새로운 유형의 추론 엔진 상호 운용성의 많은 경우에, 특히 RX 주변에서 일하는 경우, 뿐만 아니라 언어를 조금 더 빌더를 사용할 때 간결하게, 등등 그리고 우리는이 프로그레시브 모드를 도입했습니다 본질적으로 당신이 코 틀린을 시험해 볼 수있게 해줍니다 새로운 기능을 사용해보십시오 일부 코드를 어기십시오

이제는 할 수있는 깃발입니다 Kotlin과 함께 좀 더 살기 가능하게하다 가장자리에 그리고 그걸로 제프리에게 건네 주겠어 그게 우리가했던 다른 것들을 보여줄거야

특히 안드로이드에서하고 있습니다 JEFFREY VAN GOGH : 고마워, 하디 데모를 잊어 버린 기능이 하나 있다고 생각합니다 HADI HARIRI : 당신이 무슨 말을하는지 전혀 모르겠습니다 JEFFREY VAN GOGH : 괜찮습니다

내 데모에 보여 줄게 HADI HARIRI : 당신이 아마 그것을 망 쳤어 [웃음] 제프리 반 고글 : 좋아 이제 Android 측에서 수행 한 작업을 살펴 ​​보겠습니다 Kotlin을 지원합니다

먼저 OS로 시작합시다 물론 OS는 바이트 코드로 작동합니다 따라서 Kotlin을 지원하기 위해해야 ​​할 일이별로 없습니다 그러나 우리는 정확성을 추가했는지 확인했습니다 성능 테스트를 통해 코 틀린 패턴을 깨지 않게했습니다

우리는 몇 가지 구체적인 성능을 구현했습니다 이러한 테스트를 기반으로 한 최적화, 루프 최적화에 특히 적합합니다 그리고 나서 우리는 OS 측면에서 큰 일을했습니다 디버깅 지원이 향상되었습니다 Kotlin은 몇 가지 구조를 가지고 있습니다

당신이 다른 언어로 가지고 있지 않은 인라인 함수처럼 Android의 새로운 버전 이제 더 나은 디버깅을 지원합니다 그런 다음 안드로이드 프레임 워크, 거기에서 일어나는 일이 많습니다 중요한 것은 API 주석을 추가 한 것입니다 아직 완성되지 않았습니다

그러나 새로운 API는 이제 nullness와 기본 매개 변수를 갖습니다 기본 값 주석이 있으므로 Kotlin에서 온 사람들을 사용할 수 있습니다 기존 API를 통해 작업하고 있습니다 뿐만 아니라 주석을 달 수 있습니다 그런 다음 Kotlin 확장 API를 추가했습니다

그래서 이것들은 여러분이 프로젝트에 다음을 제공하십시오 확장 메소드를 통한 추가 API Kotlin 코드를 더 관용적으로 만드십시오 그런 다음 우리는 전체 묶음에 대해 코 루틴 지원을 추가합니다 Jetpack 라이브러리 [박수 갈채] 따라서 비동기 코드를 작성할 수 있습니다

좀 더 절차적인 방법으로 그리고 물론, 어제 우리는 Jetpack Compose를 발표했습니다 그것은 모두 코 틀린입니다 이제 데모를 살펴 봅시다 좋아요 그래서 여기에 작은 앱을 만들면, 쇼 목록을 다운로드합니다

개조를 사용하여 서버에서 사용할 수 있습니다 그런 다음 로컬 SQL 데이터베이스를 검사합니다 방 API를 사용하여이 쇼들을 봤다 면요 그래서 여기에, 내가 정의한 것을 볼 수 있습니다 API를 사용하여 둘 다 RX 자바를 사용하여 쇼의 목록을 얻을, Kotlin 코딩 비동기 기능을 사용할 수도 있습니다

그리고 API는 거의 동일하다는 것을 알 수 있습니다 같은, 조금 다른 반환 유형 그리고 방 쪽 – 오, 미안 (QUIETLY) 내 코드는 어디에 있습니까? 좋습니다, API는 건너 뜁니다 꽤 많이 있습니다

오, 여기 있습니다 죄송합니다 그래서 당신은 똑같은 것을 봅니다 나는 쇼를 봤어? Java의 RX는 매우 유사합니다 여기 Flowable이 있습니다

[무관심]이 있습니다 따라서 API는 꽤 유사합니다 이제 전화하는 방식을 살펴 보겠습니다 RX와 Java 사이의 코드 – RX와 coroutines 그래서 RX에서는 쇼를 진행하기 위해 많은 운영자를 사용합니다

모든 비동기 호출로 우리의 흐름을 수행하십시오 그리고 이것들은 꽤 복잡해 질 수 있습니다 그리고이 코드는 노란색으로 강조 표시되어 있습니다 그게 내가 아는 뭔가가 있다는 뜻이야 반환 유형으로 수행

따라서 구독 할 때, 당신은 구독을 처리합니다 물론 RX는 Java에 뛰어난 표현력을 제공했습니다 그리고 RX의 발명가들은 똑똑했습니다 그들은 그들이 무엇을 만들고 있는지 알았습니다 그러나 그들은 언어에 의해 제한되었습니다

Kotlin에서 우리는 이제 coroutines를 가지고 있습니다 우리는 실제로 이것을 훨씬 더 멋지게 할 수 있습니다 그래서 코 루틴을 사용하는 동일한 코드가 있습니다 먼저 서버에서 프로그램 목록을 가져옵니다 우리는 이것을 대기 함수라고 부릅니다

신원이 알려줍니다 이봐 요 여기서 비동기적인 일이 일어나고 있습니다 그런 다음 우리는 for for 루프를 사용할 수 있습니다 그리고 그것은 반환 쇼 동안의 [INAUDIBLE]입니다

그리고 우리는 우리의 비동기 내가 로컬 데이터베이스에 쇼를 본 적이 있는지 알아보기 위해 호출하십시오 그리고 거기에서 계속됩니다 그리고 나서, 여기에, 당신은이 발사 호출을 봅니다 이 전화 해 데이터 세트가 변경되었음을 알리는 지 확인하십시오

UI 스레드에서 그리고 여기서 좋은 점은 절차 적으로 보입니다 디버깅을 할 때 – 나는 지금 시작해야한다 물론 작동하지 않습니다 오! 우리는 거기에 갈

이미 실행 중입니다 그래서 내가 실제로 볼 수 있다는 것을 알 수 있습니다 전체 방법으로부터의 변수들에서, 특정 운영자 만이 아닙니다 그래서 인생이 훨씬 쉬워집니다 비동기 코드를 디버깅 할 때 이제 슬라이드로 다시 전환하십시오

다음은 Android Tooling입니다 Android Studio에서 많은 작업을 수행했습니다 Kotlin이 잘 지원되는지 확인하십시오 우리가 한 첫 번째 일은 Kotlin 플러그인이 Android Studio에 포함되어 있음 우리가 그것을 공개하기 전에 우리는 그것을 잘 테스트 할 수 있습니다 JetBrains와 긴밀하게 협력했습니다

그들이 Kotlin 플러그인을 업데이트 할 때마다, 공개하기 전에 테스트를 통해 확실하게 확인합니다 Android Studio와 Kotlin은 잘 작동합니다 다음으로 Android 리팩토링 지원을 추가했습니다 IDE에는 많은 작업이 있습니다 Android 관련 리팩토링입니다

우리는 지원을 추가하기 위해 노력하고 있습니다 코 틀린에있는 모든 사람들에게 린트쪽에는 린트가 거의 있습니다 완전히 다시 작성되었습니다 자바 언어에 대해 [INAUDIBLE] 점검을 작성하는 데 사용되었습니다

이제는 UAST라고 불리는 것을 사용합니다 한 번 같은 린트 체크를 쓸 수 있습니다 그리고 Kotlin과 Java 코드를 모두 분석 할 수 있습니다 제품 템플릿을 추가하여 당신은 새로운 단편이나 새로운 활동을 만들고 있습니다 당신은 Kotlin 코드를 처음부터 가지고 있습니다

당신은 그것을 변환 할 필요가 없습니다 이제 컴파일러 측면에서, 우리의 새로운 Shrinker R8 Kotlin 특정 최적화가 많이있다 그것으로, 당신이 만드는 이익을 얻을 수 있도록 가능한 한 작은 코드 물론 IDE는 이제 Jetpack을 지원합니다 구성된 프레임 워크

문서 및 샘플 사이트에서, developerandroidcom을 보면, 모든 API 참조에는 이제 Kotlin 및 Java 구문이 모두 있습니다 유효한 Kotlin 관련 문서 포털이 있습니다

Kotlin을 시작하는 방법, 사용법을 알려줄 것입니다 호출자 루틴 등 또한 많은 샘플과 스 니펫 이제 Kotlin을 사용할 수 있습니다 양쪽 측면, GitHub 샘플입니다 올해 Google I / O를 살펴볼 수있을뿐만 아니라, Androids의 프레젠테이션 대부분을 볼 수 있습니다

그들의 샘플을 Kotlin에서해라 당신도 볼 수있는 몇 가지 애플 리케이션이 있습니다 Google I / O 앱은 물론이 새로운 Android 해바라기 앱 Kotlin을 사용하여 처음부터 구축되었습니다 우리는 종종 헤이 (hey)를 요청 받는다 너희들이 코 틀린을 추천하고있다

하지만 너 혼자 사용하고 있니? 물론 그것은 매우 공정한 질문입니다 현재 Google에는 많은 사내 개발자 도구가 있습니다 그래서 Kotlin 지원을 추가하는 데는 시간이 걸렸습니다 Google 직원을위한 내부 앱으로 시작했습니다 예를 들어 내부 앱이 있습니다

지도와 사무실 위치를 보여줍니다 그래서 우리는 그 사실로부터 많은 것을 배웠습니다 그 이후로 우리는 실제로 일부 공개 Google Apps에서 Kotlin을 사용하기 시작했습니다 여기에 몇 가지 앱이 있습니다 오늘 Kotlin 코드를 휴대 전화에 보냅니다

그리고 더 많은 것을 기대할 수 있습니다 Kotlin을 채택하는 것에 대해 말하면, 전체 생태계를 살펴보고, 우리는 활발한 개발에서 – 적극적인 개발은 지난 6 개월 동안 Play 스토어에 업로드했습니다 우리는 애플 리케이션의 16 %가 지금 Kotlin을 사용하고있는 것을 본다 그리고 앱이 개발 될 수 있음을 명심하십시오 하나의 버그 수정 또는 하나의 자산 변경이 있기 때문입니다

그래서 16 %는 꽤 인상적입니다 지난 I / O 이후로 5 배나 성장했습니다 그리고 당신이 최고 천개의 앱을 본다면, 그것은 실제로 이미 훨씬 더 커졌습니다 우리가 Kotlin을 사용하여 볼 수있는 애플 리케이션의 44 % 그래서 우리를 코 틀린으로 데려옵니다

어제 발표했습니다 그래서 왜 우리가 왜했는지에 대한 더 많은 개요를 알려 드리고자합니다 그것은 무엇을 의미할까요? 그렇다면 왜 코 틀린을 발표할까요? 우리는 코 틀린을 사용하는 사람들의 강한 입양을보고 있습니다 우리는 지역 사회에 큰 흥분을 안겨줍니다 사람들이 Kotlin을 사용할 때

실제로 사람들이 설문 조사에서 질문을받을 때 그들이 얼마나 Kotlin을 더 행복하게 사용하는지, 실제로 사람들보다 25 % 높은 점수를받습니다 누가 Kotlin을 사용하지 않고있다 업계 전반 및 Google 내부의 많은 앱 지금 Kotlin을 사용 중입니다 우리는 많은 고객에게 다가갔습니다 고객 자문위원회 (Customer Advisory Board)를 포함하여 그리고 Kotlin에 대한 투자에 집중하십시오

그럼 그게 무슨 뜻 이죠? 물론, 우리는 자바 프로그래밍을 계속 지원할 것입니다 많은 측면에서 언어 플랫폼, Android Studio 지원, 보풀, 안드로이드 X와 같은 Docs가 사라지지 않을 것입니다 하지만 다른 노력들을 보면 우리의 온라인 교육, 샘플처럼 우리는 먼저 Kotlin, 그리고 나서 자바 외국어가 최선의 노력이 될 것입니다 그리고 물론, 몇 가지 기능이 있습니다

다중 플랫폼 프로젝트와 Jetpack Compose 그것들은 단지 Kotlin에서 제공 될 것입니다 지금 당연히, 우리가 사람들에게서 들리는 다음 질문은, 그게 내가 전환해야한다는 뜻인가? 제발 Kotlin을 먼저 가져 가지 마세요 모든 Java 코드를 가져 와서 Kotlin에서 다시 작성해야합니다 그건 우리가 네가하고 싶지 않은거야 Android Studio를 확인하십시오

그것은 많은 수십만 줄의 코드입니다 지금은 Android Studio의 약 10 % Kotlin입니다 특정 코드 그리고 우리가하는 일은 새로운 기능 만 사용한다는 것입니다 코 틀린에 써라

그리고 그것은 Kotlin 자바와 좋은 상호 운용성을 가지고있다 Kotlin에서 단일 클래스를 작성할 수 있습니다 나머지는 Java로 유지하십시오 또는 Kotlin에서 코드의 99 % Java에서 남은 부분 만 남았습니다 물론, 당신의 현재 상태는 중요합니다

프로젝트 및 팀의 당신이 당신의 방출을 발송하는 것으로부터 1 주일 떨어져 있다면, 아마도 Kotlin으로 전환하기에 가장 좋은시기는 아닙니다 그러나 새로운 개발주기를 시작한다면, 니가 코 틀린을 데려 갈 수있을거야 물론 팀에 따라 다릅니다 그들은 Kotlin에 관심이 있습니까? 이것들을 안전하게 지니고 있습니까? 우리는 또한 많은 사람들이 실제로 모집에서 언급 한 Kotlin을 사용합니다 그들은 더 많은 후보자를 얻을 수 있습니다

고려해야 할 사항 물론, 기술적 측면에서, 고려해야 할 트레이드 오프가 있습니다 Kotlin은 뛰어난 기능, 더 많은 생산성, 그리고 만족 그러나 당신은 학습 곡선에 대해 생각해야합니다 사람들이 배우는 데는 시간이 걸립니다 관용적 인 코 틀린을 쓰기

우리는 Kotlin을 쓰는 대부분의 사람들이 첫번째 주, 그들은 정말로 Kotlin에 자바를 쓰고있다 그리고 3 개월에서 6 개월이 걸립니다 실제로 관용적 인 코 틀린을 쓰기 시작합니다 괜찮아 내 말은, 당신은 여전히 ​​코 틀린의 모든 이익을 얻습니다

nullness, et cetera에 대해 경고합니다 그럼 빌드 속도가 있습니다 Kotlin은 Java 컴파일러보다 느립니다 그것은 당신을 위해 더 많은 일을하고 있습니다 그리고 그것은 더 어린 컴파일러입니다

우리는 그것을 더 빨리 만들기 위해 열심히 노력하고 있습니다 그리고 물론, 유의하십시오 예, 느립니다 하지만 앱을 만들면 빌드가 줄어들 수 밖에 없습니다 가능성이 가장 높습니다

APK 크기도 있습니다 응용 프로그램은 표준 라이브러리를 사용하며, 약간의 공간이 필요합니다 그러나 R8과 같은 것들은 그것을 줄일 수 있습니다 진행중인 Kotlin 작업은 Google에서 계속 진행되고 있습니다 물론, Jetpack Compose가 가장 큰 것입니다

항상 새로운 KDX API를 계속 추가하고 있습니다 컴파일러 쪽에서 우리는 많은 작업을하고 있습니다 빨리하기 Kotlin 10330과 마찬가지로 증분 처리기 그리고 훨씬 더 많은 것이 있습니다

더 향상된 도구 및 더 많은 문서와 샘플을 볼 수 있습니다 Kotlin을 사용합니다 Kotlin 사용에 관심이 있다면, 하지만 어디서부터 시작해야할지 모르겠다 우리는 Kotlin Everywhere를 발표하고 있습니다 두 Google이 주최하는 일련의 교육입니다

및 JetBrains 그리고 지금과 KotlinConf 사이에서 일어나고 있습니다 올해 말 12 월 그것에 관심이 있다면, 참여하거나이 사이트를 호스팅하는 것을 돕고,이 링크로 이동하십시오 가입하십시오

따라서 새로운 Kotlin 첫 번째 로드맵을 통해, 안드로이드 용 Kotlin에 대한 투자 단지 더 커질 것입니다 아직 코 틀린을 사용해 보지 않은 여러분 모두를 초대하고 싶습니다 최근에 그것을 사용하지 않았거나 오늘 앱에서 사용해보십시오 Kotlin과 비슷한 경험을 해 주셨으면합니다 좀 더 예측적이고 코딩이 더 재미있을 것입니다

고맙습니다 [음악 재생]

What's New in Android Studio UI Design and Debugging Tools (Google I/O'19)

[음악 재생] VADIM CAEN : 안녕하세요 우리 이야기에 일찍와 주셔서 감사합니다

Android Studio, UI 디자인 및 디버깅의 새로운 기능 도구 고맙습니다 [박수 갈채] 저는 Vadim입니다 Android Studio에서 디자인 툴을 작업합니다 JEROME GAILLARD : 저는 Android Studio 팀의 Jerome입니다

JOE BAKER-MALONE : 저는 Android Studio 팀의 Joe입니다 ASHLEY ROSE : 저는 Android 프레임 워크와 JetPack의 Ashley입니다 VADIM CAEN : 좋습니다 시작하기 전에 모바일 제품에 대해 약간의 이야기를합니다 어제 어쩌면 Android Studio 팀은 개선을 위해 모바일 제품에 중점을 두었습니다

Android Studio의 엔드 투 엔드 사용자 경험 Android Studio 개선은 수정 사항 만이 아닙니다 또한 사용 방법을 개선하는 방법이기도합니다 우리가 확인한 틈새를 채우십시오 우리의 도구 체인은 – 설계 할 때 – 새로운 레이아웃을 구축하고 새로운 탐색 기능을 구축합니다 이 레이아웃 사이에, 당신의 자원을 관리하고, 장치에서 런타임에 검사를 처리합니다

이 도구 체인을 사용하려면 전형적인 사용자 여행을 거치면서, Google Trips 애플리케이션을 구축하십시오 그리고 Jerome은 Layout Editor에 대해 이야기 할 것입니다 여기에서 볼 수있는 첫 번째 레이아웃을 작성하는 방법에 대해 설명합니다 제롬 가이 야드 : 감사합니다, 바딤 그래서 우선, 우리는 Google Trips 앱의 첫 화면, 레이아웃 편집기를 사용하여

레이아웃 편집기를 열면 이것은 화면의 종류입니다 너는 볼거야 여기는 단지 빈 레이아웃 일뿐입니다 우리가 할 첫 번째 일은 청사진 모드로 전환하는 것입니다 속도가 빠르면 빠르며 방금 만들려고 할 때 산만해진다

레이아웃상의 제약 넌 그냥보고 싶지 않아 구성 요소가 실제로 어떻게 보이는지 나는 팔레트에서 – 레이아웃에 필요한 모든 구성 요소를 드래그하여 어느 정도 확실한 곳에서 일단 내가 끝내면 그 시간이 온다

제약 조건을 만들 수 있습니다 좀 더 효율적인 건물 제약이되는 방법으로, 나는 그들을 하나 하나 만들 수 있었다 하지만 문맥 메뉴를 사용하면 한 번에 여러 가지 제약 조건을 만들 수 있습니다 예를 들어 여기서는 RecyclerView를 중앙에 배치하려고합니다 레이아웃 내에서

내가 할 수있는 한 가지는 RecyclerView를 마우스 오른쪽 버튼으로 클릭하는 것입니다 문맥 메뉴에는 옵션이 있습니다 수평으로 센터링의 그것이하는 일은 왼쪽 클릭 한 번으로 오른쪽 제약 조건을 RecyclerView가 중앙에 배치되도록합니다 일단 모든 제약 조건을 다 만들면, 이것은 내 레이아웃이 청사진 모드에서 보이는 것과 같습니다

분명히, 그것은 나에게 정말로 말하지 않는다 디자인에 비해 옳은 것을 만들면 지금 당장 나는 주어진다 이제 디자인 모드로 돌아가겠습니다 그것이 어떻게 생겼는지 보아라 디자인 모드에서는 보이지 않는 것을 볼 수 있습니다

내가받은 원래 디자인과 매우 흡사하다 그 이유는 RecyclerView 뷰 꽤 비어 있습니다 아시다시피, RecyclerView는 일반적으로 런타임에 데이터를 채우고, 하지만 그때는별로 도움이되지 않습니다 레이아웃을 만들고 데이터가 올바르게 표시되는지 확인하십시오 당신이 보게 될 것입니다

이 문제를 해결하려면 디자인 [? 도구?] 속성을 사용합니다 그래서 디자인 시간 속성, 당신은 간단하게 – RecyclerView에서 컨텍스트 메뉴를 다시 사용하십시오 샘플 데이터 선택기 등을 사용할 수 있습니다 샘플 데이터 선택 도구에서 미리 정의 된 템플릿 중 하나를 선택할 수 있습니다 RecyclerView 항목에 대해 귀하가 제공하는 정보

여기에서 첫 번째 이메일 클라이언트를 선택했습니다 그렇게하면 해당 RecyclerView에 대한 레이아웃이 생성됩니다 항목, 이메일 클라이언트 카드 그리고 동시에, 그것을 당신의 RecyclerView에 연결합니다, 그러면 레이아웃 편집기에 채워진 상태로 표시됩니다 물론 우리는 이메일 클라이언트를 구축하지 않습니다

RecyclerView에서 빌드하고자하는 것 그 여행 카드입니다 그래서 나는 그 RecyclerView 아이템을 편집하려고합니다 Trip 카드로 만들었습니다 자원 관리자 패널에서 – 여기에서 볼 수있는 왼쪽 편에, 바딤이 선물 할거야 너에게 훨씬 더 자세하게 – 간단히 말해서 RecyclerView 항목의 이름을 뭔가로 바꿀 수 있습니다

내 프로젝트에 더 적합한, 그리고 나 편집을 시작할 수 있습니다 리소스 관리자에서 레이아웃을 두 번 클릭하십시오 레이아웃 편집기에서 레이아웃을 열면됩니다 화면에서 볼 수 있듯이, 나는 꽤 많이 가지고있다 내 오른쪽 여행 카드에 필요한 모든 권리가있는 구성 요소, ImageView, 몇 개의 태그보기, 그러나 그들은 분명히 올바른 제약 조건을 가지고 있지 않습니다

그래서 모든 제약 조건을 삭제하고, 툴바에서 해당 버튼을 클릭합니다 그 작업이 끝나면, 나는 재구성 만 할 것입니다 모든 제약 한 가지 문제는 우리가 꽤 많은 구성 요소를 가지고 있다는 것입니다 작은 영역에서 서로 겹치기

그것은 약간 어수선 할 수 있습니다 그리고 우리는이 상황에서, 건물 제약 조건은 약간 어려울 수 있습니다 제약 조건을 드래그하는 것이 때로는 어려울 수 있습니다 올바른 대상, 올바른 구성 요소, 특히 구성 요소가 겹치는 경우 이제 우리가 할 수있는 일은 제약을 원하는 곳으로 직접 드래그합니다 연결하려는 구성 요소에서, 그런 다음 팝업 메뉴가 열리고 어떤 유형인지 묻습니다 설정할 제약 조건을 선택하십시오

정말 흥미로워 지네 제약 조건을 다음 위치로 드래그합니다 겹치는 구성 요소가 있습니다 그 상황에서, 우리는 여러 유형의 제약 조건을 사용할 수 있지만 겹치는 구성 요소를 선택하십시오 그 제약 조건을 첨부하고 싶습니다

그리고 그것은 그것을 훨씬 쉽게 만들어야합니다 경우에 제약 조건 레이아웃을 작성하는 방법 중첩되고 작은 구성 요소가있는 곳 도움이 될 수있는 마지막 방법 제약 조건을 효율적으로 만들 수 있습니다 구성 요소를 사용 중입니다 구성 요소에서 여러 구성 요소를 선택하는 경우 – 여기에서는 두 가지 텍스트보기를 선택했습니다

다시 컨텍스트 메뉴에서 마우스 오른쪽 버튼을 클릭하고 선택합니다 사용할 수있는 제약 조건 중 하나 당신은 하나의 제약 조건을 만들 수 있습니다 선택한 여러 구성 요소에 적용됩니다 그래서 여기에서 두 가지 제약 조건을 만듭니다 이 두 텍스트보기에서 동시에 우리가 모든 제약 조건을 다 만들면, 우리의 견해를 조금이라도 사용자 정의 할 때입니다

이를 위해 우리는 Attributes Panel을 사용할 것입니다 레이아웃 편집기의 오른쪽에 있습니다 우리는 Attributes 패널을 재 설계했습니다 Declared Attributes라는 맨 위에 새 섹션을 표시합니다 이 섹션에서는 모든 속성 구체적으로 설정된 선택한보기에 대한 그 견해에 대해서

바로 거기에서 모든 속성을 편집 할 수 있습니다 이미 설정된 해당 뷰에 새 속성을 설정하려면, 더하기 버튼을 클릭하기 만하면됩니다 해당 속성의 이름과 값을 추가하십시오 Attributes 패널에서 할 수있는 또 다른 일 Constraint Widget을 사용하여 여백을 설정합니다 귀하의 의견에 보고 싶어했을거야

숫자와 같은 실제 값만 설정할 수있을뿐만 아니라 증거금의 가치 ​​- 정의 된 맞춤 측정 기준을 설정할 수도 있습니다 프로젝트에서 그것이 우리가 @ dot dot dot option을 추가 한 이유입니다 드롭 다운의 맨 아래에 버튼을 클릭하면 자원 선택 도구가 열리고, 이미 가지고있는 특성 항목을 선택할 수 있습니다 프로젝트에서 정의하거나 바로 거기에 새로운 차원이 있습니다 일어날 필요가있는 마지막 한 가지 – 그 레이아웃을 보면서 – ImageView가 샘플 데이터로 채워지는 것을 볼 수 있습니다

하지만 단지 기본 샘플 데이터 일뿐입니다 Android Studio에서 제공됩니다 그래서 그것은 실제로 그 종류를 대표하지 않습니다 RecyclerView가 런타임에 수신 할 데이터의 양입니다 그래서 당신이 할 수있는 것은 당신 자신의 샘플 데이터를 설정하는 것입니다

그 ImageView에 cities라는 이미지를 cities라는 디렉토리에 추가했습니다 우리 프로젝트의 샘플 데이터 폴더에 있습니다 샘플 데이터 그림에 나타나는지 확인할 수 있습니다 샘플 데이터를 설정할 수 있습니다

우리의 원래 레이아웃으로 돌아가서, 우리는 이제 그것이 많이 보임을 볼 수 있습니다 당신이 가진 원래의 디자인과 더 비슷합니다 거기에서, 당신은 정말로 디자인이 제대로 구현되었으며 실제 데이터를 수신 할 때 작동합니다 장치에서 실행 중입니다 이제 우리는 첫 번째 제약 조건의 구축을 마쳤습니다

첫 번째 화면에서 계속 진행하고 싶습니다 우리의 응용 프로그램에서 우리의 다음 화면을 구축합니다 레이아웃 파일을 만드는 것만으로 돌아 가기보다는, 레이아웃 편집기에서 빌드하고, 우리는 네비게이션을 생각하고 바로 거기에서 시작하고 싶다 우리의 애플 리케이션의 흐름, 그리고 어떻게 첫 번째 화면이 전환됩니다 두 번째 화면으로 그렇게하기 위해 우리는 네비게이션을 살펴볼 것입니다 편집자

탐색 편집기는 시각적 도구입니다 이를 통해 Navigation Architecture를보다 쉽게 ​​사용할 수 있습니다 JetPack 라이브러리의 구성 요소 탐색 아키텍처 구성 요소의 방식 작품은 네비게이션 호스트 단편을 사용하는 것에 의존합니다 응용 프로그램의 기본 레이아웃

여기에 우리의 활동 주 레이아웃 파일, 우리는 Layout Editor에서 드래그 할 것입니다 NavHostFragment 팔레트 – 기본적으로 거기에 있습니다 그것을 디자인 표면 위로 끌어 올 것입니다 그렇게 할 때, 그것은 당신에게 선택을 요구할 것입니다 해당 NavHostFragment와 관련된 탐색 그래프 아직 탐색 그래프를 만들지 않은 경우, 그 대화 상자에서 바로 할 수 있습니다

우리가하는 일이야 이것이 레이아웃이 어떻게 생겼는지입니다 그것은 비어 있습니다 이 NavHostFragment가 있습니다 네비게이션 아키텍처 구성 요소 그것을 채울 것입니다 당신이로드 할 여러 단편들

그러나 두 번 클릭하면 탐색 편집기가 열립니다 이것은 네비게이션 에디터가 비어있을 때 보이는 것과 같습니다 우리가하고 싶은 첫 번째 일 첫 번째 화면을 시작 목적지로 추가합니다 우리의 애플 리케이션을 위해 대상 추가 메뉴에서 앱에있는 모든 레이아웃이 미리 선택되었습니다

그래서 우리를 위해, 우린 그 조각을 환영합니다 이전에 작업해온 레이아웃입니다 바로 거기에 놓으십시오 다음으로, 우리는 두 번째 화면을 추가하기를 원한다 그러나 이미 레이아웃을 만들지 않았기 때문에, 우리는 단순히 새로운 목적지를 만들 수 있습니다

추가 대상 메뉴에서 그렇게하면 생성의 가능성을 얻을 수 있습니다 새로운 프래그먼트 클래스와 그 관련 레이아웃, 이것이 레이아웃이 될 것입니다 두 번째 화면으로 사용됩니다 두 화면이 Navigation Editor에 있으면, 그들을 연결하는 시간이 온다

그것은 행동으로 할 수 있습니다 화면에 표시된대로 작업을 간단하게 만들 수 있습니다 또한 Attributes 패널에서 직접 탐색 편집기의 해당 동작에 대한 속성 중 일부를 설정하고, 애니메이션이 재생되는 것과 같습니다 그 동작을 통해 전환 할 때, 또는 뒤로 누르면 행동으로 할 수있는 또 다른 매우 흥미로운 일 한 화면에서 다음 화면으로 유형 안전 데이터를 전달합니다

그렇게하고 싶다면 다음과 같이 할 수 있습니다 수신 대상에 – 인수 섹션에서 더하기 단추를 클릭하십시오 속성 패널의 단순히 대화 상자를 열면 인수의 이름을 지정하십시오 인수의 유형 그것은 미리 정의 된 유형일 수 있습니다

또는 프로젝트에서 정의한 유형일 수 있습니다 당신이 원하는 어떤 물건이라도 물론, 네비게이션 그래프 만들기 앱 탐색을 완벽하게 지정하기에는 충분하지 않습니다 또한 약간의 코드를 작성해야합니다 그러나 당신이 볼 수있는 것처럼 그것은 꽤 간단합니다

여기, 나는 RecyclerView의 항목에 불과하다 OnClickListener의 경우 전환하려고합니다 그 행동을 끝내라 그래서 내가하는 일은 액션 객체를 만드는 것입니다 내비게이션에서 지정한 인수를 전달합니다

편집자 일단 행동을 취하면 나는 간단하게 탐색 라이브러리의 navigate 메소드 호출 실제로 전환을 수행합니다 그것이 실제로 정의한 전환을 수행하는 데 필요한 전부입니다 탐색 편집기에서 할 수있는 마지막 사항 나머지 네비게이션 흐름을 채우기 위해 자리 표시자를 사용하며, 그 순간에 귀찮게하고 싶지 않으면 새로운 조각 나중에, 그렇게 할 준비가되면, 당신은 단순히 돌아가서 레이아웃으로 대체 할 수 있습니다

지금은 실제로 빌드 할 때가되었다고 생각합니다 우리의 두 번째 레이아웃 보시다시피, 많은 이미지가 포함 된 레이아웃입니다 많은 자원이 필요합니다 우리는 어떻게 자원을 볼 것인가? 관리자는 우리가 그것을 구축하는 데 도움이 될 수 있습니다

VADIM CAEN : 나는 갭을 채우기 전에 이야기하고있었습니다 Android Studio에 존재했던 하나의 차이 리소스를 관리하는 방법이었습니다 문제가 무엇인지 살펴 보겠습니다 Android Studio 리소스 디렉토리 구조 프레임 워크를 위해 만들어진 것이지 실제로는 아닙니다 사용자에게 리소스를 얻을 때 디자이너에게서 보면 이렇게 보일 수도 있습니다

폴더가 많을 수도 있습니다 죄송합니다 먼저 Android Studio에서 다른 문제가 발생했습니다 전체 축소판보기가 없습니다 특정 Android보기

그래서 레이아웃, 벡터 잔해 또는 모양 – 미리 볼 수있는 유일한 방법은 하나의 레이아웃을 두 번 클릭하거나 하나의 파일에 두 번 클릭하는 것입니다 미리보기에서 확인하십시오 이 문제를 해결하기 위해 Android Studio에 도입했습니다 34 Resource Manager는 다음과 같은 새로운 도구입니다

리소스를 가져오고, 사용하고, 탐색 할 수 있도록 도와줍니다 보다 그래픽적인 방식으로 그것을 열려면 간단히 Resource Manager 버튼을 클릭하면됩니다 Android Studio의 왼쪽에있는 프로젝트 버튼 아래, 이 중립 창을 열 것입니다 한번 더 그래서 우리 문제로 되돌아갑니다

왼쪽에는 프로젝트 구조가 있습니다 오른쪽에는 디자이너가 우리에게 준 것을 가지고 있습니다 우리는 파일에서 다른 프로그램을 볼 수 있습니다 디자이너가 우리에게 준 것 어쩌면 그들은 자신이 좋아하는 디자인 소프트웨어를 사용했을 것입니다

기본 내보내기 옵션을 사용했습니다 폴더에 드로어 블 접두어가 누락되었을 수 있습니다 이름 또는 접미사 @ 2x와 함께 웹 형식을 사용했을 수도 있습니다 그리고 당신이해야 할 일은 @ 2x 접미사를 제거하는 것입니다

그런 다음 하나씩 하나씩 파일을 붙여 넣습니다 다른 문제는 폴더가 누락되었을 수 있으며, 그리고 당신은 문서로 돌아 가야 할 것입니다 이 특정 폴더에 대한 한정자가 무엇인지 기억하고, 그리고 당신은 올바른 순서로 그들을 넣어야합니다 Resource Manager와는 어떻게 작동합니까? 이제 전체 묶음을 끌어다 놓기 만하면됩니다 당신이 Resource Manager에 가져온 파일들, 자동으로 가져오고 이름별로 그룹화됩니다

여기에서 볼 수 있듯이 우리의 자원은 이름별로 그룹화되어 있습니다 올바른 한정어가 적용되었습니다 그래서 방금 무슨 일이 있었던거야? [박수 갈채] 고맙습니다 한정어를 식별하면 여기에는 웹 또는 Android가 파일 경로에있을 수 있습니다 우리는 단순히 해당 안드로이드 폴더를 만들 것입니다, 파일에있을 수있는 접미어를 제거하고, 프로젝트에 복사하십시오

물론 한정자를 추가하려는 경우 (예 : 무작위로 지방, 그리고 프랑스어와 같은 임의의 언어, 프랑스와 같은 지역에서는 간단하게 여기에서 할 수 있습니다 그리고 당신은 명령을 기억할 필요가 없습니다 수동으로 폴더를 만들면 자동으로 생성됩니다 올바른 한정어로 이 시점에서 원하는 경우 파일의 이름을 바꿀 수도 있습니다 이제 우리의 자원은 Resource Manager에서 그룹화됩니다

한 번에 모두 볼 수 있습니다 따라서 기본적으로 하나의 리소스 버전 만 표시됩니다 하지만 리소스를 두 번 클릭하면 당신은 모든 다른 버전을 볼 수 있습니다 다른 한정자가 적용되면 분석 할 파일 유형 어떤 파일이 응용 프로그램에서 가장 많은 공간을 차지했는지 자, 이것은 제가 정말로 흥분되는 특징입니다

이제 SVG를 드래그 앤 드롭 할 수 있습니다 VectorDrawable로 변환됩니다 [CROWD CHEERING] 고맙습니다 그래서 여기에 파일 선택기가 열려 있습니다 나는 아무것도 선택할 필요가 없다

간단히 클릭하고 열 수 있으며 모든 SVG를 열 수 있습니다 가져오고 변환됩니다 또 다른 멋진 기능은 모든 레이아웃을 미리 보는 것입니다 이름으로 레이아웃을 인식하는 것이 어려울 수도 있습니다 따라서 레이아웃 탭에서 리소스 관리자를 열면, 모든 레이아웃을 볼 수 있습니다

당신이 찾고있는 것을 찾으려면 전에 말했듯이 도구 체인이 있습니다 이 전체 도구 체인을 함께 통합하려고합니다 우리가 한 것은 통합 된 것입니다 [INAUDIBLE] 레이아웃 편집기로

예를 들어 여기에 포함시키고 자하는 레이아웃이 있습니다 그래서 상단 부분 이 레이아웃을 레이아웃 편집기로 드래그 앤 드롭 만하면됩니다 [INAUDIBLE]을 만듭니다 Drawable에도 똑같이 적용됩니다

Drawable을 드래그 앤 드롭하면 ImageView가 생성됩니다 이 견해의 끝까지 빨리 감습니다 이전 레이아웃에서 볼 수 있습니다 우리 툴바는 올바른 색상이 아닙니다 우리가 할 수있는 것은 컬러 탭을 열고, 우리 프로젝트에 정의 된 모든 색상을 볼 수 있습니다

그 중 하나를 두 번 클릭하기 만하면됩니다 파일을 열어서 커서를 옮깁니다 여기서 색상이 정의됩니다 그런 다음 새로운 색상 선택기를 사용할 수 있습니다 시각적으로 색을 선택하십시오

색상 선택기는 RGB 및 HSB에서 작동하며, HSB를 선택한 디자이너와 함께 일한다면 값을 사용하거나 자료를 사용할 수 있습니다 이미있는 팔레트 이제 두 개의 레이아웃이 준비되었습니다 앱에서 실행하고 싶습니다 Ashley와 Joe가 우리에게 말하기를 다시 환영 할 것입니다

새로운 레이아웃을 검사하는 방법 [박수 갈채] JOE BAKER-MALONE : 감사합니다, 바딤 이제 개발주기의 다음 단계로 넘어갑니다 우리가 실제로 앱을 실행하게되면, 실제 데이터와 함께 작동하는 방법을보고 조정할 수 있습니다 우리가해야 할 수도 있습니다

이제 오늘, 레이아웃이 어떻게 작동하는지보고 싶다면 런타임에는 Layout Inspector 도구가 있습니다 Android Studio에서 레이아웃 속성은 스냅 샷을 제공합니다 한 화면의 전체보기 계층 구조, 및 속성에 대한 일부 정보 각보기에서 설정됩니다 하지만 지금은 많은 한계가 있습니다 이것은 부분적으로 안드로이드 프레임 워크의 데이터에 기인합니다 표시 할 수 있도록 Studio에 제공됩니다

이제 Android Q에서는 프레임 워크에 Studio에 대한 여러 가지 새로운 API 추가 더 많은 뷰 및 레이아웃 디버깅을 노출하는 데 사용 정보 Ashley는 새 API에 대해 곧 이야기 할 것입니다 프레임 워크 추가가 우리에게 충분한 지 확인하려면 우리가 원하는 정보를 사용자에게 보여주고, Android Studio 팀의 우리 부부 프로젝트 마블에서 약간의 시간을 보냈습니다 새 API를 채택하고 우리가 할 수있는 것을 확인하십시오 우리는 완전히 새로운 Layout Inspector 작업을 시작했습니다

내가 너에게 지금 보여줄 것은 일의 몰래 절정이다 우리는 지금까지 해왔습니다 자, 이것은 초기 작업입니다 최신 미리보기 빌드에는 아직 포함되어 있지 않습니다 그러나 차드가 어제 개발자 기조 연설에서 말했듯이, 우리는 미리보기를 좋아합니다

우리는 개발자 의견을 환영합니다 그래서, 우리는 당신의 손에 그것을 밖으로 가져갈 것입니다 최대한 빨리 자, 어떻게 작동하는지 봅시다 Google 여행 앱부터 시작하겠습니다

우리가 해왔 던 이제 에뮬레이터에서 실행 중임을 알 수 있습니다 우리는 물건을 끌어 올려서 사용자로부터 실제 데이터를 실행하고, 디자인 타임에 사용한 샘플 데이터가 아닙니다 여기서 아래로 스크롤하면 볼 수 있습니다 실제 데이터의 일부 여행 설명 우리가 샘플 데이터에서 가지고있는 것보다 상당히 길다 텍스트가 정렬되는 지점까지 우리가 의도하지 않은 방식으로 이미지를 지배했다

새로운 레이아웃 검사기에서 이것을 살펴 보겠습니다 새로운 레이아웃 검사기가 우리에게 제공하는 것을 볼 수 있습니다 레이아웃 검사기에서 현재 가지고있는 것과 유사한보기입니다 문제의 텍스트보기를 선택하면 여기, 그리고 오른쪽에있는 Attributes Panel을보고, 우리는 몇 가지 차이점이 있음을 알 수 있습니다 현재 레이아웃 검사기에서 가지고있는 것입니다

우선, 실제 속성 이름이 있습니다 이전에는 getter 메소드 모음이 있었지만 그렇지 않을 수도 있습니다 잘 실제 속성 이렇게하면지도를 훨씬 쉽게 찾을 수 있습니다 여기서 본 것에서부터 정의한 것에 이르기까지 자신 만의 레이아웃과 스타일로

두 번째로, 우리는 멋지게 형식화 된 속성 값 다양한 가치 유형에 대해 우리는 전에 그것을 항상 얻을 수는 없었다 예를 들어 ID, 열거 형을 볼 수 있습니다 가치, 색깔, 등등 세 번째로, 우리는 지금 몇 가지 정보를 가지고있다 그 속성 값이 설정되는 곳

따라서 우리는이 선언 된 속성 섹션을 볼 수 있습니다 여기, 우리가 Layout Editor에서 가지고있는 것과 비슷합니다 직접 설정된 속성의 경우 선택한보기에서 이제 텍스트 크기와 관련된 속성을 살펴 보겠습니다 이 옵션을 선택하면 기본 탐색 기능을 사용할 수 있습니다 여기에서 직접 키 스트로크를 선언하는 방법 해당 값이 설정되는 레이아웃 xml로 이동합니다

조금 더 작게 변경하십시오 개발자 기조 연설에서 들었던 것처럼, Android Studio 35 미리보기에서 이 새로운 변경 기능을 적용하십시오 이것 이후에 바로 그 부분에 대해 더 많은 것을들을 수 있습니다 Android 개발자 도구에서 새로 워진 이야기

하지만 지금은 에뮬레이터의 변경 사항을 확인하는 데 사용하겠습니다 우리의 애플 리케이션을 재배치 할 필요없이 실제로 새로운 레이아웃에서 업데이트가 즉시 표시됩니다 경감 님 Layout Inspector가 무엇을 미러링하고 있기 때문입니다

기기 라이브에서 발생합니다 우리가 여기서 다시 스크롤한다면, 레이아웃 검사기가 오른쪽으로 스크롤되는 것을 볼 수 있습니다 게다가 [박수 갈채] 예 다른 시나리오를 살펴 보겠습니다

앱의 어두운 테마를 구현하고 싶다고 가정 해 보겠습니다 여기서 우리는 밝은 배경색을 가지고 있음을 알 수 있습니다 배경색이 어디인지 알아 보겠습니다 에서 온다 우리가 여기에있는 단편 xml을 보면, 우리는 거기에 직접 설정되어 있지 않습니다

Layout Inspector를 살펴 보겠습니다 여기서 배경을 선택하면, 정말 잘 볼 수 있다면 우리는 배경색이 없다

이보기에서 직접 설정하십시오 왜 그럴까? 글쎄, 우리는 여기에서 가장 많은보기를 선택했습니다 배경색을 어느 정도 낮추어 놓을 수도 있습니다 뷰 계층 구조에서 그러나 어떤 시각이 설정되고 있습니까? 글쎄, 새로운 레이아웃 검사기가 우리에게 제공합니다

쉽게 찾을 수있는 방법 [크라우드 반응] [웃음] 3D보기에서는 어느 것이 쉽게 볼 수 있습니다 여기에서 무엇을 그리는가? 이제이보기를 선택하면 배경이 색상이 실제로 설정되어 있습니다 그러나 어떤 파일에 설정되어 있습니까? 이것은 선언 된 속성 섹션의 맨 위에 있지 않습니다 그래서 우리는 그것이이 견해에 직접적으로 설정되어 있지 않다는 것을 알고 있습니다

그러나 다시 한번 우리가 Attributes에서 속성을 선택하면 Panel, 거기에서 직접 탐색 할 수 있습니다 그것이 설정되는 곳으로 이 경우 스타일로 설정됩니다 그리고 우리는 그 스타일을 직접 탐색 할 수 있습니다 보기에 명시 적으로 참조되지 않는 경우에도 마찬가지입니다

우리가 본 3D 표현은 우리는 다른 방식으로 사물을 시각화하고, 여기서 유용한 정보를 계속 찾고 있습니다 예를 들어 초점을 맞추는 것이 유용 할 수 있습니다 한보기 및 그 자녀들에게 또는 무엇을 기반으로보기를 함께 그룹화하는 것이 유용 할 수 있습니다 그들이 정의 된 레이아웃 파일

이 화면의 예는 상단에서 볼 수 있습니다 우리는 RecyclerView 항목을 가지고 조각을 만든 다음, 활동 그리고 그 뒤에, 다양한 견해들 프레임 워크에 의해 정의됩니다 가벼운 새로운 레이아웃 검사기를 위해 더 많은 계획을 세웠습니다 저는 우리가 무엇을 생각해 낼 수 있는지에 대해 매우 기쁩니다

이제는 필요한 프레임 워크 변경 사항에 대해 이야기합니다 이것을 가능하게하려면 여기 애쉴리가 있습니다 애쉴리 로즈 : 고마워, 조 [박수 갈채] Android Q의 경우 세 가지 새로운 API가 추가되었습니다 이러한 새로운 검사 기능을 사용할 수 있습니다

우리는 모든 도면 명령을 수행 할 수 있습니다 화면에 프레임을 만들었습니다 그것을 직렬화하여 Studio로 다시 보내십시오 그래서 그것들을 재생할 수 있고 멋진 3D보기를 만들 수 있습니다 우리는 얼마나 길게 빨랐 는가? 뷰 계층 구조에서 뷰의 특성을 가져오고, 추가 메타 데이터를 추가 할 수 있습니다

그것을보다 정확하게 만드는 것입니다 그리고 우리는 리소스 프레임 워크에 몇 가지 새로운 API를 추가했습니다 속성 값의 출처를 보자 의사 결정에 대한 더 많은 통찰력 그 과정은 다음과 같은 경우에 적용되었다 해당 속성 값에 도달합니다

그럼 Skia Picture에 대해 이야기 해 봅시다 Skia는 UI 툴킷의 기초가되는 2D 그래픽 라이브러리입니다 이것은 실제로 슬라이드에 맞도록 단순화 된보기입니다 하지만 그것은 그리기 명령의 목록입니다 더 일찍부터 우리 여행 카드 중의 1 개를 형성하는 것에 들어간다

우리가 그것을 보았다면 그림자, 둥근 사각형, 이미지, 텍스트 – 그 모든 것들을 자산과 함께 그것을 렌더링하는데 필요한 이미지 데이터, 폰트 데이터 등을 포함한다 우리는 Skia에서 이것을 기본적으로 얻습니다 매우 빠릅니다 실시간 미리보기를 수행 할 수 있기 때문에 이걸 몇 초에 한 번하십시오 그것은 일반적으로 매우 작습니다

그러나이 문제는 우리가 스위치를 확대하려면 여기를 클릭하십시오 그것은 텍스트, 둥근 사각형, 그리고 서클 슬라이더 스위치에 대한 약간의 이미지 그것들이 어떤 관점에서 왔는지는 모른다 그들은 명령을 내리는 것입니다 그리기 명령을 그룹화하는 방법이 필요했습니다

그들이 어떤 시각에서 왔는지에 따라 우리는 렌더링 노트 API를 보았습니다 두보기의 기초가되는 조직 트리입니다 그리고 drawables– 우리는 각각의 렌더링 노트에 고유 한 ID를 추가했습니다 그런 다음이 고유 한 ID를보기에 노출 시켰습니다

Skia 그림 자체에 주석을 달았습니다 여기서 각 렌더 노드는 그리기를 시작하고 멈 춥니 다 스튜디오 측에서 보기가 시작된 위치와 중단 된 위치를 확인하고 연결할 수 있습니다 이 3 개의 그리기 명령은 다시 스위치보기로 돌아갑니다 또한 우리는 시작과 중지가 있기 때문에, 우리는 멋진 중첩 된 프레임 워크를 가지고 있습니다

HTML – 우리가 볼 수있는 모든 도면 명령이 다시 있습니다 단순화 된이 카드보기를 만드는 데 들어갔다 같이 [? 오랫동안도?] 그들이 시작하고 멈추는 전망, 우리는 중첩을 해봅시다 부동산 검사를 어떻게 수정하는지 조금 이야기 해 봅시다 Joe의 관점에서 일찍 – 모든 것이 게터 이름이나 메소드 이름이었습니다

그건 우리가 반사를 사용했기 때문이었습니다 런타임시 뷰 인스턴스 내부의 속성 반사는 세계에서 가장 빠른 것이 아닙니다 특히 휴대 기기에서 매우 복잡한 앱의 경우 전체보기를 렌더링하는 데 최대 몇 초가 걸릴 수 있습니다 계층

그래서 우리는 다음과 같은 접근 방식을 들여다 보았습니다 모든 것을 직렬화하는 메서드가 있습니다 그것은 조금 부서지기 시작합니다 보기에 새 속성을 추가하면 업데이트되지 않습니다 우리는 주석 처리기에 추가했습니다

그것은 우리가 반사를 유연하게 유지할 수있게 해줍니다 우리를 제공했다 특수 효과를 추가하기 만하면됩니다 새 게터를 추가하면됩니다 사용자 정의에 대해 어떻게 보일지 살펴 보겠습니다

이는 사용자가 누구에게나 관련이 있기 때문에 볼 수 있습니다 곧 라이브러리보기를 빌드하십시오 우리는 컬러보기를했습니다 속성은 색이며 주석을 달았습니다 InspectableProperty

주석 처리기가 보이면 그것으로 우리에게 조금 더 많은 맥락이 생깁니다 우리가 이전에 얻은 것보다 훨씬 낫습니다 그래서 우리는 Kotlin에 있고 @ColorInt 주석을 볼 수 있습니다 정수형뿐만 아니라 우리는이 정수에 색을 채웠다는 것을 압니다 그리고 그것은 단지 수치가 아닙니다

재산의 이름이 있습니다 우리는 속성 ID에 대한 추론을하는 데 사용할 수 있습니다 그것을 부르는 것 물론 우리는 주석에 대한 속성을 사용하여 추론하기 그 자체 그래서이 코드 생성은 어떻게 생겼습니까? 이 객체는 이 견해와 나란히 앉을 것이다

그 중 하나가 어떻게 생겼는지 살펴 보겠습니다 이것은 검사 동반자입니다 그것은 Q를위한 새로운 API입니다 두 가지 목적이 있습니다 하나는 클래스가 주어진 경우의 목록을 정의합니다

여기에 그 클래스에 정의 된 속성이 있습니다 이 경우 색상을 정의했습니다 지도 색상에 대한 호출을 살펴보면, 색깔이기 때문에 거기에 유형이 있습니다 우리는 속성 이름을 가지고 있고 유추했습니다 ID의 속성 R

attr 이것은 또한 우리가 – 추론 된 속성 ID가없는 경우, 또는 당신이 하나를 공급했다면 우리는 그것을 거기에 넣을 것입니다 내가보기에 Studio를 가르치면, 여기에 내가 가지고있는 속성이 있습니다 여기에 그들의 속성 ID가 무엇인지, 이것은 우리가 그 부분을 가능하게합니다 코드 완성 기능으로 이동하십시오

다음 단계는 실제로 우리가 보기의 인스턴스가 있으면 속성을 읽고 싶습니다 다시 말하지만, 우리의 견해가 Kotlin에서 정의되고 자바를 사용하고 있기 때문에 – 이것이 생성 된 코드이기 때문에 – 우리는 viewgetColor를 호출한다 직접 호출한다 getter에게 반사가 필요 없습니다

매우 빠릅니다 이를 통해 뷰 계층의 실시간 업데이트를 수행 할 수 있습니다 Studio에서는 우리가 가지고 있지 않기 때문에 우리가 전에했던 모든 추가적인 오버 헤드 우리를 얻는 모든 것이 현재의 가치에 달려 있습니다 우리가 말할 수있는 것은 여기에 우리가 가지고있는이 사랑스러운 푸른 색 텍스트 색입니다

우리는 그것이 무엇인지에 관계없이 말할 수 있습니다 그것이 런타임에 설정되었는지 여부 viewsetColor를 호출했을 수도 있습니다 또는 자원에 설정되어있는 경우

그러나 대부분의 속성 값은 자원에서 설정되며, 그래서 우리는 그 사건을 돕고 싶었습니다 우리는이 경우에, 그것은 위젯에 정의되어 있습니다 리소스에 API를 추가하여, 나는이 가치를 얻었다 그게 어디서 왔는지 말해줘 Google은 해당 데이터를 추적하여 전체 리소스를 통해 저장합니다

뼈대 또한, 우리는 통찰력을 얻고 싶었습니다 스타일이 어떻게 영향을 미치는지 그래서 자원 프레임 워크가 해결 될 때 속성 값 – 어떤 스타일을 적용할지 결정해야합니다 의사 결정 트리를 가져 와서 API를 추가하여이를 나타냅니다

근본적으로 고려 된 스타일 목록입니다 그러나 결국 사용되거나 사용되지 않을 수 있습니다 해당 속성 값을 해석하는 동안 이 모든 문제는 일시적인 현상입니다 왜냐하면보기, 일단 팽창되면, 그들은 그들의 관계를 잊는다 리소스

일단 그들이 건설되면, 그들은 그들이 어디에서 온 것인지 기억하지 못한다 개발자 옵션을 추가했습니다 속성 ID의 맵과, 그들이 왔던 곳, 스타일 해상도는보기의 테마에서 스택됩니다 그래서 스튜디오 – 준비가되었거나 관심이있을 때 재산으로 더 자세히 조사하고 싶어요 돌아와

보기로하고,보기에게 묻는다, 헤이, 어디에서 당신의 속성 값이 왔는지, 그들의 스타일은 무엇입니까? Q가 가진 모든 것을 꽤 많이 감쌌다 바딤과 제롬을 환영하고 싶습니다 우리를 감싸는 무대에 [박수 갈채] VADIM CAEN : 전체 툴 체인에 대해 들었습니다

그리고 집에 돌아갈 때 그것을 사용하기를 바랍니다 레이아웃 편집기로 레이아웃을 작성하고, 우리가 추가 한 새로운 기능 네비게이션 편집기로 네비게이션 만들기, 자원 관리자로 자원 관리, 새로운 레이아웃 검사기로 검사를 수행하십시오 올해 I / O에는 Android Studio 협상이 가득합니다 바로 뒤에 – 원형 극장에서 – 당신은 안드로이드 개발의 새로운 기능을 볼 수 있습니다

Tor 및 [? Ja ?] 그렇다면 당신은 2 단계의 Android 빌드 시스템의 새로운 기능 그것은 다른 쪽 위에있다 그것은 오늘 오후에 시작한다 여기에 빨간 점이 거의 없습니다 Android Studio 팁 및 트릭 제공 선별 된 엔지니어 및 프로젝트 매니저에 의해, 2 단계

마지막으로 내일, ConstraintLayout의 새로운 기능 Nicolas와 John의 모션 레이아웃 우리는 여기서 밖에 질문을 할 것입니다 와 주셔서 대단히 감사합니다 내년에 봐 [음악 재생]

What’s new in Android Studio 3.3

야신 레즈귀: Android 스튜디오 33을 Stable 채널에서 다운로드할 수 있습니다 3

3 버전은 Gradle용 Android 플러그인도 지원합니다 이번에 출시된 버전은 올해 저희가 선보인 Navigation 편집기와 프로파일러의 새로운 추적 기능 개선된 빌드 시스템과 지연 작업 설정이 가능합니다 Navigation 편집기는 목표값을 생성하고 범위를 설정해 단계별 이행을 구체화할 수 있게 합니다 앱의 전체 플로를 볼 수 있기 때문에 Navigation 아키텍쳐 사용자에게 유용할 겁니다 드래그앤드롭으로 연결한 뒤 사용자 활동에 대한 개별적 실행 타입을 설정할 수 있습니다 프로파일러는 API 26 이상으로 실행되는 디바이스의 실시간 메모리 할당에 대한 데이터 수집 레벨을 설정할 수 있습니다 전체 모드와 심플 모드 중 선택하세요 프로파일링 중 앱 퍼포먼스를 향상시켜 좀 더 생생한 사용자 경험을 구현할 수 있습니다 CPU 프로파일러는 UI 스레드에서 프레임 변환 소요 시간을 알려줍니다 프로파일러가 16밀리초를 넘는 프레임을 구별해주어 UI가 매끄럽지 않은 부분을 쉽게 찾아낼 수 있습니다 구형 API를 사용하는 앱을 위해 Android 스튜디오에서는 오류 코드 부분에 대한 좀 더 자세한 디버깅 정보를 제공합니다 이 기능을 사용하려면 Gradle 파일에 이 코드를 추가하세요 저희는 빌드 시간 단축에 계속 집중하고 있는데요 주석 프로세서 사용 시 증분 자바 컴파일을 개선하였고 ProGuard보다 빠른 새로운 코드 제거 프로그램 R8도 경험할 수 있습니다 코드 변화 자체가 필요하질 않죠 Gradle 파일에 코드를 추가하세요 진행 중인 프로젝트가 다중 빌드 변수로 설정된 경우 IDA는 현재 빌드에만 동기화하므로 시간을 아낄 수 있습니다 Experimental 메뉴에서 수동으로 설정할 수 있죠 Android Gradle 플러그인은 지연 작업 설정 API를 사용합니다 덕분에 Gradle 설정 시 미사용 코드 생성을 막아줍니다 인스턴트앱은 앱번들로 모두 지원됩니다 하나의 프로젝트에서 인스턴트앱과 설치앱까지 만들 수 있죠 앱 분할이 정말 쉬워진데다 앱 크기를 줄여 사용자 경험도 높입니다 인스턴트앱으로 설정하려면 Run 설정에서 이 기능을 활성화하세요 Android 스튜디오 33입니다 버그 신고를 통해 여러분의 의견을 기다립니다 34 버전의 초기 빌드도 테스트해볼 수 있습니다 Canary 채널을 확인하세요 또 봬요 (음악 재생)

What’s new in Android – Google I/O 2016

[환호와 박수] 체타마, 제가 도입부에 대해 조금 긴장하고 있다는 걸 말씀 드리고 싶네요 이걸 정말 제대로 리허설을 했는지 모를 정도로 말이에요 [웃음] 이건 완전히 즉흥적으로 진행될 거예요 제가 여기서 얘기하는 것에 대해 끊임없이 반복해서 연습하긴 했지만요 굉장히 즉흥적인 강연이 될 거예요 특히 이 도입부가 정말로 걱정되네요 안녕하세요, 안드로이드의 새로운 점을 보러 오신 분들을 환영합니다 [환호와 박수] 이곳까지 오셔서 정말로 감사드립니다 해안선에서 가장 작은 공간에서 강연을 하게 되어서 죄송합니다 사실이에요 설 수 있는 자리가 마련되어 있고요 만약 옆자리가 비어있다면 손을 들어 주세요 다른 분들이 비어있는 자리를 찾을 수 있게 말이에요 그러면 좋겠네요 저는 안드로이드 UI 툴키트 팀의 쳇 하제입니다 저는 안드로이드 시스템 UI 팀의 댄 샌더스입니다 저는 안드로이드 팀에 있는 로만 가이입니다 다시, 한번 더 한번 더 [환호와 박수] 하지만 쳇의 팀에 있지는 않아요 절대로 들어가지 않을 거예요 아뇨, 아뇨 [웃음] 그 반란은 성공적이었다고요 다시는 그런 문제를 반복해서 일으키지 않을 거예요 자, 오늘 우리는 안드로이드의 새로운 점들에 대해서 얘기할 거예요 특별히, 프리뷰가 진행되고 있기 때문에 N의 새로운 점에 대해서 얘기해 봅시다 아니면, 안녕하세요 이걸 보시죠 우리는 이걸 안드로이드의 새로운 점이라고 했어요 사실 우리는 이걸 이렇게 불러야 해요 안드로이드의 새로운 것 같은 점이라고요 이러한 것들에 대해서 이미 어느 정도는 얘기를 나누었고 바라건대, 모든 분들이 프리뷰에서 들었으리라 생각하고 이러한 것들을 사용하며 버그를 신고하고 새로운 특징과 기능을 사용하고 있으리라고 말이죠 그래서 이러한 점들을 볼 거고요 개발자 프리뷰3에서 더욱 새로운 점들에 대해서 그리고 다른 관련된 점들에 대해서 얘기를 나눠볼 거예요 자, 시작해 봅시다 가장 중요한 질문으로 N이 무엇을 나타내는 걸까요? 제 생각에는 말이죠 러시아어로 생각해 봤어요 물론 니엣(nyet)은 아직 또는 말하지 않을 거라는 걸 뜻하지만 현재 이것이 뜻하는 것은 N 프리뷰에요 좀 더 자세히 말해서 N 프리뷰 3를 뜻하는 거죠 이러한 특징에 대해서 관찰하게 되는 다양한 관점과 분석으로 인한 의견이 많지만 사용자들이 실제로 보게 되는 관점과 개발자들의 측면에서 보게 되는 것을 함께 얘기하는 게 좋을 것 같다고 생각했어요 그리고 개발자들이 접하게 되는 특징에 대해서 얘기를 할 거예요 그러한 특징을 이용해서 실행할 때와 그 뒤에 있는 코드에 대해서 말이에요 데모를 이용해서 시작해 보겠습니다 [환호] 그래요 콘스트레인트 레이아웃에 대해서 얘기를 할 거예요 오늘 오전에 있었던 기조연설에서 잠시 언급이 됐었죠 스테프가 이에 대해서 말했어요 로만이 이것이 어떻게 실행되는지 보여드릴 거예요 자, 콘스트레인트 레이아웃은 안드로이드에 있는 완전히 새로운 레이아웃이에요 언번들 라이브러리가 될 거예요 프레임워크를 업데이트 하지 않고도 여러분의 앱에 통합시킬 수 있는 거죠 진저브레드까지 전부 호환이 가능해요 여러분이 원하는 모든 앱에서 사용할 수 있어요 여기에 있는 것은 자체적인 툴과 함께 고안된 첫 번째 레이아웃이에요 안드로이드 레이아웃 매니저를 만들면서 또한 안드로이드 스튜디오의 사용자경험을 고안하는 거예요 기조연설에서 간단하게 보셨겠지만 이게 약간 보기 어려웠어요 자동적으로 제한을 나타내는 시스템을 가지고 있으니까요 새로운 시스템에는 레이아웃을 만들 수 있는 여러가지 방법들이 있어요 예를 들어, 여기에서 저는 버튼을 가지고 있어요 보시다시피 움직일 수 있고 여러분에게 가이드라인을 제공하죠 머티리얼 디자인의 가이드라인이 있는 폴더를 보여주고 있는데요 다양한 위젯사이에서 여러분이 사용해야 하는 올바른 여백을 나타내주고 있어요 위젯사이에 있는 올바른 여백과 화면의 가장자리를 보여주고 있죠 이제, 두 번째 버튼을 추가하면 여기에 있는 두 개의 버튼에 제한을 둘 수 있어요 이제 나란히 정렬되어 있죠 새로운 레이아웃 편집기에서 정말로 효율적인 것은 1초마다 60개의 프레임으로 안드로이드 스튜디오에 있는 안드로이드 레이아웃 이면에서 알고리즘을 작동시킬 수 있다는 거예요 그래서 제가 첫 번째 버튼을 옮기게 되면 여러분도 실시간으로 보시겠지만 레이아웃이 모든 제한을 변형시키는 지 보이실 거예요 이로 인해서 현재 상황에 대해서 훨씬 더 빠르게 많은 피드백을 줄 수 있어요 제한을 두기 전 상태를 보여드릴 수도 있어요 이 제한을 드래그하면서 화면의 가장자리로 당겨서 마우스에서 손을 놓기 전의 모습을 여러분에게 보여드릴 거예요 어떤 일이 일어날지에 대해서 애니메이션으로 보여드릴 건데요 이러한 제한을 두게 되면 렐러티브 레이아웃 뷰를 사용하는 분들이 물론 있으실 건데요 추가적인 위젯을 보내게 되었을 때 때때로 발생하는 상황에 대해서 놀라신 분들도 있을 겁니다 모든 것들이 갑자기 화면에 있는 다양한 위치로 이동하게 되죠 이제는 그런 일이 없어요 그래서 정말 빠르게 더 많은 제한을 생성할 수 있고 제가 가진 두 개의 버튼을 하단에 추가할 수 있어요 오토커넥트를 사용하셔도 됩니다 오토커넥트를 활성화 해서 새로운 버튼을 화면에 두면 예를 들어, 가이드라인을 보시게 되면 화면에 중심에 있죠 이곳에 제 버튼을 놓겠습니다 그러면 시스템에서 자동적으로 저를 대신하여 제한을 생성해줍니다 그래서 저는 제한을 따로 생성하지 않아도 되죠 물론 그 다음에 제한을 수정할 수 있어요 규모를 유동적으로 수정할 수 있어서 모든 공간을 다 차지하게 해도 되고요 아니면 그 반대로도 가능하죠 백분율을 기반으로 하여 위치를 정할 수도 있어요 여기에서는 버튼이 중심에 놓여 있지만 만약에 여러분이 다른 위치를 원한다면 예를 들어, 화면 상단의 25%가 될 수 있어요 여러분의 화면 크기에 맞춰서 조절이 될 거예요 이외에 다른 특징들에 대해서 금요일 오전 9시에 데모를 보여드릴 거예요 예를 들어, 종횡비에 대해서 다룰 거예요 여러분의 위젯을 항상 1:1의 종횡비나 16:9로 원하는 대로 설정할 수 있어요 그리고 마지막으로, 이러한 특징도 기조연설에서 짧게 다뤄졌는데요 여러 가지 위젯을 화면에 두겠습니다 상단에는 텍스트 필드를 두고 레이블에는 텍스트뷰를 넣을 거예요 여기에 있는 위젯의 위치는 제가 원하는 방향에 맞춰서 꼼꼼하게 배치할 거예요 모든 제한은 다 제거하겠습니다 이제, 여기에 있는 필드 레이블 아이콘을 클릭하면 제가 여기에서 의도한 바를 파악할 거예요 그리고 제 레이아웃이 작동할 거예요 이건 잠겨지는 게 아니에요 계속해서 제한을 추가할 수 있어요 행위를 계속해서 변경해도 되고요 다른 위젯을 추가할 수도 있고 자동 추론을 다시 실행할 수도 있어요 여러분은 이러한 과정을 처리할 권한을 가지고 있어요 여러분의 UI를 도울 수 있고 빠르게 만들 수 있도록 말이에요 [박수] 고마워요, 로만 그리고 죄송해요, 한 가지만 더 말씀 드릴게요 이건 프리뷰에요 우리는 알파1이라고 부르죠 개략적으로 설명 드리는 거예요 안드로이드 22 프리뷰를 다운로드 하셔서 직접 사용해보시고 버그를 신고해주세요 제가 직접 버그 트래커를 사용해서 볼 거예요 그리고 엔지니어들을 마구 괴롭혀서 대다수의 버그를 고칠 수 있도록 할 거예요 더욱 많은 것들이 나올 거고요 지금은 아직 작업 중에 있습니다 지금 나온 레이아웃과 레이아웃 편집기가 최종 버전이 아니라고 말씀 드리고 싶어요 마지막으로 질문이 있어요 얼마인가요? [웃음] 100킬로바이트요 좋은 건가요? [웃음] 그러면 쳇에게는 얼마죠? 4백만 달러요 [웃음] 좋아요, 이걸 사용해보시길 바랍니다 피드백을 제공해주세요 슬라이드로 돌아가보겠습니다 정말로 멋진 데모였지만 슬라이드로 다시 돌아가볼까 해요 잘 해보시길 바랄게요 좋아요 멀티윈도, N에서 눈에 띄는 변화 중에 하나이죠 한번에 화면에서 다수의 활동을 할 수 있는 기능이지요 여러분이 볼 수 있는 두 개의 주요한 모드에요 하나는 나란히 정렬되어 있는 분할 화면이고 위에서 아래로 수직으로 분할시킬 수도 있어요 최근 버튼을 보면 여기에서 동영상 캡쳐 기능을 볼 수 있습니다 최근에서 이 기능을 드래그해서 화면의 한쪽에 놔둘게요 그 다음으로 하는 일은 화면의 나머지 반쪽에 있죠 그 다음활동을 하기 위해서는 하나를 탭하기만 하면 되요 드래그를 하다 보면 윈도우 매니저에서 제가 손을 떼기 전까지는 단순히 배경색으로 빠르게 보여주고 있어요 그렇게 하면 전체적인 환경설정을 할 수 있는 거죠 여러분의 앱에 대해서 색다르게 생각하는 거예요 안드로이드 레이아웃의 마술이죠 환경설정을 변경하는 방법을 알아봤습니다 새로운 크기에 맞춰서 레이아웃을 조정하는 법도 알아봤어요 화면의 폼 팩터에 대해서도 봤고요 윈도우 매니저는 이러한 것들을 기반으로 하여 만들어졌어요 여러분이 새로운 사이즈와 나란히 정렬되는 레이아웃을 이용하여 앱이 간단하게 작동될 수 있도록 하실 수 있어요 직접 사용해보시고 테스트 하세요 나란히 정렬시키는 모드 또는 분할 화면 모드를 여러분이 원하는 대로 선택하여 이용해보시길 바래요 필요하시면 API도 사용해보세요 선별하셔서 사용하시면 됩니다 기본값으로 선택할 수 있도록 자동적으로 설정되어 있어요 만약 여러분이 크기 조정이 가능한 활동을 원하지 않으신다면 기본값과 최소한의 사이징으로 정할 수 있는 몇 가지 매개변수가 있습니다 여러분이 소리를 듣고 시스템에서 멀티윈도 모드가 작동되는지 혹은 현재 멀티윈도 모드를 사용하고 계시는지 알 수 있도록 하는 몇 가지 API도 있습니다 그리고 마지막으로, 여러분이 멀티윈도 모드를 사용하고 있고 또 다른 하위활동이 나란히 보여지도록 만들면서 실행시키고 싶다면 하위활동이 인접할 수 있도록 요청하면 됩니다 직접 이걸 확인해보시길 바랍니다 픽쳐 인 픽쳐 모드에서도 확인해보세요 안드로이드 TV에 있는 멀티윈도 모드의 또 다른 기능입니다 이제 여러분은 픽쳐 앤 픽쳐에서 활동을 할 수 있는 기능을 사용할 수 있습니다 비디오를 완전히 재생시키면서 사용자가 보는 컨텐츠를 선택할 수 있는 런처와 같은 다른 활동을 동시에 사용할 수 있습니다 전면에 비디오를 재생시키는 동안에 말이죠 이러한 두 가지 특징보다 더 많은 것들이 있습니다 오늘 오후 4시에 멀티윈도 세션에 참여해보시길 바랍니다 픽쳐 인 픽쳐 모드에 보면 몇 가지 활동을 더 할 수 있는데요 멀티윈도 모드에서 본 것과 굉장히 유사해요 이렇게 진행되는 것들을 볼 수 있고 어떤 일을 할 수 있는지 볼 것입니다 새로운 드래그 앤 드롭 기능이 있어요 적어도 진저브레드 이후부터 드래그 앤 드롭 플랫폼을 가지고 있었는데요 이제는 이것이 기능으로 추가되었습니다 이제 여러분은 멀티윈도 모드를 사용하기 때문에 하나의 활동에서 다른 활동으로 드래그해서 이동시키는 것이 좋지 않을 까요? 이전의 드래그 앤 드롭에서는 허용되지 않는 기능이었어요 그렇게 할 필요가 없었으니까요 하지만 이제는 콘텐츠를 다양한 활동들 앞뒤로 이동하면서 드래그 할 수 있어요 몇 가지 API와 이러한 기능을 이용할 수 있도록 몇 가지를 추가했어요 여기에서 몇 가지 API를 볼 수 있습니다 대다수는 승인에 관련된 거예요 패스워드 필드에서 여러분의 활동으로 복사하고 싶지 않은 활동이 있을 수도 있으니까요 아니면 여러분의 활동으로 인기 있는 동영상을 옮기고 싶지 않을 수도 있고요 그러므로 올바른 승인을 받기 위해서 앞뒤로 주고받는 과정이 이루어집니다 동작을 시작하거나 드래그 셰도우를 업데이트하는데 매우 부적절한 이름이 있다면 동작을 실행하는 동안에 취소할 수 있는 방법이 항상 있어요 사실상 여기저기로 드래그되는 콘텐츠의 섬 네일을 나타내는 거예요 여러분이 원하는 걸 업데이트 할 수 있게 말이에요 셰도우 표현으로 애니메이션을 나타내고 싶으시면 계속해서 업데이트할 수 있어요 오, 그렇군요 그렇게 하고 싶으시다면 말이죠 동영상 캡처를 간단하게 보자면 여기에서의 동작을 볼 수 있어요 어디 봅시다, 그래요 이건 우리가 내부적으로 가지고 있는 몇 가지 데모에요 이건 곧 기사로 공개될 것이고 그러면 외부에서 작동할 수 있어요 승인이 필요 없는 것과 승인을 받아야 하는 것들을 드래그하고 앱 사이로 드래그할 수 있는 기능을 사용하는 것에 대한 기본적인 상호작용을 보여드렸어요 다음으로 넘어가겠습니다 알림 기능이 있어요 자, 바라건대 여러분 모두 이에 대해서 얘기하는 걸 보셨을 거예요 그리고 이제 제가 이 부분에서 15분간 설명을 할 건데요 알림 기능에 대해서 정말로 멋진 모든 부분들에 대해서 얘기할 거예요 끼어들지 마세요 지금은 제가 말하는 시간이니까요 그러니 내일 오전 9시에 다시 방문해주시길 바래요 기조연설에서 본 안드로이드와 안드로이드 웨어2

0에 있는 알림 기능에서 정말로 멋진 새로운 점들에 대해서 자세하게 알아볼 거니까요 그러니까 저는 클릭커를 이리 줘봐요 아뇨, 아직 끝나지 않았어요 있어봐요 [웃음] 저는 여러분이 아셨으면 하는 몇 가지에 대해서 설명 드리고 싶은 거예요 조금 더 알아보고 싶다면 개발자 문서를 확인해보세요 먼저, 새로운 템플릿을 최초로 보여드릴게요 허니콤 이후에 처음으로 공개하는 거예요 약간의 머터리얼 업데이트를 하고 몇 가지만 출시하긴 했지만 몇 가지 새로운 템플릿은 어느 정도 이동을 할 수 있고 앱에 새로운 속성을 만들 수 있어요 알림에 보낼 수도 있고요 이렇게 하면 누군가 어떤 걸 올렸는지 바로 알 수 있어요 번들 알림 기능도 있어요 원래 안드로이드 기어에서 개발했던 기능이죠 마침내 휴대폰과 태블릿에서도 이용 가능해요 몇 가지 알림들을 하나로 묶을 수 있는 기능이죠 바로 답장 기능도 있어요 답장버튼을 클릭하고 글을 쓰면 텍스트가 바로 나타나요 다시 말씀 드리지만 안드로이드 웨어에서는 이미 있었던 기능이에요 시계를 이용하여 얘기할 수 있고 메시지를 보낼 수 있죠 이제는 닫힌 화면에서도 그렇게 할 수 있는 거예요 사용자가 그러한 기능을 설정하면 말이죠 시스템 UI에 관련된 것들에 대해서 설명하고 있는데요 빠른 설정에 대해서 설명 드리고 싶네요 사용자들이 오랜 기간 동안 요청해온 기능이 마침내 나오게 되었는데요 편집 가능한 기능이에요 여러분이 원하는 대로 빠른 설정에 있는 메뉴를 추가하거나 제거할 수 있어요 사실 이 기능에는 더욱 빨라진 빠른 설정이라는 이름도 지어졌어요 제가 방금 지어내긴 했지만요 더욱 빨라진 빠른 설정은 다섯 가지로 이루어진 목록인데요 여러분이 언제든지 볼 때마다 알림 목록의 상단에서 나타나는 빠른 설정으로 다섯 가지가 있습니다 원하시는 다섯 가지의 기능을 빠른 설정으로 이동하면 한번의 터치로 바로 사용하실 수 있습니다 언제든지 여러분이 알림을 볼 때 말이에요 [박수] 잠시만요 그게 다가 아니에요 집에서 이 영상을 보고 계시는 개발자들이 있으시다면 아시다시피 프리뷰 후반이 되면 여러분이 고유의 빠른 설정 타일을 만들 수 있어요 안드로이드N을 사용하는 모든 사용자들이 사용할 수 있어요 그러니 타일서비스에서 API문서를 한번 보시길 바래요 빠른 설정 타일에 대한 전체 라이프사이클을 생성할 수 있어요 언제 사용자가 타일을 목록에 추가하고 언제 타일이 실제로 보여졌는지 확인할 수 있죠 라이브 업데이트가 필요하다면 그렇게 할 수도 있어요 그리고 물론 가장 중요하게도 사용자가 타일을 클릭했을 때 무엇을 할지도 알 수 있어요 getQsTile을 호출하면 타일 오브젝트에서 포인터가 나타나고 여러분의 모든 상태를 보여주며 아이콘의 변경, 이름의 변경과 동작 상태로 들어가고 나올 수 있도록 허용하여 리소스의 사용 가능 여부에 따라서 밝기를 이용하여 알려줍니다 모든 변경사항을 적용하고 난 뒤에 업데이트타일을 호출하는 것을 잊지 마세요 여러분만의 설정을 맞추기에 완벽한 방법이에요 잠금 화면에서 접근을 하기를 원하는 사용자들을 위한 앱의 몇 가지 빠른 기능이에요 만약 여러분이 스마트 홈을 만드느라 바쁘시다면 여러분에게 가장 먼저 필요한 것은 휴대폰에서 쓸 수 있는 빠른 버튼이에요 클릭하기만 하면 집에 도착하는 즉시 여러분의 테마 음악을 재생할 수 있어요 이렇게 하기 위해서 빠른 설정이 만들어졌어요 마지막으로 여러분이 해야 할 일은 매니페스트에서 나머지 작업을 하는 거예요 시스템 UI에서 여러분의 빠른 설정을 인식하고 어떻게 다룰지 알 수 있도록 하기 위해서 모든 것들에 대해서 올바르게 승인 받도록 신경 쓰시길 바래요 화면 사이즈에 대해서 얘기를 해볼게요 이건 사실 접근성에 관련된 기능이에요 폰트 크기를 늘리고 심지어 대체할 수 있도록 N에 도입한 기능이에요 폰트 크기는 안드로이드에서 오랫동안 사용할 수 있었던 기능이에요 개발자들이 ASPI에서 고유의 활자체를 명시하게 되면 사용자가 선택한 폰트 크기에서 크게 증가하여 사용자들이 이에 관련된 도움을 요청하거나 화면에서 전체적인 텍스트를 봤으면 좋겠다는 얘기를 하게 됩니다 하지만 개발자들도 아시다시피 ASPI는 굉장히 제한적이잖아요, 그렇죠? 폰트 크기를 기반으로 해서 레이아웃을 변경하지는 않아요 이를 해결하기 위해서 랩 콘텐츠를 사용하면 됩니다 하지만 시스템에는 특정한 부분들이 있어요 예를 들면 [헛기침] 알림 기능 [헛기침] 이러한 기능은 알림 기능과 잘 맞지 않아요 구조의 크기가 모든 추가적인 텍스트를 수용할 수 있도록 변경되지 않기 때문이에요 안드로이드 N에서는 디스플레이 크기 기능을 가지고 있어요 표시창 설정 단추에 가서 클릭을 하면 런타임에서 장치의 dpi를 변경시켜요 장치에 있는 모든 UI에서 단지 텍스트뿐만 아니라 새로운 밀도를 가지도록 변경할 수 있는 새로운 방법이에요 여러분은 모든 걸 크게 확장하거나 여러분이 가지고 있는 작은 화면에 맞춰서 매우 작은 크기로 축소할 수 있어요 085에서 거의 1과 1/2까지 설정할 수 있어요 이제는 제가 말하지 않아도 아실 거라 믿어요 하지만 레이아웃에서 px는 피하시길 바래요 이게 장치의 밀도를 변경하는 것이기 때문에 레이아웃에서 dps를 사용할 때 증가되거나 다른 계산을 사용할 수 있거든요 그 다음으로 여러분이 원했던 것을 보여드릴 거예요 비디오를 이용해서 바로 보여드리면서 정말로 명확하게 여러분의 앱이 sw320p에서 정말로 잘 작동되는 것을 보실 수 있을 거예요 많은 분들이 커다란 화면을 가진 휴대폰을 사용하고 있는 걸 알고 있지만 작은 화면을 가진 휴대폰을 쓰시는 분들도 계시니까요 갑자기 사용자가 밀도를 바꾸게 되면 화면이 곧바로 sw320dp로 바뀌게 될 거예요 이제 여러분의 앱을 조금 더 우아하게 만들어 보겠습니다 여기에 있는 비디오에서 어떻게 할 것인지 보여줄 건데요 이건 라이브 리사이즈에요 화면 크기로 들어가서 슬라이더를 움직이면 더 커지고 작아지죠 모든 것들의 크기가 변경되는 것을 볼 수 있을 거예요 텍스트뿐만 아니라 내비게이션 바, 상태 바 그리고 모든 다른 것들이 변경됩니다 사실 지금 이 부분에서 문제가 생겼어요 기본크기가 원래 이렇게 보이고 폰트 크기를 바꾸게 되면 다른 것들도 커져야 하는데요 하지만 변경되지 않았어요 하지만 화면 크기는 모든 걸 변경시킬 수 있죠 이제 여러분은 휴대폰에서 모든 정보들이 여러분에게 적절하게 보여질 수 있도록 UI의 모든 부분들을 더욱 크게 혹은 더욱 작게 만들 수 있어요 로컬에 대해서 얘기를 해볼게요 자, 해봅시다 좋습니다 고마워요, 댄 멀티 로컬 [박수] 아뇨, 아뇨 아직 안 끝났어요 [웃음] 정말로 보기에 놀라운 것은 객석에서 차양을 따라서 비어있는 좌석의 구조와 형태에요 뒷자리에 앉으면 정말로 덥죠? 이래서 360 피드로 봐야 해요 [웃음] 네 라이브 스트림으로 집에서 보면 덥지 않죠 집에서 영상을 통해서 보시는 분들을 위해서 멀티 로컬에 대해서 얘기하겠습니다 이건 정말로 많은 요청을 받았던 기능이에요 제가 속한 국가에 있는 사람들이 아니라 하나의 언어 이상을 사용하는 사람들이 요청했더군요 [웃음] 진짜에요 이런 말을 많이 들었어요 사람들이 절 좋아한다고요 그리고 이런 분들에게는 UI를 다루는 것이 매우 힘들 수 있어요 때때로 적절한 리소스가 없거나 다른 문제가 있을 때 여러분은 몇 가지 콘텐츠나 앱이 여러분이 선호하는 언어로 알려주거나 다른 시스템 기본값보다는 다른 대비책을 가지기를 원해요 다양한 언어로 설정하고 다룰 수 있는 로컬을 설정하고 싶은 많은 상황들이 있어요 이제는 그렇게 할 수 있습니다 이제 여러분은 이러한 다양한 언어를 선택할 수 있을 뿐만 아니라 여러분이 원하는 대로 장치에서의 보여지는 순서를 설정할 수 있어요 그리고 여러분은 또한 새로운 언어와 우리가 추가한 별어를 넣을 수도 있어요 작은 동영상 캡쳐 기능이 여기에 있고요 여러분이 여기에서 선택할 수 있어요 언어로 들어가면 저는 하나의 언어만 선택했는데요 왜 그랬는지는 모르겠지만요 여기에서 Deutsche를 선택하겠습니다 이건 네덜란드어가 아니라 독일어를 뜻합니다 참고하시길 바래요 저는 리히텐슈타인 변화를 선택했는데요 재미있을 것 같아서 골랐어요 그리고 순서를 다시 정렬해서 이걸 첫 번째에 놓을게요 이렇게 하니 제 UI를 읽을 수가 없네요 이제 독일어가 전체적인 시스템의 주 언어가 되었기 때문이에요 멀티 로컬이었습니다 이걸 사용해보시길 바래요 도즈 모드에 대해서 얘기해볼 거예요 이미 마쉬멜로우에서 도즈 모드가 있었는데요 간단하게 검토만 하겠습니다 시스템 상태를 다루는 직원의 다이어그램을 가져와봤는데요 이걸 보시게 되면 바로 아실 것 같았어요 다이어그램을 바로 여러분에게 보여드리겠습니다 도즈 모드가 무엇인지 곧바로 이해하시게 될 거예요 이건 좀 뻔한 것이긴 하지만 하지만 하이라이트를 사용하고 몇 가지를 지목하여 중요한 부분을 표시했어요 도즈 모드는 화면이 꺼진 이후에 작동됩니다 장치가 정지된 상태이고 배터리로 작동될 때에 나타나죠 얼마 동안 작동하고 있다가 도즈 모드로 들어가게 되요 여기에 보시면 초록색으로 표시되어 있는 부분들이에요 그리고 여기에는 관리 창이 있어요 갑자기 활동이 허용되어서 시스템에 참여하고 있는 거예요 관리 창에서 일반적인 것들을 실행하고 있는 거예요 그리고 여기에서 다시 반복되는데요 여기에 있는 관리 창 사이에서 기하급수적으로 소요 시간이 늘어나요 이렇게 반복적으로 일어나고 그 사이에는 도즈 모드가 있어요 이러한 활동이 발생되지 않는 시간이죠 네트워크 활동이 없고요 지연된 작업과 싱크도 없어요 웨이크록도 없죠 전부 좋아요 배터리가 더욱 오랫동안 지속되게 하죠 이 화면을 보면 다 알 수 있지만 계속 진행하면서 N에 대해서 얘기해볼게요 N에는 이렇게 모든 것들이 있지만 추가적으로 경량인 부분들도 있어서 도즈 모드에서는 이제 정지할 필요가 없어요 사람들의 주머니에서 오랜 시간 동안 있으면서 사용되지 않은 채로 있으니 활동으로 인해서 많은 배터리를 사용하지 않는 게 좋지 않을까요? 정지되지 않은 채로 있는 부분을 발견하여 잠시 동안 기다린 다음에 도즈 모드로 들어가게 되요 그리고 관리 창이 실행되고요 마쉬멜로우처럼 제한적이지는 않지만 그와 비슷한 개념을 가지고 있는 것이죠 여기에서도 보면 바로 알 수 있어요 다이어그램에서 유사한 구성 요소에서는 비슷한 색상을 가지고 있다는 게 보이실 거예요 즉, 유사하게 도즈 모드에 들어간다는 걸 뜻해요 그리고 비슷한 바코드 형태도 있죠 이것 또한 마찬가지에요 [웃음] N에 있는 기능을 다시 정리해보면 제가 방금 말씀 드린 경량 도즈가 있고요 사실상 이미 기능의 수퍼세트에요 장치가 정지된 상태이면서 동시에 경량의 기능을 가지고 있는 모든 기능이 N에 있어요 다이어그램을 이렇게 합친 것보다 더욱 제대로 된 기능을 만들면 이렇게 보이겠죠 [웃음] 제가 말씀 드렸다시피 이건 좀 뻔한 거예요 [박수] 몇몇 사람들은 제가 단어를 좀 더 사용해야 한다고 얘기해요 빨리 넘어가도록 할게요 마쉬멜로우에서 여러분이 장치를 가지고 있고 화면은 꺼져있어요 배터리로 작동하죠 정지된 상태이고 동시에 여러분은 네트워크를 사용하는데 제한되었고 지연된 작업 싱크, 알람이 있고 웨이크록은 없어요 N에서 다음과 같은 기능을 가지고 있고 서비스가 제한되어 있고 경량이에요 하지만 정지된 상태일 필요가 없어요 여러분의 주머니나 다른 곳으로 이동해서 사용해도 됩니다 그러면 여러분에게 덜 제한적이게 되죠 백그라운드 활동이 있기 때문에 동시에 실행되는데 있어서는 여전히 유효해요 오늘 오후 5시에 진행되는 배터리와 메모리 최적화와 강연에 참여하셔서 시스템 상태와 더 많은 것들에 대해서 알아보세요 시스템 상태에 관련해서 말이 나왔으니 스벨테 프로젝트에 대해서 말씀 드리겠습니다 최근에 제품들을 출시했을 때 시작된 프로젝트에요 시스템에서 배터리를 크게 소모시키는 것이 무엇인지 알아내고 앱에서 고쳐야 하는 것들과 필요한 것들을 해결하기 위해서 플랫폼에서 어떻게 할 수 있는지 개발자들에게 알려주기 위해서 만들었는데요 결국 완성해냈습니다 N에서, 이제는 다음과 같은 동작을 더 이상 겪지 않아도 됩니다 물로 이러한 동작들이 그리울 수 있어요 하지만 이제는 보내야 합니다 조사과정 속에서 이러한 상황들을 우리는 발견했어요 팀이 하고 있는 일 그리고 연결성과 관련하여 어떤 일이 발생할지 메시지가 발송되고 이러한 모든 동작들이 활성화 되도록 만들었어요 사용자들이 와이파이 네트워크가 변경됐을 때를 정말로 알고 싶어 하더라고요 그래서 회사 안에서 걸어 다니면서 한 라우터에서 다른 라우터로 옮기면서 모든 활동들을 활성화 할 수 있어요 그렇게 되는 거예요 그 다음은 뭘 해야 할까요? 아무것도 없어요 그리고 다시 자러 갈 거에요 그 동안에 시스템에서는 스래싱을 하고 있어요 전부 다 활성화되어 있으니까요 한 번에 메모리로 다 들어갈 수 없기 때문에 오래된 것부터 정리해서 새로운 파일이 시작될 수 있도록 하는 거예요 그리고 이렇게 지긋지긋한 스래싱이 시작되는 거죠 비슷하게도, 새로운 비디오나 새로운 이미지를 사용자가 촬영하면 그러면 여러분의 휴대폰에 있는 사용 내역 앱에서 결정을 내려요 오, 새로운 이미지에 대해서 인식하려고 하네요 사용자가 영수증을 사진으로 찍었을 수 있으니까요 그래서 활동이 관련된 40개의 파일과 함께 활성화되죠 그리고 여러분이 고양이의 이미지를 찍었기 때문에 그 사진에 대해서 인식할 것이 없다는 걸 알게 되면 다시 비활성화가 되요 트래싱과 비슷하죠 왜 우리가 그러한 기능을 줄이면서 단순히 이러한 전달 과정을 없애고 사용자의 편의를 위하여 배터리를 연장시켜 장치의 수명을 더욱 늘리지 않았을 까요? 대신에 새로운 접근을 이용했어요 잡스케줄러를 사용했죠 우리가 최근의 출시에서 얘기를 나눠본 주제에요 특히 새로운 API가 있는데요 콘텐츠를 변경에 대해서 요청을 허용하는 기능으로 여러분의 주의를 기울였으면 해요 곧바로 실행되지는 않아요 이전의 접근에 관련하여 문제가 있거든요 하지만 작업이 스케줄에 들어가기만 하면 새로운 미디어에 대해서 여러분이 알 수 있을 거예요 다시 말씀 드리지만, 배터리와 메모리 최적화 세션에서 더 많은 것을 알아보시길 바래요 그러면 앱은 여러분이 고양이 사진을 찍을 수 있도록 허용하겠죠 네 [웃음] 그럴 거예요 알고 보니 [청취불가]가 사용내역에 유효한 사진이었던 거죠 네, 좋은 지적이에요 고마워요 데이터 세이버는 사용자들에게 몇 가지 기능을 가능하게 만들어줘요 [청취불가] 장치에게, 그러니까 시스템에 특정한 앱이 사용하는 데이터의 양을 제한하도록 알릴 수 있어요 제가 살고 있는 이곳에서는 와이파이에 대해서 그다지 신경을 쓰지 않는데요 저는 데이터 플랜을 사용 중이고 데이터가 무제한이라서 그렇게 중요한 게 아니에요 물론, 전 세계적으로 보면 그렇지 않죠 네트워크 접근에 대해서 정말로 큰 비용을 부과해야 할 수도 있으니까요 아니면 정말로 속도가 정말로 느릴 수도 있고요 모든 사람들이 가지고 있는 제한된 대역폭이나 요금제로 사용 중인 대역폭을 다 사용하길 원하지 않으실 거예요 그래서 우리는 사용자들이 데이터 사용을 관리할 수 있는 기능을 제공합니다 더 적은 데이터를 사용하도록 알려줄 뿐만 아니라 특정한 앱에서 데이터 사용을 허용하거나 제한 또는 허용하지 않는 거죠 시스템 설정에 들어가면 이제는 여러분이 이걸 각각의 앱에 기반하여 토글하면 되는 거예요 개발자의 측면에서 보면 여기에 주의를 기울여야 한다는 거겠죠 여러분의 앱이 언제든지 제한될 수 있으니까요 이러한 것이 이루어지는 지에 대해서 여러분이 알아낼 수 있는 메커니즘이 시스템에 있으니 여러분은 접속 서비스에 대해서 문의하여 여러분이 A, 사용하는 만큼 계산되는 요금제 네트워크에 있는지 B, 백그라운드 접근이 사실상 제한되어있는지 알 수 있어요 다이렉트 부트, 안드로이드 N에서 제가 가장 좋아하는 특징 중의 하나에요 여러분의 장치에 PIN 코드를 설정해놓으면 장치는 암호화될 것이고 몇 가지 이유로 인하여 재시동되면 업데이트를 했거나 자동업데이트를 했을 수도 있고 아니면 즉흥적으로 재시동을 했을 수도 있죠 그렇게 되면 때때로 장치에서 PIN 코드 화면으로 나타날 수도 있어요 여러분이 PIN 코드를 입력해야 하죠 그렇게 되면 여러분은 문자 메시지나 이메일 또는 전화를 못 받을 수 있어요 하지만 지금의 시스템에서 다른 점은 여러분에게 PIN 코드를 요청하기 전에 잠금 화면으로 나타나면서 시동될 것이에요 여러분이 PIN 코드를 입력하고 몇 가지 앱이 작동시키고 다이렉트 부트 모드를 작동시킬 수 있는 여러분의 앱을 등록시킬 수 있을 때까지 말이에요 즉, 잠금 화면에서도 여러분은 몇 가지 기능에 접근할 수 있는 거예요 전화를 받거나 메시지를 받는 기능 말이죠 이에 대해서 더 많은 것들을 알고 싶으시거나 이러한 모드를 사용할 수 있는 여러분의 앱에서 어떠한 것들을 할 수 있는지 알고 싶으시다면 목요일 오전 9시에 있는 강연에 참여해주시길 바랍니다 안드로이드 보안에 대한 강연이 될 거예요 많은 요청을 받았던 또 다른 특징은 외부의 저장공간에서 특정한 디렉토리에 대한 접근이에요 만약 여러분의 앱이 사용자의 외부 저장공간에 있는 이미지, 음악, 비디오 또는 다른 것들을 인식해야 한다면 지금까지는 여러분이 전체적인 저장 공간에 대한 접근을 요청해야 했어요 플레이 스토어에서 앱을 다운로드 받을 때 사용자들이 약간 두려움이 될 수 있는 승인 이었어요 그 대신에, 여기에 있는 스크린 샷을 보시면 여러분의 앱은 특별하게도 이미지나 음악과 같이 하나의 디렉토리에 대한 접근을 요청할 수 있어요 N의 새로운 승인 시스템과 조합하여 사용자들이 어떤 앱을 사용하려고 하는지 그리고 어떤 앱이 접근할 수 있는지 확실하게 볼 수 있어요 안드로이드 포 워크에 관해서 여러분이 이에 관한 세션에 참여했으면 좋겠는데요 정말로 많은 것들에 대해서 다뤄요 이번 출시에서 안드로이드 포 워크에 있는 몇 가지의 특징만 여러분에게 말씀 드리려고 해요 그러니 목요일 오전 2시에 있는 작동 중인 여러분의 앱에 관한 세션에 참여하세요 그 동안, 여러분의 휴대폰에 업무 프로필이 설치되어 있다면 새로운 기능인 워크 모드가 있는데요 이건 워크 모드를 비활성화 하는 기능이에요 이에 대해서 조금 더 강조해서 말씀 드려야 할 것 같네요 워크 모드가 아니에요 빠른 설정에 들어가서 토글을 해제하면 되요 그렇게 하고 보시면, 여러분이 화면에서 볼 수 있을지 모르겠지만 작업 프로필 앱이 비활성화 되었어요 여기에 있는 것들 중에서 하나를 클릭하고 다이얼로그가 나오는데요 이걸 비활성화 할게요 이걸 켜고 끄기만 하면 되요 정말로 쉬워요 여러분이 선택하기만 하면 주말 동안에 업무용 이메일을 확인하지 않고 시간을 보낼 수 있어요 워크 챌린지라고 불리는 것도 있는데요 회사에서 해야 하는 불편한 인증과 같은 것들을 하지 않아도 되도록 하는 거예요 추가적으로 잠금 화면에서 제한하는 패스워드를 회사에서 요청하는데요 이제는 그렇게 하지 않아도 됩니다 대신에 여러분은 업무 프로필 앱이 작동될 때를 위해서 하나의 패스워드를 제공하면 됩니다 동영상 캡쳐한 것을 보여드릴게요 업무 프로파일 앱을 작동시키면 여러분의 패스워드를 확인하죠 그리고 앱이 실행되요 그리고 이제는 다른 워크 앱을 작동시켜볼게요 곧바로 실행될 거예요 여러분이 이미 전체적인 시스템에 인증했기 때문이에요 이제는 우리가 여기에 있는 진짜 이유를 말씀 드릴게요 개발자들을 위해서죠 처음으로 말씀 드릴 중요한 부분은 이미 기조연설에서 다뤄졌는데요 런다임을 변경하는 거예요 이제는 훨씬 빠른 인터프리터를 사용할 수 있어요 즉, 여러분의 앱이 설치될 때에 롤리팝이나 마쉬멜로우처럼 예정보다 빨리 편집되지 않아요 먼저 인터프리팅 모드로 작동되어서 JIT이 여러분의 앱에서 매우 자주 작동되거나 높은 성능으로 효율적인 코드의 부분들을 인식하면 제 시간에 모든 것들을 곧바로 편집할 거예요 여러분의 장치가 대기모드로 들어가면 앱애서 예정보다 미리 작동되는 부분의 프리컴파일로 JIT에서 모인 정보를 사용할 것이에요 이렇게 세가지를 알아볼 거예요 인터프리터, JIT 그리고 예정보다 빠른 컴파일 이러한 작업을 하는데 몇 년이 걸렸어요 이러한 세 가지 모두를 작업했어요 이제는 이러한 세 가지를 동시에 할 수 있어요 금요일 오후 1시에 미술 팀에서 진행하는 미술에 발전에 관한 강연에 참석하길 바랍니다 미술에 대한 모든 것들에 대해서 상세하게 강연할 것입니다 새로운 런타임 라이브러리도 있는데요 ICU4J의 새로운 기능으로 이제는 프레임워크의 일부분이에요 ICU는 라이브러리에요 여러분의 앱의 세계화와 인터넷 문명화에 유용하죠 꽤 큰 규모의 라이브러리에요 이제는 프레임 워크의 일부에요 다양한 패키지 이름을 가져서 기존에 있는 패키지 이름과 충돌하지 않아요 이제 여러분은 프레임워크의 기능을 사용하는 거예요 APK의 규모를 줄일 수 있죠 몇 가지 새로운 javautil 패키지도 추가했어요 여기에 javautil기능이 있는데요 Predicates와 같은 기능적인 스타일의 프로그래밍에 유용한 클래스와 API를 가지고 있어요 새로운 스트리밍 API도 있어요 새로운 언어 기능과 함께 조합하여 사용할 때에 굉장히 유용해요 새로운 자바 8 프로그래밍 언어 기능을 사용하기를 원하신다면 여러분의 그래이들 빌드 파일을 새로운 잭 컴파일러로 변경하셔야 합니다 또한 프로그래밍 언어 18 소스와 바이너리가 호환성을 갖도록 해야 해요 그렇게 하면, 여러분은 람다 기능에 접근할 수 있어요 람다는 여러분의 클래스에서 익명으로 실행되며 빠르게 인식되어서 진저브래드까지 호환이 가능해요 람다가 어떤지에 대한 예시가 몇 가지 있어요 어떤 것인지 잘 모르시거나 한번도 써보신 적이 없다면 이에 관한 문서와 기사 가 온라인에 많이 있어요 확인해보시길 바랍니다 여러분의 삶을 훨씬 더 좋게 만들어 줄 거예요 RxJava와 같은 것들을 사용하거나 안드로이드 UI 프레임 또는 람다를 많이 필요로 하는 경우에는 훨씬 더 쉬울 거예요 하지만 조심하셔야 해요 이러한 것들은 익명의 클래스를 생성해내니까요 보여지는 것보다 대가가 큰 편이에요 하지만 대다수의 앱에서는 그렇게 문제되지 않아요 기본값과 동적 인터페이스 방법은 두 개의 매우 유용한 기능이에요 이전의 기능과는 호환되지 않지만요 만약 기존의 인터페이스를 가지고 계시다면 새로운 방법을 추가하고 우리의 기본값을 실행할 수 있어요 추상 클래스에서 할 수 있는 것과 매우 유사하죠 다시 한번 말씀 드리지만 어떠한 파일이든지 고객과의 문제 없이 여러분의 APS를 보낼 수 있어요 많은 수신자들이 보게 될 유명한 어댑터 패턴을 생성하는데 쓸 수도 있어요 몇 가지 콜백 메소드를 가지고 있는 수신자가 있어요 일반적으로 그 다음으로 제공되는 어댑터 클래스는 이러한 모든 메소드를 실행하여 여러분이 그 중에서 한 가지의 메소드를 실행하려고 할 때에 모든 메소드를 선언할 필요가 없어요 그래서 이제는 기본값 메소드를 사용하는 것이 매우 쉽습니다 또한 인터페이스에서 동적 메소드를 가질 수 있어요 주석을 반복에 대해서 얘기하자면 여러분들 중 대다수는 수 많은 주석이 있지만 그러한 기능에 만족해하는 멋진 프레임워크를 가지고 있을 거예요 또한 불행하게도, 이전의 버전과 호환되지는 않아요 하지만 이제는 하나의 주석을 가지고 있어요 하단에 보면 @Exportable이라고 예시가 있죠 같은 종류로 여러 번 적을 수 있어요 예를 들어, 클래스를 하나 가지고 있다고 해볼게요 다른 포맷으로 직렬화 할 수 있는 클래스를 가지려고 하기 위해서 주석에 값을 정렬하는 방법을 사용하는 대신에 주석을 그냥 반복하기만 하면 됩니다 오디오 팀과 미디어 팀이 정말로 열심히 일했어요 안드로이드의 이전의 버전에서 오디오 지연을 줄이기 위해서 말이죠 대다수의 작업은 시스템의 본질적인 부분을 다루면서 이전에 이미 처리 되었어요 그리고 결국 오디오의 지연을 줄이기 위한 일은 더욱 높은 수준에서 이루어 졌죠 물론 여러분의 장치에 따라서 다를 수 있지만 오디오를 재생하면 40에서 70밀리세컨드의 지연이 줄었어요 활성화 하기에 굉장히 쉽죠 화면에 보시면 바로 예시가 있는데요 여러분의 미디어 플레이어에 오디오 속성을 생성할 때에 단지 저 지연 표시를 설정하기만 하면 되요 그리고 새로운 특징에 여러분이 접근할 수 있도록 만들었는데요 재생을 개선시키기 위해서 사용할 수 있는 몇 가지 새로운 API입니다 여러분이 미디어를 다시 재생할 때에 실행되는 언더런의 수를 생성할 수 있는데요 역동적으로 크기를 조절할 수도 있어요 지나치게 많은 언더런이 있으면 여러분의 버퍼가 실행을 하기 시작해요 이에 대해서 더 많은 것을 알고 싶으시다면 특히 여러분의 지연을 더욱 더 개선시키기 위하여 근본적인 API의 본질을 사용하는 방법을 알고 싶으시다면 목요일 오후 3시에 있는 강연에 참여하세요 렌더스크립트, 수 많은 부분이 개선되었어요 이제는 단일 소스 파일이에요 이제 여러분은 서로 호출할 수 없는 많은 커널을 가질 수 있어요 복잡한 컴퓨터 프로그램을 생성하기에 훨씬 더 쉬워졌죠 우리는 또한 축소판 커널을 만들었어요 그래서 여러분은 맵리듀스 종류의 API를 사용할 수도 있어요 예를 들어, 여러분이 히스토그램을 계산해야 한다면 축소판 커널을 이용하여 할 수 있죠 다양한 이미지에도 접근할 수 있어요 Allocation

getByteBuffer도 추가했어요 렌더스크립트 커널을 작동할 때에 생겨서 여러분이 가지고 있는 할당량을 줄이는데 도움을 줄 수 있어요 마지막으로, 여러분이 정말로 많은 데이터를 다루신다면 여러분을 위하여 우리는 16비트의 부동 소수점을 지원합니다 여러분의 데이터의 크기를 반으로 줄일 수 있도록 도와주죠 정확성이 여러분에게 중요한 요소라면 이에 대해서 알아보시는 게 좋을 거예요 OpenGL ES 32은 그래픽에 관심이 있는 사람들을 위한 거예요 OpenGL ES의 가장 최신 버전이죠 안드로이드 N에서 공개하는 건데요 효과적인 OpenGL ES 31 플러스로 안드로이드 확장팩으로 불려요 안드로이드 확장팩은 OpenGL 확장판의 묶음이죠 이러한 확장팩이 여러분의 장치에 도입되면 여러분은 이러한 모든 확장 기능에 접근할 수 있어요 이건 OpenGL ES 개발자들의 삶을 훨씬 더 편하게 만들어 줄 거예요 이러한 내용은 OpenGL ES 32 설명서에 다 포함되어 있어요 단 한가지만 빼고 말이죠 슬라이드를 보면 아실 수 있어요 고급 혼합 방식을 포함하여 강조되어 있는 부분이에요 이제는 하드웨어가 이러한 모든 혼합된 모드를 감당할 수 있어요 포토샵이나 여러분의 이미지 프로세싱 앱에서 볼 수 있는 모드 말이죠 이를 위해서 셰이더를 더 이상 적을 필요가 없어요 이제는 OpenGL의 한 부분이에요 여러분은 테셀레이션과 지오메트리 셰이더를 쓸 수 있어요 런타임에서 지오메트리를 생성하는데 매우 유용한 것들이에요 일반적으로 여러분이 할 수 있는 것은 꽤 간단한 메쉬에요 카메라가 물체에 점점 더 가까워지면서 더욱 더 많은 삼각형을 역동적을 추가할 수 있어요 화면에서 더욱 부드럽게 보이게 말이에요 이렇게 추가적인 삼각형이 필요하지 않을 때에는 메모리를 많이 사용하거나 성능에 신경 쓰지 않아도 되요 새로운 텍스쳐 압푹 포맷이 있는데요 ASTC 라고 불려요 그리도 다른 기능도 있죠 OpenGL ES를 사용하시면 기조연설에서 이미 언급되었던 불칸에 대해서 신경을 많이 쓰실 건데요 더 많이 알고 싶으시면 오늘 오후 6시에 이에 관한 강연이 있을 거예요 참여하시면 좋겠죠 불칸은 그래픽에서 낮은 수준의 API에요 OpenGL보다 더 낮아요 어떻게 보면 여러분은 사실상 드라이버가 되는 거예요 여러분이 다중 스레드에서 GPU에 명령을 생성할 수 있는 거죠 그렇게 되면 여러분의 앱의 효율성을 개선시킬 수 있어요 드라이버 자체에 오버헤드가 지나치게 있을 수 없어요 더 많은 드로우 콜을 만들 수 있죠 화면에 더욱 많은 오브젝트를 둘 수 있고 여러분의 셰이더를 오프라인으로 프리컴파일 할 수도 있어요 확인하는데 굉장히 유용하겠죠 규모가 큰 최적화에도 말이에요 장치에 있는 드라이버가 여러분의 셰이더를 최적화 하는 것과 셰이더를 편집하는데 너무 많은 시간을 보내지 않으면서 균형을 찾으려 하기 때문이에요 크로스 플랫폼 API도 있어요 안드로이드 N에 있는 불칸은 윈도우나 리눅스에서 볼 수 있는 불칸과 같아요 오늘 드라이버에서 전달되죠 여러분의 컴퓨터에서 여러분만의 코드를 적을 수도 있어요 그 이후에 휴대 기기에서 작동시킬 수 있죠 또한 OpenGL ES보다는 약간 더 어려워요 정확한 메모리 관리와 동기화를 해야 해요 우리는 미들웨어에서 불칸의 상당히 증가할 것이라고 생각해요 유니티나 언리얼 엔진과 같은 엔진들은 불칸을 지원하거나 불칸의 지원을 받아서 작동해요 이러한 엔진 중에 하나를 사용하신다면 아무 문제 없어요 여러분의 앱이 무료로 더욱 좋아지는 거니까요 기능성 뿐만 아니라 성능에 관련하여 adb를 위한 개선점들이 있어요 우리는 더욱 완전한 기능을 만들려고 했어요 더욱 전체적으로 말이에요 그래서 여러분은 꽤 많은 컨텐츠를 사용할 수 있어요, 예를 들어 LS 이러한 것들에 관해 adb에서 일어난 결과를 볼 수도 있어요 호스트를 이용하여 다른 프로세스로 이걸 보낼 수도 있고요 여러분이 사용할 수 있도록 더욱 완전한 기능을 제공하고 있어요 또 다른 거대한 성능 개선점이 있는데요 정말로 복잡한 알고리즘에서 특별히 노력해서 이뤄낸 건데요 버퍼 크기를 늘리는 거죠 [웃음] 구글에서는 이런 걸 해요 [웃음] 그래서 해 보세요 adb를 아신다면 선택권이 별로 없다는 걸 아실 거예요 하지만 즐겁게 이용하죠 예를 들어, 프로세스 종료 상태를 설정하고 멀리 있는 장치에 표준 입력을 전송할 수 있는 것은 특히 테스를 자동화하는데 유용해요 여러분의 장치에서 많은 것들을 자동적으로 실행시킬 수 있고 올바른 결과를 얻어낼 수 있죠 NDK의 모든 변경사항에서 우리는 클랭을 38로, 그리고 GCC를 4

9로 업그레이드 했어요 우리가 GCC를 업데이트 했지만 이번 GCC는 NDK에서 지원되는 마지막 버전일 거예요 만약 여러분이 아직도 GCC와 NDK를 사용하신다면 이제는 여러분의 앱을 클랭에서 테스트 하시는 게 좋을 거예요 이제는 바꿔야 할 때라고 생각합니다 우리는 또한 기본값을 만들었어요 arm7 아키텍처 기본값이죠 기존의 아키텍쳐는 잊으셔도 되요 그래서 여러분의 배너는 더 나은 최적화로 인해 이득을 볼 것이고 이것은 오늘날의 기기와 더욱 잘 연동이 되어야 하죠 VR, 이에 대해서 기조연설에서 간단하게 들으셨을 건데요 이번 주에 이에 대해서 조금 더 상세하게 알아볼 거예요 여러분이 알아야 하는 API의 거대한 서버 영역에 대해서 얘기할 거예요 먼저, 여러분은 장치에 있는 기능에 대해서 알아야 해요 장치는 기능보다 조금 더 구체적이에요 기조연설에서 들어서 아시겠지만요 그리고 여러분이 아셔야 할 API가 있습니다 나머지 세부사항에 관해서는 세션에 참가하셔서 알아보시길 바래요 정말로 많은 API가 있거든요 저번에 제가 봤을 때는 VR에 관해 대략 18개의 세션이 있었어요 그러니 한 번 보시길 바래요 제 생각에 이 중에서 가장 중요한 건 몇 가지 기술적인 세부사항에서 다룬 건데요 내일 아침 9시에 있는 것 같네요 하지만 스케줄을 확인해보세요 VR단계를 사용하면 아마 바로 아실 거예요 이건 마치 미안하지만, 뭐, VR? VR 보시다시피, 네 개를 인용했어요 두 개가 아니에요 네 개에요 네 개를 인용했어요? 네 개별적으로 말이죠 그렇군요 제가 덧붙일게요, 여러분이 VR에 관한 경험이나 게임, 가상 미술관이나 뭐든지 이러한 API가 여러분을 위한 게 아니라면 여러분의 앱에서 작동시키지 마세요 여러분의 앱을 더욱 빠르게 만들 수 있을 거라고 생각하신다면 이건 여러분을 위한 게 아니에요 VR을 사용하는 사람들을 위해서죠 맞아요 여러분을 위한 게 아니에요 절대 아니죠 [웃음] 서포트 라이브러리, 이건 N의 새로운점이 아니에요 하지만 간단하면서 빠르게 최근의 출시에 관해 몇 가지를 설명 드리려고 해요 232 출시에서 사람들이 고대하던 여러 가지 기능을 제공했는데요 나이트 모드 기능이에요 여러분의 앱이 밝고 어두은 테마 사이에서 빠르게 토글할 수 있는 기능이에요 머티리얼 디자인을 위한 하단메뉴 UI와 벡터/드로어블 그리고 애니메이티드벡터드로어블은 롤리팝에 있는 원래의 기능을 출시했을 때부터 사람들이 요청하던 기능이었어요 우리는 잘 몰랐죠 알고 보니 실행하기 꽤 까다로웠어요 리소스가 프로세스 되는 방식뿐만 아니라 드로어블과 이전의 버전과 호환되는 방식으로 작동되는 것 때문이었어요 처리하는데 좀 걸렸지만 결국 완성했어요 조금 이전의 출시에 있기 때문에 한 번 찾아서 확인 해보시고 사용해보시길 바래요 더욱 작은 규모인 APK로 이동해보세요 벡터가 같은 규모의 이미지보다 더 작은 경우가 많거든요 PNG나 JPEG같은 파일말이에요 리사이클뷰 오토매져, 또한 랩 컨텐츠 이러한 것들은 오랫동안 요청을 받아온 거예요 그래서 출시에 포함되었죠 231에서, 우리는 API를 리사이클뷰로 약간 조정했어요 더욱 좋은 성능을 허용할 뿐만 아니라 더욱 많은 기능이 있는 아이템을 가진 애니메이션을 위해서 말이죠 이러한 기능도 확인해보세요 벡터드로어블에 대해서 말해서 말인데요 콜트가 진행하는 강연이 있는데요 언제인지는 모르겠네요 이미지 압축과 여러분의 APK의 규모를 줄일 수 있는 방법에 대해서 다뤄요 벡터드로어블에 대해서도 얘기할 거예요 PNG와 JPEG 그리고 WebP를 사용하여 여러분의 앱을 더욱 작고 좋게 보일 수 있도록 만들 수 있는 기능도 얘기하고요 아, 그 기능이요 서포트 라이브러리에 관하여 제가 말씀 드리고 싶은 건 저는 이걸 미래라고 부르기도 하는데요 개발자들이 정말로 큰 관심을 가질 만한 흥미로운 점들이 있는데요 하지만 서포트 라이브러리에서의 새로운 점에 관한 세션이 있으므로 여기에서 말씀 드리는 것보다는 오늘 오후 4시에 진행되는 세션에 참석하셔서 앞으로 출시될 서포트 라이브러리에 관련하여 새로운 사실에 관해 알아보시길 바래요 이에 대해서 간단히 말씀 드릴게요 제가 좋아하는 주제니까요 실행에 관련된 세부사항이에요 외부에 있는 사람들은 알 리가 없는 부분이에요 하지만 N 프리뷰의 출시에서 벡터드로어블 성능은 크게 개선되었어요 로딩 측면뿐만 아니라 퍼스트드로우 측면에서의 성능과 개선에 중점을 두고 작업했으니까요 그래서 비트맵을 생성하고 여기에 만들었죠 이러한 경로를 만들어내는데 오랜 시간이 걸렸어요 여기에 시간을 투자했죠 파싱을 하는데도 시간을 투자했고요 정말로 복잡한 경로를 가지고 있으면 자바 수준에서 경로가 있는 파싱 작업에서 시간이 많이 소요돼요 여기에서 정말로 속도를 내며 작업했죠 벡터드로어블을 사용할 수 있도록 말이에요 플로트속성과 인트속성을 볼게요 제가 가장 좋아하는 속성이에요 왜냐하면 이걸 확인하게 되면 정말로 N에서 이 코드만 가지고 작업하신 거예요? 그럴수도 있죠 난 확신해요 아뇨, 아뇨 사실 저는 다른 코드도 많이 만들었어요 그리고 확인해보니 문제가 몇 가지 있더라고요 그래서 다시 확인했죠 [웃음] 플로트속성과 인트속성을 위하여 저는 많은 코드를 만들었을 뿐 아니라 이걸 대략 2년전에 이미 만들었어요 하지만 API뒤에 숨어 있었죠 이러한 기능이 공개된 API에서 노출될 때까지 사람들이 기본적인 속성 오브젝트만 사용하면서 이 기능에 접근할 수 없다는 걸 발견했어요 이제 나오게 되었으니 사용해보세요 특히 애니메이션을 위해서 말이에요 속성을 설정할 때에 JNI로 들어가서 백업하는 전형적인 매커니즘을 사용하지 않고 조금 더 직접적인 메소드를 사용하도록 허용해요 약간의 성능의 개선도 추가되었고요 그 외에 뭐가 있을까요? 안드로이드 인스턴트 앱 오늘 아침 기조연설에서 이걸 다뤘어요 여러분은 우리가 샌드박스 영역에서 데모를 확인하는 걸 보셨을 거에요 내일 아침에 하는 강연도 확인해보세요 개발자를 위한 안드로이드 플레이의 새로운 점에 관해서요 더욱 세부적인 내용을 다룰 거예요 여기서 가장 중요한 점은 출시된 제품을 얻는 거에요 아직 구매하지 않으셨다면 개발자 프리뷰 3에서 구매할 수 있으실 거예요 세션이 언제 시작하는지는 잘 모르지만 실제로 인터넷에 언제 나오는지도 잘 몰라요 하지만 가면 있을 거예요 가서 확인해보세요 dandroidcom을 모르시면 유용한 URL이 있어요 여기에 있네요 프리뷰를 구매하세요 SDK를 설정하시고요 그리고 꼭 버그를 신고하세요 그리고 빨리 해보세요 이번 출시를 마무리하려고 하니까요 다른 것들이 또 있나요? 그러면 제가 잠시만 콘스트레인트 레이아웃에 관하여 몇 가지만 말씀 드리려고 해요 제가 많이 신경쓰는 부분이니까요 여러분이 참여할 수 있는 코드 실험실이 있어요 만약 여러분이 이미 사용하고 계시다면요 그 외에는 몇 가지 질문을 받아도 될 것 같아요 약간 어색할 것 같지만요 관객들에게 마이크가 있나요? 우리가 어떻게 질문을 받아야 할지 모르겠네요 그냥 크게 말하세요 그거 아세요? 질문을 가지고 있는 2,000명의 사람들을 위해서 우리는 매일 하루가 끝날 때쯤 집무시간을 가지고 있어요 안드로이드 N 오피스 아워라고 불리는 집무 시간이에요 플랫폼을 다루는 많은 사람들이 있을 거예요 N을 위해서 일하는 사람들이죠 사실은 다른 출시에서도 열심히 일해온 사람들이에요 그곳으로 여러분의 질문을 가져 가세요 그 외에는 팀을 위해서 일하는 시간이에요 멀티윈도나 다른 것들을 위해서 말이에요 스케줄을 확인해보세요 그러면 질문을 받겠습니다 질문은 받지 않는 게 좋을 것 같아요 좋아요 약간 어색하네요 이제 마무리 하겠습니다 그리고 감사합니다 감사합니다 [박수] [신나는 음악] [전자 음악]

What’s New in Android 7.1

안녕하세요 저는 Android 개발 지지자 댄 갈핀입니다 저희가 오늘 Android 71의 시사평을 준비 해 왔습니다 몇 주 전에 저희가 Android 7

1의 개발자 시사평이 있을 거라고 떡밥을 던졌는데요 혹시 눈치 못 채셨을까 하는 말이지만 이제 시청하실 수 있습니다 이 시사평에는 다른 프로그램들과 다른 점들이 몇 가지 있습니다 71이 이미 픽셀에서 론칭했기 때문에 저희는 여러분께 처음으로 베타 품질로 넥서스 기기들을 이용해 개발업자 시사평을 보여드릴 예정입니다 이 평의 목적은 기기 특유의 문제들을 알아내는 것입니다 이 말은, 저희가 이미 새로운 API들을 API 레벨25로 마무리 지었고 구글 플레이에 새로운 API레벨을 겨냥한 앱들을 발표 가능하게 해 두었다는 것이지요 앱 개발이 되면 바로 업로드가 가능합니다 무엇이 새로워졌을까요? 우선, 안드로이드 71에는 몇 가지 런처 특유의 변화들이 있습니다 앱 내에서의 주요 조치들을 위해 단축 키에 고정, 동적 링크를 다 추가하실 수 있습니다 앱스 런쳐 아이콘을 길게 누르시면 앱 단축 키들이 뜨는데요 단축 키를 누르시면 관련 액션이 시작 됩니다 각 단축 키마다 다른 목적이 있고 그 목적에 따라 고유의 액션이나 작업을 실행하게 되는 것이지요 어떤 목적을 나타낼 수 있는 액션이라면 무엇이든 단축키를 생성하실 수 있습니다 목적의 예로는 새로운 문자 메세지 전송, 예약 비디오 재생, 게임 진행, 지도 보기 위치, 등이 있습니다 새로운 단축 키를 생성하는 방법으로는 APK안의 지원 파일에 앱을 더하는 정적인 방법이 있고 실시간으로 추가하는 동적인 방법도 있습니다 정적인 단축 키들은 일반 동작에 적합하고 동적인 단축 기들은 사용자들의 기호, 행동, 위치 등에 따른 액션들을 강조 해줍니다 각 앱당 다섯가지의 단축 키를 제공하실 수 있습니다 앱에 단축키들을 더하신 후에는 지원하는 모든 런쳐에서 사용 가능하십니다 픽셀 기기들의 기본 런쳐인 픽셀 런쳐나 넥서스 기기들의 기본 런쳐인 나우 런쳐 등 다른 지원하는 런쳐에서 사용이 가능합니다 어떤 앱 에서든 단축 키 생성이 가능하며 어떤 런쳐에든 단축기에 대한 지원을 추가하실 수 있습니다 안드로이드 71은 단축키 등록이 가능한 API를 제공하고 등록된 단축키를 읽을 수 있는 런쳐도 제공합니다 둥근 아이콘을 지원하는 기기에서는 둥근 아이콘이 사용되고 있습니다 자동적으로 말이지요 런처가 앱 아이콘을 요청 했을때 프레임워크는 장치 구성에 따라 안드로이드:아이콘 이나 안드로이드:둥근 아이콘으로 돌아갑니다 이미지 애샛 스튜디오를 사용하셔서 둥근 아이콘을 디자인 하실 수 있습니다 그 후에 구글 픽셀 기기로 테스트 해 보시거나 안드로이드 에뮬레이터와 API 레벨 25를 겨냥한 구글 API의 에뮬레이터의 시스템 이미지를 실행해 보시면 됩니다 런쳐와 관련된 사항으로는 라이브 배경화면의 메타 데이터가 강화되었다는 것입니다 현재 메타 데이터의 속성인 레이블, 설명, 그리고 작가 외에도 URL이나 제목 속성이 추가되어 사용자들이 그 배경화면에 대한 더 많은 정보를 얻을 수 있게 되었습니다 이것은 라이브 배경을 고르는 사용자들에게 더 풍부한 경험을 제공 해 줄 수 있습니다 71의 또 다른 특징은 스티커나 다른 풍성한 컨텐츠들이 입력 방법 에디터나 IME라고 알려진 소프트 키보드를 통해 사용 가능 하다는 것입니다 7

1 SDK는 커밋 컨텐츠 API를 포함합니다 이것은 세계적으로 통용된 이미지 전송 방법을 제공하고 IME에서 다양한 컨텐츠들을 직접적으로 앱의 텍스트 에디터에 제공 하고 있습니다 API 아이는 수정된 25버전의 V13 지원 라이브러리에서도 이용하실 수 있습니다 이 API를 사용하시면 어떠한 키보드의 풍성한 컨텐츠들이라도 모두 사용 할 수 있는 앱을 만드실 수 있습니다 어떤 앱에도 다양한 컨텐츠를 제공 할 수 있는 키보드도요 71에는 활용하실 수 있는 좋은 점들이 두 가지 더 있습니다 그 중 한가지는 스토리지 매니저 인텐트 입니다 앱들은 이제 스토리지를 관리 인텐트 액션을 통해 사용자들을 시스템 공간 확보 스크린으로 안내 할 수 있습니다 당신의 앱의 용량이 장치에서 사용 가능한 용량보다 클 경우 유용하지요 사용자들이 이 인텐트를 통해 불필요한 앱들이나 켄텐츠들을 삭제하고 공간을 확보 할 수 있게 되었습니다 한 가지 더, 데모 유저로써 디바이스가 작동하고 있는지도 확인하실 수 있습니다 사용자 매니저를 사용하는 것이 데모 유저 방법입니다 이것은 여러분의 앱이 잠재 고객들의 체험을 원하는 대로 정할 수 있게 해 줍니다 데모 유저로 사용하시는 동안 앱은 사용자에게 더 많은 도움을 주고 제품에 대해 더 상세하게 설명 하게 해 줄 수 있습니다 71에는 더 많은 특징들이 있습니다 예를 들어 '인어디블' 이라는 안드로이드 웨어를 지원하는 것과 중요한 전화 통신 방법들이 있지요 자세한 사항은 developerandroidcom의 안드로이드 7

1 페이지를 확인 해 주세요 이미 안드로이드 베타 프로그램에 등록 되어 있으시다면 등록된 기기가 바로 안드로이드 71 개발자 업데이트를 실행 할 것입니다 아무것도 하실 필요 없습니다 아직 안드로이드 베타에 등록 되어 있지 않으시다면 장 쉬운 방법은 Androidcom/beta에 방문하셔서 안드로이드나 태블릿으로 참여하시는 것입니다 곧 업데이트가 될 것이고 앞으로도 무선 업그레이드가 가능하실 겁니다 등록된 기기로 업데이트를 받고 싶지 않으시다면 안드로이드 베타를 방문하셔서 등록을 해제하시면 됩니다 빠른 수동 업데이트도 가능합니다 12월달에 있을 소비자 공개까지 피드백은 언제나 대 환영입니다 이 비디오에 관한 것이나 개발자 선공개 커뮤니티나 안드로이드 베타 커뮤니티에 대한 것도요 더 많은 안드로이드 개발자들의 영상

Android Studio 3.2, new APIs for ARCore, what’s new in Kubernetes 1.12, & more!

TIMOTHY JORDAN : 안녕하세요 저는 The Developer Show의 Timothy Jordan입니다

가장 멋진 개발자의 주간 업데이트입니다 Google의 뉴스 이제 Android Studio 32를 다운로드 할 수 있습니다 설명에 링크 된 게시물로 넘어가십시오

Android와 같은 주요 기능에 대한 최신 세부 정보는 아래를 참조하십시오 앱 번들, 에너지 프로파일 러 및 새로운 Android 에뮬레이터 스냅 샷 우리는 최근 ARCore 플랫폼 업데이트를 발표했습니다 증강 현실 체험을위한 Scene Form, 3D 렌더링도 업데이트했습니다 Android에서 AR 응용 프로그램을 작성하기위한 라이브러리 알고리즘 개선이 포함됩니다

그러면 앱에서 메모리와 CPU를 적게 소비 할 수 있습니다 더 긴 세션 동안의 사용뿐만 아니라 콘텐츠에 대한 유연성을 제공하는 새로운 기능 조치 코드 및 예제 스크린 샷이 게시물에 있습니다 클라우드 네이티브 커뮤니티 재단 지난 주 Kubernetes 112를 발표했다

이 게시물은 Kubernetes 오픈 소스에서 Google 클라우드가 주도하고 있습니다 프로젝트 (빠른 확장, 토폴로지 인식 스토리지 포함) 프로비저닝 및 고급 감사 기능을 제공합니다 최근에 Google은 Cloud Tasks를 발표했습니다 App Engine Flex의 작업 대기열 서비스입니다 2 세대 런타임 분산 작업의 모든 이점을 제공합니다

대기열 (작업 오프 로딩 포함) 서비스 간의 느슨한 결합 및 향상된 시스템 신뢰할 수 있음 시작하기위한 자세한 내용과 링크를 보려면, 게시물에 머리를 Google 글꼴 카탈로그에는 이제 일본어 웹 글꼴이 포함되어 있습니다 관련된 최적화에 대한 일부 세부 사항은, 게시물을 봐 Chrome을 출시한지 거의 10 년이 지났습니다

확장 시스템 및 거의 절반의 Chrome 데스크톱 사용자 확장 기능을 적극적으로 사용하여 맞춤 설정 Chrome과 웹에서의 경험 이러한 사용자는 신뢰할 수 있어야합니다 설치하는 확장 프로그램이 안전하고 개인 정보를 보호하며, 및 공연자 그래서 우리는 최근 몇 가지 변경 사항을 발표했습니다 호스트 권한에 대한 사용자 제어, 변경 사항 확장 검토 프로세스, 새로운 코드 가독성 요구 사항 설명에 링크 된 게시물을 클릭하십시오 모든 세부 사항은 아래를 참조하십시오

마음에 드시고 구독하고 공유하시는 것을 잊지 마십시오 저는 The Developer Show의 Timothy Jordan입니다 보고 주셔서 감사 드리며 다음 주에 다시 보겠습니다 안녕하세요 저는 The Developer Show의 Timothy Jordan입니다

한 번 더 – TIMOTHY JORDAN : [LAUGHING] 그래 좋아 지금? 그래 좋아

What’s New in Android Oreo for Developers

발표자 1 : Android Oreo는 여기에 있으며 소비자가 이용할 수 있습니다 희망을 갖고, 당신은 기회를 잡았습니다

긴 미리보기 과정에서 앱을 테스트하고 업데이트하는 방법 그 영향력있는 음성 초기 얼리 어댑터들은 좋은 경험 O가 가져 오는 것 – 초콜릿 샌드위치 쿠키 달콤한 새로운 기능으로 중요한 구조적 변화가있었습니다 가장 중요한 것들을 먼저 앱이 아직 구현되지 않은 경우에도 O를 대상으로 할 때, 몇 가지 점에서 O에서 다르게 동작합니다 앱이 배경에있을 때, 즉 적극적인 활동이나 전경 서비스없이, 위치 업데이트가 훨씬 적게 발생합니다

앱에 더 이상 활동이 없거나 서비스, 또는 다른 구성 요소가 잠김 상태에있는 잠김 잠금 장치 자동으로 해제됩니다 Google Play 서비스와 함께 제공되는 기기의 경우, Android ID에 보안 설정이 적용되지 않음 각 앱마다 다른 값을 반환합니다 로그인 키 및 사용자 프로필을 기반으로 광고의 경우에는 Google Play 서비스 사용자 재설정 가능 광고 ID를 사용합니다 여기에는 또 다른 개인 정보 보호 관련 변경 사항이 있습니다 O를 타겟팅하는 앱은 액세스 할 수 없습니다

계정 가져 오기 사용 권한을 사용하는 사용자 계정 대신 앱은 계정 사용자 활동에 의존해야합니다 계정 소유자는 이제 자신의 계정이 다른 앱 및 계정 사용자 활동에 표시 그에 따라 업데이트 될 것입니다 O를 타겟팅하는 경우 앱에 새로운 한도가 생깁니다 배경 처리 요약하면, 단지 적은 수의 방송 부팅 완료와 같이 앱을 시작하는 데 사용할 수 있습니다

또한 앱에서 더 이상 서비스를 시작할 수 없습니다 배경 때 명시적인 브로드 캐스트 리시버, 작업, Firebase Cloud Messaging 및 새로운 API 인 startForeground 전경 서비스를 시작합니다 Android Oreo는 다양한 영역 디스플레이를 지원하는 기능을 추가합니다 16 비트 PNG 및 ICC 프로파일, 새로운 유틸리티와 함께 ​​JPEG, PNG 및 WebP 색상 공간 및 색상 로그와 같은 Android O는 더 길고 좁은 화면을 지원하며, Android O를 더 이상 타겟팅하지 않는 앱 1

86의 기본 최대 가로 세로 비율을가집니다 활동이 최대 종횡비를 설정해야하는 경우, 시스템이 귀하의 앱을 레터 박스로 표시합니다 resizeable 활동을 false로 설정하면 최대 가로 세로 비율 속성을 사용하십시오 물론 앱을 전체 화면으로 작동시키는 것이 가장 좋습니다 다중 창을 사용하므로 최후의 수단으로 만 사용하십시오

그래픽 드라이버 문제를 쉽게 해결할 수 있도록, Android O 기기 제조업체는 Play 스토어에서이 드라이버를 업데이트하도록 선택합니다 시스템 업데이트를 수행 할 필요가 없습니다 물론 Android O는 Project Treble에 내장되어 있으므로 O와 함께 제공되는 장치는 더 쉬울 것입니다 앞으로 Android의 새 버전으로 업데이트하십시오 Android Oreo는 사용자에게 세부적인 제어 기능 제공 알림 채널을 추가하여 알림을 초과합니다

앱은 사용자에게 카테고리로 표시되는 채널을 선언 할 수 있습니다 사용자는 카테고리를 차단하고 행동 제어를 변경할 수 있습니다 진동, 조명 및 화면 개인 정보 보호 Apps는 Android O 채널을 사용해야합니다 알림을 사용하는 경우 알림 관리자에게 전화하여 알림 채널을 만듭니다

그런 다음 알림 채널 ID를 설정합니다 컴팩트 한 알림 빌더에서 Android O는 알림 배지와 점을 지원합니다 채널에서 기본적으로 set show badge를 false로 설정하여이 기능을 끌 수 있습니다

Android Oreo는 이제 앱이 AppWidget을 추가하도록 요청할 수 있습니다 런처에 AppWidget 고정 요구가 있는지 쉽게 확인할 수 있습니다 기본 시작 프로그램에서 지원됨 앱에서 사용자 인터페이스에 요청하도록 할 수 있습니다 그리고 우리는 단축키 작업을 추가하는 방법을 변경했습니다

Android 71에서 사용되는 방송을 제거합니다 AppWidgets과 유사하게, 바로 가기 고정 요청이 지원되는지 확인하려면 앱이 요청하도록하십시오 Picture in Picture는 이제 모든 장치에서 사용할 수 있습니다 Android TV

활동이 PiP 모드를 사용할 수 있는지 여부를 지정하려면, 안드로이드 설정 [INAUDIBLE]은 Picture in Picture를 지원합니다 매니 페스트에서 사실로 모든 앱이 Picture in Picture를 시작해야합니다 Picture in Picture 모드로 전화를 거는 중입니다 재개 또는 일시 중지 상태

앱에서 활동을 시작할 수 있습니다 활동 옵션을 사용하는 2 차 디스플레이에서 더 간단하게 프리젠 테이션 API보다 쉽습니다 또한 다중 창을 지원하는 활동 보조 디스플레이에서 사용자가 시작할 수 있습니다 이러한 디스플레이는 디스플레이 기반의 구성을가집니다 및 자원 관리

이것은 구성의 일부분, 스크린 폭 DP, 스크린 상 높이 DP, 레이아웃 및 밀도 DP 활동이 현재 표시되는 디스플레이에 따라 설정됩니다 상주합니다 폰트는 이제 Android O에서 완전히 지원되는 리소스 유형입니다 또한 API 14로 다시 이식되었습니다 지원 라이브러리에 있습니다

get font 메서드를 사용하여 ID로 글꼴 가져 오기 텍스트보기에서이 글꼴을 직접 사용하십시오 XML로 전체 폰트 패밀리를 정의 할 수도 있고, 글꼴 스타일 및 가중치를 선언하고, 글꼴 자원과 함께 다운로드 가능한 글꼴은 O에서도 지원됩니다 지원 라이브러리에서 구현됩니다 이러한 글꼴은 응용 프로그램간에 공유되며, 스토리지를보다 효율적으로 사용합니다

800 개 이상의 Google 글꼴을 이제 사용할 수 있습니다 Android Studio 내에서 ABK에 임베드 될 수 있습니다 주문형으로 다운로드하도록 설정할 수 있습니다 내가 좋아하는 Android Oreo 및 지원 라이브러리 기능 중 하나 TextView AutoSizing입니다 미리 설정된 텍스트 크기의 배열을 만들 수 있습니다 단계 입도로 최소 및 최대 크기를 설정할 수 있습니다

텍스트가 커지고 축소됩니다 사용 가능한 텍스트보기 공간 이제 EditText를 자동 완성 할 수 있습니다 대부분이 자동으로 실행됩니다 자동 완성 서비스 제공 업체가 더 나은 서비스를 제공 할 수 있도록 도와 줄 수 있습니다

그것에게 힌트를주는 일 자동 완성이 무시해야하는 입력란을 표시 할 수도 있습니다 Oreo의 적응 형 아이콘 지원을 통해 앱 개발자는 아이콘이 나타나는 방식을 제어하는 ​​방법 다른 아이콘을 사용하는 실행기 및 장치 포함 모양을 추가 레이어로 애니메이션 효과에 사용됩니다 Android Studio에는 새로운 마법사가 포함되어 있습니다 적응 형 아이콘을 생성합니다

그리고 O는 분수 삽입 값에 대한 지원을 추가했습니다 레거시 리소스를 사용하여 이러한 아이콘을 쉽게 만들 수 있습니다 안드로이드는 새로운 네이티브 오디오 API를 가지고 있으며, 낮은 대기 시간의 작업을 위해 설계된 AAudio는, 이펙트 프로세싱 및 실시간 합성과 같은 사용하기 쉽고 새로운 직접 모드를 추가합니다 OEM에서 구현할 경우 대기 시간을 줄일 수 있습니다 Android O에서 발견 할 수있는 부분이 많습니다

재생 및 녹음에 대한 업데이트, 애니메이터 세트 찾기 및 반전, 다중 프로세스 웹보기는 안전 브라우징, StrictMode 향상, 검색 가능한 파일 설명자 미디어 파일 액세스, 더 많은 언어 지원 등을 제공합니다 Android Oreo에 대한 자세한 내용은 링크를 확인하십시오 개발자가 핵심 기능을 활용할 수 있도록 돕는 방법 지원 라이브러리를 사용하는 기능 Android를 어떻게 개선하고 있는지 알아보십시오 [INAUDIBLE] 지원의 출시로 개발, 아키텍처 구성 요소 및 Android Studio 3

0이 포함되어 있습니다

What’s new with Android TV (Google I/O ’18)

[음악 재생] 안녕, 모두들 와우

[박수 갈채] 아무 것도하지 않았어 이미 박수 갈채를했습니다 그것은 꽤 좋은 출발입니다 관객 : [INAUDIBLE] 사샤 프로 커터 : [웃음] 나는 친숙한 얼굴이 많이 보인다 그러나 매년 무대가 커지고 있습니다

그래서, 제 이름은 Sascha Prueter입니다 Android TV 제품 팀에 있습니다 BENJAMIN BAXTER : 저는 Android TV 용 DevRel 인 Benjamin Baxter입니다 SASCHA PRUETER : Android TV에 가입 해 주셔서 감사합니다 Google I / O의 세션 이 세션은 What 's New라고 불리며, 그러나 우리는 또한 조금 이야기하고 있습니다

작년에 일어났습니다 가입 해 주셔서 감사합니다 그리고 그래, 가자 그래서 우리가 얘기 한 대부분의 시간은 작년에 Google I / O에서 이루어졌습니다 그 이후 Android TV 생태계 크게 성장했습니다

그리고 우리는 그것에 대해 분명히 행복합니다 이제 100 개 이상의 파트너가 있습니다 Android TV 기기에서 Google과 협력하고 있습니다 보시다시피, 우리는 지금까지 두 배로 늘리고 있습니다 매년

보시다시피 성장이 이루어집니다 여러 장치 및 장치 범주에서 우리는 아마도 올해 초 CES에서 들었을 것입니다 아주 다른 똑똑한 텔레비젼 가격에있는 새로운 협동 자의 낱단 Android TV 기기를 실행하는 카테고리 그래서 우리는 매우 운이 좋은 위치에 있습니다 더 이상 하나의 슬라이드에 모든 파트너를 표시 할 수는 없습니다 그래서 네가 여기 있다면, 네가 일하고 있다면 Android TV 기기에서 우리와 함께하고 로고는 여기에 없습니다

죄송합니다 우리는 공간이 부족합니다 그러나 셋톱 박스 공간에서도, 특히 TV 사업자에게 요금을 지불 할 때, 우리는 상당한 성장을 볼 수 있습니다 그리고 우리는 그것에 대해 매우 행복합니다 그래서 우리는 이미 전 세계 30 여개의 파트너가 있습니다

그래서 유료 방송 사업자, 케이블, 위성, IPTV, 배송 상자 Android TV에서 그리고 우리에게는 50 가지 이상의 추가 기능이 있습니다 그래서 우리는 정말로 행복합니다 그리고 우리는 거기에서 좋은 성장을 봅니다 그러나 하드웨어뿐 아니라, 그것은 또한 소프트웨어에 관한 것입니다 그래서 TV 앱 생태계가 또한 크게 성장했다

그리고 저는 이것이 제가 크게 말한 다섯 번째 시간이라고 생각합니다 그래서 나는 그 일을 그만 둘 것이다 하지만 여러분 모두가 앱에 기여하고 있습니다 지난 몇 년 동안 I / O에 개발자를두고 있습니다 실제로 Android TV를 들고 멋진 미디어 경험을 구축하고, 게임이나 우리가 생각하지 않은 완전히 새로운 것들, 정말로 굉장합니다

TV Play 스토어를 시작했을 때, 저는 2014 년에 25 개의 앱이 있다고 생각합니다 이제 우리는 4,000에 접근하고 있습니다 그리고 여기에는 많은 앱 개발자가 있기 때문에, 우리는 언급하기를 원했기 때문에 레이더 밑에서 조금, 우리는 또한 Android TV에서 DCB를 시작했습니다 많은 사람들, 모바일 용으로 개발하는 경우, 이동 통신사에서 직접 이동 통신사 결제를 이미 알고 있습니다 따라서 누군가가 앱을 구입 한 경우 누군가가 인앱 구매를 수행하는 경우 게임에서 차가운 새 차를 사거나, 당신은 많은 경우에 귀하의 모바일 청구서에 청구 할 수 있으며, 신용 카드가 없거나 신용 카드가없는 경우 신용 카드를 사용하고 싶습니다

그리고 같은 개념이 마지막 Google 이후에 시작되었습니다 Android TV에서의 입출력 우리는 점점 더 많은 파트너와 함께 일하고 있으며, TV 운영자에게 비용을 지불합니다 Play 스토어에서 청구 할 수있는 파트너 또는 재생 생태계 전반을 케이블에 연결하거나, 또는 위성, 또는 TV 가입 청구서 그러나 또한 우리가하는 일 중 하나 더 중점을두기 시작했다 Google Assistant입니다

작년에 우리가 간략하게 이야기하는 걸 들었 잖아요 이에 대한 Google I / O에서 그 이후로 생태계와 서비스 Google Assistant가 Android TV에 제공하는 기능은 다음과 같습니다 Android TV뿐 아니라 일반적인 기기에도 적용됩니다 성장했습니다 그래서 우리는 TV에서 Assistant의 많은 사용을 봅니다

우리는 이것이 훌륭한 추가 도구라고 생각합니다 미디어 서비스 및 앱을 사용하고 소비하는 방법 목소리와의 상호 작용만으로 TV에서 훨씬 쉬워졌습니다 단순히 TV와 대화하여 콘텐츠를 찾고, 매우 자연스러운 인터페이스를 가지고 있으며, 기억할 필요가 없습니다 그 검색어가 또 뭐야? 그냥 자연 그리고 그것은 쉽고 효과적입니다

그러나 콘텐츠를 찾는 것뿐만 아니라, 질문에 대한 답변을 찾는 것입니다 관심이있을 수도 있습니다 그 배우가 누구 일지 모릅니다 또는 집안의 다른 장치를 제어 할 수도 있습니다 Android TV의 Assistant는 모든 것을 제공합니다

그래서 우리는 그것이 매우 중요하다고 생각하기 때문에, 우리는 올해에 많은 우선 순위를두고 있습니다 길잡이를 더 많은 국가로 데려 가기 우리는 우리가 그것을 올바르게하고 있는지 확인하기를 원합니다 그래서 우리는 무엇이든을 서두르고 싶지 않습니다 그러나 우리가 2017 년 말 미국에서 시작한 이후, 우리는 [? 데려다 줄까?] 올해 볼 수 있듯이, 길잡이가 많은 나라들 Android TV의 생태계

하지만 아직 나라가 아닌 언어 나 언어를 사용하는 경우에도 어시스턴트가 활성화되어 있고 조금 기다려야합니다 우리는 음성 검색 경험을 새롭게합니다 심지어 그 나라들에서도 그래서 나는 이전에 우리가 모든 앱과 점점 더 많은 앱에 대해 정말 행복합니다 Play 스토어에서 작년 Google I / O에서 우리는 새로운 Android TV 홈을 조금만 들여다 보았습니다

경험, 시스템 UI 및 앱이이를 통합 할 수 있습니다 그 당시에는 몰래 들여다 보았습니다 미리보기 였어 그것은 안드로이드 오레오로 시작했습니다 이제 우리는 많은 파트너가이 작업을 시작했습니다

Android TV 기기로 그래서 우리는 그것이 좋은 기회라고 생각했습니다 앱이 실제로 어떻게 작동하는지 자세히 설명합니다 이 콘텐츠 첫 경험을 활용하십시오 Android TV를 통해 우리가 이루고자하는 목표입니다 그리고 벤은 조금 이야기 할 것입니다

실제로 콘텐츠 첫 번째 앱을 가지고 있다는 의미입니다 BENJAMIN BAXTER : 고마워요, Sascha 그래서 우리는이 경험을 재정의하고 싶었습니다 매우 콘텐츠 우선, 콘텐츠 중심이되고 싶었습니다 이전 스크린에 익숙하다면, 우리는 추천을 위해 한 줄을, 두 줄을 가지고 있습니다

앱의 경우 게임의 두 줄 분명히 알 수 있듯이이를 변경했습니다 따라서 앱은 여전히 ​​중요합니다 우리는 하나의 행을 가지고 있습니다 그것은 단지 당신이 가장 좋아하는 응용 프로그램입니다

사용자는이 행을 사용자 정의하고 앱을 추가 할 수 있습니다 사용자의 재량에 달려 있습니다 Android N 이하의 권장 행 우리는 그것을 몇 가지 다른 책임으로 나눴습니다 그래서 우리는 당신이 컨텐츠를 추가 할 수있는 Play Next 행을 가지고 있습니다 그리고 나중에 이것에 대해 더 이야기 할 것입니다

다시 선택하고 참여시킬 콘텐츠를 추가 할 수 있습니다 사용자와 나중에 우리가 한 다음 일은 우리가 나간 것입니다 각 앱은 자체 채널을 가질 수 있습니다 그들은 홈 화면에 자신의 표면을 가질 수 있습니다

우리는이 콘텐츠를 처음으로 디자인하려고 시도하고 있습니다 모든 앱이 모든 앱에 기여할 수 있습니다 Sascha가 Assistant와 앞서 언급했듯이, 길잡이도 홈 화면에 있습니다 Android O 또는 Android P에만 해당되는 것은 아닙니다 실제로 Android M 이상에서 지원됩니다

검색을 강화하고 계속 밀고 나가기위한 것입니다 그 내용 첫 디자인 승인 나는 내용을 먼저 말하고있다 갑자기 내 좋아하는 구절과 같습니다

하지만 정말 좋은 예제를 살펴 보겠습니다 무엇에 대한 기술적 세부 사항을 다루기 전에 콘텐츠 첫 디자인을 만듭니다 여기에 Google Play 무비가 있습니다 그리고 이것은 홈 화면에서 나온 것입니다 그리고 당신은 그들의 세부 사항에 대한 모든 것을 볼 수 있습니다

마치 영화 세부 화면과 같습니다 빌드하고 참여하도록 홈 화면에 바로 있습니다 경험 이것은 사용자에게 유용합니다 그들은 앱에 들어가서 뒤로 물러 설 필요가 없습니다

그들은 홈 화면에서 바로 결정을 내릴 수 있습니다 우리가 한걸음 더 나아간다면 비디오 미리보기가 있습니다 그래서 당신은 영화, 예고편 훌륭한 비디오 미리보기를 만듭니다 오디오 앱의 경우 10 초짜리 클립 훌륭한 오디오 미리보기입니다 미리보기가있는 것으로 나타났습니다

사용자와 참여도를 높이고 참여도를 높이기 귀하의 앱에 Play Next 행에 대해 이전에 말씀 드렸습니다 추가 할 수있는 좋은 장소입니다 사용자를 다시 불러들이는 콘텐츠 정말로 긴 영화를보고 있다면, 당신은 약간의 추가 메타 데이터를 추가합니다 더 많은 문맥을 추가하기 위해 아름다운 진행 표시기를 만들 것입니다 그리고 사용자는 앱으로 돌아갈 수 있습니다

그리고 나는 채널을 말했다 홈 화면의 작은 행 하나에 국한되지 않고, 당신은 당신이 원하는만큼 많은 채널을 가질 수 있습니다 여기를 살펴보면 추천 채널, 최고 무료 이들은 신선한 채널이 될 것입니다 이것들은 매일, 심지어 매시간 업데이트되는 표시를 가지고 있습니다

승인 이제 우리는 무엇에 관한 좋은 컨텍스트를 갖게되었습니다 홈 화면에서 어떻게 할 수 있는지 잠수 해 봅시다 이 경험을 쌓아 라 채널이란 무엇입니까? 채널은 단지 로고와 이름입니다

그것이 전부입니다 프로그램을위한 컨테이너입니다 이것은 당신이 주제가 될 것입니다 귀하의 콘텐츠와 더 깊은 모든 것을 맞춤 설정하십시오 프로그램에서

채널을 구축하기 위해 지원 라이브러리가 있습니다 단지 빌더 패턴을 사용합니다 슈퍼 쉽고 슈퍼 편리합니다 홈 화면의 모든 항목을 클릭 할 수 있어야합니다 따라서 로고를 클릭하면 앱으로 다시 열립니다

그래서 App Link URI를 설정하면됩니다 홈 화면에서 앱을 열 수 있습니다 중요한 것은 내부 공급자 ID입니다 앱의 홈 화면에 알릴 ID입니다 이걸 추적 해

나는이 신분증이 무엇인지 압니다 나중에 내 채널을 쿼리 할 때 내 채널을 홈 화면이 알고있는 것과 동기화 할 수 있습니다 내 앱에 대해서 그리고 그게 다야 그것은 콘텐츠 제공자를 사용합니다

그리고 우리에게는 편리한 방법이 있습니다 콘텐츠 제공 업체의 즐거움을 아는 사람들에게, 보일러 플레이트 코드가있을 수 있습니다 우리는이 모든 것을 지원 라이브러리에 추상화했습니다 또한 콘텐츠 제공 업체를 쉽게 구축 할 수 있습니다 API

콘텐츠 제공자에게도 익숙한 사람들 URIs는 지루하고 성가신 일이라는 것을 알아라 관리 할 수 ​​있습니다 지원 라이브러리가 모든 것을 관리합니다 그것은 단지 간단한 삽입 문장 일뿐입니다 채널 ID를 다시 얻습니다

이전에 내부 공급자 ID로 말했듯이, 채널 ID와 내부 공급자를 사용할 수 있습니다 ID를 사용하여 동기화 할 때 확인하십시오 나중에 채널을 업데이트하면 필요한 모든 열쇠를 가져라 좋아요, 채널은 말했듯이, 그들은 단지 한 줄의 껍질입니다 프로그램은 정말로 중요한 문제입니다

이제 프로그램의 예를 살펴 보겠습니다 이 프로그램에서는 많은 일들이 일어나고 있습니다 미리보기 이미지가 있습니다 제목, 설명이 있습니다 이 프로그램에 대해 알고있는 다른 것 을 홈 화면에 추가 할 수 있습니다

더 많은 메타 데이터를 추가할수록 더 풍부한 경험, 사용자 참여가 더 좋습니다 귀하의 세부 정보 페이지에있는 내용, 홈 스크린에 두는 것은 당연한 일입니다 다시 빌더 패턴 이번에는 프로그램에서 채널 ID를 설정하려고합니다 그래서 홈 스크린은 홈 스크린에 어디에 놓을 것인지를 안다

그리고 만약 당신의 프로그램이 하나 이상의 채널을 가지고 있다면, 고유 식별자를 추가하십시오 홈 화면은이 식별자를보고 말합니다 우리는이 채널에서이 프로그램에 대해 이미 알고 있습니다 그리고이 채널에도 있습니다 우리는 사용자가 중복 된 것을 보지 않고보다 깨끗하고 매끄러운 환경을 제공합니다

또한 유형을 설정하려고합니다 이 예에서는 유형을 MOVIE로 설정합니다 하지만이 유형을 사용하면 홈 화면에 표시됩니다 그리고 이전에 Red Bull에서 비디오 미리보기를 보여주었습니다 URI를 추가하는 것만 큼 간단합니다

그래서, 그냥 내 비디오 미리보기가 https // wwwmyvideocom 홈 화면에서 동영상이 재생됩니다 ExoPlayer를 사용합니다

ExoPlayer에서 지원되는 모든 비디오 포맷은 귀하를 위해 즉시 지원됩니다 DRM이 있거나 조금 더 복잡한 유스 케이스가있는 경우, 우리는 당신이 할 수있는 솔루션을 지원합니다 비디오를 표면에 그리십시오 내일 사무실 시간에 우리를 만나러와, 우리는 그것에 대해 더 깊이 들어갈 수 있습니다 이것은 채널과 매우 유사합니다

콘텐츠 값으로 변환합니다 그런 다음 콘텐츠 값에서 URI가 필요합니다 URI는 동적입니다 특정 채널에 프로그램을 삽입하려면, 그래서 지원 라이브러리를 사용하십시오 삽입하면 프로그램 ID가 반환됩니다

이제 프로그램이 채널에 있습니다 프로그램 ID가 있고 채널 ID가있는 경우 동기화, 업데이트 및 업데이트에 필요한 모든 도구가 있습니다 콘텐츠를 업데이트하려고하면 나중에 삭제할 수 있습니다 좋아, 내가 채널을 만드는 방법을 말해 줬어 빌더 패턴을 사용하여 컨텐츠 제공자에게 추가하십시오

그러나 언제 그것을 만들 수 있습니까? 언제 아주 중요합니다 우리는 많은 시간을 알아 내려고 노력했다 시작하는 법 그래서 우리는 새로운 의도로 끝을 맺었습니다 그래서 트리거 될 INITIALIZE_PROGRAMS가 있습니다

그리고 이것은 앱보다 먼저 발생할 수 있습니다 시작합니다 이것은 나쁜 생각이 아닙니다 앱이 TV로 다운로드되거나 업데이트됩니다 갑자기 홈 화면에 콘텐츠가 있습니다

사용자가 앱에 들어가는 훌륭한 방법 이 INITIALIZE_PROGRAMS을 (를) 들어보세요 채널을 설정하고 프로세스를 시작하십시오 좋아요, 우리가 마지막으로 이야기 한 것은 Google Assistant였습니다 Google Assistant는 꽤 환상적인 경험이라고 생각합니다

그것은 그 내용을 먼저 접근합니다 Google 길잡이 통합을 위해 할 수있는 일 검색 구현, 딥 링크 지원, 재생 컨트롤을 처리합니다 그럼 더 살펴 보겠습니다 Google Assistant를 사용하여 검색을 수행하면, Google Assistant는이 콘텐츠를 처음 디자인으로 유지합니다 내가 좋아하는 영화 "Big Buck Bunny"검색

그것이 당신의 마음에 드는 사람이기를 바랍니다 그리고 당신은 정보의 낱단을 볼 것이다 – 엄지 손톱, 설명, 제목 앱이 일치하는 경우, 제목, 기간, 연도와 일치하는 경우 최소, 메타 데이터가 반환되면 표시됩니다 사용 가능한 앱 목록에 표시됩니다 어떻게 이걸로 맞습니까? 커버 아래에서 어떤 일이 발생합니까? 우리는 더 많은 콘텐츠 제공자를 사용합니다

이번에는 앱이 Google Assistant에 데이터를 제공하고 있습니다 Google Assistant는 URI를 전달합니다 검색을 수행 할 수 있습니다 이 콘텐츠 제공 업체에서는 원하는 모든 것을 할 수 있습니다 로컬 데이터베이스 호출, 네트워크 호출

검색을 수행하기 위해해야 ​​할 일은 무엇이든, 넌 할 수있어 이 URI는 원시 검색 문자열을 포함합니다 Google Assistant에서 삭제되지만 위생 처리됩니다 그래서 당신이 "Big Buck Bunny"와 같은 말을한다면, 너에게 "Big Buck Bunny"를 보낼거야 Play가 명령이라는 것을 깨달으십시오

그래서 당신이 얻는 URI가 당신이 검색해야 할 열쇠가 될 것입니다 좋아, 재생 제어 – 너희들이라면 Media Session에 익숙하다면 아무 것도 할 필요가 없습니다 앱에서 이미 지원합니다 그러나 우리는 더 자세히 살펴볼 것입니다 Google 길잡이를 지원하려면 쇼를보고있는 동안 다른 명령을하십시오, 예를 들면, 안녕하세요, Google, 영화, 앱에서 일시 중지, 당신은 방금 미디어 세션을 구현합니다

OnPlay 또는 onPlay에서이 함수를 사용하여 콜백을 제공하십시오 그리고 Google Assistant가 미디어 세션을 통해 onPause, onPlay– 예, 일시 중지 / 재생 버튼을 누르기 만하면됩니다 리모컨에 아마 가장 유용한 기능은 아니지만 거기에 있습니다

그리고 실제로는 정말 멋진 경험입니다 내가 제일 좋아하는 것이 있습니다 당신은 단지, 안녕, 구글, 5 분 빨리 감는다 Google Assistant는 실제로 수학을 수행합니다 안녕하세요

귀하의 미디어 세션에 상태가 있습니다 나는 그 상태의 현재 위치를 안다 5 분 빨리 감기라고 했잖아 그게 300 초 야 그래서 나는 새로운 위치를 보낼거야

귀하의 앱에 미디어 세션에 익숙하다면, 당신은 onRewind와 onFastForward가 있다는 것을 압니다 여전히 이러한 메소드를 구현해야합니다 하지만 Google Assistant는 이미 수학을 계산하기 때문에 사용자를 보낼 위치 다음은 오디오 앱에 더 유용합니다

비디오 앱보다 그러나 당신이 말하는 경우에, 어이, Google는 다음 노래를한다, 또는 OK Google을 선택하고 이전 노래로 돌아가서 재생 한 다음, onSkipToNext 구현 만하면됩니다 및 onSkipToPrevious 요점을 되짚어보기 위해 가정에서의 모범 사례는 무엇입니까? 화면? INITIALIZE_PROGRAMS에 귀 기울여야합니다 이것은 프로그램 작성을위한 게이트웨이입니다

홈 화면에서 그 경험을 구축 할 수 있습니다 메타 데이터에 관해서는 충분할 수 없습니다 추가하는 메타 데이터가 많을수록 더 풍부 해집니다 경험, 사용자의 참여도가 높습니다 참여의 그 주제를 유지하면서 미리보기를 추가하십시오

실제로 참여를 유도하고 구축 할 것입니다 사용자에게 좋은 경험 콘텐츠를 최신 상태로 유지 – 오래된 콘텐츠가있는 경우, 사용자에게 신뢰를 잃을 수 있습니다 홈 화면에 채널이있는 경우 그리고 당신은 1 년 후에 그것을 업데이트하지 않았습니다 알다시피, 일단 사용자가 모든 프로그램을 시청하면, 그들은 다시 돌아갈 이유가 너무 많지 않습니다

그래서 당신은 그 내용을 신선하게 유지하고 싶습니다 그리고 그것은 당신의 앱에 달려 있습니다 YouTube 또는 Haystack과 같은 앱의 경우 당신은 사용자가 큐레이터 화 된 콘텐츠를 가지고 있습니다 어쩌면 몇 시간마다 업데이트 할 수 있습니다 Google Play 영화와 같은 앱의 경우 콘텐츠가 이미 통제 된 곳에서 하루에 한 번 또는 일주일에 두 번 업데이트 할 수 있습니다

목표는 콘텐츠를 신선한 상태로 유지하여 사용자가 무언가를 얻도록하는 것입니다 매일 같이 참여할 수 있습니다 그리고 조수에게 올 때, 미디어 세션은 당신의 친구입니다 Google Assistant를 사용하여 원하는 모든 작업, 미디어 세션이 핵심입니다 좋은 소식은,이 모든 것들이 오늘 할 수 있다는 것입니다

Android O에서 생방송입니다 Sascha로 돌려서 물건에 대해 이야기하기 너희들은 장래에 할 수있다 고맙습니다 [박수 갈채] 감사합니다

감사합니다 고마워, 벤 다양한 반응을 보는 것도 흥미 롭습니다 청중의 경우, 메모를 쓰는 사람과 사진, 코드 슬라이드 토론, 그리고 다른 사람들은, 친구처럼, 그냥 몇 가지 장치를 시작하십시오 그래서 우리는 새로운 것에 대해 조금 더 이야기 할 것입니다

오늘 아침에 데이브 버크 (Dave Burke)와 다른 사람들로부터 이미 들었습니까? Android P의 새로운 기능은 무엇입니까? 물론, 안드로이드 TV는 안드로이드 P에서도 몇 가지 새로운 기능을 추가 할 예정이다 그래서 우리가 투자하고있는 몇 가지 영역에 대해서만 강조 할 것입니다 하나는 확실히 성능입니다 Android P에서 많은 작업을 수행했습니다 실제로 Android TV의 성능, 속도 및 성능 향상 엔트리 레벨 하드웨어

따라서 매우 저렴한 스마트 TV 중 일부에서도 본 적이 있거나 셋톱 박스를 가지고 있다면, 우리는 모든 것이 기진 맥진하다는 것을 확인하십시오 그리고 우리는 Android P에서 많은 투자를했습니다 그리고 개발자로서 몇 가지 살펴 봅니다 앱과 앱의 행동에 대해 생각하는 것입니다 어쩌면 어떤 애니메이션, 일부 기능, 낮은 메모리 장치를 비활성화하거나 조정할 수 있습니까? 우리는 이것이 일부 앱에서 가장 일반적인 문제 중 하나임을 알 수 있습니다

엔트리 레벨 하드웨어 따라서 isLowRamDevice를 살펴보십시오 앱 동작을 조정 해보세요 그것으로 조금 놀아 라 어쩌면 애니메이션에 약간의 비틀기가있을 수 있습니다

또는 특정 기기에서 사용 중지 애니메이션을 보거나 특정 기능을 살펴보십시오 또한 메모리 프로필러를 사용하여 앱 프로필을 실제로 확인하십시오 병목 현상이 발생할 수있는 곳을 확인하고, 우리는 아직도 그 중 일부가 가장 많이 보임을 알기 때문에 앱이 갑자기 FPS에서 떨어지는 일반적인 행동 또한 Android Vitals를 사용합니다 응용 프로그램의 성능을 모니터링합니다

하지만 다시 한 번 Android TV 기기에서 Android P가 표시되어야합니다 훨씬 더 빨리, 훨씬 더 잘 수행하십시오 하드웨어가 줄어들어 더 많은 장치가 보입니다 봉투 그러나 우리는 분명히 사용자를 위해 몇 가지 사항을 업데이트하려고했습니다

완전히 설정 한 Android TV를 사용하기가 더 쉬워집니다 경험 내 말은, 솔직 해지자 모든 사람들이 새로운 장치를 반드시 설치해야하는 것은 아닙니다 그리고 우리는 전체 경험을하고 싶었습니다

모든 장치를 쉽게 설치할 수 있도록 장치를 푸는 것에서 훨씬 쉽고 빠르다 그리고 당신은 그것으로 많은 것을 다룰 필요가 없습니다 Android P에서는 전체 설정 과정이 더 간소화되었습니다 나는 우리가 전체 시간을 단축했다고 생각한다 거의 3 분의 1이 지나면 거기로 가야합니다

그리고 우리는 거기에 몇 가지 추가 단서를 가지고 있습니다 전화 통합이 더 좋은 곳 Android 휴대 전화를 가지고 있다면 설정 알림을 받게되므로 계정 세부 사항을 이전 할 수 있습니다 예를 들어 Google 계정, TV로 쉽게 전송할 수 있습니다 또한 브라우저 로그인을 개선했습니다

비 Android 기기의 경우 그래서 iOS 장치 또는 랩톱 덕분에 우리는 많은 것을 향상 시켰습니다 훨씬 빠릅니다 훨씬 쉽습니다 따라서 설치 과정을 훨씬 쉽게 할 수 있습니다 하지만 그것은 단지 귀하의 계정으로 장치를 설정하는 것입니다

모든 설정이 제대로 작동하는지 확인하십시오 스마트 TV 나 OTT 상자에서도 원하는 것은 무엇입니까? 당신도 모든 앱을 원합니다 맞습니까? 당신은 모든 내용을 원합니다 따라서 설정 프로세스의 일부로 차세대 Play 자동 설치 그리고 우리는 이미 당신에게 애플 리케이션을 추천합니다

다른 Android TV 기기에 설치 한 동영상, 과거 Android TV 기기 또는 휴대 전화에서 해당 TV 앱이있는 경우 그래서 우리는 자동으로 당신에게 제안합니다 설정 흐름의 일부로 그리고 당신은 거기에서 선택할 수 있습니다, 예, 나는이 모든 애플 리케이션을 원합니다 또는 어쩌면, 오, 나는 그 중 단지 몇 가지를 원한다 단지 몇 번의 클릭, 체크 박스, 모든 것이 다운로드되고 설치되고있다 자동으로 Play에서 더 이상 수동 검색이 필요 없습니다

새 장치를 설치 한 후에 저장하십시오 하지만 앱 다운로드 및 설치 우리가 최적화하고 싶었던 한 부분 일뿐입니다 훌륭한 경험이 앱에 적용되지 않는 것은 무엇입니까? 그런 다음 사용자 이름으로 로그인해야한다는 것을 알게됩니다 그리고 패스워드와 어색하게 들어갈 필요가있다 리모컨으로

그래서 자동 완성 기능을 도입했습니다 Android TV에서 Google과 그래서 당신이 신임장을 입력했다면 다른 Android 기기의 앱 중 하나에서 우리는 당신에게 자동으로 제안하고 있습니다 예, 예라고 말하면 모든 로그인 자격 증명이 추가됩니다 사용자 이름을 입력하지 않고 자동으로 로그인합니다 또는 암호

그래서 그것은 설정입니다 그러나 또한 많은 사용자를 본 영역 중 하나 물건을 찾는 데 많은 시간을 할애하고, 분명히, 진짜로 그것을 즐기지 않고, 설정, 맞죠? 때때로, 당신은 물건을 팅겨보고, 또는 설정시 특정 설정 단계를 건너 뜁니다 새 장치 또는 오디오 설정을 변경하려는 경우, 다른 계정을 추가하거나 이와 같은 것을 추가 할 수 있습니다 Android TV에서 설정을 변경했습니다 훨씬 더 유선형이고 훨씬 덜 어지럽 힙니다

그리고 우리는 자동으로 당신에게 설정을 제안합니다 우리는 당신이 찾고 있다고 생각합니다 예를 들어 계정 로그인을 건너 뛴 경우, 우리는 여기 애니메이션에서 보았 듯이, 이미 강조 표시됩니다 또는 몇 가지 앱으로 주위를 비웃는 것을 보았을 때, 그리고 뭔가 옳지 않았고, 당신은 설정으로 들어가고, 우리는 아마도 당신을 위해 앱 설정을 강조 할 것입니다 우리는 신속하게 얻을 수 있도록하고 싶습니다 당신이 필요로하는 것을 쥐어 짜내고, 다시 나가십시오

그래서 Android P에 대한 정보가 많이있었습니다 Android P 미리보기 SDK TV 에뮬레이터로도 놀 수 있습니다 그것을 밖으로 시도하십시오 거기에 몇 가지 다른 깔끔한 것들이 있습니다, 예 : 외부 카메라 지원

따라서 TV 용 카메라 앱을 작성할 수 있습니다 네가 원한다면 그래서 당신은 그것을 가지고 놀 수 있습니다 우리는 더 많은 문서를 발표 할 예정입니다 가까운 장래에 TV 앱의 성능 측면을 중심으로, 그러나 우리는 두 가지 더 많은 것을 말하고 싶었습니다

우리는 지금까지 소프트웨어에 대해 많이 이야기했습니다 그러나 우리는 멋진 하드웨어 경험이 무엇인지에 대해서도 생각했습니다 확장 할 수있는 멋진 기기 란 무엇인가요? 거실에서의 경험? 그리고 우리가 스스로에게 묻는 질문들 중 하나 진짜 시원한 거실은 어때? 장치가 중심이되는 경험, 허브 어시스턴트가 통합 된 거실의 사용하기 쉽고 모든 다른 장치를 제어하며, 내 TV 화면에 최고의 Android TV 경험을 선사합니다 어떻게 생겼을 까? 그리고 그 결과, 그 대답 이런 식 이었어 [비디오 재생] [음악 재생] – 안녕, 구글

티비를 켜라 – 안녕, 구글 ESPN에서 Clemson 축구 경기를 즐겨보세요 좋아 다시 전화 한거야? 호기심? 기회? – 안녕, 구글

새로운 "Star Trek"쇼는 무엇입니까? – 여기에 "Star Trek, Discovery"에 대한 정보가 있습니다 – 발견 – 안녕, 구글 YouTube Kids에 감자 배터리 동영상을 보여주세요 – 괜찮아

YouTube 키즈에 감자 배터리 동영상이 있습니다 [CHEERING] – 안녕, 구글 대학 축구는 얼마 동안 연장 되었습니까? – Wikipedia에 따르면, 일반적으로 10 분입니다 – 좋았어 – 이거 정말 맛있어

– 안녕, 구글 케틀 옥수수를 더 구입하십시오 – Google Express에서 찾은 내용은 다음과 같습니다 – 나는 그 쇼를 의미했다 – 알아

– 기다려 안녕, 구글 조명을 어둡게하고 TV를 끄고 Pandora에서 음악을 재생하십시오 [음악 재생] – 우 [끝내기] [박수 갈채] SASCHA PRUETER : 이미 보셨 듯이, 어제 일부 언론 매체에서 시작, 우리는 파트너 인 JBL과 함께, 안드로이드 TV로 구동되는 JBL Link Bar

멋진 사운드 바입니다 Google Assistant가 통합되어 있습니다 우리는 파 필드 마이크를 장치에 넣기 때문에, 리모콘을 집어 올 필요가 없습니다 당신은 소파에 앉아 장치에 말을 걸고, 전체 경험을 제어 할 수 있습니다 그것은 정말 멋진 사운드를 가지고 있습니다

선택 품목 인 서브 우퍼가있을 것입니다 너는 그것으로 또한 주문할 수 있는다 그리고 정말 멋진 기능이라고 생각합니다 3 개의 HDMI 입력 단자가 있습니다 그리고 당신은 생각할지도 모릅니다

글쎄, 왜 그렇게 멋진가? 너는 진짜로 너의 전체 가정 오락을 통제 할 수 있는다 이 경험 많은 사람들이 실제로 글쎄, 당신은 플레이 스테이션이나 엑스 박스를 가지고 있을지도 모릅니다 또는 여전히 블루 레이 플레이어가있을 수 있습니다 또는 무엇이든간에 케이블 셋톱 당신이 아직도 좋아하는 상자 따라서 모든 장치를 JBL Link Bar에 연결할 수 있습니다 Assistant를 사용하여 제어 할 수 있습니다

예를 들어, 당신이 플레이 스테이션으로 전환하고 싶다면, 그리고 그것은 단지 마술처럼 일어납니다 그리고 또한, 만약 당신이 놀고 있다고 가정 해 봅시다 플레이 스테이션 게임, 그리고 당신 조수에게 질문이있어 그냥 길잡이에게 물어 보면 길잡이가 대답 할 수 있습니다 현재 HDMI 입력에 대한 응답 카드를 보여줄 수 있습니다

따라서 단순한 HDMI는 아닙니다 이것은 활성 입력입니다 그리고 그것은 정말로 당신에게 권력을 보여줍니다 어시스턴트와 안드로이드 TV를 거실 플랫폼으로 그리고 다른 멋진 점은 우리가 이것을 스피커 전용 모드로 만들기 위해 노력하고 있습니다 때로는 TV 화면이 필요하지 않기 때문에 그렇습니까? 오디오를 듣거나, 음악을 듣거나, 어쩌면 뭔가 물어볼 수도 있습니다

정말로, 이것을 매우 낮은 핵심 스마트 스피커로 바꾸는 것 멋지다 그래서이 장치는 모든 것을 할 수 있습니다 그리고 어쩌면 당신이 원할 때도 있습니다 블루투스 또는 전송 된 오디오를 통해 장치로 음악을 전송할 수 있습니다 잘 작동합니다

거실을위한 원 스톱 상점입니다 모든 것을 제어 할 수 있습니다 그것은 아주 쉽다 또한 리모컨도 함께 제공됩니다 그러나 당신이 목소리로 그것을 사용하는 것을 선호한다면, 음, 정말 쉽습니다

그것을 확인해야합니다 우리는 안드로이드 TV 샌드 박스에 샌드 박스 C를 가지고 있습니다 그리고 팀의 사람들 중 일부에게 데모를달라고하십시오 그거 정말 멋지다 좋은 소리

2018 년 가을에 출시 될 예정입니다 그래서 두 가지 더 말했지, 그렇지? 그래서 또 하나 우리는 이전에 Android P에 대해 많이 이야기했습니다 그리고 개발자로서, 당신은 모든 것을 벤 그냥 따라 가고 싶습니다 너에게 말했다

그리고 네가 물었다 Android P SDK, 미리보기 SDK 및 다운로드 할 수 있습니다 에뮬레이터와 함께,하지만 난 정말 이를 위해 실제 하드웨어를 갖고 싶어합니다 그래서 네가 누구인지 알지 못해 Moscone Center의 Google I / O 2014에서 손이 많이 듭니다

승인 여러분 중 일부는 이미 2014 년 모스 콘에있었습니다 그리고 그들은 우리가 그 당시에 장치를 출시 한 것을 기억할 것입니다 Android TV를 소개합니다 그것은 ADT-1이라고 불 렸습니다

[박수 갈채] 그래서 우리는 생각 했어 네가 원한다면 너는 박수 갈채를 보낼 수있어 그러나 우리는 그것이 다른 개발자 장치를위한 시간이라고 생각했습니다 그래서 우리는 ADT-2를 소개하고 있습니다 [박수 갈채] 따라서 가입 양식 링크를 적어 두는 것이 좋습니다

당신이 실제로 이것을보고 처음으로 이것에 가입 할 수 있습니다 모든 스마트 폰 실제로 Google 렌즈에 대한 꽤 좋은 테스트입니다 실제로는 – BENJAMIN BAXTER : 오, 그래 SASCHA PRUETER : 어쨌든

BENJAMIN BAXTER : 샌드 박스에 가면 나중에 사운드 바를 체크 아웃하고 [INAUDIBLE] ,, 이 링크와 함께 이메일도 받게됩니다 SASCHA PRUETER : 네 좋은 지적

그래서 이것은 깔끔한 작은 HDMI 동글입니다 그것은 BTLE 가능하게 될 것입니다 – 죄송합니다 음성 지원 원격 제어 장치입니다 따라서 모든 Assistant 통합 팁을 시험해 볼 수 있습니다 벤이 방금 말한 거에요

Android P 개발자 미리보기 릴리스가 실행됩니다 기기 업데이트가 전송됩니다 그건 그렇고, 우리는 또한 사운드 바에 업데이트를 보내고 있습니다 Google, Android TV 팀에서 시스템 업데이트를 전송합니다 새로운 안드로이드 버전을 제공합니다

그래서이 장치를 사용하여 모든 멋진 것들을 시험해 볼 수 있습니다 그것은 한정판 장치이기 때문에 먼저 그것에 대해 알고 있습니다 가입하십시오 우리는 이번 여름에 실제로 이것을 보냅니다 그리고 그것은 깔끔한 작은 장치입니다

우리는 실제로 그것에 대해 정말로 흥분하고 있습니다 가입하십시오 멋진 앱을 만들 수 있습니다 그것은 이미 그것의 종류입니다 나는 두 가지 더 말했다

두 가지가 더 있습니다 BENJAMIN BAXTER : 맞아 SASCHA PRUETER : 우리는 – 앱에서 작업하는 경우 좀 더 흥미로운 사건들 관심이있을 수 있습니다 벤, 네가 언급하고 싶은지 모르겠다

BENJAMIN BAXTER : 네 영업 시간에 방문하십시오 우리는 Office Hours에서 back-to-back 앱 리뷰를 보유하고 있습니다 우리는 길을 약간 지나갈 것입니다 사무실 시간 텐트가있는 곳

질문이 있으면 가져 오십시오 지루하고 여전히 TV를하고 싶다면, 코드 랩 섹션에는 두 개의 새로운 코드 랩이 있습니다 하나는 Play Next 행에 초점을 맞 춥니 다 다른 하나는 전체 주택에 대한 개요에 초점을 맞추고 있습니다 화면

우리는 당신을 만나고 거기에 질문을하기를 기대합니다 SASCHA PRUETER : 네 그리고 질문에 대해 말하자면, 분명히, 우리는 당신의 피드백을 원합니다 또한 질문이있는 경우 그 마이크들을 봤니? 타이밍 때문에 사용하지 않습니다 우리는 곧 여기 밖으로 셔플 될 것입니다

하지만 안드로이드에서이 이야기를 한 후에 벤과 나는 끝날 것이다 TV 샌드 박스 이리와, 우리에게 말하고, 우리에게 질문 해 그리고 저는 벤에게 그 질문에 답할 가능성이 높습니다 고맙습니다

멋진 TV 앱을 제작하십시오 내년에 다시 보길 바랍니다 BENJAMIN BAXTER : 고맙습니다 [박수 갈채] [음악 재생]