Android 9 (API 수준 28)에는 도움이 될 수 있습니다 이 문서에서는 개발자를 위한 새로운 기능을 소개합니다.
새 API에 대해 알아보려면 API 차이점 보고서를 참조하거나 Android API 참조 또한 Android 9 동작 변경사항 알아보기 플랫폼 변경이 앱에 영향을 줄 수 있는 영역에 관해 자세히 알아보세요.
Wi-Fi RTT를 사용한 실내 위치추적
Android 9에는 IEEE 802.11-2016 Wi-Fi를 위한 플랫폼 지원이 추가되었습니다. 프로토콜(Wi-Fi 왕복 시간(RTT)이라고도 함)을 사용하여 몇 가지 방법을 소개합니다.
하드웨어 지원이 포함된 Android 9을 실행하는 기기에서 앱은
RTT API로
RTT 지원 Wi-Fi 액세스 포인트 (AP)까지의 거리 기기에 다음 항목이 있어야 합니다.
위치 서비스가 사용 설정되고 Wi-Fi 검색이 사용 설정(
설정 > Location)가 있어야 하며, 앱에는
ACCESS_FINE_LOCATION
권한을 부여했는지 확인합니다. RTT를 사용하기 위해 기기를 액세스 포인트에 연결하지 않아도 됩니다.
개인 정보 보호를 위해 휴대전화만
액세스 포인트 액세스 포인트에는 이 정보가 없습니다.
기기에서 3개 이상의 액세스 포인트에 대한 거리를 측정하는 경우 이러한 모델에 가장 적합한 기기 위치를 추정하는 다변량 알고리즘 측정할 수 있습니다 일반적으로 그 결과는 1~2미터 이내로 정확합니다.
이렇게 정확도가 높으면 건물 내 탐색과 같은 새로운 환경을 구축할 수 있습니다. 명확한 음성 제어와 같은 세분화된 위치 기반 서비스 위치 기반 정보(예: "조명 켜 줘") 및 위치 기반 정보 (예: "이 제품에 특별 이벤트가 있나요?")
사용 중인 WiFi RTT API를 <ph type="x-smartling-placeholder"></ph> Android WifiRttScan 데모 앱
자세한 내용은 Wi-Fi 위치: RTT를 사용한 범위 지정.
디스플레이 컷아웃 지원
Android 9는 최신 더 넓은 화면 지원 제공
카메라와 스피커용 디스플레이 컷아웃이 있습니다. 이
DisplayCutout
드림
클래스를 사용하면 작동하지 않는 비기능 영역의 위치와 형태를
표시되어서는 안 됩니다. 이 망원경의 존재 여부와 위치를
이러한 컷아웃 영역에 대해서는
getDisplayCutout()
드림
메서드를 사용하여 축소하도록 요청합니다.
새 창 레이아웃 속성인
layoutInDisplayCutoutMode
님,
를 사용하면 앱이 기기의 컷아웃 주위에 콘텐츠를 배치할 수 있습니다. 다음과 같이 설정할 수 있습니다.
이 속성의 값을 다음 값 중 하나로 설정합니다.
LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
Android 9을 실행하는 모든 기기나 에뮬레이터에서 화면 컷아웃을 시뮬레이션할 수 있습니다. 방법은 다음과 같습니다.
- 개발자 옵션을 사용 설정합니다.
- 개발자 옵션 화면에서 아래로 스크롤하여 그림 섹션으로 이동합니다. 컷아웃이 있는 디스플레이 시뮬레이션을 선택합니다.
- 컷아웃의 크기를 선택합니다.
알림
Android 9에서는 몇 가지 알림 기능이 개선되었으며, 이 모든 개선사항은 API 수준 28 이상을 타겟팅하는 개발자에게 제공됩니다.
Android 9 기능을 비롯하여 알림을 사용하는 샘플 코드는 인물 샘플을 참고하세요.
향상된 메시지 환경
Android 7.0 (API 수준 24)부터 알림에서 직접 다른 텍스트를 입력할 수도 있습니다. Android 9 개선사항 다음과 같은 개선사항이 적용되었습니다.
대화 참가자를 위한 간소화된 지원:
Person
드림 클래스는 아바타와 URI입니다. 기타 여러 API(예:addMessage()
님, 이제CharSequence
대신Person
클래스를 활용합니다.Person
클래스 빌더 디자인 패턴도 지원합니다.이미지 지원: 이제 Android 9의 메시지 알림에 이미지가 표시됩니다. 해야 합니다. 이때
setData()
드림 이미지를 표시할 수 있습니다. 다음 코드 스니펫은Person
및 이미지가 포함된 메시지를 만듭니다.
Kotlin
// Create new Person. val sender = Person() .setName(name) .setUri(uri) .setIcon(null) .build() // Create image message. val message = Message("Picture", time, sender) .setData("image/", imageUri) val style = Notification.MessagingStyle(getUser()) .addMessage("Check this out!", 0, sender) .addMessage(message)
자바
// Create new Person. Person sender = new Person() .setName(name) .setUri(uri) .setIcon(null) .build(); // Create image message. Message message = new Message("Picture", time, sender) .setData("image/", imageUri); Notification.MessagingStyle style = new Notification.MessagingStyle(getUser()) .addMessage("Check this out!", 0, sender) .addMessage(message);
답글 초안으로 저장: 앱에서
EXTRA_REMOTE_INPUT_DRAFT
드림 사용자가 실수로 메시지 알림을 닫았을 때 시스템에서 전송합니다. 이 추가 기능을 사용하여 앱의 텍스트 필드를 미리 채울 수 있으므로 사용자가 답장을 완료합니다.대화가 그룹 대화인지 확인:
setGroupConversation()
드림 의도적으로 대화를 그룹 대화 또는 비그룹 대화로 식별합니다.인텐트의 시맨틱 작업을 설정합니다.
setSemanticAction()
드림 메서드를 사용하면 다음과 같이 작업에 의미론적 의미를 부여할 수 있습니다. '읽음으로 표시'로 지정하면 "삭제", "답장" 등등.SmartReply: Android 9는 메시지 앱입니다. 사용
RemoteInput.setChoices()
드림 를 사용하세요.
채널 설정, 방송, 방해 금지 모드
Android 8.0에는 알림 채널이 도입되었습니다. kubectl 명령어 표시할 각 알림 유형에 대해 사용자가 맞춤설정할 수 있는 채널을 만듭니다. Android 9은 이러한 변경을 통해 알림 채널 설정을 단순화합니다.
채널 그룹 차단: 이제 사용자가 전체 채널 그룹을 차단할 수 있습니다. 앱 알림 설정 내 이
isBlocked()
드림 메서드를 사용하여 그룹이 차단된 경우를 식별하고, 따라서 어떠한 해당 그룹의 채널에 대한 알림또한 앱에서 다음을 사용하여 현재 채널 그룹 설정을 쿼리할 수 있습니다. 새로운
getNotificationChannelGroup()
드림 메서드를 사용하여 축소하도록 요청합니다.새로운 브로드캐스트 인텐트 유형: 이제 Android 시스템에서 브로드캐스트 인텐트를 전송함 알림 채널 및 채널 그룹의 차단 상태가 변경될 때. 차단된 채널이나 그룹을 소유한 앱은 이러한 인텐트를 수신 대기할 수 있으며 적절하게 대응하세요 이러한 인텐트 작업 및 추가 항목에 관한 자세한 내용은 업데이트된 상수 목록을
NotificationManager
드림 참조 브로드캐스트 인텐트에 대한 반응에 관한 자세한 내용은 브로드캐스트.NotificationManager.Policy
드림 에는 다음과 같은 세 가지 새로운 방해 금지 모드 우선순위 카테고리가 있습니다.PRIORITY_CATEGORY_ALARMS
드림 경보의 우선 순위를 정합니다PRIORITY_CATEGORY_MEDIA
드림 - 미디어 및 음성 내비게이션과 같은 미디어 소스의 사운드에 우선순위를 둡니다.PRIORITY_CATEGORY_SYSTEM
드림 시스템 사운드를 우선시합니다.
NotificationManager.Policy
에는 알림 일시중지 상수 7개가 새로 도입되었습니다. 를 사용하여 시각적 방해를 억제할 수 있습니다.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT
드림 알림이 전체 화면 활동을 실행하지 못하게 합니다.SUPPRESSED_EFFECT_LIGHTS
드림 알림 표시등을 차단합니다.SUPPRESSED_EFFECT_PEEK
드림 알림이 일시적으로 표시('엿보기')하지 못하게 합니다.SUPPRESSED_EFFECT_STATUS_BAR
드림 상태 표시줄을 지원하는 기기의 상태 표시줄에 알림이 표시되지 않도록 합니다.SUPPRESSED_EFFECT_BADGE
드림 배지 설정을 지원하는 기기에서 배지를 차단할 수 있습니다. 자세한 내용은 알림 배지를 수정합니다.SUPPRESSED_EFFECT_AMBIENT
드림 화면 보호 모드를 지원하는 기기에서 알림을 차단합니다.SUPPRESSED_EFFECT_NOTIFICATION_LIST
드림 알림 창이나 잠금 화면과 같이 목록 보기를 지원하는 기기에서 목록 보기에 알림이 표시되지 않도록 합니다.
다중 카메라 지원 및 카메라 업데이트
Android 9를 실행하는 기기에서 스트림에 액세스할 수 있습니다. 2개 이상의 물리적 하드웨어에서 동시에 카메라 듀얼 전면 카메라 또는 듀얼 후면 카메라가 있는 기기에서 매끄러운 통합과 같은 단일 카메라로는 불가능한 혁신적인 기능을 확대/축소, 빛망울 효과, 스테레오 비전을 지원합니다. 또한 API를 사용하면 카메라 스트림은 두 대 이상의 카메라 간에 자동으로 전환됩니다.
카메라의 다른 개선사항으로는 추가 Session 매개변수 초기 캡처 중 지연을 줄이는 데 도움이 되며, 카메라 클라이언트는 중지하거나 시작할 필요 없이 다양한 사용 사례를 처리합니다. 사용할 수 있습니다. 또한 디스플레이 기반 플래시 지원 OIS에 대한 액세스를 타임스탬프 을 사용하세요.
Android 9에서 다중 카메라는
API
다음과 같은 기기의 경우 흑백 카메라를 지원합니다.
FULL
또는
LIMITED
기능을 제공합니다.
흑백 출력은
YUV_420_888
Y(그레이 스케일), U(Cb)는 128, V(Cr)는 128입니다.
Android 9에서는 외부 USB/UVC 지원 카메라 켜짐 지원되는 기기
드로어블 및 비트맵용 ImageDecoder
Android 9은
ImageDecoder
드림
이 클래스는 이미지 디코딩을 위한 현대화된 접근 방식을 제공합니다. 이 수업 사용
BitmapFactory
대신
및 BitmapFactory.Options
API에 액세스할 수 있습니다
ImageDecoder
를 사용하면
Drawable
또는
Bitmap
바이트 버퍼, 파일,
또는 URI입니다 이미지를 디코딩하려면 먼저
createSource()
드림
를 사용합니다. 그런 다음
decodeDrawable()
드림
또는 decodeBitmap()
ImageDecoder.Source
를 전달하여
객체를 사용하여 Drawable
만들기
또는 Bitmap
입니다. 이
OnHeaderDecodedListener
를
decodeDrawable()
또는 decodeBitmap()
입니다. 통화 ImageDecoder
회
onHeaderDecoded()
알려진 경우 이미지의 기본 너비 및 높이로 대체합니다.
인코딩된 이미지가 애니메이션 GIF 또는 WebP인 경우 decodeDrawable()
은
Drawable
는
AnimatedImageDrawable
클래스에 대해 자세히 알아보세요.
이미지 속성을 설정하기 위해 다른 메서드를 사용할 수 있습니다.
- 디코딩된 이미지의 크기를 정확한 크기로 조정하려면 타겟 크기를
setTargetSize()
또한 샘플 크기를 사용하여 이미지의 배율을 조정할 수도 있습니다. 샘플 크기를setTargetSampleSize()
- 조정된 이미지 범위 내에서 이미지를 자르려면
setCrop()
- 변경 가능한 비트맵을 만들려면
true
를setMutableRequired()
ImageDecoder
를 사용하면 이미지에 복잡한 맞춤 효과도 추가할 수 있습니다.
예를 들어 둥근 모서리나
원 마스크를 사용할 수도 있습니다. 사용
setPostProcessor()
드림
인코더-디코더
PostProcessor
클래스를 사용하여 원하는 그리기 명령을 실행할 수 있습니다.
애니메이션
Android 9은
AnimatedImageDrawable
드림
클래스를 사용합니다.
AnimatedImageDrawable
는 다음과 유사하게 작동합니다.
AnimatedVectorDrawable
렌더링 스레드가 AnimatedImageDrawable
의 애니메이션을 구동한다는 점에서 다릅니다.
또한 렌더링 스레드는 작업자 스레드를 사용하여 디코딩하므로 디코딩이
렌더 스레드의 다른 작업을 방해하지 않습니다. 이 구현을 통해
앱에서 업데이트를 관리하지 않고도 애니메이션 이미지를 표시하거나
앱의 UI 스레드에서 다른 이벤트를 방해하지 않도록 합니다.
AnimatedImageDrawable
는 다음 인스턴스를 사용하여 디코딩할 수 있습니다.
ImageDecoder
다음
코드 스니펫은 ImageDecoder
를 사용하여
AnimatedImageDrawable
:
Kotlin
@Throws(IOException::class) private fun decodeImage() { val decodedAnimation = ImageDecoder.decodeDrawable( ImageDecoder.createSource(resources, R.drawable.my_drawable)) // Prior to start(), the first frame is displayed. (decodedAnimation as? AnimatedImageDrawable)?.start() }
자바
private void decodeImage() throws IOException { Drawable decodedAnimation = ImageDecoder.decodeDrawable( ImageDecoder.createSource(getResources(), R.drawable.my_drawable)); if (decodedAnimation instanceof AnimatedImageDrawable) { // Prior to start(), the first frame is displayed. ((AnimatedImageDrawable) decodedAnimation).start(); } }
ImageDecoder
에는 이미지를 추가로 수정할 수 있는 메서드가 여러 개 있습니다.
예를 들어
setPostProcessor()
드림
메서드를 사용하여 이미지의 모양을 수정합니다(예: 원 마스크 또는
사용하지 마세요.
HDR VP9 동영상, HEIF 이미지 압축, 미디어 API
Android 9는 HDR (High Dynamic Range) VP9 프로필 2를 기본적으로 지원합니다. HDR 지원 영화를 YouTube, Play 무비, 및 기타 소스 등 다양한 콘텐츠를 재생할 수 있습니다.
Android 9에는 고효율 이미지를 사용한 이미지 인코딩 지원도 추가되었습니다.
파일 형식 (HEIF)
또는 HEIC)을 사용하는 것이 더 정확하며, 압축이 향상되고 저장공간과 네트워크 데이터가 줄어듭니다.
사용합니다 HEIF 정지 이미지 샘플은
MediaMuxer
드림
및 MediaExtractor
있습니다. Android 9 기기에서 플랫폼 지원으로
백엔드 서버의 HEIF 이미지를 활용할 수 있습니다. 모든 코드가 제대로 작동하는지 확인한 후에는
앱이 공유 및 표시를 위해 이 데이터 형식과 호환됩니다. HEIF를 사용해 보세요.
앱 내에 이미지 스토리지 형식으로
저장하는 것이 좋습니다 jpeg-heic 변환 가능
ImageDecoder
또는
BitmapFactory
(
JPEG 파일의 비트맵 포함). 그런 다음
HEIF를 작성하려면 HeifWriter
정지 이미지 또는 YUV 바이트 버퍼의
Surface
또는
Bitmap
:
또한 미디어 측정항목은
AudioTrack
님,
AudioRecord
님,
및 MediaDrm
클래스.
Android 9에서는
측정항목, HDCP를 가져오는 MediaDRM
클래스
수준, 보안 수준, 세션수를 관리할 수 있으며,
보안 수준 및 안전 중지가 있습니다. API 차이점 참조
보고서를 참조하세요.
Android 9에서 AAudio API는
사용법, 콘텐츠 유형 등 여러 가지 추가 AAudioStream 속성을 지원합니다.
사전 설정 입력 등이 있습니다. 이러한 속성을 사용하면
VoIP 또는 캠코더 애플리케이션에 맞게 조정되었습니다. 세션 ID를 다음으로 설정할 수도 있습니다.
AAudio 스트림을 효과를 포함할 수 있는 서브믹스와 연결합니다. 사용
AudioEffect
API를 통해
사용할 수 있습니다.
Android 9은
AudioEffect
API:
동적 처리를 참조하세요.
이 수업에서는 다음과 같은 채널 기반 오디오 효과를 만들 수 있습니다.
이퀄라이제이션, 다중 대역 압축, 리미터 등입니다. 이
대역 및 활성 단계의 수를 구성할 수 있으며 대부분의 매개변수는
실시간으로 관리할 수 있습니다.
JobScheduler의 데이터 비용 민감도
Android 9부터 JobScheduler
이동통신사가 제공하는 네트워크 상태 신호를 사용하여 처리를 개선할 수 있음
네트워크 관련 일자리 중 하나입니다.
작업은 예상 데이터 크기를 선언하고, 미리 가져오기를 알리고,
네트워크 요구사항을 상세히 기술합니다 그러면 JobScheduler
가 다음에 따라 작업을
확인할 수 있습니다. 예를 들어 네트워크가 혼잡하다고 신호를 보낼 때
JobScheduler
는 대규모 네트워크 요청을 연기할 수 있습니다. 이동 시
JobScheduler
는 미리 가져오기 작업을 실행하여
사용자 환경 개선(예: 헤드라인 미리 가져오기)
작업을 추가할 때는 setEstimatedNetworkBytes()
를 사용해야 합니다.
setPrefetch()
님,
및 setRequiredNetwork()
적절한 때에
JobScheduler
는 작업을 올바르게 처리합니다. 작업이 실행되면
Network
객체를 사용해야 합니다.
반환:
JobParameters.getNetwork()
그러지 않으면 기기에 있는 기본 네트워크를 암시적으로 사용하게 됩니다.
요구사항을 충족하지 않아 의도하지 않은 데이터 사용이 발생할 수 있습니다.
Neural Networks API 1.1
Neural Networks API는 (Android 8.1(API 수준 27))을 지원하여 온디바이스 머신러닝을 가속화합니다. Android Android 9은 API를 확장하고 개선하여 9가지 새로운 작업에 대한 지원:
- 요소별 수학 연산: <ph type="x-smartling-placeholder">
- 배열 연산: <ph type="x-smartling-placeholder">
알려진 문제:
<ph type="x-smartling-placeholder">ANEURALNETWORKS_TENSOR_QUANT8_ASYMM
</ph>
텐서를
ANEURALNETWORKS_PAD
이 작업은 Android 9 이상에서 사용할 수 있으며
NNAPI의 출력이 상위 수준 시스템의 출력과 일치하지 않을 수 있음
학습 프레임워크와 같은
TensorFlow Lite 나
대신
<ph type="x-smartling-placeholder"></ph>
ANEURALNETWORKS_TENSOR_FLOAT32
문제를 해결할 수 있습니다.
또한 API에는 새로운 함수인
ANeuralNetworksModel_relaxComputationFloat32toFloat16()
님,
이 측정항목을 사용하면
ANEURALNETWORKS_TENSOR_FLOAT32
IEEE 754 16비트 부동 소수점만큼 낮은 범위와 정밀도
형식으로 입력합니다.
자동 완성 프레임워크
Android 9에는 자동 완성을 지원하는 여러 개선사항이 도입됩니다. 양식을 작성할 때 사용자 경험을 더욱 개선하기 위해 양식을 작성했습니다. 앱에서 자동 완성 기능을 사용하는 방법에 관한 자세한 내용은 다음을 참고하세요. 자동 완성 프레임워크 가이드를 참조하세요.
보안 기능 향상
Android 9에는 다양한 보안 기능이 도입되는데, 다음 섹션에 요약되어 있습니다.
Android 보안 확인
Android 9 이상을 실행하는 지원 기기는 Android 보안 확인을 사용할 수 있습니다 이 워크플로를 사용할 때 앱이 사용자에게 짧은 진술을 승인해 달라고 요청하는 메시지를 표시합니다. 이 명령문을 통해 앱은 사용자가 민감한 거래(예: 결제)
사용자가 문을 수락하면 Android 키 저장소는
키 해시 메시지 인증으로 보호되는 암호화 서명
코드 (HMAC) Android 키 저장소가 메시지의 유효성을 확인하면 앱은
trustedConfirmationRequired
에서 생성된 키를 신뢰할 수 있는
TEE (실행 환경)를 사용하여 사용자가 수락한 메시지에 서명합니다. 이
시그니처는 매우 높은 확신을 가지고 사용자가
동의했습니다.
주의: Android 보안 확인은 사용자를 위한 보안 정보 채널을 제공하지 않습니다. 앱은 어떠한 가정도 할 수 없고 기밀성을 보장합니다. 특히, 통상적으로 사용자 기기에 표시하지 않을 민감한 정보를 표시하려는 목적으로 이 워크플로를 사용해서는 안 됩니다.
Android 보안 확인 지원 추가에 관한 안내는 다음을 참고하세요. Android 보호 확인 참조하세요.
통합 생체 인식 인증 대화상자
Android 9에서는 시스템이 대신 생체 인식 인증 대화상자를 제공합니다. 있습니다. 이 기능은 표준화된 디자인과 분위기, 대화상자의 코드로서, 사용자가 인증하고 있음을 더 확신할 수 있습니다. 신뢰할 수 있는 생체 인식 사용자 인증 정보 검사기를 사용해야 합니다.
앱에서
FingerprintManager
드림
사용자에게 지문 인증 대화상자를 표시하려면
BiometricPrompt
하세요. BiometricPrompt
는 시스템을 사용하여 인증을 표시합니다.
대화상자 또한 생체 인식 유형에 맞게 동작을 변경합니다.
사용자가 선택한 인증입니다.
하드웨어 보안 모듈
Android 9 이상이 설치되어 실행되는 지원 기기는 StrongBox Keymaster가 있음, 즉 하드웨어 보안 모듈에 있습니다. 모듈에 포함된 구성요소는 다음과 같습니다.
- 자체 CPU
- 보안 저장소
- 순수 난수 생성기
- 패키지 변조 및 무단 사이드로드를 방지하는 추가 메커니즘 있습니다.
시스템은 StrongBox Keymaster에 저장된 키를 검사할 때 키의 무결성을 재정의하도록 합니다.
Strongbox Keymaster 사용에 관한 자세한 내용은 하드웨어 보안 모듈을 참조하세요.
키 저장소로 키 가져오기 보호
Android 9은 추가 키 복호화 보안을 제공하여 키를 사용하여 암호화된 키를 키 저장소로 안전하게 가져오는 기능 ASN.1로 인코딩된 키 형식입니다. 그런 다음 Keymaster는 키 저장소: 키의 내용이 기기의 호스트 메모리에 일반 텍스트로 표시되지 않습니다.
키 순환이 포함된 APK 서명 체계
Android 9은 APK Signature Scheme v3를 위한 지원을 추가합니다. 이 스키마에는 각 서명에 대한 서명 블록에 키 순환 증빙 자료 기록을 포함해야 합니다. 있습니다. 이 기능을 사용하면 새로운 서명으로 앱을 서명할 수 있습니다. 기존 서명 인증서를 이제 서명되어 있습니다.
다음을 사용하여 키를 순환하는 방법 자세히 알아보기
apksigner
잠금 해제된 기기에서만 키 복호화를 허용하는 옵션
Android 9에는 unlockedDeviceRequired
플래그가 도입됩니다. 이 옵션은
키 저장소에서 화면을 잠금 해제해야 하는지 여부
복호화하는 데 사용됩니다. 이러한 유형
과 같이 디스크에 저장할 민감한 정보를 암호화하는 데 적합한 키의 비율
건강 또는 기업 데이터에 적용할 수 있습니다 사용자는 이 플래그를 통해
휴대전화를 분실한 경우 기기가 잠겨 있는 동안 데이터를 복호화할 수 없음
있습니다.
기기가 잠겨 있는 동안 키가 복호화되지 않도록 안전하게 보관하려면 플래그를 사용 설정합니다.
true
를 setUnlockedDeviceRequired()
에 전달하여
메서드를 사용하여 축소하도록 요청합니다. 이 단계를 완료한 후 사용자의 화면이 잠기면
이 키를 사용하여 데이터를 복호화하거나 서명하려는 시도가 실패합니다. 기기가 잠겨 있으면
PIN, 비밀번호, 지문 또는 기타 신뢰할 수 있는 인증 요소가 있어야만
액세스할 수 있습니다
기존 암호화 지원
Keymaster 4와 함께 제공되는 Android 9 기기는 Triple Data를 지원합니다. 즉, 암호화 알고리즘 또는 트리플 DES를 기반으로 합니다. 앱이 레거시와 상호 운용되는 경우 시스템에서 암호화하는 경우 암호화할 때 이 유형의 암호화를 민감한 사용자 인증 정보를 사용할 수 있습니다
앱의 보안을 강화하는 방법에 대해 자세히 알아보려면 Android용 보안을 참조하세요. 개발자.
WPS 지원 중단
보안상의 이유로 Wi-Fi Protected 설정 (WPS)이 지원 중단되었습니다.
Android 백업
Android 9에는 이와 관련된 새로운 기능 및 개발자 옵션이 추가됨 백업 및 복원에 사용할 수 있습니다 변경사항에 대한 세부정보는 다음에서 확인할 수 있습니다. 섹션으로 이동합니다.
클라이언트 측 암호화 백업
Android 9에는 클라이언트 측 보안 비밀입니다. 이 지원은 다음 경우에 자동으로 사용 설정됩니다. 다음과 같은 조건을 충족합니다.
- 사용자가 사용 설정 Android 9를 사용하여 백업 또는 그 이상일 수 있습니다.
- 사용자가 화면을 설정함 잠금을 설정합니다 잠금 해제를 위해 PIN, 패턴 또는 비밀번호가 필요한 기기
이 개인 정보 보호 조치를 사용 설정하면 기기의 PIN, 패턴 또는 비밀번호가 사용자 기기에서 수행한 백업에서 데이터를 복원하는 데 필요합니다. 배우기 위해 이 기능의 기반이 되는 기술에 대한 자세한 내용은 Google Cloud Key Vault 서비스 백서를 참조하세요.
백업에 필요한 기기 조건 정의
앱 데이터에 민감한 정보나 환경설정이 포함된 경우 Android 9 원하는 기기를 정의할 수 있는 조건이 적용됩니다. 앱 데이터가 사용자의 백업에 포함되는 경우(예: 클라이언트 측 백업) 로컬 장치 간 전송이 이루어지고 있을 때 발생합니다.
Android 기기에서 데이터 백업에 대해 자세히 알아보려면 데이터 백업 개요를 선택합니다.
접근성
Android 9에서 향상된 접근성 기능 도입 더욱 간편하게 이용할 수 있도록 지원하는 프레임워크입니다. 있습니다.
탐색 의미 체계
Android 9에 추가된 특성을 사용하면 접근성 서비스, 특히 스크린 리더는 Google 검색 앱의 한 부분에서 다른 화면에 표시할 수 있습니다. 이 속성은 시각 장애가 있는 사용자에게 도움이 될 수 있습니다. 앱 UI에서 텍스트를 빠르게 이동하고 사용자가 선택할 수 있도록 합니다.
예를 들어 쇼핑 앱에서는 스크린 리더가 스크린 리더 없이 특정 거래 카테고리에서 다른 카테고리로 바로 이동할 수 있습니다. 다음으로 넘어가기 전에 카테고리의 모든 항목을 읽지 않아도 됨
접근성 창(pane) 제목
Android 8.1 (API 수준 27) 이하에서 접근성 서비스가 항상 가능하지는 않음 화면의 특정 창이 업데이트된 시점을 확인합니다(예: 활동이 한 프래그먼트를 다른 프래그먼트로 교체하는 경우). 창은 시각적으로 관련되어 있으며 논리적으로 그룹화된 UI 요소로, 일반적으로 프래그먼트의 예입니다.
Android 9에서는 접근성 창 제목을 제공하거나 개별적으로 지정할 수 있습니다. 지정할 수 있습니다. 창에 접근성 창 제목이 있는 경우 접근성 서비스는 페인(pane)이 변경될 때 더 자세한 정보를 수신합니다. 이 기능을 통해 서비스는 사용자에게 보다 세분화된 정보를 제공할 수 있습니다. 자세히 알아볼 수 있습니다
페인(pane)의 제목을 지정하려면
android:accessibilityPaneTitle
드림
속성 다음 위치에서 대체되는 UI 창의 제목을 업데이트할 수도 있습니다.
setAccessibilityPaneTitle()
를 사용하여 런타임을 실행합니다.
예를 들어
Fragment
객체
제목 기반 탐색
앱이 논리적 제목이 포함된 텍스트 콘텐츠를 표시하는 경우
android:accessibilityHeading
드림
속성을 true
로 변경
이러한 제목을 나타내는 View
입니다. 기준
이러한 제목을 추가하면 사용자가 편리하게 탐색할 수 있도록 접근성 서비스에서
한 제목에서 다음 제목으로 바로 이동합니다 모든 접근성 서비스에서 이
사용자의 보안 태세를 개선하고 UI 탐색 환경
그룹 탐색 및 출력
스크린 리더는 전통적으로
android:focusable
가 다음에 부여됨
언제 읽을지 결정하여
ViewGroup
또는
View
객체를 단일 단위로 사용합니다. 이렇게 하면
사용자는 뷰가 서로 논리적으로 관련되어 있음을 이해할 수 있었습니다.
Android 8.1 이하에서는 각 View
객체를
ViewGroup
를 포커스 불가능으로 지정하고 ViewGroup
자체를 포커스 가능으로 지정합니다. 이
배열로 인해 View
의 일부 인스턴스가
키보드 탐색이 더욱 번거로워졌습니다.
Android 9부터는
android:screenReaderFocusable
드림
속성을 android:focusable
속성 대신 사용하세요.
View
객체를 포커스 가능 상태로 만들면 바람직하지 않은 결과가 발생합니다. 스크린 리더
android:screenReaderFocusable
중 하나를 설정한 모든 요소에 포커스를 둡니다.
또는 android:focusable
에서 true
로 변경합니다.
편의 작업
Android 9에서는 사용자를 대신하여 편의 작업을 수행하기 위한 지원이 추가되었습니다.
- 도움말과의 상호작용
- 접근성 프레임워크에 추가된 기능을 통해
앱 UI의 도움말 사용
getTooltipText()
드림 를 사용하여 도움말 텍스트를 읽고ACTION_SHOW_TOOLTIP
및ACTION_HIDE_TOOLTIP
를 사용하여View
의 인스턴스에 도움말을 숨깁니다. - 추가된 전역 작업
- Android 9은
AccessibilityService
클래스에 대해 자세히 알아보세요. 서비스를 통해 사용자가 기기를 잠그고 스크린샷을 찍을 수 있습니다. 사용GLOBAL_ACTION_LOCK_SCREEN
드림 및GLOBAL_ACTION_TAKE_SCREENSHOT
실행할 수 있습니다
창 변경 세부정보
Android 9에서는 앱이 실행될 때 앱 창의 업데이트를 더 쉽게 추적할 수 있습니다.
여러 창을 동시에 다시 그립니다. 사용자가
TYPE_WINDOWS_CHANGED
드림
이벤트가 발생하면
getWindowChanges()
기간이 어떻게 변경되었는지 확인하는 API 멀티 윈도우를 업데이트하는 동안
창은 자체 이벤트 집합을 생성합니다.
getSource()
메서드는 각 이벤트와 연결된 창의 루트 뷰를 반환합니다.
앱에서 접근성 창(pane) 제목을 정의한 경우
View
객체를 사용하는 경우 서비스에서 인식할 수 있는
앱의 UI가 업데이트될 때. 사용자가
TYPE_WINDOW_STATE_CHANGED
드림
이벤트가 발생하면
getContentChangeTypes()
기간이 어떻게 변경되었는지 확인합니다. 예를 들어, 프레임워크는
창에 새 제목이 있거나 창이 사라진 시점을 감지합니다.
회전
의도치 않은 회전을 없애기 위해 기기 방향이 바뀌더라도 방향으로 전환할 수 있습니다 사용자가 회전을 트리거할 수 있습니다. 필요한 경우 시스템 표시줄의 버튼을 눌러 수동으로 표시할 수 있습니다.
앱에 대한 호환성의 영향은 대부분의 경우 최소한입니다. 하지만 앱에 맞춤설정된 회전 동작이 있거나 비정상적인 화면 방향을 사용하는 경우 이전에 발견 하지 못했을 문제가 발생할 수 있습니다. 사용자 회전 환경설정이 항상 세로 모드로 설정되어 있었습니다. 이 과정을 앱의 모든 주요 활동에서 회전 동작을 살펴보고 모든 화면 방향 설정이 여전히 최적의 경험을 제공합니다.
자세한 내용은 관련 동작을 참조하세요. 변경사항을 참조하세요.
텍스트
Android 9은 다음과 같은 텍스트 관련 기능을 플랫폼:
미리 계산된 텍스트:
PrecomputedText
클래스 개선 필요한 텍스트 렌더링 성능을 미리 볼 수 있습니다 또한 앱이 텍스트 레이아웃을 해제할 수 있도록 합니다. 기본 스레드입니다.돋보기:
Magnifier
클래스는 돋보기 API를 제공하는 플랫폼 위젯으로 돋보기 기능 환경을 제공합니다.Smart Linkify: Android 9은
TextClassifier
클래스 이는 머신러닝을 활용하여 선택한 텍스트에서 일부 항목을 식별하고 작업을 제안합니다. 예를 들어TextClassifier
는 앱이 확인할 수 있습니다. 그러면 앱에서 해당 번호로 전화를 걸 수 있습니다.TextClassifier
의 기능Linkify
클래스의 기능을 대체합니다.텍스트 레이아웃: 여러 편의 메서드와 속성을 사용하면 UI 디자인을 구현할 수 있습니다 자세한 내용은
TextView
DEX 파일의 ART AOT 변환
Android 9 이상을 실행하는 기기에서 Android 런타임은 (ART) 사전 컴파일러로 압축된 Dalvik Executable이 더욱 최적화됨 DEX 파일을 보다 복잡한 형식으로 변환하여 축약된 표현입니다. 이 변경사항으로 인해 앱이 더 빠르게 시작하고 더 적은 디스크 공간 및 RAM입니다.
이 개선사항은 특히 디스크 I/O가 느린 저사양 기기에 이점을 제공합니다. 속도가 훨씬 빠를 수도 있습니다.
기기 내 시스템 추적
Android 9을 사용하면 기기에서 시스템 트레이스를 기록할 수 있습니다. 녹음된 보고서를 개발팀과 공유하세요. 이 보고서 은 HTML을 비롯한 여러 형식을 지원합니다.
이러한 트레이스를 수집하여 앱의 프로세스 및 스레드를 확인하고 세계적으로 중요한 다른 유형의 기기를 봅니다. 있습니다.
이 도구에 관해 자세히 알아보려면 기기 시스템 실행 트레이싱을 지원합니다.