Android 7.0 Nougat는 사용자와 개발자를 위한 새로운 기능과 성능을 제공합니다. 이 문서에서는 개발자를 위한 새로운 기능을 소개합니다.
자세한 내용은 Android 7.0 동작 변경사항을 참고하여 플랫폼이 변경되는 영역을 알아보세요. 앱에 영향을 미칠 수 있습니다
자세히 알아보려면 자세한 내용은 www.android.com을 참조하세요.
다중 창 지원
Android 7.0에서는 많은 요청이 있었던 새로운 플랫폼에 멀티태스킹 기능을 추가했습니다.
이제 사용자가 화면에서 두 개의 앱을 동시에 열 수 있습니다.
- Android 7.0이 실행되는 휴대전화 및 태블릿에서 사용자가 화면 분할 모드로 두 개의 앱을 나란히 또는 상하로 실행할 수 있습니다. 사용자는 드래그하여 앱 크기를 조절할 수 있습니다. 사이에 있는 칸막이입니다.
- Android TV 기기에서 앱이 PIP 모드로 표시될 수 있습니다. 모드: 사용자가 탐색하거나 다른 앱과의 상호작용입니다.
특히 태블릿과 기타 대형 화면 기기에서 멀티 윈도우가 지원됩니다. 사용자 참여를 유도할 수 있는 새로운 방법을 제공합니다. 이미지, 동영상, 이미지 등 사용자가 편리하게 앱 안팎으로 콘텐츠를 드래그할 수 있습니다. 사용자 경험을 향상시키는 방법입니다.
간단히 앱에 멀티 윈도우 지원을 추가하고 멀티 윈도우 지원 기능을 멀티 윈도우 표시를 처리합니다. 예를 들어, 액티비티의 사용자가 아래 활동의 크기를 조절할 수 없도록 허용되는 최소 크기 확인해 보겠습니다. 또한 앱의 멀티 윈도우 표시를 비활성화할 수도 있습니다. 를 사용하면 시스템이 앱을 전체 화면 모드에서만 표시합니다.
자세한 내용은 멀티 윈도우 지원 개발자 문서를 참고하세요.
알림 향상
Android 7.0에서 저희는 알림을 더 쉽고 빠르게 사용할 수 있도록 재설계했습니다. 몇 가지 변경 사항은 다음과 같습니다.
- 템플릿 업데이트: 알림 템플릿이 다음과 같이 업데이트됩니다. 히어로 이미지와 아바타를 새롭게 강조했습니다. 개발자는 다음 작업을 할 수 있습니다. 코드를 거의 조정하지 않고도 새로운 템플릿을 활용할 수 있습니다.
-
메시지 스타일 맞춤설정:
알림과 관련된 사용자 인터페이스 라벨은
MessagingStyle
클래스. 메시지, 대화 제목, 콘텐츠 뷰를 구성할 수 있습니다. - 알림을 번들로 묶음: 시스템에서 메시지를 그룹화할 수 있습니다. 그룹화하고 그룹을 표시합니다. 사용자는 닫기 또는 보관과 같은 작업을 수행할 수 있습니다. 만약 Android Wear용 알림을 구현했다면 이미 익숙하게 살펴보겠습니다
- 직접 답장: 실시간 커뮤니케이션 앱의 경우 Android 시스템은 인라인 답장을 지원하므로 사용자가 SMS 또는 문자 메시지를 알림 인터페이스 내에서 직접 사용할 수 있습니다.
- 맞춤 뷰: 시스템을 활용할 수 있게 해주는 두 가지 새로운 API 장식(예: 알림 헤더 및 작업)을 표시하기 위해 알림이 표시됩니다.
새로운 기능을 구현하는 방법을 알아보려면 알림 가이드를 참고하세요.
프로필 가이드 방식의 JIT/AOT 컴파일
Android 7.0에서 저희는 코드 프로파일링이 있는 JIT(Just in Time) 컴파일러를 ART에 추가했습니다. 이를 통해 ART에서 Android 앱이 실행되는 동안 그 성능을 계속 향상시킬 수 있습니다. JIT 컴파일러는 ART의 현재 AOT (Ahead of Time) 컴파일러로 런타임 성능을 개선하고, 비용을 절감하고, 저장공간, 앱 업데이트 및 시스템 업데이트 속도 향상
프로필 기반 컴파일을 통해 ART는 다음의 AOT/JIT 컴파일을 관리할 수 있습니다. 앱의 실제 사용 및 기기의 조건에 따라 달라집니다. 예를 들어 ART는 각 앱의 핫 메서드에 대한 프로필을 유지하고 최상의 성능을 위해 이러한 메서드를 사전 컴파일하고 캐시합니다. 다른 부분은 실제 사용되기 전까지 컴파일되지 않은 앱의 전체 개수입니다.
프로필 가이드 방식의 컴파일은 앱의 주요 부분들의 성능을 높여줄 뿐만 아니라, 관련 바이너리를 비롯한 앱의 전체 RAM 공간을 줄이는 데 도움이 됩니다. 이 기능은 저용량 메모리 기기에 특히 중요합니다.
ART는 기기 배터리입니다. 기기가 유휴 상태일 때만 사전 컴파일을 실행 이러한 작업을 미리 수행함으로써 시간과 배터리를 절약하는 것입니다.
빠른 앱 설치 경로
ART JIT 컴파일러의 가장 눈에 띄는 이점 중 하나는 앱의 속도입니다. 설치 및 시스템 업데이트가 포함됩니다. Android 6.0에서 최적화하고 설치하는 데 몇 분이 걸리는 대용량 앱조차도 이제는 단 몇 초 만에 설치할 수 있습니다. 더 이상 최적화 단계가 없으므로 시스템 업데이트도 더 빠릅니다.
이동 중 잠자기 모드...
Android 6.0에서는 지연을 통해 배터리를 절약하는 시스템 모드인 잠자기를 도입했습니다. 앱 기기가 유휴 상태일 때의 CPU 및 네트워크 활동(예: 탁자 위나 서랍에 앉을 수 있습니다.
이제 Android 7.0에서 잠자기 기능은 한 걸음 더 나아가서 이동 중에도 배터리를 절약합니다. 화면이 일정 시간 동안 꺼져 있고 기기가 전원에서 분리되어 있으면, 잠자기는 익숙한 CPU 및 네트워크 제한의 하위 집합을 앱에 적용합니다. 즉, 사용자가 기기를 휴대하고 있을 때도 배터리를 절약할 수 있습니다. 있습니다.
기기의 배터리가 켜져 있는 동안 화면이 꺼지면 잠시 후 잠자기 네트워크 액세스를 제한하고 작업과 동기화를 지연시킵니다. 잠시 동안의 유지 관리 기간 중에 애플리케이션의 네트워크 액세스가 허용되고 지연된 작업/동기화가 실행됩니다. 화면을 켜거나 기기의 플러그를 꽂으면 기기가 잠자기 모드 상태에서 벗어납니다.
기기가 다시 움직이지 않고 일정 시간 동안 배터리를 껐다가 켜면
잠자기가 PowerManager.WakeLock
, AlarmManager
알람 및
GPS/Wi-Fi 검색
앱을 잠자기 모드에 맞게 적용하는 권장사항은 기기가 움직이든 움직이지 않든 동일합니다. 따라서 잠자기 모드를 효율적으로 처리하도록 앱을 이미 업데이트했다면 모든 준비가 완료된 것입니다. 그렇지 않다면 조정을 시작하세요. 앱을 잠자기로 전환하세요.
Project Svelte: 백그라운드 최적화
Project Svelte는 시스템 및 앱의 RAM 사용을 최소화하기 위한 지속적인 노력입니다. Android 기기 전반에 걸쳐 이해할 수 있습니다 Android 7.0에서 Project Svelte는 앱이 백그라운드에서 실행되는 방식을 최적화하는 데 초점을 맞추고 있습니다.
백그라운드 처리는 대부분의 앱에서 필수적인 부분입니다. 제대로 처리한다면 를 사용하면 놀라운 사용자 경험을 즉각적이고 빠르며 상황에 맞는 멋진 사용자 환경을 만들 수 있습니다. 백그라운드 처리가 올바로 처리되지 않으면 RAM을 불필요하게 소모하고 배터리)가 포함되어 다른 앱의 시스템 성능에 영향을 미칩니다.
Android 5.0부터 JobScheduler
은
선호하는 방식으로 백그라운드 작업을 수행하는 방법을
사용자를 위해 설계되었습니다. 앱은 작업 일정을 예약하는 동시에
메모리, 전원, 연결 상태 JobScheduler는 제어 및 관리 기능을
모든 앱에서 사용하기를 원합니다.
또 한 가지 좋은 옵션은 Google Play 서비스의 일부인 GCMNetworkManager
입니다. 이 API는 레거시 Android 버전에서 호환성이 있는 유사한 작업 예약을 제공합니다.
JobScheduler
및
GCMNetworkManager
을(를) 더 만나 보세요
사용할 수 있습니다. 예를 들어, Android 7.0에서는 이제 30분 만에
콘텐츠 제공자의 변경사항에 따라 작업하게 됩니다. 이와 동시에
시스템 성능을 저하시킬 수 있는 일부 오래된 패턴을 지원 중단하고,
특히 저용량 메모리 기기에서 사용할 수 있습니다
Android 7.0에서는 흔히 사용되는 세 가지 암시적 브로드캐스트인
CONNECTIVITY_ACTION
, ACTION_NEW_PICTURE
, ACTION_NEW_VIDEO
:
백그라운드 프로세스로 인해 메모리와 배터리가 지나치게 많이 소모됩니다. 만약
알림을 받는다면 Android 7.0을 활용하여
대신 JobScheduler
및 관련 API로 이전하세요.
배경 최적화 문서를 참조하세요.
SurfaceView
Android 7.0은 SurfaceView
에 동기식 이동을 가져옴
배터리 성능을 향상시키는 클래스입니다.
TextureView
보다 클 수 있습니다. 동영상 또는
3D 콘텐츠, 스크롤 및 애니메이션 동영상 위치가 있는 앱은
TextureView
보다 SurfaceView
.
SurfaceView
클래스는 다음 위치에서 더 배터리 효율적인 합성을 사용 설정합니다.
화면(앱과 별도로 전용 하드웨어에서 합성되기 때문)
생성할 수 있습니다. 따라서 인코더-디코더 아키텍처를
TextureView
개보다 많이 복사되었습니다.
이제 SurfaceView
객체의 콘텐츠 위치가 동기식으로 업데이트됩니다.
합쳐집니다. 이러한 변화로 인해 발생하는 한 가지 결과는
SurfaceView
에서 재생되는 동영상의 번역 또는 배율
더 이상 이동할 때 보기 옆에 검은색 막대가 생성되지 않습니다.
Android 7.0부터는 전원 절약을 위해
TextureView
대신 SurfaceView
데이터 절약 모드
모바일 장치의 수명 동안, 일반적으로 셀룰러 데이터 요금제의 비용은 기기 자체의 가격을 초과하는 경우 많은 사용자에게 모바일 데이터는 비싼 자원을 절약해야 합니다.
Android 7.0에는 이전 버전과의 호환성을 로밍 여부와 관계없이 결제 주기가 끝날 무렵에 앱의 모바일 데이터 사용 소량 선불 데이터 팩을 사용하는 것이 좋습니다 사용자는 데이터 절약 모드를 통해 앱이 개발자가 더욱 효율적인 서비스를 제공할 수 있도록 Saver를 사용 중입니다.
사용자가 설정에서 데이터 절약 모드를 사용 설정하고 기기가 켜진 경우 데이터 전송량 제한이 있는 네트워크에서 시스템은 백그라운드 데이터 사용을 차단하고 가능하면 포그라운드에서 데이터를 적게 사용(예: 스트리밍용 비트 전송률, 이미지 품질 저하, 낙관적 사전 캐싱 지연, 등등. 사용자는 특정 앱이 데이터 전송량 제한이 있는 백그라운드 데이터를 허용하도록 허용할 수 있음 데이터 사용량은 데이터 절약 모드를 사용 중일 때도 사용 가능합니다.
Android 7.0은 ConnectivityManager
를 확장하여 앱에
이렇게 하면
사용자의 데이터 절약 모드 환경설정을 모니터링하고
환경설정 변경에 대해 자세히 알아보세요. 모든 앱은 사용자가 데이터를 사용 설정했는지 확인해야 합니다.
Saver로 시작하고 포그라운드 및 백그라운드 데이터 사용량을 제한하기 위해 노력합니다.
Vulkan API
Android 7.0은 새로운 3D 렌더링 API인 Vulkan™을 플랫폼에 통합합니다. 좋아요 OpenGLTM ES의 경우 Vulkan은 3D 그래픽 및 렌더링을 위한 개방형 표준입니다. Khronos Group의 모델입니다.
Vulkan은 처음부터 드라이버의 CPU 오버헤드를 최소화하도록 설계되었습니다. 애플리케이션이 GPU 작업을 보다 직접적으로 제어하도록 할 수 있습니다. Vulkan 또한 여러 스레드가 서로 다른 작업을 수행하도록 허용하여 명령 버퍼 생성과 같은 작업을 한꺼번에 수행합니다.
Vulkan 개발 도구와 라이브러리가 Android 7.0 SDK에 배포됩니다. 그들은 포함:
- 헤더
- 유효성 검사 계층(디버그 라이브러리)
- SPIR-V 셰이더 컴파일러
- SPIR-V 런타임 셰이더 컴파일 라이브러리
Vulkan은 Nexus 5X, Nexus 6P, Nexus Player와 같은 Vulkan 지원 하드웨어가 있는 기기의 앱에만 사용될 수 있습니다. Google은 Google의 Vulkan을 더 많은 기기에 도입할 예정입니다.
자세한 내용은 API 문서를 참고하세요.
Quick Settings Tile API
빠른 설정은 키 설정 및 작업을 알림 창에서 직접 노출시키기 위해 널리 사용되는 간단한 방법입니다. Android 7.0에서는 빠른 설정을 사용하면 더욱 유용하고 편리하게 사용할 수 있습니다.
빠른 설정 타일을 위한 공간이 더 추가되었으며, 사용자는 액세스할 수 있습니다. 또한 사용자가 빠른 설정 타일의 표시 여부와 위치를 제어할 수 있음 사용자가 끌어다 놓기만 하면 타일을 추가하거나 이동할 수 있습니다.
또한, Android 7.0에는 개발자를 위해 자체적인 고유 API를 정의할 수 있는 빠른 설정 타일을 사용하면 사용자가 앱의 주요 컨트롤 및 작업에 쉽게 액세스할 수 있습니다.
빠른 설정 타일은 긴급하게 필요하거나 자주 사용되는 컨트롤 또는 작업을 위해 예약되어 있으며, 앱을 시작하기 위한 바로가기로 사용되어서는 안 됩니다.
타일을 정의하고 나면 다른 사용자에게 타일을 표시하여 빠른 설정으로 이동할 수 있습니다.
앱 타일 만들기에 대한 자세한 내용은 Tile
의 참조 문서를 참고하세요.
번호 차단
Android 7.0은 이제 플랫폼에서 번호 차단을 지원하며 프레임워크 API를 사용하여 서비스 제공업체가 차단 번호 목록을 유지할 수 있습니다. 이 기본 SMS 앱, 기본 전화 앱 및 이동통신사 앱이 데이터를 읽고 쓸 수 있음 차단 번호 목록에 씁니다 다른 앱은 이 목록에 액세스할 수 없습니다.
Android는 번호 차단을 플랫폼의 표준 기능으로 만들어 앱이 광범위한 번호에서 번호 차단을 지원할 수 있는 일관된 방법입니다. 기기에서 사용할 수 있습니다. 앱에서 활용할 수 있는 기타 이점은 다음과 같습니다.
- 통화에서 차단된 번호가 텍스트에서도 차단됩니다.
- 차단된 번호는 재설정 시에도 백업 및 복원 기능을 통해 기기에서 유지될 수 있습니다.
- 여러 앱이 동일한 차단된 번호 목록을 사용할 수 있습니다.
또한 Android를 통한 이동통신사 앱 통합은 이동통신사가 기기에서 차단 번호 목록을 읽고 서비스 측 차단 수행 사용자에게 원치 않는 전화와 문자가 전송되는 것을 막기 위해서입니다. VOIP 엔드포인트 또는 착신전환 전화와 같은 매체를 통해.
자세한 내용은
BlockedNumberContract
통화 스크리닝
Android 7.0에서는 기본 전화 앱이 수신 통화를 스크리닝하도록 허용합니다. 휴대전화
앱은 새 CallScreeningService
를 구현하여 이 작업을 실행합니다.
이 기능을 사용하면 전화 앱이 사용자의 인증 정보를 토대로 다양한 작업을
수신 전화의 Call.Details
. 예를 들면 다음과 같습니다.
- 수신 통화 거절
- 통화를 통화 기록에 허용하지 않음
- 통화 알림을 사용자에게 표시하지 않음
자세한 내용은
CallScreeningService
다중 로케일 지원, 더 많은 언어 지원 추가
Android 7.0에서는 이제 사용자가 설정에서 여러 언어를 선택할 수 있습니다. 더 효과적으로 지원할 수 있게 되었습니다. 앱은 사용자가 선택한 언어를 가져와 보다 정교한 방식을 제공하는 새로운 API 다국어 사용자를 위한 사용자 환경(예: 사용하는 언어로 웹페이지를 번역하지 않고 사용자가 이미 알고 있습니다.
다중 로케일 지원과 함께 Android 7.0은 또한 사용자에게 제공됩니다. 영어, 스페인어, 프랑스어, 아랍어 등의 자주 사용되는 언어에 대해 각각 25가지 이상의 변형을 제공하며, 또한 부분적 100개 이상의 새로운 언어를 지원합니다.
앱은 다음을 호출하여 사용자가 설정한 언어 목록을 가져올 수 있습니다.
LocaleList.GetDefault()
더 많은 수의 로케일을 지원하기 위해 Android 7.0에서는 리소스 확인 방식을 바꾸는 중에 있습니다. 새로운 리소스 확인 로직에서 앱이 예상대로 작동하는지 테스트하고 확인해야 합니다.
새로운 리소스 확인 동작과 따라야 하는 모범 사례에 대해 알아보려면 다국어 지원을 참고하세요.
새 이모티콘
Android 7.0에는 피부색 이모티콘 및 변형 지원 선택기 등이 있습니다. 앱에서 그림 이모티콘을 지원하는 경우 아래 가이드라인에 따라 이러한 그림 이모티콘 관련 기능을 활용하세요.
-
그림 이모티콘을 삽입하기 전에 기기에 이모티콘이 포함되어 있는지 확인하세요.
어떤 이모티콘이 있는지 확인하려면
시스템 글꼴에 맞추려면
hasGlyph(String)
메서드를 사용합니다. - 그림 이모티콘이 변형 선택기를 지원하는지 확인합니다. 대안 페이지 선택기를 사용하면 특정 이모티콘을 컬러나 흑백으로 표현할 수 없음 모바일 기기에서는 앱이 흑백보다는 컬러로 이모티콘을 표시해야 합니다. 하지만 앱이 텍스트와 함께 이모티콘을 표시하는 경우에는 흑백 변형을 사용해야 합니다. 그림 이모티콘에 변형 이모티콘이 있는지 확인하려면 변형 선택기를 사용하세요. 변형된 문자의 전체 목록은 다음을 검토하세요. 이모티콘 변형 시퀀스 섹션을 변형에 관한 유니코드 문서.
-
그림 이모티콘이 피부색을 지원하는지 확인하세요. Android 7.0에서는 사용자가
이모티콘의 피부색을 선호하도록 렌더링했습니다. 키보드 앱은 여러 가지 피부 색조가 있는 이모티콘에 대한 시각적 표시를 제공해야 하며, 사용자가 선호하는 피부 색조를 선택하도록 허용해야 합니다. 어떤 시스템 이모티콘이 있는지 확인하기 위해
피부색 조정 기능을 사용하려면
hasGlyph(String)
를 사용하세요. 메서드를 사용하여 축소하도록 요청합니다. 다음 항목에서 피부색을 사용하는 이모티콘을 유니코드 문서
Android의 ICU4J API
이제 Android 7.0에서는 android.icu
패키지 아래의 Android 프레임워크에 있는 ICU4J API의 하위 집합을 제공합니다. 마이그레이션이 쉬우며, 주로 다음과 같은 작업이 수반됩니다.
단순히 com.java.icu
네임스페이스에서
android.icu
입니다. 앱에서 ICU4J 번들을 이미 사용 중인 경우, Android 프레임워크에서 제공되는 android.icu
API로 전환하면 APK 크기를 상당히 줄일 수 있습니다.
Android ICU4J API에 관한 자세한 내용은 ICU4J 지원을 참고하세요.
WebView
Chrome + WebView 포함
Android 7.0 이상에서 Chrome 버전 51부터, 기기의 Chrome APK Android 시스템 WebView를 제공하고 렌더링하는 데 사용됩니다. 이 접근 방식은 대역폭을 줄여 기기 자체의 불필요한 사용을 줄일 수 있습니다. WebView를 최신 상태로 유지 (독립형 WebView APK는 더 이상 업데이트되지 않음) 사용할 수 있습니다.
개발자 옵션을 사용 설정하여 WebView 제공업체를 선택할 수 있습니다. WebView 구현 선택 Google Cloud 콘솔과 Chrome 버전 (개발자, 베타 또는 안정화 버전)이 설치되어 있거나 WebView 구현 역할을 하는 독립형 WebView APK를 빌드합니다.
Multiprocess
Android 7.0의 Chrome 버전 51부터는 개발자 옵션 'Multiprocess WebView'가 활성화된 경우, WebView는 별도의 샌드박스 프로세스에서 웹 콘텐츠를 실행합니다.
N 다중 프로세스 WebView를 사용 설정하기 전에 확인해야 합니다. 이 버전, 시작 시간 회귀, 총 메모리 사용량, 소프트웨어 성능이 개선될 것으로 예상됩니다
멀티 프로세스 모드에서 예상치 못한 문제가 발생하는 경우 알려주세요. 있습니다. Chromium 버그 추적기에 대해 WebView팀에 문의하세요.
페이지 로드 전에 Javascript 실행
Android 7.0을 대상으로 하는 앱부터는 JavaScript 컨텍스트가 재설정됩니다. 새 페이지가 로드될 때 현재는 새 WebView 인스턴스에 로드된 첫 페이지에 대해 컨텍스트가 이월됩니다.
WebView에 JavaScript를 삽입하려는 개발자는 스크립트를 실행할 수 있습니다.
비보안 출처의 위치정보
Android 7.0을 대상으로 하는 앱부터 Geolocation API는 안전한 출처에서 허용됨 (HTTPS를 통해) 이 정책은 사용자의 개인 정보를 암호화할 수 있습니다.
WebView Beta를 사용한 테스트
WebView는 정기적으로 업데이트되므로 호환성을 테스트하는 것이 좋습니다. 'WebView'의 베타 채널을 사용해 자주 앱을 소개해 보시기 바랍니다 Android 7.0에서 WebView의 출시 전 버전에 대한 테스트를 시작하려면 Chrome Dev 또는 Chrome Beta를 다운로드하여 설치한 다음 위에 설명된 개발자 옵션에 따른 WebView 구현으로 선택합니다. Chromium을 통해 문제를 신고해 주세요. 버그 추적기를 만들어야 새 버전의 WebView가 출시되기 전에 문제를 해결할 수 있습니다. 출시되었습니다.
OpenGL™ ES 3.2 API
Android 7.0에서는 다음을 비롯하여 OpenGL ES 3.2용 프레임워크 인터페이스와 플랫폼 지원을 추가합니다.
- 의 모든 확장 프로그램
Android Extension Pack(AEP)(
EXT_texture_sRGB_decode
제외). - HDR 및 지연 셰이딩을 위한 부동 소수점 프레임 버퍼.
- 일괄처리 및 스트리밍 성능을 향상시키는 BaseVertex 그리기 호출.
- WebGL 오버헤드를 줄여주는 강력한 버퍼 액세스 제어.
Android 7.0의 OpenGL ES 3.2용 프레임워크 API는
GLES32
클래스. OpenGL ES 3.2를 사용할 때는
요구사항을 매니페스트 파일에 추가(<uses-feature>
태그 사용)하고
android:glEsVersion
속성
OpenGL ES 사용에 관한 자세한 내용은 런타임 시 지원되는 OpenGL ES 버전에 대한 자세한 내용은 OpenGL ES API 가이드를 참고하세요.
Android TV 녹화
Android 7.0에는 Android TV 입력의 콘텐츠를 녹화하고 재생하는 기능이 추가되었습니다. 사용할 수 있게 되었습니다. 기존 타임 시프팅을 기반으로 구축 API, TV 입력 서비스에서 녹화 가능한 채널 데이터, 녹화 방법 제어 기록된 세션이 저장되며 녹화된 콘텐츠와의 사용자 상호작용을 관리합니다.
자세한 내용은 Android TV 녹화 API를 참고하세요.
Android for Work
Android for Work에는 Android 7.0을 실행하는 기기를 위한 여러 새로운 기능과 API가 추가됩니다. 몇 가지 주요 기능은 다음과 같습니다. 전체 기능 목록은 다음을 참조하세요. Android Enterprise 기능 목록에 추가합니다.
작업 프로필 보안 인증 질문
N SDK를 타겟팅하는 프로필 소유자
에서 실행되는 앱에 대해 별도의 보안 질문을 지정할 수 있습니다.
직장 프로필 사용자가 파일을 열려고 할 때 작업 인증 질문이 표시됩니다.
사용할 수 있습니다. 보안 챌린지를 성공적으로 완료하면
필요에 따라 이를 복호화합니다 프로필 소유자의 경우
ACTION_SET_NEW_PASSWORD
에서 사용자에게 작업을 설정하라는 메시지를 표시합니다.
챌린지 및 프롬프트 ACTION_SET_NEW_PARENT_PROFILE_PASSWORD
개
사용자가 기기 잠금을 설정할 수 있습니다.
프로필 소유자는 setPasswordQuality()
, setPasswordMinimumLength()
및 관련 메서드를 사용하여 작업 프로필 보안 인증 질문에 대해 별개의 비밀번호 정책을 설정할 수 있습니다(예: PIN의 길이는 얼마로 해야 할지 또는 프로필을 잠금 해제하기 위해 지문을 사용할 수 있는지 여부). 프로필
소유자는 DevicePolicyManager
새 getParentProfileInstance()
메서드에서 반환하는 인스턴스입니다.
또한 프로필 소유자는
새로운 setOrganizationColor()
및
setOrganizationName()
메서드를 사용하여 지도 가장자리에
패딩을 추가할 수 있습니다.
업무용 앱 종료
작업 프로필이 있는 기기에서는 사용자가 작업 모드를 설정하거나 해제할 수 있습니다. 작업 모드가 사용 설정된 경우 관리 사용자가 일시적으로 종료되어 직장 프로필이 사용 중지됨 앱, 백그라운드 동기화, 알림 등의 기능을 지원합니다. 여기에는 프로필 소유자가 포함됩니다. 애플리케이션입니다. 작업 모드가 꺼져 있으면 시스템에 지속적인 상태가 표시됩니다. 직장 앱을 실행할 수 없음을 알립니다. 런처 는 직장 앱과 위젯에 액세스할 수 없음을 나타냅니다.
상시 접속 VPN
기기 소유자 및 프로필 소유자는 직장 앱이 항상 연결되도록 설정할 수 있습니다. 특정 VPN을 통해 통신할 수 있습니다 시스템은 기기가 부팅된 후에 해당 VPN을 자동으로 시작합니다.
새로운 DevicePolicyManager
메서드는
setAlwaysOnVpnPackage()
및
getAlwaysOnVpnPackage()
입니다.
VPN 서비스는 앱 없이도 시스템에 의해 직접 바인드될 수 있기 때문에
VPN 클라이언트는 상시 접속 VPN을 위한 새로운 진입점을 처리해야 합니다. 따라서
서비스는 인텐트 필터와 일치하는 인텐트 필터를 통해
android.net.VpnService
작업
또한 사용자는 상시 사용 설정 VPN 클라이언트를 수동으로 설정하여
VPNService
메서드 사용
설정 > 더보기 > VPN VPN 상시 사용 설정 옵션
는 VPN 클라이언트가 API 수준 24를 타겟팅하는 경우에만 사용할 수 있습니다.
사용자 지정 프로비저닝
애플리케이션에서 프로필 소유자 및 기기 소유자 프로비저닝을 맞춤설정할 수 있음
기업 색상과 로고로
이루어져 있습니다
DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR
맞춤설정
흐름 색상입니다. DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI
기업 로고를 사용하여 흐름을 사용자 지정합니다.
접근성 향상
Android 7.0에서는 이제 기기 설정을 탭합니다. 이렇게 하면 사용자가 훨씬 더 쉽게 찾고 구성할 수 있습니다. 확대 동작, 글꼴 등 여러 가지 접근성 기능을 디스플레이 크기, TalkBack 등이 있습니다
이렇게 눈에 띄는 위치에 접근성 기능을 배치하면 사용자가 앱을 사용할 가능성이 더 높습니다. 이들 설정을 활성화하여 조기에 앱을 테스트해야 합니다. 설정 > 접근성.
Android 7.0에서도 마찬가지로, 운동 장애가 있는 사용자가 이제 접근성 서비스를 통해 화면을 터치할 수 있습니다. 새로운 API를 사용하면 얼굴 추적, 안구 추적, 지점 스캐닝 등과 같은 기능을 사용하여 사용자의 필요를 충족할 수 있어야 합니다
자세한 내용은
GestureDescription
직접 부팅
직접 부팅을 사용하면 기기 시작 시간이 개선되고 예기치 않은 재부팅 후에도 앱의 기능이 제한됩니다. 예를 들어 사용자가 잠자는 동안 암호화된 기기가 재부팅되면 등록된 알람, 메시지, 수신 전화에 알림이 전송됩니다. 작업을 수행합니다. 이는 또한 접근성 서비스를 바로 사용할 수 있습니다
직접 부팅은 Android 7.0의 파일 기반 암호화를 활용합니다. 를 사용하여 시스템 및 앱 데이터 모두에 세분화된 암호화 정책을 사용 설정할 수 있습니다. 시스템은 일부 시스템 데이터에 대해 기기 암호화 저장소를 사용하고 등록할 수 있습니다. 기본적으로 사용자 인증 정보가 암호화된 저장소는 기타 시스템 데이터, 사용자 데이터, 앱 및 앱 데이터가 포함됩니다.
부팅 시에 시스템은 제한된 모드에서 시작되며, 기기 암호화 데이터에만 액세스할 수 있고 앱 또는 데이터에는 액세스하지 못합니다.
이 모드에서 구성 요소를 실행하려는 경우,
매니페스트에 플래그를 설정하여 이를 수행할 수 있습니다 재시작 후에 시스템은 LOCKED_BOOT_COMPLETED
인텐트를 브로드캐스트하여 등록된 구성요소를 활성화합니다. 시스템은 등록된 기기 암호화 앱 데이터를 사용할 수 있는지 확인
기기를 잠금 해제하세요. 사용자가 잠금을 확인할 때까지 다른 모든 데이터를 사용할 수 없습니다.
화면 사용자 인증 정보를 사용하여 복호화합니다.
키 증명
Android 7.0에서는 기기의 하드웨어 지원 키 저장소에 저장된 키 쌍이 앱에서 사용하는 민감한 정보를 적절하게 보호하는지 확인하는 데 도움이 되는 새로운 보안 도구인 키 증명을 도입합니다. 이 도구를 사용하면 앱이 신뢰할 수 있고 보안 하드웨어에 있는 키와 상호 작용하며 앱이 루팅된 것입니다. 하드웨어 지원 키 저장소의 키를 사용하는 경우 앱에서 문제가 있는 경우 이 도구를 사용해야 합니다. 특히 키를 사용하여 앱 내의 민감한 정보를 확인할 수 있습니다.
키 증명을 사용하면 RSA 또는 EC 키 쌍이 키 저장소가 생성되어 기기의 하드웨어 기반 키 저장소에 TEE (신뢰할 수 있는 실행 환경) 이 도구를 사용하면 서비스(예: 앱의 백엔드 서버와 같은 기기 외부 서비스)를 통해 키 쌍의 용도와 유효성을 강력하게 확인합니다 이러한 기능은 다른 사람이 키 쌍을 보호하더라도 다른 사람이 사용하더라도 기기를 루팅하거나 실행 중인 Android 플랫폼의 보안을 손상시키는 경우 할 수 있습니다.
참고: Android 7.0을 실행하는 일부 기기에서만 Android 7.0을 실행합니다.
하드웨어 수준 키 증명을 지원해야 합니다. Android 7.0을 실행하는 다른 모든 기기
대신 소프트웨어 수준 키 증명을 사용하세요. 기기의 하드웨어 기반 키의 속성을 프로덕션 수준 환경에서 확인하려면 먼저 기기에서 하드웨어 수준 키 증명을 지원하는지 확인해야 합니다. 받는사람
이렇게 하려면 증명 인증서 체인에
서명하고 인증된 루트 키를 사용하여
키 내 attestationSecurityLevel
요소
설명 데이터 구조가 TrustedEnvironment 보안으로 설정됩니다.
있습니다.
자세한 내용은 키 증명 참조하세요.
네트워크 보안 구성
Android 7.0에서 앱은 보안 키 동작 (HTTPS, TLS)을 코드 수정 없이 안전하게 연결을 수행할 수 있도록 하는 데 필요한 네트워크 보안 구성을 설정합니다. 오류가 발생하기 쉬운 프로그래매틱 API (예: X509TrustManager)를 사용하는 것이 좋습니다.
지원되는 기능:
- 맞춤 신뢰 앵커. 애플리케이션이 인증 기관 (CA)은 보안 연결 때문에 신뢰할 수 있습니다. 대상 예를 들어 특정 자체 서명 인증서나 제한된 공개 CA 세트를 신뢰해서는 안 됩니다.
- 디버그 전용 재정의. 애플리케이션 개발자가 안전하게 디버그할 수 있도록 지원 설치에 대한 위험을 더하지 않으면서 애플리케이션의 보안 연결을 기반으로 합니다.
- 일반 텍스트 트래픽 선택 해제. 애플리케이션이 일반 텍스트 트래픽을 실수로 사용하지 않도록 스스로를 보호할 수 있게 해줍니다.
- 인증서 고정. 고급 기능을 사용하면 애플리케이션이 보안 연결을 위해 신뢰할 수 있는 서버 키를 제한합니다.
자세한 내용은 네트워크 보안 구성을 참고하세요.
신뢰할 수 있는 기본 인증 기관
기본적으로 Android 7.0을 대상으로 하는 앱은 시스템에서 제공하는 인증서만 신뢰합니다. 사용자가 추가한 인증 기관 (CA)을 더 이상 신뢰하지 않습니다. Android 7.0을 타겟팅하는 앱 (API 수준 24)의 경우 사용자가 추가한 CA를 신뢰하려는 경우 네트워크 보안 구성을 사용자 CA를 신뢰할 수 있는 방법을 지정합니다.
APK 서명 체계 v2
Android 7.0에서는 새로운 앱 서명 구성표인 APK 서명 체계 v2를 도입합니다. 앱 설치 시간이 단축되고 무단 접근으로부터 보호 기능이 강화됩니다. 수정할 수 있습니다. 기본적으로 Android 스튜디오 2.2 및 Android Gradle용 플러그인 2.2는 APK 서명 체계 v2와 JAR 서명을 사용하는 기존 서명 체계입니다.
앱에 APK 서명 체계 v2를 적용하는 것을 권장하지만
스키마는 필수가 아닙니다. APK Signature Scheme v2를 사용할 때 앱이 올바로 빌드되지 않을 경우 이 새 구성표를 비활성화할 수 있습니다. 사용 중지 프로세스
을 실행하면 Android 스튜디오 2.2 및 Gradle용 Android 플러그인 2.2가
사용하여 기존 서명 체계만 사용합니다. 로그인 시
모듈 수준 build.gradle
파일을 연 다음
출시 서명에 v2SigningEnabled false
줄을 추가합니다.
구성:
android { ... defaultConfig { ... } signingConfigs { release { storeFile file("myreleasekey.keystore") storePassword "password" keyAlias "MyReleaseKey" keyPassword "password" v2SigningEnabled false } } }
주의: APK를 사용하여 앱에 서명하는 경우
서명 체계 v2를 수정하고 앱의 서명인
무효화됩니다. 따라서 zipalign
와 같은 도구를 사용하세요.
APK 서명 체계 v2를 사용하여 앱에 서명한 후가 아닌 서명하세요.
자세한 내용은 Android 스튜디오의 앱 서명 및 구성 방법 Gradle용 Android 플러그인을 사용하여 앱 서명을 위한 빌드 파일을 빌드합니다.
범위가 지정된 디렉터리 액세스
Android 7.0에서는 앱이 새 API를 사용하여 특정 외부
storage 디렉터리(SD와 같은 이동식 미디어의 디렉터리 포함)
있습니다. 새로운 API는 애플리케이션이 표준 액세스에 액세스하는 방법을 크게 단순화합니다.
외부 저장소 디렉터리(예: Pictures
디렉터리) 사진 앱과 같은 앱은 모든 저장소 디렉터리에 대한 액세스 권한을 부여하는 READ_EXTERNAL_STORAGE
를 사용하거나 사용자가 디렉터리로 이동하도록 하는 저장소 액세스 프레임워크(SAF)를 사용하는 대신 이러한 API를 사용할 수 있습니다.
또한 새로운 API는 사용자가 외부 계정에 대한 권한을 부여하는 단계를 간소화합니다. 액세스할 수 있습니다 새 API를 사용하면 시스템에서 애플리케이션의 디렉터리를 명확하게 설명하는 권한 UI 액세스를 요청할 수 있습니다
자세한 내용은 범위: 디렉터리 액세스 개발자 문서를 참조하세요.
단축키 도우미
Android 7.0에서는 사용자가 Meta + /를 눌러
두 가지 모두에서 사용할 수 있는 모든 단축키를 표시하는 단축키 화면
앱으로부터 정보를 추출해야 합니다. 시스템은 이러한 정보를
바로가기가 있는 경우 앱 메뉴에 자동으로 삭제됩니다. 다음과 같은 작업을 할 수 있습니다.
또한 화면에 맞게 미세 조정된 바로 가기 목록을 제공합니다. 가능한 작업
onProvideKeyboardShortcuts()
메서드를 재정의하면 됩니다.
참고: Meta 키는 일부 사용자에게만 있습니다. 키보드: Macintosh 키보드의 경우 Command 키입니다. Windows 키보드의 경우 Windows 키, Pixel C와 ChromeOS 키보드에서는 검색 키입니다.
앱의 어느 위치에서든 Keyboard Shortcuts Helper를 트리거하려면
requestShowKeyboardShortcuts()
정보를 수집합니다.
Custom Pointer API
Android 7.0에는 Custom Pointer API가 도입되어 포인터의 모양, 가시성, 동작입니다. 이 기능은 특히 사용자가 마우스나 터치패드를 사용하여 상호작용할 때 UI 객체입니다. 기본 포인터는 표준 아이콘을 사용합니다. 이 API에는 특정 마우스나 터치패드 이동에 따라 포인터 아이콘의 모양을 바꾸는 것과 같은 고급 기능도 포함되어 있습니다.
포인터 아이콘을 설정하려면 onResolvePointerIcon()
를 재정의합니다.
(View
클래스의 메서드) 이 방법에서는
PointerIcon
객체를 사용하여 다음 이미지에 해당하는 아이콘을 그립니다.
확인할 수 있습니다.
Sustained Performance API
오랫동안 실행되는 앱의 경우 성능이 크게 변동될 수 있습니다. 왜냐하면 장치 구성요소가 온도 제한. 이러한 변동은 앱에 움직이는 과녁을 맞이합니다. 개발자가 고성능의 장기 실행 앱을 개발할 수 있습니다.
이러한 제한을 해결하기 위해 Android 7.0에는 지속적인 성능 모드로, OEM이 성능 개선에 도움이 되는 기기 성능 향상에 도움이 됩니다. 앱 개발자 이러한 힌트를 사용하여 앱을 예측 가능하고 장기간에 걸친 일관적인 기기 성능 수준을 유지하는 데 도움이 됩니다.
앱 개발자는 Android 7.0에서 이 새로운 API를
Nexus 6P 기기에만 적용됩니다. 이 기능을 사용하려면
기간의 지속 성능 기간 플래그 설정
지속적인 성능 모드로 실행해야 합니다 Window.setSustainedPerformanceMode()
메서드를 사용하여 이 플래그를 설정합니다. 시스템은 자동으로
는 창에 더 이상 포커스가 없을 때 이 모드를 비활성화합니다.
VR 지원
Android 7.0은 새로운 VR 모드에 대한 플랫폼 지원 및 최적화를 추가하여 개발자가 사용자를 위한 고품질 모바일 VR 환경을 구축합니다. VR 앱 전용 CPU 코어에 대한 액세스를 비롯하여, 다수의 성능 개선 사항이 있습니다. 앱 내에서 지능형 머리 추적 기능을 활용하여 스테레오 알림도 지원합니다. 가장 중요한 점은, 지연 시간이 매우 짧은 그래픽을 Android 7.0이 제공한다는 사실입니다. Android 7.0용 VR 앱 빌드에 대한 자세한 내용은 Android용 Google VR SDK를 참조하세요.
인쇄 서비스 개선 사항
이제 Android 7.0에서는 인쇄 서비스 개발자가 개별 프린터와 인쇄 작업에 대한 추가적인 정보를 노출시킬 수 있습니다.
개별 프린터를 나열할 때 이제 인쇄 서비스가 프린터별로 설정할 수 있습니다. 다음과 같은 두 가지 방법이 있습니다.
- 다음을 호출하여 리소스 ID에서 아이콘을 설정할 수 있습니다.
setIconResourceId()
- 다음을 호출하여 네트워크의 아이콘을 표시할 수 있습니다.
setHasCustomPrinterIcon()
님, 을 사용하여 아이콘이 요청될 때를 위한 콜백을 설정하고onRequestCustomPrinterIcon()
입니다.
또한 프린터별 활동을 제공하여 추가적인
setInfoIntent()
를 호출하여 정보를 수집할 수 있습니다.
인쇄 작업에서 인쇄 작업의 진행 상태와 상태를 표시할 수 있습니다.
알림으로
setProgress()
및
각각 setStatus()
입니다.
Frame Metrics API
Frame Metrics API를 사용하면 앱이 UI 렌더링을 모니터링할 수 있음
확인할 수 있습니다 이 기능을 제공하기 위해 이 API는 앱의 현재 창에 대한 프레임 타이밍 정보를 전송하는 스트리밍 Pub/Sub API를 노출시킵니다. 반환되는 데이터는
adb shell
dumpsys gfxinfo framestats
가 표시하는 것과 같지만 지난 120프레임으로 제한되지 않습니다.
Frame Metrics API를 사용하여 상호작용 수준 UI 측정 가능
최상의 성능을 발휘할 수 있습니다. 이 API
보다 세분화된 수준에서 데이터를 수집할 수 있습니다.
adb shell dumpsys gfxinfo
이렇게 세분화할 수 있는 이유는 다음과 같습니다.
시스템이 앱의 특정 상호작용에 대한 데이터를 수집할 수 있습니다. 시스템
전체 앱의 전체 요약을 캡처할 필요가 없습니다.
전체 상태를 삭제할 수 있습니다. 이
성능 데이터를 수집하고 UI 성능의 회귀를 포착하는 기능
앱 내의 실제 사용 사례를
확인할 수 있습니다
창을 모니터링하려면
OnFrameMetricsAvailableListener.onFrameMetricsAvailable()
콜백 메서드를 호출하고 해당 창에 등록하세요.
API는 FrameMetrics
객체를 제공합니다.
렌더링 하위 시스템이 다양한 마일스톤에 대해 보고하는 타이밍 데이터를 포함합니다.
프레임 수명 주기 중 하나여야 합니다 지원되는 측정항목은 UNKNOWN_DELAY_DURATION
,
INPUT_HANDLING_DURATION
, ANIMATION_DURATION
LAYOUT_MEASURE_DURATION
, DRAW_DURATION
, SYNC_DURATION
COMMAND_ISSUE_DURATION
, SWAP_BUFFERS_DURATION
,
TOTAL_DURATION
, FIRST_DRAW_FRAME
입니다.
가상 파일
이전 버전의 Android에서는 앱이 저장소 액세스를 사용할 수 있었습니다. 사용자가 클라우드 스토리지 계정에서 파일을 선택할 수 있는 프레임워크 Google Drive와 같은 도구를 활용할 수 있습니다 그러나 그것을 나타내는 파일을 나타낼 방법은 없었습니다. 직접적인 바이트 코드 표현이 없습니다. 모든 파일은 파일 시스템에 입력 스트림
Android 7.0은 저장소 액세스에 가상 파일 개념을 추가합니다.
프레임워크입니다. 가상 파일 기능을 사용하면
DocumentsProvider
는
ACTION_VIEW
인텐트와 함께 사용되는
직접적인 바이트 코드 표현이 없습니다. Android 7.0에서는 다음 작업도 가능합니다.
가상 파일이든 아니든 간에 사용자 파일의 대체 형식을 제공합니다.
가상 파일 열기에 대한 자세한 내용은 다음을 참조하세요. Google Cloud 콘솔에서 저장소 액세스 프레임워크 가이드