개발자를 위한 Android 7.0: 새로운 기능, 성능 업그레이드 및 관심 없는 기타 사항

게시 됨: 2022-03-11

Google은 몇 주 전에 Android 7.0 Nougat를 공식적으로 발표했지만 평소와 같이 기다려야 합니다. 대부분의 사용자는 내년 초까지 무선(OTA) 업데이트를 받지 못할 것입니다. 일부 장치 공급 업체는 단순히 귀찮게하지 않기 때문에 많은 다른 사람들은 일주일에 한 번도 받지 않을 것입니다.

이것은 내가 비꼬는 개소리처럼 들릴지 모르지만 Android 조각화는 농담이 아닙니다. 수년 동안 사용자와 개발자에게 심각한 골칫거리였습니다. Android 7.0은 이 문제를 해결하지 못합니다. 사용자가 확실히 즐길 수 있는 여러 가지 새로운 기능과 성능 개선을 가능하게 하기 때문에 안타까운 일입니다.

그러나 개발자는 희망을 가져서는 안됩니다. 여기에는 게임 체인저가 없습니다. 가장 영향력이 큰 것부터 가장 덜 영향력 있는 것까지 Android의 내부에 있는 주요 조정과 이들이 제시하는 새로운 기회를 살펴보겠습니다.

  1. ART의 기존 AOT 컴파일러를 보완하는 새로운 JIT 컴파일러
  2. 다중 창 지원
  3. Vulkan API 지원
  4. 직접 부팅
  5. 직접 답장 및 번들 알림
  6. Daydream 가상 현실(VR) 모드
  7. UI, 접근성 조정 및 배경 최적화

이것은 분명히 모든 새로운 기능 의 포괄적인 목록이 아닙니다. 나는 탑 7에 정착했다. Google의 개발자 천국으로 이동하면 Android 7.0에 대한 심층적인 개요를 얻을 수 있습니다. 불필요한 잡동사니를 아껴두고 유용한 정보를 요약해서 소화하기 쉬운 형태로 안내해 드리겠습니다.

1. 새로운 JIT 컴파일러, 프로필 기반 컴파일

JIT 컴파일이 돌아왔고 Dalvik 시대로의 후퇴처럼 들릴 수 있지만 그렇지 않습니다. 이번에 Google은 ART의 기존 AOT 컴파일러를 보완하기 위해 ART에 코드 프로파일링이 포함된 JIT 컴파일러를 추가했습니다. 그리고 프로필 기반 편집 은 오늘의 유행어입니다.

큰 사용자 이점: 설치하는 데 몇 분이 걸리던 대용량 앱을 이제 몇 초면 됩니다.

ART는 각 앱의 핫 메소드 및 다양한 장치 조건에 대한 프로필을 생성합니다. 최적의 성능을 제공하고, RAM 사용을 줄이며, 전력 소비를 줄이는 등 핫 메서드를 미리 컴파일할 수 있습니다.

Android 7.0의 JIT 및 AOT 컴파일러

Android 7.0: 새로운 기능, 성능 향상 및 신경 쓰지 않는 기타 기능.
트위터

추가 이점은 설치 및 업데이트 속도가 매우 빠르다는 것입니다. 프로파일링은 최적화 단계가 없음을 의미하기 때문에 Google은 Android 6.0에 설치하는 데 몇 분이 걸렸던 대용량 앱을 이제 몇 초 만에 설치하거나 업데이트할 수 있다고 주장합니다. 개인적으로 이것이 World of Tanks Blitz에도 적용되기를 바랍니다. 내 시간을 할애할 가치가 있는 유일한 Android 게임이기 때문입니다.

지난 몇 년 동안 모바일 스토리지에 많은 발전이 있었습니다. 많은 현재 세대 장치는 빠른 UFS 2.0 스토리지를 사용하여 과거의 eMMC 스토리지에 비해 상당한 성능 향상을 제공합니다. Android 7.0은 소프트웨어 엔지니어가 이 새로운 스토리지 표준을 최대한 활용하고 훨씬 더 뛰어난 성능을 발휘할 수 있도록 해야 합니다.

Google의 컴파일러 계획이 Android 개발자에게 무엇을 의미하는지 자세히 알아보려면 이전 블로그 게시물 중 하나를 확인하세요.

