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을 위해서 일하는 사람들이죠 사실은 다른 출시에서도 열심히 일해온 사람들이에요 그곳으로 여러분의 질문을 가져 가세요 그 외에는 팀을 위해서 일하는 시간이에요 멀티윈도나 다른 것들을 위해서 말이에요 스케줄을 확인해보세요 그러면 질문을 받겠습니다 질문은 받지 않는 게 좋을 것 같아요 좋아요 약간 어색하네요 이제 마무리 하겠습니다 그리고 감사합니다 감사합니다 [박수] [신나는 음악] [전자 음악]