page.title=개발자용 Android N meta.tags="프리뷰", "androidn" page.tags="preview", "developer preview" page.image=images/cards/card-n-apis_2x.png @jd:body
Android N은 아직 한창 개발 중이지만, N Developer Preview를 통해 지금 Android N을 일부 체험해 볼 수 있습니다. 아래 섹션에서는 개발자를 위한 몇 가지 새로운 기능을 중점적으로 다룹니다.
플랫폼 변경사항이 앱에 영향을 미칠 수도 있는 부분에 대해 알아보려면 동작 변경사항을 살펴보고, 주요 기능에 대해 자세히 알아보려면 개발자 가이드를 참조하고, 새로운 API에 대한 자세한 내용은 API 참조를 다운로드하세요.
Android N에서 저희는 요청이 많은 새로운 멀티태스킹 기능인 다중 창 지원을 플랫폼에 도입하고 있습니다.
이제 사용자가 화면에서 두 개의 앱을 동시에 열 수 있습니다.
그림 1. 화면 분할 모드에서 실행되는 앱.
특히 태블릿이나 다른 대형 화면 기기에서 다중 창 지원을 통해 새로운 방식으로 사용자를 참여시킬 수 있습니다. 또한 앱에서 끌어서 놓기 기능을 활성화하여 사용자가 편리하게 앱에 콘텐츠를 끌어다 놓거나 앱에서 콘텐츠를 끌어와서 놓을 수 있으므로, 사용자 경험이 크게 개선됩니다.
다중 창 지원을 앱에 추가하고 다중 창이 표시되는 방식을 구성하는 것은 매우 간단합니다. 예를 들어, 자신의 액티비티에 대해 최소 허용 크기를 지정할 수 있으며 이 경우 사용자는 이 크기보다 작은 액티비티의 크기를 조정할 수 없습니다. 또한 앱에 대해 다중 창 표시를 비활성화할 수도 있으며 이 경우 시스템은 앱을 전체 화면 모드에서만 표시합니다.
자세한 내용은 다중 창 지원 개발자 문서를 참조하세요.
Android N에서 저희는 알림을 더 쉽고 빠르게 사용할 수 있도록 재설계했습니다. 몇 가지 변경사항은 다음과 같습니다.
그림 2. 묶음 알림 및 직접 회신.
새로운 기능을 구현하는 방법에 대해 알아보려면, 알림 가이드를 참조하세요.
Android N에서 코드 프로파일링을 포함한 JIT(Just in Time) 컴파일러를 ART에 추가했으며, 실행 시에 Android 앱의 성능이 계속해서 향상됩니다. JIT 컴파일러는 ART의 현재 AOT(Ahead of Time) 컴파일러를 보완하고 런타임 성능을 개선하며, 저장 공간을 절약하고, 앱 업데이트 및 시스템 업데이트 속도를 빠르게 해줍니다.
프로필 가이드 방식의 컴파일을 통해 ART는 실제 사용량과 기기의 조건에 따라 각 앱의 AOT/JIT 컴파일을 관리할 수 있습니다. 예를 들어, ART는 최적의 성능을 위해 각 앱의 핫 메서드에 대한 프로필을 유지관리하고 이들 메서드를 프리컴파일하고 캐싱할 수 있습니다. 이 경우 앱의 다른 부분들은 실제로 사용될 때까지 컴파일하지 않고 남겨둡니다.
프로필 가이드 방식의 컴파일은 앱의 주요 부분들에서 성능을 개선할 뿐만 아니라 관련 바이너리를 비롯한 앱 전체의 RAM 공간을 줄이는 데 도움이 됩니다. 이 기능은 저용량 메모리 기기에 특히 중요합니다.
ART는 기기 배터리에 미치는 영향이 최소화되는 방식으로 프로필 가이드 방식의 컴파일을 관리합니다. ART는 기기가 유휴 상태이고 충전 중일 때만 프리컴파일을 수행하며, 해당 작업을 미리 수행하여 시간과 배터리를 절약합니다.
ART의 JIT 컴파일러가 가진 가장 눈에 띄는 이점 중 하나는 앱 설치 및 시스템 업데이트 속도가 빠르다는 것입니다. Android 6.0에서 최적화하고 설치하는 데 몇 분이 걸리는 대용량 앱조차도 이제는 몇 초만에 설치가 가능합니다. 또한 최적화 단계가 없기 때문에 시스템 업데이트도 더 빠릅니다.
Android 6.0에서는 기기가 테이블 위나 서랍 안에 있는 등 유휴 상태일 때 앱이 CPU와 네트워크를 사용하는 작업을 지연시키는 방식으로 배터리를 절약하는 시스템 모드인 Doze를 도입했습니다.
이제 Android N에서 Doze는 한걸음 더 나아가서 이동 중에도 배터리를 절약합니다. 화면이 일정 시간 동안 꺼져있고 기기의 플러그가 뽑혀있으면 Doze는 친숙한 일부 CPU 및 네트워크 제한을 앱에 적용합니다. 즉, 사용자가 기기를 주머니에 휴대하고 다닐 때도 배터리를 절약할 수 있습니다.
그림 3. 이제 Doze는 기기가 정지 상태가 아니더라도 배터리 수명을 개선할 수 있도록 제한을 적용합니다.
기기의 배터리가 켜져 있는 동안 화면이 꺼지면 잠시 후에 Doze는 네트워크 액세스를 제한하고 작업과 동기화를 지연시킵니다. 잠시 동안의 유지관리 기간 중에 애플리케이션의 네트워크 액세스가 허용되고 지연된 작업/동기화가 실행됩니다. 화면을 켜거나 기기의 플러그를 꽂으면 기기가 Doze 상태에서 벗어납니다.
기기가 다시 일정 시간 동안 배터리가 켜져 있고 화면이 꺼진 정지 상태가 되면, Doze는 {@link android.os.PowerManager.WakeLock}, {@link android.app.AlarmManager} 알람 및 GPS/Wi-Fi 스캔에 대해 전체 CPU 및 네트워크 제한을 적용합니다.
앱을 Doze에 맞게 적용하는 최선의 방법은 기기가 움직이든 움직이지 않든 간에 동일합니다. 따라서 Doze를 효율적으로 처리하도록 앱을 이미 업데이트했다면 모든 준비가 완료된 것입니다. 아직 업데이트하지 않았다면 지금 앱을 Doze에 맞게 적용해 보세요.
Project Svelte는 에코시스템의 전체 Android 기기 범위에서 시스템 및 앱에 의해 사용되는 RAM 크기를 최소화하기 위한 지속적인 노력입니다. Android N에서 Project Svelte는 앱이 백그라운드에서 실행되는 방식을 최적화하는 데 초점을 맞추고 있습니다.
백그라운드 처리는 대부분의 앱에서 필수적인 부분입니다. 백그라운드 처리가 올바로 수행된다면 신속하고, 빠르고, 상황에 맞는 멋진 사용자 경험을 제공하겠지만, 백그라운드 처리가 올바로 수행되지 않는다면 불필요하게 RAM과 배터리를 소모하고 다른 앱의 시스템 성능에 영향을 미칠 것입니다.
Android 5.0 이후로, 사용자가 선호하는 백그라운드 작업 수행 방식은 {@link android.app.job.JobScheduler}이었습니다. 메모리, 전원 및 연결 조건에 따라 시스템을 최적화하면서도 앱으로 작업을 예약할 수 있습니다. JobScheduler는 제어 기능과 간편성을 함께 제공하므로, 저희는 모든 앱에서 이를 사용하기를 원합니다.
또 한가지의 좋은 옵션은
GCMNetworkManager입니다. 이는 Google Play
서비스의 일부분이며, 기존 Android 버전에서 호환성이
있는 유사한 작업 예약 기능을 제공합니다.
저희는 더 많은 사용 사례를 충족시키기 위해 JobScheduler 및
GCMNetworkManager를 계속해서
확장하고 있습니다. 예를 들어, 이제 Android N에서는 콘텐츠 제공자의 변화에 따라
백그라운드 작업을 예약할 수 있습니다. 이와 동시에 저희는
특히 저용량 메모리 기기에서 시스템 성능을 저하시킬
수 있는 일부 오래된 패턴들을 없애기 시작했습니다.
Android N에서 저희는 자주 사용되는 세 가지 암시적 브로드캐스트인
{@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}, {@link
android.hardware.Camera#ACTION_NEW_PICTURE} 및 {@link
android.hardware.Camera#ACTION_NEW_VIDEO}를
제거하는 중입니다. 왜냐하면 이들은 여러 앱의 백그라운드 프로세스를 동시에 깨울 수 있으며 메모리와 배터리를 소모할 수 있기
때문입니다. 자신의 앱이 이러한 브로드캐스트를 수신한다면, N Developer Preview를
활용하여 JobScheduler 및 관련 API로 마이그레이션하세요.
자세한 내용은 백그라운드 최적화 문서를 참조하세요.
그림 4. 설정에서의 Data Saver.
모바일 기기의 수명에 있어서, 셀룰러 데이터 플랜의 비용은 일반적으로 기기 자체의 비용보다 더 많습니다. 많은 사용자들에게 셀룰러 데이터는 아껴야 하는 값비싼 리소스입니다.
Android N에서는 새로운 시스템 서비스인 Data Saver 모드를 소개합니다. 이 모드는 로밍 시나 결제 주기가 끝날 무렵, 또는 소액 선불 데이터 팩 사용 시에 앱이 소모하는 셀룰러 데이터 사용량을 줄여줍니다. Data Saver를 통해 사용자는 앱이 셀룰러 데이터를 사용하는 방식을 제어할 수 있으며, Data Saver가 켜져 있으면 개발자가 더 효율적인 서비스를 제공할 수 있습니다.
사용자가 Settings에서 Data Saver를 활성화하고 해당 기기가 데이터 통신 네트워크에 있는 경우, 시스템은 백그라운드 데이터 사용을 차단하고, 가능하면 스트리밍의 비트 속도를 제한하거나, 화질을 줄이거나, 낙관적 사전캐싱을 지연시키는 등의 방식으로 포그라운드에서 데이터를 더 적게 사용하도록 앱에게 신호를 보냅니다 . Data Saver가 켜진 경우에도 백그라운드 데이터 통신 연결을 허용하려면, 사용자가 특정 앱을 허용 목록에 추가할 수 있습니다.
Android N은 {@link android.net.ConnectivityManager}를 확장하여 사용자의 Data Saver 기본 설정을 검색하고 기본 설정 변경을 모니터링하는 방법을 앱에게 제공합니다. 모든 앱은 사용자가 Data Saver를 활성화했는지 여부를 확인해야 하며 포그라운드 및 백그라운드 데이터 사용을 제한하도록 노력해야 합니다.
그림 5. 알림 창의 빠른 설정 타일.
빠른 설정은 알림 창에서 키 설정 및 작업을 직접 노출시키기 위해 널리 사용되는 간단한 방법입니다. 더욱 유용하고 편리한 설정을 위해 저희는 Android N에서 빠른 설정의 범위를 더욱 확장했습니다.
저희는 빠른 설정 타일에 필요한 공간을 더 추가했으며, 사용자가 페이지가 지정된 디스플레이 영역에서 왼쪽 또는 오른쪽으로 스와이프하여 이들 타일에 액세스할 수 있습니다. 또한 빠른 설정 타일이 어떻게 나타나는지와 어디에 표시되는지를 사용자가 제어할 수 있으며 사용자가 드래그 앤 드롭만으로 타일을 추가하거나 이동할 수 있습니다.
또한 Android N은 개발자를 위해 새로운 API도 추가했습니다. 이를 통해 자신만의 빠른 설정 타일을 정의할 수 있으며, 사용자가 앱에서 키 컨트롤 및 작업에 쉽게 액세스할 수 있습니다.
빠른 설정 타일은 긴급하게 필요하거나 자주 사용되는 컨트롤 또는 작업을 위해 예약되어 있으며, 앱을 시작하기 위한 바로가기로 사용되어서는 안됩니다.
타일을 정의한 후에는 사용자에게 표시할 수 있으며, 사용자가 드래그 앤 드롭만으로 이 타일을 빠른 설정에 추가할 수 있습니다.
앱 타일 만들기에 대한 자세한 내용은,
다운로드 가능한 API 참조에서 android.service.quicksettings.Tile을 참조하세요.
이제 Android N에서는 플랫폼에서 번호 차단을 지원하며, 서비스 제공자가 차단된 번호 목록을 유지관리할 수 있도록 프레임워크 API를 제공합니다. 기본 SMS 앱, 기본 전화 앱 및 제공자 앱은 차단된 번호 목록에 쓰기와 읽기가 가능합니다. 이 목록은 다른 앱에서는 액세스할 수 없습니다.
Android는 번호 차단을 플랫폼의 표준 기능으로 만들어 광범위한 기기에서 번호를 차단하기 위한 일관된 방식을 앱에 제공합니다. 앱에서 활용할 수 있는 기타 이점은 다음과 같습니다.
또한 Android를 통한 통신사 앱 통합은 통신사들이 기기의 차단된 번호 목록을 읽고 서비스측 차단을 수행할 수 있음을 의미하며, 이를 통해 사용자들은 원치 않는 통화와 문자가 특정 매체(예: VOIP 엔드포인트 또는 착신 전화)를 통해 자신들에게 도달하는 것을 차단할 수 있습니다.
자세한 내용은
다운로드 가능한 API
참조에서 android.provider.BlockedNumberContract를 참조하세요.
Android N에서는 기본 전화 앱이 수신 통화를 스크리닝하도록
허용합니다. 이를 위해 전화 앱에는 새로운 CallScreeningService가 구현되며 이를 통해 전화 앱은
수신 통화의 {@link android.telecom.Call.Details Call.Details}에 따라
다음과 같은 다양한 작업을 수행할 수 있습니다.
자세한 내용은
다운로드 가능한 API
참조에서 android.telecom.CallScreeningService를 참조하세요.
두 가지 언어로 된 사용 사례를 지원하기 위해 이제 Android N에서는 사용자가 설정에서 다중 로케일을 선택할 수 있습니다. 앱은 새로운 API를 사용하여 사용자의 로케일을 가져온 다음, 검색 결과를 여러 언어로 표시하거나 사용자가 이미 알고있는 언어로는 웹페이지를 번역하지 않는 등 다중 로케일 사용자를 위한 더욱 정교한 사용자 경험을 제공합니다.
다중 로케일 지원과 함께 Android N에서는 또한 사용자가 사용 가능한 언어의 범위를 더욱 넓혔습니다. 영어, 스페인어, 프랑스어, 아랍어 등 자주 사용되는 언어에 대해 각각 25가지 이상의 변형을 제공하며, 또한 100가지 이상의 새로운 언어에 대해 부분적인 지원도 추가했습니다.
앱은 사용자가 설정한 로케일 목록을 가져오기 위해
LocaleList.GetDefault()를 호출할 수 있습니다. 더 많은
수의 로케일을 지원하기 위해 Android N에서는 리소스 확인 방식이 바뀌고 있습니다. 새로운 리소스 확인 로직에서 앱이 예상대로 작동하는지 테스트하고 확인하세요.
새로운 리소스 확인 동작과 따라야 하는 모범 사례에 대해 알아보려면, 다국어 지원을 참조하세요.
이제 Android N에서는 android.icu 패키지 아래 Android 프레임워크에 있는 ICU4J API의
일부를 제공합니다. 마이그레이션이
용이하며, 대개는 com.java.icu 네임스페이스를
android.icu로 변경하는 것이 간단합니다. 앱에서 ICU4J 번들을
이미 사용 중인 경우, Android 프레임워크에서 제공되는 android.icu
API로 전환하면 APK 크기를 상당히 절약할 수 있습니다.
Android ICU4J API에 대해 자세히 알아보려면, ICU4J 지원을 참조하세요.
Android N에서는 OpenGL ES 3.2용 프레임워크 인터페이스와 플랫폼 지원을 추가했습니다.
EXT_texture_sRGB_decode를 제외한 Android 확장 프로그램 팩(AEP)의 모든 확장 프로그램.
Android N의 OpenGL ES 3.2용 프레임워크 API에는
GLES32 클래스가 제공됩니다. OpenGL ES 3.2를 사용 중인
경우, 반드시 <uses-feature> 태그와 android:glEsVersion
특성을 사용하여 요구사항을 매니페스트 파일에 선언하세요.
런타임에 기기의 지원 OpenGL ES 버전을 확인하는 방법을 비롯하여 OpenGL ES 사용에 대한 자세한 내용은, OpenGL ES API 가이드를 참조하세요.
Android N에서는 새로운 녹화 API를 통해 Android TV 입력 서비스로부터 콘텐츠를 녹화하고 재생하는 기능을 추가했습니다. 기존의 타임 시프트 API를 기반으로 구축된 TV 입력 서비스는 녹화 가능한 채널 데이터 및 녹화된 세션의 저장 방식을 제어할 수 있으며, 녹화된 콘텐츠와의 사용자 상호작용을 관리할 수 있습니다.
자세한 내용은 Android TV Recording API를 참조하세요.
Android for Work에서는 Android N이 실행되는 기기를 위해 여러 가지 새로운 기능과 API를 추가했습니다. 몇 가지 특징이 아래에 나와 있으며, Android N과 관련된 Android for Work 업데이트의 전체 목록에 대해서는 Android for Work 변경사항을 참조하세요.
프로필 소유자는 작업 프로필에서 실행 중인 앱에 대해
별도의 보안 과제를 지정할 수 있습니다. 작업 과제는 사용자가 작업
앱을 열려고 시도할 때 나타납니다. 보안 과제를 성공적으로 완료하면
작업 프로필의 잠금이 해제되고 필요한 경우 암호가 풀립니다.
프로필 소유자의 경우, ACTION_SET_NEW_PASSWORD는
작업 과제를 설정하라는 메시지를 사용자에게 표시하고, ACTION_SET_NEW_PARENT_PROFILE_PASSWORD는 기기
잠금을 설정하라는 메시지를 사용자에게 표시합니다.
프로필 소유자는 setPasswordQuality(), setPasswordMinimumLength() 및 관련 메서드를 사용하여
작업 과제에 대해 별개의 암호 정책을 설정할 수 있습니다. 프로필
소유자는 또한 새로운 getParentProfileInstance()에 의해
반환되는 DevicePolicyManager 인스턴스를 사용하여 기기
잠금을 설정할 수도 있습니다. 뿐만 아니라, 프로필 소유자는
새로운 setOrganizationColor() 및 setOrganizationName()
메서드를 사용하여
작업 과제에 대해 자격 증명 화면을
사용자 지정할 수 있습니다.
작업 프로필이 있는 기기에서, 사용자가 작업 모드를 전환할 수 있습니다. 작업 모드가 꺼진 경우, 관리되는 사용자가 일시적으로 종료되며 이 경우 작업 프로필 앱, 백그라운드 동기화 및 알림이 비활성화됩니다. 여기에는 프로필 소유자 애플리케이션이 포함됩니다. 작업 모드가 꺼진 경우, 작업 앱을 시작할 수 없음을 사용자에게 알려주는 상태 아이콘이 표시됩니다. 시작 관리자는 작업 앱과 위젯에 액세스할 수 없음을 나타냅니다.
기기 소유자와 프로필 소유자는 지정된 VPN을 통해 작업 앱이 항상 연결되도록 보장할 수 있습니다. 시스템은 기기가 부팅된 후에 자동으로 VPN을 시작합니다.
새로운 DevicePolicyManager 메서드는
setAlwaysOnVpnPackage() 및
getAlwaysOnVpnPackage()입니다.
VPN 서비스는 앱 상호작용 없이 시스템에 의해 직접 바인드될
수 있으므로, VPN 클라이언트는 '항상 켜진 VPN'에 대해
새로운 진입점을 처리해야 합니다. 이전과 마찬가지로, 인텐트 필터
일치 작업 android.net.VpnService에 의해 서비스가 시스템에 나타납니다.
사용자는 또한 Settings>More>Vpn을 사용하여 기본 사용자에서
VPNService 메서드를
구현하는 '항상 켜진 VPN' 클라이언트를 수동으로 설정할 수도 있습니다.
이제 Android N에서는 새로운 기기 설치 시 Welcome 화면에서 바로 Vision Settings를 제공합니다. 이렇게 하면 사용자가 자신의 기기에서 휠씬 더 쉽게 확대 제스처, 글꼴 크기, 디스플레이 크기 및 TalkBack 등과 같은 접근성 기능을 검색하고 구성할 수 있습니다.
이렇게 눈에 띄는 위치에 접근성 기능을 배치하면, 사용자가 이 기능을 활성화하여 앱을 사용할 가능성이 더욱 커집니다. 먼저 이들 설정을 활성화하고 앱을 테스트하도록 하세요. Settings > Accessibility에서 설정을 활성화할 수 있습니다.
Android N에서도 마찬가지로, 이제 운동 장애가 있는 사용자가 접근성 서비스를 통해 스크린을 터치할 수 있습니다. 새로운 API는 얼굴 추적, 시각 추적, 지점 스캐닝 등의 기능으로 서비스를 구축하여 이러한 사용자의 요구를 충족시킬 수 있습니다.
자세한 내용은
다운로드 가능한 API 참조에서 android.accessibilityservice.GestureDescription을 참조하세요.
직접 부팅은 기기 시동 시간을 개선해주며, 예상치 못한 재부팅 후에도 등록된 앱이 제한된 기능을 유지하도록 해줍니다. 예를 들어, 사용자가 취침하는 동안에 암호화된 기기가 재부팅되는 경우, 이제는 등록되어 있는 알람, 메시지 및 수신 통화로 사용자에게 알려줄 수 있습니다. 즉, 재시작 직후에도 접근성 서비스를 바로 사용할 수 있습니다.
직접 부팅은 Android N의 파일 기반 암호화를 활용하여 시스템 및 앱 데이터에 대해 정밀한 암호화 정책을 활성화합니다. 이 시스템은 선택된 시스템 데이터와 명시적으로 등록된 앱 데이터에 대해 기기 암호화 스토어를 사용합니다. 기본적으로, 다른 모든 시스템 데이터, 사용자 데이터, 앱 및 앱 데이터에는 자격 증명 암호화 스토어가 사용됩니다.
부팅 시에 시스템은 제한된 모드에서 시작되며, 기기 암호화
데이터에만 액세스가 가능하고 앱 또는 데이터에는 액세스하지
못합니다. 이 모드에서 구성 요소를 실행하려는 경우,
매니페스트에 플래그를 설정하여 구성 요소를 등록할 수 있습니다.
재시작 후에는 시스템이 LOCKED_BOOT_COMPLETED 인텐트를
브로드캐스트하여 등록된 구성 요소를 활성화합니다. 잠금을 해제하기 전에, 시스템은 등록된 기기 암호화
앱 데이터가 있는지를 확인합니다. 사용자가 잠금 화면 자격 증명을 확인하여
암호화를 풀기 전까지는 다른 모든 데이터를 사용할 수 없습니다.
하드웨어 기반 키스토어는 Android 기기에서 암호화 키를 만들고 저장하고 사용하기 위한 훨씬 더 안전한 방법입니다. 이 키스토어는 Linux 커널, 잠재적 Android 취약점, 루팅된 기기의 공격으로부터 키를 보호해 줍니다.
하드웨어 기반 키스토어를 더욱 쉽고 안전하게 사용하도록 Android N에서는 Key Attestation을 도입합니다. Key Attestation을 사용하여 앱 및 기기는 RSA 또는 EC 키 쌍이 하드웨어 기반인지 여부를 결정할 수 있으며, 키 쌍의 속성에는 어떤 것이 있으며 어떠한 제약 조건이 사용 및 유효성에 적용되는지 결정할 수 있습니다.
앱 및 기기 서비스는 X.509 증명 인증서를 통해 키 쌍에 대한 정보를 요청할 수 있으며 이 인증서는 유효한 증명 키로 서명되어야 합니다. 증명 키는 공장에서 기기의 하드웨어 기반 키스토어에 주입되는 ECDSA 서명 키입니다. 따라서 올바른 증명서 키로 서명된 증명 인증서는 키스토어에 있는 키 쌍의 세부정보와 함께 하드웨어 기반 키스토어가 존재함을 확인해 줍니다.
안전한 공식 Android 공장 이미지가 기기에 사용 중인지 확인하기 위해, Key Attestation은 기기 부팅 로더가 다음의 정보를 TEE(Trusted Execution Environment)에 제공하도록 요구합니다.
하드웨어 기반 키스토어 기능에 대한 자세한 내용은 하드웨어 기반 키스토어 가이드를 참조하세요.
Key Attestation 이외에도 Android N에서는 또한 지문 등록 시에 취소되지 않는 지문 바인드 키를 소개합니다.
Android N에서 앱은 오류가 발생하기 쉬운 기존의 프로그래밍 방식 API(예: X509TrustManager)를 사용하는 대신 선언적 네트워크 보안 구성을 사용하여 보안(HTTPS, TLS) 연결의 동작을 코드 수정 없이 안전하게 사용자 지정할 수 있습니다.
지원되는 기능:
자세한 내용은 네트워크 보안 구성을 참조하세요.
기본적으로, Android N을 대상으로 하는 앱은 시스템이 제공한 인증서만을 신뢰하며 사용자가 추가한 인증 기관(CA)은 더 이상 신뢰하지 않습니다. Android N을 대상으로 하는 앱이 사용자가 추가한 CA를 신뢰하려는 경우에는 네트워크 보안 구성을 사용하여 어떤 사용자 CA를 신뢰할지 지정해야 합니다.
이제 PackageManager 클래스는 APK 서명 구성표 v2를 사용하는 앱 검사를 지원합니다. APK 서명 구성표 v2는 전체 파일의 서명 구성표이며, APK 파일의 불법적인 변경을 감지하여 검사 속도를 상당히 개선하고 무결성을 보장해 줍니다.
이전 버전과의 호환성을 유지하기 위해, APK는 v2 서명 구성표로 서명되기 전에 v1 서명 구성표(JAR 서명 구성표)로 서명되어야 합니다. v2 서명 구성표의 경우, v2 구성표로 서명한 후에 추가적인 인증서로 APK를 서명하는 경우 검사가 실패합니다.
APK 서명 구성표 v2 지원은 나중에 N Developer Preview에서 사용할 수 있습니다.
Android N에서 앱은 새로운 API를 사용하여 특정한
외부 저장소 디렉터리(SD 카드와 같은 이동식 미디어에 있는 디렉터리 포함)에
대한 액세스를 요청할 수 있습니다. 새로운 API는 애플리케이션이
표준 외부 저장소 디렉터리(예: Pictures 디렉터리)에
액세스하는 방식을 훨씬 단순화합니다.
사진 앱과 같은 앱은 모든 저장소 디렉터리에 대해 액세스 권한을 부여하는 READ_EXTERNAL_STORAGE를 사용하거나 사용자가
디렉터리를 탐색하도록 하는 SAF(Storage Access Framework)를
사용하는 대신 이들 API를 사용할 수 있습니다.
또한 새로운 API는 사용자가 앱에 외부 저장소 액세스 권한을 부여하는 단계를 단순화합니다. 새로운 API를 사용하는 경우,시스템이 어떤 디렉터리에 대한 액세스 권한을 애플리케이션이 요청하는지를 명확하게 설명하기 위해 단순 권한 UI를 사용합니다.
자세한 내용은 범위가 지정된 디렉터리 액세스 개발자 문서를 참조하세요.