개발자 영향: 프로필 기반 컴파일을 통해 뛰어난 성능과 효율성을 얻을 수 있습니다. 설치 및 업데이트가 훨씬 더 빨라지고 Google의 광범위한 문서 덕분에 구현이 상대적으로 쉬울 것입니다. 모두를 기다리는 시간이 줄어듭니다. 이것은 좋은 일입니다.

2. 멀티 윈도우 지원

잠시만요. 이미 Android에서 다중 창 기능을 보지 못했습니까? 예 및 아니오; 일부 포크는 다중 창 지원을 제공했지만 이제는 기본입니다. 두 가지 분할 화면 구현이 있습니다: side-by-sideone-above-the-other . 이것은 모바일 장치의 경우 어느 정도 표준이지만 불행히도 아직 시도할 기회가 없었습니다.

Android 7.0 다중 창 지원

그리고 솔직히 말해서, 저는 대부분의 사용자가 단순히 필요하지 않기 때문에 모바일 장치의 다중 창 기능을 좋아하지 않았습니다.

하지만 스마트폰 에만 해당되는 것은 아닙니다. Google은 또한 스마트 TV 제품에 대해 조용히 작업하고 있으므로 다중 창 지원은 이러한 장치에도 확장되지만 약간의 차이가 있습니다. 더 많은 디스플레이 공간을 사용하여 앱 빌더는 TV 에서 화면 속 화면 모드를 사용할 수 있으며 일부 기능은 공급업체에 따라 다릅니다. 공급업체는 자유 형식 모드 를 활성화할지 여부를 결정할 수 있습니다. 이는 대형 디스플레이가 있는 대형 패블릿, 태블릿 및 기타 장치를 제공하는 업체에서 사용자가 창 크기와 위치를 마음대로 조정할 수 있다는 것을 의미합니다. 이는 Windows 8.x에서 처음 구현된 Microsoft의 접근 방식과 유사하게 들립니다.

개발자 영향: 다중 창 지원은 게임 체인저가 아니지만 Android 태블릿 및 스마트 TV에 즉각적인 기회를 제공할 것이며 후자는 PIP(Picture-in-Picture) 및 비디오 녹화 기능도 제공합니다. 문제? Android TV는 그다지 일반적이지 않고 Android 태블릿은 그다지 인기가 없었습니다. 특히 다중 창 지원을 최대한 활용하는 생산성 애플리케이션의 경우에는 더욱 그렇습니다.

그리고 누가 압니까? 아주 똑똑한 개발자가 이를 활용하는 킬러 스마트폰 앱을 만들 수도 있습니다. 나는 숨을 참지 않을 것이다.

3. 벌칸 API

이것은 잠재적으로 강력한 또 다른 업데이트입니다. 물론, 더 많은 변칙적인 기능만큼 언론과 소비자의 관심을 끌지는 않겠지만 실수하지 마십시오. Vulkan API는 큰 문제입니다.

놓친 경우 Vulkan API는 그래픽 처리 장치(GPU)를 위한 새로운 낮은 오버헤드, 금속에 가까운 API입니다. 3D 게임뿐만 아니라 GPU 컴퓨팅에도 적용됩니다. 기본적으로 OpenGL의 후속 제품이며 플랫폼 간 호환성과 함께 멀티스레드 프로세서에서 우수한 성능을 구현해야 합니다. 또한 드라이버 개발에 소요되는 수천 시간을 절약할 수 있습니다.

그래서 더 화제가 되지 않는 이유는 무엇입니까? 글쎄요, 이것은 새로운 표준이며 완전히 새로운 그래픽 API를 도입하는 데 일반적으로 몇 년이 걸립니다. 이것이 소비자가 관심을 갖지 않는 이유이며 Android 개발자 가 관심을 가져야 하는 이유입니다.

그리고 이제 우리는 기다립니다 ... Vulkan API 지원은 지금은 중요하지 않은 것처럼 보일 수 있지만 몇 년 후에는 엄청날 것입니다.

Android 7.0의 Vulkan 구현에 대해 자세히 알아보려면 올해 초에 작성한 전체 Vulkan API 개요를 읽거나 Google의 개발 리소스를 확인하세요.

개발자 영향: Vulkan API의 시대가 올 것입니다. CPU 오버헤드를 줄여 GPU 성능을 높이고 3D 게임에서 전력 소비를 줄입니다. 그러나 우리는 단지 외관상의 조정이 아니라 매우 강력하고 복잡한 그래픽 API에 대해 이야기하고 있기 때문에 채택이 느릴 수밖에 없습니다.

