Android P

2018. 3. 19. 01:51Work/Android

728x90
반응형

Android P

  • Behavior changes (동작 변경 사항)
    1. Apps targeting all API levels (모든 API 레벨에서 적용 사항)
ㅇ 백그라운드 앱의 입력 및 데이터 개인 정보 보호 (Input and data privacy in background apps)
- 실행 중 앱이 마이크나 카메라에 액세스 할 수 없음, 권한 확인시 접근 가능  
  (your app cannot access the microphone or camera)
- 연속 보고 모드를 사용하는 센서(가속도, 자이로)는 이벤트 수신 불가
  (Sensors that use the continuous reporting mode, such as accelerometers and gyroscopes, don't receive events)
- 보고 모드를 사용하는 센서(one-change 또는 one-shot)는 이벤트 수신 불가, 센서 이벤트 감지 필요시 forground Service 사용 필요
  (Sensors that use the one-change or one-shot reporting modes don't receive events)

 기기 보안 변경  (Device security changes)
- 보안 동작 변경 사항 지점 참고
  (Security Behavior Changes) 

 암호화 변경 (Cryptographic changes)
- 매개변수로 AES, DESEDE, OAEP 및 EC가 포함  
  (These parameters include : AES, DESEDE, OAEP, and EC)
- Bouncy Castle 구현에서 사용되지 않는 알고리즘 요청시 01)NoSuchAlgorithmException 반환함 
  (The Bouncy Castle implementation of one of these deprecated algorithms, these requests each throw a NoSuchAlgorithmException)
- ARC4 암호의 Conscrypt 구현을 통해 ARC4 / ECB / NoPadding 또는 ARC4 / NONE / NoPadding을 지정할 수 있습니다.
  (The Conscrypt implementation of the ARC4 cipher allows you to specify either ARC4/ECB/Nopadding or ARC4/NONE/NoPadding)
- Crypto Java 암호화 아키텍쳐 (JCA) 프로 바이더 삭제
  (Crypto Java Crytography Architecture provider has been removed)
- 앱이 RSA 키를 키 구조보다 큰 버퍼에서 파싱하는 경우 더 이상 예외가 발생하지 않습니다.
  (If your app parses RSA keys from buffers that are larger than the key structure, an exception no longer occurs)

 앱 호환성 변경  (App compatibility changes)
- SDK가 아닌 메소드와 필드의 사용 제한, 메소드와 필드에 직접 액세스, 리플렉션, JNI에 관계없이 적용, 자세한 사항은 02)참고
  (non-SDK methods and fields, these restrictions apply whether you attempt to access these methods and fields directly, via reflection, or using JNI)

 ICU 라이브러리에 대한 업데이트  (Updates to the ICU libraries)
- GTM 및 UTC를 보다 잘 처리, UTC는 더 이상 GMT와 동의어가 아닙니다.
  (The platform handles GTM and UTC better, UTC is no longer a synonym for GMT)

 암호화 된 파일은 더 이상 지원되지 않습니다.  (Android secure encrypted files are no longer supported)
- 암호화 파일(ASEC)은 Android 2.2(API 8)에 도입되어 SD카드 기능 지원, Android 6.0(API 23)은 ASEC를 대체하고 더 이상 사용되지 않는 API로 "채택 가능한 SD 카드" 기능 도입
  (ASEC were originally introduced in Android 2.2 to support the original apps-on-SD-card feature. Android 6.0 replaced and deprecated ASECs, introducing in their place an "adoptable SD card" feature)
- Android 8.0(API 26)은 ASEC에 설치할 수 있는 기능 차단. Preview에서는 ASEC 기능 완전 제거
  (Android 8.0 blocked the ability to install new apps into ASECs. The Developer Preview removes the ASEC functionality completely) 

ㅇ 테스트 스위트 빌드 변경 (Test suite build changes)
- addRequirements() 메소드가 03)TestSuiteBuilder 클래스에서 제거됨
  (addRequirements() method in the TestSuiteBuilder class has been removed)

