Android P Preview

in ko •  7 years ago  (edited)

정리를 안하면 대충 읽게되서 적기 시작했는데, 역시나 막판에는 귀찮아서 대충하게 된다.
다음에는 P에서의 동작 변경 사항에 대해 정리해 봐야겠다.

Android P Features and APIs

원문 : https://developer.android.com/preview/features.html

상세 변경 사항은 아래 링크에서 확인

API diff report : https://developer.android.com/sdk/api_diff/p-dp1/changes.html

Api reference : https://developer.android.com/reference/classes.html

Indoor Positioning with Wi-Fi RTT

  • 실내에서 측위를 위한 기술인 Wi-Fi RTT(Round-Trip-Time) 를 지원
  • 새로운 RTT APIs를 사용하여 근처의 Wi-Fi AP와의 거리 측정 가능
  • 단말의 Wi-Fi scanning이 켜져 있어야함(Settings > Location)
  • ACCESS_COARSE_LOCATION 퍼미션이 있어야함
  • 단말이 AP와 연결되지는 않음
  • AP는 단말의 정보를 저장하지 않음
  • 3개 이상의 AP에서 거리를 측정할 수 있다면 Multilateration 알고리즘을 사용하여 1~2미터의 정확도로 거리를 위치를 측정할 수 있음
  • 실내에서 "이 전등 켜줘", "이 제품에 대한 특별 할인이 있나요?" 와 같은 서비스가 가능해짐.
    sample

Display cutout support

  • 노치 디자인 폰을 위한 개발을 지원함. (애플은 이제 안한다는데...)

탈모폰

  • DisplayCutout 이라는 새로운 클래스가 추가되었음
    • cutout 에서 제외된 영역을 알 수 잇음
    • 단말이 cutout 영역이 있는지 알 수 있는 API가 있음 : getDisplayCutout() cutout 디자인이 아니면 null을 리턴함
  • layoutInDisplayCutoutMode를 통해 cutout 이외의 영역에 컨텐츠를 배치 할 수 있음(추천)
  • Android Studio 3.1 이상 버전에서 Android P 에뮬레이터를 실행하여 테스트 할 수 있음(위 스크린샷 참고)

Notifications

여러가지 향상된 notification 기능을 제공함(targetSDK p 이상)

Enhanced messaging experience

Android 7.0(API level 24)부터 알림에서 바로 메시지를 답장하거나 텍스트가 입력 가능했음. Android P에서는 이 기능을 더 향상시킴

  • setData()를 사용하여 알림에 이미지를 표시 할 수 있음
  • Person 클래스를 사용하여 대화 상태의 이미지, 이름 등을 표현 할 수 있음
  • 메시지 입력 중, 실수로 알림을 닫는 경우 EXTRA_REMOTE_INPUT_DRAFT를 참고하여 이전의 입력 내용을 알 수 있음
  • setGroupConversation() 으로 그룹 대화인지 아닌지 설정 할 수 있음
  • setSemanticAction() 으로 Notification Action에 읽음, 삭제, 삭제, 무음 등의 의미를 부여 할 수 있음
  • setChoices() 으로 사용자가 입력 가능한 텍스트를 선택하게 할 수 있음

me1

me2

Channel settings, broadcasts, and Do Not Disturb

Android Oreo에서 Notification Channels이 추가되어 사용자가 받고자 하는 알림을 설정 할 수 있었음. P에서는 이 설정을 단순화 하였음

Multi-camera support and camera updates

멀티카메라를 위한 지원이 추가되고, 기존 카메라 관련된 지원이 향상 되었음

  • 전방 or 후방에 있는 2개 이상의 카메라 동시 제어 지원
  • 초기 캡쳐 딜레이를 줄일 수 있는 Session parameter 추가
  • Surface sharing 기능 : 카메라를 시작/중지하지 않고 다양한 use-cases에 활용
  • Display-based(?) flash support API 추가
  • OSI timestamps 접근을 위한 API 추가
  • external USB/UVC cameras 지원

ImageDecoder for bitmaps and drawables