4. 직접 부팅

잠긴 Android 7.0 기기는 어떻게 됩니까? 사용자가 장치를 잠금 해제할 때까지 보안 직접 부팅 모드에서 실행됩니다.

이를 가능하게 하기 위해 Android 7.0에는 두 개의 다른 암호화 솔루션과 함께 두 개의 데이터 저장 위치가 있습니다.

  • 장치 암호화 저장소직접 부팅 에서 사용할 수 있으며 장치가 잠겨 있거나 잠금 해제되어 있는지 여부에 관계없이 액세스할 수 있습니다.
  • 자격 증명 암호화 저장소 는 여전히 기본 위치이며 사용자가 장치를 잠금 해제한 후에만 사용할 수 있습니다.

대부분의 의미는 명백합니다. 장치가 잠금 해제되기 전에 직접 부팅 모드에서 작동해야 하는 앱은 활성화되어야 합니다. 기본적으로 앱은 직접 부팅 에서 실행할 수 없지만 개발자는 이 상태에서 실행해야 하는 다른 앱 구성 요소를 등록할 수 있습니다.

여기에는 메시징 및 캘린더 앱과 같이 중요하거나 예정된 알림을 전달하는 앱이 포함되어야 합니다. 저장소에 액세스해야 하는 앱은 장치 암호화 저장소 에 의존해야 하며, 이는 장치가 검증 부팅을 수행한 후 사용할 수 있는 키로 보호됩니다. 액세스는 사용자 자격 증명, 즉 PIN 및 암호와 관련된 데이터로 확장되지 않습니다. 자격 증명 암호화 저장소 는 장치가 부팅되고 사용자가 잠금을 해제할 때까지 사용할 수 없지만 액세스한 후에는 장치의 전원을 끌 때까지 계속 사용할 수 있습니다.

개발자 영향: 직접 부팅은 사용자 경험과 응답성을 손상시키지 않으면서 보안을 개선해야 합니다. 구현은 간단해야 하지만 경우에 따라 상당한 양의 지루한 작업이 필요합니다. 그래도 보안 강화를 위한 작은 절충안처럼 들립니다.

5. 직접 답장 및 번들 알림

직접 부팅 과 관련된 것처럼 들리지만 직접 응답 은 다른 짐승으로 사용자가 알림 화면에서 메시지 및 알림에 응답할 수 있습니다. 인라인 응답 작업 은 알림의 새 버튼을 통해 사용할 수 있습니다. 실제로 사용자는 앱에 액세스하지 않고도 알림에 응답할 수 있어야 하며 나머지는 시스템에서 처리합니다.

시스템은 개발자가 필요한 텍스트 응답과 함께 번들 을 반환하는 getResultsFromIntent() 를 호출하여 인라인 응답 검색을 활성화하는 데 시간을 할애하는 경우에만 마법을 사용할 수 있습니다. Android 7.0에서 Google은 대기 중인 알림을 나타내는 새로운 방법인 번들 알림 을 개발자에게 제공합니다. 솔루션은 Android Wear의 알림 스택 과 유사합니다.

번들 알림은 단순한 계층 구조로 상위 알림이 맨 위에 있는 유사한 메시지가 단일 그룹에 표시됩니다. 그런 다음 사용자는 번들을 확장하여 추가 정보에 액세스하고 적절한 조치를 취하거나 관심이 없는 경우 모든 항목을 쉽게 닫을 수 있습니다.

그러나 번들 알림이 모든 유형의 알림 과 함께 사용되는 것은 아닙니다. Google은 Android 알림 모범 사례에서 이 점을 분명히 합니다. 이상적으로는 메시징 앱과 같이 유사하거나 관련 알림을 대량으로 생성하는 애플리케이션에 접근 방식을 사용해야 합니다.

Android 7.0(API 레벨 24)부터 사용자는 알림 대화 상자 내에서 문자 메시지에 직접 응답하거나 작업 목록을 업데이트할 수 있습니다. 핸드헬드에서 인라인 응답 작업은 알림에 표시되는 추가 버튼으로 나타납니다. 사용자가 키보드를 통해 응답하면 시스템은 (알림 작업에 대해) 지정한 의도에 텍스트 응답을 첨부하고 휴대용 앱으로 보냅니다.