ㅇ 프레임 워크에서 테스트 라이브러리 제거 (Testing libraries removed from framework)
- android.jar을 제공하는 JUnit은 사용자가 JUnit 버전에 대해 테스트 해야하므로 JUnit의 다른 버전에 의존하는 종속성을 작성하고 테스트 하기가 어렵습니다. 더 많은 유연성을 제공하기 위해 테스트 클래스를 제거 합니다. ANdroid 앱을 테스트 하는 방법은 04)레거시 테스트 라이브러리 페이지, 05)Apps 테스트를 참고하세요
  (This built-in testing architecture, although convenient, requires you to test against the version of JUnit that android.jar provides, which makes it difficult to build and test dependencies that rely on a different version of JUnit, The Legacy testing libraries page describes how to use them in Android P. To learn more about how to test Android apps, see Testing Apps on ANdroid)

ㅇ Java UTF 디코더 (Java UTF decoder)
- UTF-8은 Android의 기본 문자 세트입니다. Android P에서 더 엄격하며 유니 코드 표준을 따릅니다.
  (UTF-8 is the default charset in Android. Follows the Unicode standards, namely)
- UTF-8과 같이 가장 짧은 형태의 UTF-8 <C0, AF>은 부적절한 것으로 취급
  (The non-shortest form of UTF-8, such as <C0, AF> is now treated as ill-formed)
- U+D800 와 같은 UTF-8의 대리 양식 U+DFFF은 이제 잘못된 형식으로 취급
  (The surrogate form of UTF-8, such as U+D800..U_DFFF, is now treated as ill-formed)
- 최대 subpart는 single로 대체
  (The maximal subpart is replaced by a single)
- 수정 된 UTF-8 / CESU-8 시퀀스를 디코딩 하려면 DataInputStream.readUTF() 메소드 또는 NewStringUTF() JNI 메소드를 사용
  (To decode a modified UTF-8 / CESU-8 sequence in Android P, use the DataInputStream.readUTF() method or the NewStringUTF() JNI method)