이미지 디코딩을 위한 ImageDecoder 를 제공함. 이제 BitmapFactory와 BitmapFactory.Options API는 떠나보내도됨.(하위버전은??)

  • 디코딩 뿐만 아니라, 리사이징, 크롭, 라운드 코너 등의 기능이 포함되어 있음

Animation

GIF와 WebP 애니메이션 이미지를 위해 AnimatedImageDrawable 이 추가되었음.(진작 좀 해주지..)

  • RenderThread에서 동작함
    • RenderThread는 workerthread에서 디코딩 하므로, 디코딩은 렌더 쓰레드를 방해하지 않음
  • App의 UI 쓰레드를 방해하지 않으면서 애니메이션이 돌아감
  • AnimatedImageDrawable은 새로운 ImageDecoder 를 사용하여 디코딩 할 수 있음
  • 아래 코드는 ImageDecoder를 사용하여 AnimatedImageDrawable을 디코딩 하는 것을 보여줌
Drawable d = ImageDecoder.decodeDrawable(...);
if (d instanceof AnimatedImageDrawable) {
    ((AnimatedImageDrawable) d).start();   // Prior to start(), the first frame is displayed
}
  • ImageDecoder는 setPostProcessor() 함수를 사용하여 원형 마스크나 라운드된 코너를 적용할 수 있음

HDR VP9 Video, HEIF image compression, and Media APIs

  • HDR(High Dynamic Range) VP9 Profile 2를 내장 지원함
  • HEIF(High Efficiency Image File Format) 이미지 인코딩을 지원함
    • HEIF와 JPEG의 가장 큰 차이점은 여러장의 이미지를 하나의 파일로 저장할 수 있는가?(아이폰 라이브포토)
  • MediaPlayer2 가 추가됨. DataSourceDesc를 통해 만들어진 플래이 리스트를 재생함
  • MediaDRM 클래스에 함수를 추가함. metrics, HDCP levels, security levels, 세션수 를 얻어오는 함수 등 보안을 강화하기 위한 함수 등

Data cost sensitivity in JobScheduler

JobScheduler가 네트워크 관련된 사용자 job을 더 잘 처리할 수 있도록 향상되었음

  • 통신사가 제공하는 별도의 네트워크 상태 신호 등을 사용하여 향상. 네트워크가 혼잡한 경우 대규모의 네트워크 요청을 지연시킴.
  • Job에 예상 데이터 크기, 상세한 네트워크 요구사항, signal prefetching(?)을 지정 가능함
    • setEstimatedNetworkBytes()
    • setIsPrefetch()
    • setRequiredNetwork()

Neural Networks API 1.1

Neural Networks API는 Android 8.1(API level 27)에 포함되었음. P에서는 다음의 9가지 작업애 대한 지원이 추가

  • Pad, BatchToSpaceND, SpaceToBatchND, Transpose, Strided Slice, Mean, Div, Sub, and Squeeze

Autofill framework

Autofill framework는 Android 8.0(API level 26)에 포함됨(써봤는데 효용성이 크게 와닫지 않았었음) P 에서 여러가지 기능들이 향상되었는데 상세한 내용은 여기에 별도 페이지로 정리되어 있음(내용이 많다. 다음에..)

Security enhancements

여러가지 보안 관련된 새로운 내용들이 소개되었음 상세 내용은 여기에 별도 페이지로 정리되어 있음(내용이 많다. 이것도 다음에..)

  • 통합 지문 인증 다이얼로그
  • High-assurance 사용자 확인
  • 하드웨어 보안 보듈
  • Keystore를 통해 보안키 가져오기

Client-side encryption of Android backups

Android P에서는 클라이언트의 secret을 사용하여 Android backup의 암호화가 가능하다. 데이터를 복원 할 때는 pin 패턴, 암호 등이 필요하다. 상세 내용은 여기를 확인하자

(안써봐서 무슨 내용인지 모르겠다)

Accessibility

접근성 향상을 위해 여러가지 action, attributes, method 등이 assessibilty framework 에 추가되었다. 상세 내용은 여기를 확인하자

(개발할때 생각은 하지만 우선순위가 높지 않은 부분이다. 항상 고려하여 개발을 하자)

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!