개발자 영향: 직접 회신 및 번들 알림은 여러 시나리오에서 사용자 경험을 개선해야 합니다. 그리고 Google의 문서로 판단하면 구현하기도 어렵지 않습니다. 분명히 이메일, 메시징 및 소셜 앱은 인라인 응답을 최대한 활용하지만 다른 곳에서 접근 방식을 구현할 수 있습니다.

6. 백일몽 가상 현실

VR에 대한 Google의 최근 초점은 검색 대기업이 과대 광고에서 자유롭지 않다는 것을 증명합니다. 우리 모두는 증강 현실 공간에서 불운한 균열이었던 Google Cardboard와 Google Glass를 기억합니다.

Glass와 달리 Cardboard는 단순히 시들고 죽는 것이 아니라 실제 제품보다 더 많은 실험으로 남아 있습니다. Google은 개념을 개선했으며 몇 주 후에 Google Daydream 이라는 새 이름으로 다시 출시될 예정입니다. Daydream은 다소간 진화적인 단계입니다. 약간 조정된 Cardboard 헤드셋처럼 보이지만 실질적인 변경 사항을 파악하기 어렵습니다.

Android 7.0의 가상 현실은 실망스러울 것입니다. 기술이 없어서가 아니라 좋은 콘텐츠가 없기 때문입니다.

차세대 Android 휴대전화에서 지원이 곧 제공될 예정이지만 디자이너와 개발자는 현재 유일한 Daydream 호환 기기인 현재 세대 Nexus 6P에서 개념을 테스트할 수 있습니다.

Google은 Daydream 을 Cardboard에 비해 향상된 상호 작용성과 응답성을 제공하는 차세대 모바일 VR 솔루션이라고 설명합니다. 회사는 응답성을 개선하기 위해 모든 수준 의 Android 스택을 개선했다고 말합니다. 이를 통해 Android 7.0에서 센서 데이터에 더 빠르게 액세스하고 적절한 VR 장면을 정확한 시간에 렌더링하여 대기 시간을 크게 줄일 수 있습니다. Daydream 은 또한 APPHOME 버튼이 있는 새로운 무선 컨트롤러와 함께 제공됩니다.

불행히도 이러한 조정 중 어느 것도 VR이 직면한 가장 큰 문제인 콘텐츠 부족을 해결하지 못합니다. 좋은 소식은 상황이 나아지고 있으며 Google이 시트콤에서 게임에 이르기까지 모든 것을 포괄하는 여러 파트너십을 통해 Daydream 에 더 많은 콘텐츠를 제공할 것을 약속한다는 것입니다.

Google Cardboard 개요에서 설명한 것처럼 모바일 VR에 대한 내 입장은 다소 보수적입니다. 내 견해는 VR에 대한 수요가 여전히 약하다는 것을 시사하는 최근 시장 조사에 의해 부분적으로 입증되었습니다. Google은 오늘날 모바일 VR이 직면한 모든 문제를 해결할 수 없습니다. 안주할 문제가 아닙니다. Google은 더 나은 하드웨어를 기다려야 합니다.

Cardboard를 사용하기 전에도 배터리 수명과 발열이 문제가 될 것이라는 것을 알고 있었고 Google도 마찬가지였습니다. 앞으로 이 문제는 계속 남아 있을 것입니다. 실제로 Google은 Nexus 6P의 열 성능이 곧 출시될 Daydream 지원 휴대전화의 "대표성이 아님"을 분명히 밝혔습니다.

6P는 워크로드에 따라 단기간 사용 후 CPU 및 GPU 성능을 열적으로 조절합니다.

Daydream 을 진정으로 활용하려면 칩 제조업체와 스마트폰 공급업체가 차세대 제품을 출시할 때까지 기다려야 합니다.

개발자 영향: Daydream VR은 몇 가지 새로운 가능성을 제공할 수 있지만 이것은 보기보다 간단하지 않습니다. 많은 기술 회사가 VR 기차에 올라타고 있지만 소비자는 그렇지 않습니다. 지금은 외롭고 값비싼 여행입니다.

7. UI, 접근성 조정 및 배경 최적화