ㅇ 인증서를 사용하여 호스트 이름 확인 (Hostname verification using a certificate)
- RFC 2818은 인증서에서 도메인 이름을 일치 시키는 두 가지 방법을 설명 합니다. 호스트 이름과 일치하는 SAN을 포함하지 않는 인증서는 신뢰되지 않습니다.
(RFC2818 describes two methods to match a domain name against a certificate. Certificates that don't contain a SAN matching the hostname are no longer trusted)

ㅇ 네트워크 주소 조회로 네트워크 위반 발생 가능 (Network address lookups can cause network violations)
- 이름 확인이 필요한 네트워크 주소 조회는 네트워크 I/O를 포함 할 수 있으며 차단 작업으로 간주. 주 스레드에서 작업을 차단하면 일시 중지 또는 jank가 발생
 (Network address lookups that require name resolution can involve network I/O and are considered blocking operations. Blocking operations on the main thread can cause pauses or jank)

- 숫자 IP 주소 해석은 블로킹 작업으로 간주되지 않습니다.
 (Resolving a numberic IP address isn't considered a blocking operation)

ㅇ 소켓 태깅 (Socket tagging)
소켓 태그는 바인더 IPC를 사용하여 다른 프로세스로 전송 될 때 보관 됩니다.
 (The socket tag is kept when it's is sent to another process using binder IPC)

ㅇ VPN을 위한 상세한 네트워크 보고 (More detailed network capabilities reporting for VPNs)
- 모든 기본 네트워크의 전송 및 기능을 병합하고 그 결과를 VPN 네트워크의 효과적인 네트워크 기능으로 반환
 (App developers that already check, receive the network capabilities of the VPN)

ㅇ FLAG_ACTIVITY_NEW_TASK 요구 사항이 시행 (FLAG_ACTIVITY_NEW_TASK requirement is now enforced)
인텐트 플래그를 전달하지 않는 한 비활동 컨텍스트에서 활동을 시작할 수 없습니다.
 (you can't start an activity form a non-activity context unless you pass the intent flag)

ㅇ 화면 회전 변경 (Screen rotation changes)
Android O의 사용자는 빠른 설정 또는 디스플레이 설정을 사용하여 자동회전 모드와 세로회전 모드 간에 전환 할 수 있습니다.
 (Users in Android O can toggle between auto-rotate and portrait rotation modes using a Quicksettings tile or Display settings)
Android P에서는 세로모드는 회전 잠금으로 이름 바뀌었고 자동 회전이 해제 될때 활성화, 자동회전 모드는 변경되지 않습니다.
 (Android P there are significant to the portrait rotation mode, the portrait mode has been renamed rotation lock and it is active when auto-rotate is toggled off)
- 액티비티는 항상 세로로 렌더링 됩니다.
 (An Activity should not assume it will always be rendered in portrait) 

B. Apps targeting Android P (P 또는 P 이상에서 적용 사항)

ㅇ 포 그라운드 서비스 (Foreground Services)
- 포 그라운드 서비스를 사용하는 앱은 권한을 요청해야 합니다 - FOREGROUND_SERVICE
 (use ofreground services must request the FOREGROUND_SERVICE permission)

ㅇ 프레임워크 보안 변경 (Framework security chagnes)
- 시스템이 더 엄격한 네트워크 및 파일 시스템 보안을 시행 합니다.
 (system enforces stricter network and file system security)

ㅇ 포커스 뷰 (View focus)
- 너비 또는 높이가 0인 뷰는 초점을 맞출 수 없습니다.
 (Views with 0 area (either a width or a height is 0) are no-longer focusable)

ㅇ 문서 스크롤 요소 (Document scrolling element)
- 스크롤 요소가 루트 요소인 표준 호환 동작을 지원
 (standards-compliant behaviour where the scrolling element is the root element)

  • Security Behavior Changes (보안 동작 변경 사항)
    1. Apps targeting all API levels (모든 API 레벨에서 적용 사항)
    ㅇ 새로운 APK 키 순환 (new APK key rotation)
    - APK 서명 스키마 v3에 대한 지원을 추가, 과거 서명 인증서를 현재 서명 된 은증서에 연결하여 앱에 새 서명 인증서로 서명 할 수 있습니다.
     (Android P adds support for APK Signature Scheme v3. This capability enables your app to be signed with a new signing certificate by linking the APK file's past signing certificates to the one with which it is now signed)
    ㅇ 문서 스크롤 요소 (Document scrolling element)
    - 스크롤 요소가 루트 요소인 표준 호환 동작을 지원
     (standards-compliant behavior where the scrolling element is the root element)
    ㅇ TLS 구현 변경 (TLS implementation changes)
    - SSLSocket 인스턴스가 생성되는 동안 연결 실패시 IOException대신 NullPointerException throw
     (If an instance of SSLSocket fails to connect while it's being created, the system now throws an IOException instead of a NullPointerException)
    ㅇ 완전한 Seccomp 필터 (Stricter Seccomp filter)
    - 앱에서 사용할 수 있는 시스템 호출을 더 제한
     (We've further restricted the system calls that are available to apps)
    ㅇ ChaCha20 스트림 암호 지원 (Support for ChaCha20 stream cipher)
    - RFC 7539에 설명 된 ChaCha20 암호의 구현을 제공, ChagCha20 / Poly1305 / NoPadding
     (Supplies implementations of the ChaCha20 cipher as described in RFC 7539)
    ㅇ 레거시 암호화 지원 (Legacy encryption support)
    - Triple Data Encryption Algorithm 또는 Triple DES 지원
     (Keymaster 4 support the Triple Data Encryption Algorithm or Triple DES)

B. Apps targeting Android P (P 또는 P 이상에서 적용 사항)

ㅇ 기본적으로 네트워크 TLS 사용 설정 (Network TLS enabled by default)
- 앱이 특정 도메인에 대한 일반 텍스트를 사용할 필요가 있는 경우 명시적으로 설정 해야 합니다.
 (If your app needs to enable cleartext for specific domains, you need to explicitly)

ㅇ 프로세스별로 구분 된 웹 기반 데이터 디렉토리 (Web-based data directories separated by process)
- 여러 프로세스에서 하나의 WebView 데이터 디렉토리 공유 불가
 (Apps can no longer share a single WebView data directory among multiple processes)
- 데이터 디렉토리에는 웹 브라우징과 관련된 쿠키, HTTP 캐시 및 기타 영구 및 임시 저장소가 저장
 (Data directories store cookies, HTTP caches, and other persistent and temporary storage related to web browsing)
- 앱이 둘이상의 프로세스에서 WebView 인스턴스를 사용해야 하는 경우 해당 프로세스에서 지정된 인스턴스를 사용하기 전에 메소드를 사용하여 각 프로세스에 고유한 데이터 디렉토리 접미어를 지정해야 합니다.
 (If your app must use instances of WebView in more than one process, you must assign a distinct data directory suffix for each process)

ㅇ 애플리케이션 별 SELinux 도메인 (Per-app SELinux domains)
- Unix 권한을 사용하여 다른 앱과 데이터를 공유 할 수 없습니다. 앱의 비공개 데이터는 해당 앱에서만 액세스 할 수 있어야 합니다. 파일을 다른 앱과 공유하려면 외부 저장 장치에 있는 Content Provider 나 External Storage를 사용
 (no longer share data with other apps using world-accessible Unix permissions. particularly the requirement that an app's private data is accessible only by that app. To share files with another app, use a content provider or shared space in external storage)
  • Android P Features and APIs (동작 변경 사항)
ㅇ Wi-Fi RTT 실내 포지셔닝 (Indoor Positioning with Wi-Fi RTT)
- IEEE 802.11mc Wi-Fi 프로토콜(RTT)에 대한 플랫폼 지원을 추가, 인근 RTT 가능 Wi-Fi 액세스 포인트(AP) 까지의 거리를 측정 할 수 있습니다. 
  (IEEE 802.11mc Wi-Fi protocol to let you take advantage of indoor positioning in your apps, to measure the distance to nearby RTT-capable Wi-Fi Access Points)

ㅇ 컷 아웃 지원 표시 (Display cutout support)
- 카메라 및 스피커 용 디스플레이 컷 아웃이 포함된 엣지-투-에지 스크린 지원, 06) DisplayCutout 클래스를 사용하면 내용을 표시하지 않아야 하는 비기능 영역의 위치와 모양을 찾을 수 있습니다.
  (Support for the latest edge-to-edge screens with display cutout for camera and speaker. DisplayCutout class lets you find out the location and shape of the non-functional areas where content shouldn't be displayed)

ㅇ 다중 카메라 지원 및 카메라 업데이트 (Multi-camera support and camera updates)
-두 개 이상의 물리적 카메라를 통해 스트림에 동시에 액세스 할 수 있습니다. 듀얼 프런트 또는 듀얼 백 카메라가 있는 장치의 경우 원활한 줌, 보케와 같은 단일 카메라로는 불가능한 기능을 만들 수 있습니다. 
(access streams simultaneously from two or more physical cameras on devices running Android P. On devices with either dual-front or dual-back cameras, you can create innovative features not possible with just a single camera, such as seamless zoom, bokeh, and stereo vision)
- 스테레오 비전 API를 사용하면 10)두 개 이상의 카메라를 자동으로 전환하는 논리 또는 융합 카메라 스트림을 호출 할 수도 있습니다.
(The API also lets you call a logical or fused camera stream that automatically switches between two or more cameras)
- 카메라의 다른 기능 향상에는 초기 캡처 중 지연을 줄이는데 도움이 되는 새로운 세션 매개 변수와 카메라 스트리밍을 중지하고 시작할 필요없이 카메라 클라이언트가 다양한 케이스를 처리 할 수 있게 해주는 서피스 공유 기능 포함
(Other improvements in camera include new Session parameters that help to reduce delays during initial capture, and surface sharing that lets camera clients handle various use-cases without the need to stop and start camera streaming)
- 디스플레이 기반의 플래시 지원을 위한 API와 이미지 안정화 및 특수 효과를 위한 OIS 타임 스탬프에 대한 액세스 추가
(We've also added APIs for display-based flash support and access to OIS timestamps for app-level image stabilization and special effects)
- 카메라에서 외부 USB/UVC 카메라를 지원 
  (enables support for external USB/UVC cameras on supported deveices)

ㅇ 비트맵 및 드로어블을 위한 ImageDecoder (ImageDecoder for bitmaps and drawables)
- BitmapFactory 와 BitmapFactory.Options API 보다 11)ImageDecoder를 통한 이미지 디코더를 해야 합니다.
  (You Should use ImageDecoder to decode an image rather than the BitmapFactory and BitmapFactory.Options APIs)
- 기본 변경 설정, OnHeaderDecodedListener로 decodeBitmap() 또는 decodeDrawable() 메소드를 사용
  (To change default settings, pass OnHeaderDecodedListener to decodeBitmap() or decodeDrawable())
- 디코딩 된 이미지를 정확한 크기로 스케일 하려면 setResize() 치수로 호출, setResize()를 호출 하거나 getSampledSize()를 걸어 ImageDecoder의 가장 효율적인 표본을 추출하여 찾을 수 있다.
  (To scale the decoded image to an exact size, call setResize() with the target dimensions. You can also scale images using a sample size. Pass the sample size directly to setResize(), or call getSampledSize() to find out what ImageDecoder can sample most efficiently)
- 이미지를 자르려면 setCrop()을 호출
  (To crop an image within the range of the scaled image, call setCrop())
- 변경 가능한 Bitmap을 만드려면 setMutable(true)를 호출
  (To create a mutable Bitmap, call setMutable(true))
- ImageDecoder는 둥근 모서리나 원마스크 같은 사용자 이미지의 복잡한 효과를 추가 할 수 있습니다. PostProcessor의 클래스 인스턴스와 setPostProcessor()를 함께 사용하여 모든 그리기 명령을 실행 합니다. 후 처리 할 때 AnimatedImageDrawable 효과는 모든 프레임에 적용 됩니다.
  (ImageDecoder also lets you add customized and complicated effects to an image such as rounded corners or circle masks. Use setPostProcessor() with an instance of the PostProcessor class to execute whatever drawing commands you want. When you post-porcess an AnimatedImageDrawable, effects are applied to all frames)

ㅇ 애니메이션 (Animation)
- AnimatedImageDrawable 클래스는 GIF 및 WebP 애니메이션 이미지를 그리거나 표시하기 위해 도입되었습니다.
  (AnimatedImageDrawable class for drawing and displaying GIF and WebP animated images)
- AnimatedImageDrawble의 RenderThread 애니메이션 작업과  AnimatedVectorDrawable가 유사하게 작업한다.
  (AnimatedImageDrawable works similarly to AnimatedVectorDrawable in that RenderThread drives the animations of AnimatedImageDrawable)
- RenderThread 또한 작업자 스레드를 사용하여 디코딩
  (RenderThread also uses a worker thread to decode)

ㅇ HDR VP9 비디오, HEIF 이미지 압축 및 미디어 API (HDR VP9 Video, HEIF image compression, and Media APIs)
- HDR(High Dynamic Ragne) VP9 프로파일2에 대한 기능이 추가되어 YouTube, Play 무비 및 HDR 지원 장치의 기타 소스에서 HDR 지원 영화를 사용자에게 제공 할 수 있습니다.
  (adds built-in support for High Dynamic Range (HDR) Vp9 Profile 2, so you can now deliver HDR-enabled movies to your users from YouTube, Play Movies, and other sources on HDR-capable devices)
- HEIF 스틸 이미지 샘플을 지원함으로 백엔드 서버에서 HEIF 이미지를 보내고 사용하는 것이 쉬움
  (it's easy to send and utilize HEIF images from your backend server) 
- MediaPlayer2, 빌드 된 재생 목록을 지원합니다.
  (MediaPlayer2, This Player supports playlists that are built using DataSourceDesc)

ㅇ JobScheduler의 데이터 비용 민감도 (Data cost sensitivity in JobScheduler)
- JobScheduler 토신 업체가 별도로 제공하는 네트워크 상태 신호와 함께 사용자의 네트워크 관련 작업 처리 개선
  (JobScheduler has been improved to let it better handle network-related jobs for the user, in coordination with network status signals provided separately by carriers)

ㅇ 신경망 API 1.1 (Neural Networks API 1.1)
- Android 8.1에서 도입되어 기기 학습을 가속화 합니다. Android P는 API를 확장, 개선하여 Pad, BatchToSpaceND, SpaceToBachND, Transpose, Strided Slice, Mean, Div, Sub, Squeeze의 9가지 새로운 작업에 대한 지원을 추가 합니다.
  (Android 8.1 introduced, aacelerate on-device machine learning on Android. Android P expands and improving the API, adding support for nine new ops Pad, BatchToSpaceND, SpaceToBachND, Transpose, Strided Slice, Mean, Div, Sub, and Squeeze)

ㅇ 자동 완성 프레임 워크 (Autofill framework)
- Android 8.0에서 자동 완성 프레임 워크를 도입하여 애플리케이션에서 양식을 보다 쉽게 작성할 수 있게 해줍니다. Android P에서 양식 작성시 사용자 경험을 향상시키기 위해 12)자동 완성 서비스를 구현할 수 있는 여러 개선 사항 도입
  (Android 8.0 introduced the autofill framework, which makes it easier to fill out forms in apps. Android P introduces multiple improvements that autofill services can implement to further enhance the user experience when filling out forms. For more details, see the Autofill Framework page)

ㅇ 보안 강화 (Security enhancements)
- 통합 지문 인증 대화 상자와 중요 거래에 대한 높은 보증 사용자 확인 기능을 비롯하여 여러가지 새로운 보안 기능을 제공, 13) 보안 업데이트 페이지 참조
  (Support for the latest edge-to-edge screens w

ㅇ Andorid 백업의 클라이언트 측 암호화 (Client-side encryption of Android backups)
- 클라이언트 측 보안을 통해 Android 백업을 암호화 할 수 있습니다. 백업에서 데이터를 복원하려면 장치의 PIN, 패턴 또는 암호가 필요 합니다.
  (enables encryption of Android backups with a client-side secret. Because of this privacy measure, the device's PIN, pattern, or password is required to restore data from the backups made by the user's device.)

ㅇ 접근성 (Accessibility)
- 사용자를 위한 접근성 서비스를 향상 시키기 위해 액션, 속성 및 메소드를 제공
  (introduces several actions, attributes, and methods to make it easier for you to work with the accessibility framework in order to enhance accessibility services for users)

ㅇ 네비게이션 시멘틱스 (Navigation semantics)
- 화면의 한 부분에서 다른 부분으로 탐색을 향상 시키는데 사용할 수 있는 새로운 속성 추가, 사용자가 앱의 텍스트를 이동하고 사용자를 이동하고 앱 UI의 특정 섹션으로 신속하게 가져갈 수 있습니다. 카테고리로 사용자를 직접 탐색 할 수 있습니다.
  (attributes that you can use to improve navigation from one part of the screen to another. You can use these attributes to help users move through text in your app and bring users to a specific section in your app's UI quickly. screen reader could navigate users directly from one category of deals to the next)

ㅇ 접근성 창의 제목 (Accessibility pane titles)
- 접근성 서비스에서는 조각 전환과 같이 화면의 특정 섹션이 언제 업데이트 되었는지 쉽게 판단 할 수 없었습니다. 접근성 서비스는 해당 제목에 대한 변경 사항을 수신하여 변경된 내용에 대해 세부적인 정보를 제공
  (accessibility services couldn't easily determine when a specific section of the screen had updated. such as during fragment transitions. sections now have titles called accessibility pane titles. Accessibility services can receive changes to those titles, enabling them to provide more granular information about what has changed)

ㅇ 헤더-기반 네비게이션 (Heading-based navigation)
- 논리 헤더가 포함된 콘텐츠가 앱에 표시 되는 경우 해당 헤더를 나타내는 인스턴스에 대해 android:accessibilityHeading 속성을 설정 합니다.
  (If your app displays content that includes logical headers, set the new android:accessibilityHeading attribute to true for the instances of View that represent those headers)

ㅇ 그룹 네비게이션과 출력 (Group navigation and output)
- 화면의 어느 섹션을 단위로 읽어야 하는지 결정했습니다. 스크린 리더는 여러 View 개체의 내용을 하나의 단위로 지정해야 합니다. 사용자는 이러한 뷰가 논리적으로 서로 관련되어 있음을 이해할 수 있습니다.
  (attribute to determine which sections of the screen should be read as units. Somtimes, these screen readers need to dictate the contents of several View objects as a single unit)

ㅇ 편의 조치 (Heading-based navigation)
- 툴팁과의 상호작용, 접근성 프레임 워크의 새로운 기능을 통해 앱의 UI에서 툴팁에 액세스 할 수 있습니다.
  (Interaction with tooltips, New features in the accessibility framework give you access to tooltips in an app's UI)
- 새로운 글로벌 액션, AccessibilityService 클래스의 두가지 새로운 장치 작업을 지원, 스크린 샷을 자신의 장치를 잠그고 걸릴 수 있습니다.
  (New global actions, introduces support for two new device actions in the AccessibilityService class. service can now help users lock their devices and take screenshots using the actions, respectively)

ㅇ 창 변경 내역 (Heading-based navigation)
- 앱이 여러 창을 동시에 사용하면 다시 그릴 때 앱의 창에 대한 업데이트를 추적할 수 있습니다. 예를 들어, 프레임 워크는 이제 창에 새로운 제목이 있거나 창이 사라진 시점을 감지 할 수 있습니다.
  (makes it easier to track updates to an app's windows when an app redraws multiple windows simultaneously. for example, the framework can now detect when a pane has a new title, or when a pane has disappeared)

ㅇ 회전 (Heading-based navigation)
- 의도하지 않은 회전을 없애기 위해 장치 위치가 변경 되더라도 현재 방향을 고정하는 새로운 모드를 추가 했습니다. 사용자는 필요시 수동으로 회전을 트리거 할 수 있습니다. 앱의 모든 주요 활동에서 순환 게재를 살펴보고 모든 화면 오리엔테이션 설정이 여전히 최적의 환경을 제공하는지 확인하는 것이 좋습니다.
  (To eliminate unintentional rotations, we've added a new mode that pins the current orientation even if the device position changes. Users can trigger rotation manually when needed. We encourage you to take a look at the rotation behavior in all the key activities of your app and make sure that all of your screen orientation settings are still providing the optimal experience)

  1. 알림 (Notifications)
ㅇ 향상된 메시징 경험 (Enhanced messaging experience)
- 이미지 지원, setData() 메소드를 사용하여 전화 알림 메시지에 이미지를 표시합니다. 
  (Support for images, you can use setData() method, now displays images in Messaging Notifications on phones)
- Notification.Person 클래스는 아바타와 URI를 포함하여 참여한 사람들을 식별하는 데 사용
  (Notification.Person class is used to identify people involved in a conversation, including their avatars and URIs)
- 사용자가 실수로 메시징 알림을 닫으면 시스템에서 전송 한 항목을 검색 할 수 있습니다.
  (Save replies as drafts, sent by the system when a user inadvertently closes a messaging notification)
- 대화를 그룹 또는 그룹이 아닌 대화로 의도적으로 식별
  (Identify if a conversation is a group conversation, purposefully identify a conversation as a group or non-group converstion)
- setSemanticAction() 메소드를 사용하면 읽기, 삭제, 회신 등으로 표시와 같은 작업에 의미 부여
  (setSemanticAction() method allows you to give semantic meaning to an action, such as mark as read, delete, reply, and so on)
- 똑똑한 답변, RemoteInput.setChoices() 메소드 사용시 추천 답변을 지원, 표준 응답 제공
  (SmartReply, supports the same suggested replies available in your messaging app, Use RemoteInput.setChoices() to provide an array of standard responses to the user)

ㅇ 채널 설정, 브로드 캐스트 및 방해 금지 (Channel settings, broadcasts, and Do Not Disturb)
- 채널 그룹 차단, isBlocked() 메소드 사용시 앱의 알림 설정에서 전체 채널 그룹 차단 가능
  (Blocking channel groups, you can isBlockedmethod, now block entire groups of channels within the notification settings for an app)
- 알림 채널 및 채널 그룹의 차단 상태 변경시 브로드 캐스트 인텐트를 보냅니다. 차단된 채널 또는 그룹을 소유한 앱은 이러한 의도를 듣고 이에 따라 대응할 수 있습니다.
  (The Android system now sends broadcast intents when the blocking state of notification channels and channel groups' changes. The app that owns the blocked channel or group can listen for these intents and react accordingly)
- 07)NotificationManager.Policy에서 제공,08)알림 우선 순위 지정, 09)미디어 시스템 및 게임 사운드 우선 순위 지정 가능
  (Support NotificationManager.PolicyYou can PRIORITY_CATEGORY_ALARMS, PRIORITY_CATEGORY_MEDIA_SYSTEM_OTHER)


| 출처

 Android P Developer Preview : https://developer.android.com/preview/index.html

 Behavior Changes : https://developer.android.com/preview/behavior-changes.html#all-apps

 one-change : https://source.android.com/devices/sensors/report-modes#on-change

 one-shot : https://source.android.com/devices/sensors/report-modes#one-shot

 Security Behavior Changes : https://developer.android.com/preview/features/security-behav.html#all-apps

 Android P Features and APIs : https://developer.android.com/preview/features.html


| Deep 

 01) 링크, NoSuchAlgorithmException : 특정의 암호화 알고리즘이 요구되었지만, 환경에서는 이용 가능하지 않은 경우 Throw

 02) 링크, Restrictions on non-SDK interfaces : 비SDK 인터페이스에 대한 제한 사항

 03) 링크, TestSuiteBuilder : 충족되어야하는 포함 된 패키지

 04) 링크, Legacy testing libraries : JUnit 기반 클래스를 android.test.base, android.test.runner 및 andorid.test.mock의 세 라이브러리로 재구성

 05) 링크, Testing Apps on Android : 앱을 테스트하는 앱 개발 프로세스

 06) 링크, DisplayCutout : 내용을 표시 할 수 없는 디스플레이의 일부를 나타냄

 07) 링크, NotificationManager.Policy : 새로운 방해 금지 우선 순위 카테고리

 08) 링크, PRIORITY_CATEGORY_ALARMS : 알림 우선 순위 지정

 09) 링크, PRIORITY_CATEGORY_MEDIA_SYSTEM_OTHER

 10) 링크, REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA : 두 개 이상의 물리적 카메라

 11) 링크, ImageDecoder, 이미지 디코더

 12) 링크, Autofill Framework, 자동완성 프레임워크

 13) 링크, Security updates, 보안 업데이트

728x90
반응형

'Work > Android' 카테고리의 다른 글

Android Architecture Components  (1) 2018.04.10
Android 저장소 옵션(Repository Option)  (0) 2018.01.30
Android 앱 구성 요소(Component)  (0) 2018.01.29
Android Async  (0) 2018.01.17
Android ART & DVM & JVM  (0) 2018.01.12