Google은 더욱 부드러운 사용자 경험을 제공하기 위해 UI를 개선하고 몇 가지 기능을 추가했으며 성능을 미세 조정했습니다. 새로운 기능은 다음과 같습니다.

  • 스페인어 및 영어와 같은 주요 언어에 대한 개선된 언어 팩 및 새로운 로컬 변형과 함께 약 100개의 새로운 언어에 대한 부분 지원.
  • 다중 로컬 및 이중 언어 사용자의 경험을 크게 향상시키는 설정의 다중 로케일.
  • 인앱 브라우저인 WebView가 개선되었습니다. 페이지를 렌더링하기 위해 Chrome APK(버전 51 현재)에 의존하여 메모리 사용량과 대역폭 요구 사항을 줄입니다. Chrome 렌더링이 활성화되어 있는 한 독립형 WebView APK는 더 이상 업데이트되지 않습니다 .
  • Android for Work 업데이트를 통해 보안을 개선하고 VPN 지원 상시 지원을 허용합니다. 빠른 전환 기능을 통해 사용자는 업무 모드와 개인 모드 간에 전환할 수 있습니다.
  • 앱 실행 방식을 변경하여 RAM 사용량을 줄이는 다양한 백그라운드 최적화에 대한 Google의 이름인 Project Svelte입니다. Google은 JobSchedulerGCMNetworkManager 를 계속 확장하고 업데이트할 것이라고 밝혔지만 동시에 널리 사용되는 3개의 브로드캐스트인 CONNECTIVITY_ACTION , ACTION_NEW_PICTUREACTION_NEW_VIDEO 를 제거합니다. 앱이 이들 중 하나에 의존하는 경우 JobScheduler 로 마이그레이션해야 합니다. Google에서 괴짜 세부 정보를 확인할 수 있습니다.
  • 시작 화면과 빠른 설정 타일에 대한 UI 조정에는 이제 타사 앱에서 사용할 수 있는 새로운 API가 포함됩니다. 알림 개선 사항에는 두 가지 새로운 사용자 지정 보기 API가 포함됩니다.
  • 구글 어시스턴트, 구글 알로, 구글 듀오.

개발자 영향: 이러한 새로운 기능과 조정은 Android에 추가된 것을 환영하지만 새로운 기회를 많이 생성하지는 않을 것입니다.

Android 7.0: 결론은 무엇입니까?

Android 7.0은 개발자에게 큰 문제 가 아니라고 말할 수 있습니다. 주로 최적화에 관한 점진적 개선입니다. 이전에는 불가능했던 획기적인 앱과 서비스를 쉽게 만들 수 없습니다.

그러나 나는 그것에 대해 아무런 문제가 없다고 봅니다. 스마트폰은 이미 기능으로 가득 차 있고 사람들은 속임수에 지쳐가고 있습니다. 따라서 Google이 성능, 전력 효율성, 보안 및 전반적인 사용자 경험 개선에 집중하기로 선택한 것은 이해할 만합니다. 그리고 iOS와 마찬가지로 Android도 이제 성숙해졌습니다. 새로운 기능의 부족에 실망하셨다면 , 뉴노멀 이기 때문에 익숙해지는 것을 추천합니다.

모바일에서 하드웨어와 소프트웨어가 빠르게 발전하던 시대는 이미 오래전에 지났습니다. 증분은 새로운 표준입니다.

생각해 보니 Android 7.0의 가장 큰 뉴스는 OS 자체가 아닙니다. OS가 제공하는 모든 것을 활용하도록 설계된 새로운 Pixel 휴대전화를 출시하는 것은 Google의 결정입니다. 하드웨어 관점에서 볼 때 특별히 특별하지는 않습니다. 이전 Nexus 시리즈와 마찬가지로 기성 기술을 기반으로 합니다. 그러나 Pixel에 대한 Google의 비즈니스 모델 은 엔드 투 엔드 사용자 경험을 제어하고 Apple과 같은 방식으로 가치를 추가하는 데 중점을 둔 매우 다릅니다.

Pixel이 나머지 Android 생태계에 어떤 영향을 미칠지 추측하기에는 너무 이르지만 이 정도는 확실합니다. 섬세한 균형 작업이 될 것입니다. Google은 자체 Pixel 휴대전화 전용으로 일부 기능을 예약할 수 있지만 동시에 손을 과도하게 사용할 수는 없습니다. 너무 많은 Pixel 전용 기능을 추가하여 Android 공급업체를 소외시키고 제품의 경쟁력을 떨어뜨릴 여유가 없습니다.

이 모든 일이 어떻게 진행될지는 두고 볼 일이지만 그 동안 우리는 Android 7.0을 최대한 활용하는 데 집중해야 합니다. 사실 베타 버전이고 곧 출시될 것 같은 7.1을 만드십시오.

관련: 개발자를 위한 Android M(Android 6.0): 올바른 방향으로의 진화