[android 10] 개발자를 위한 Android Q 가이드 (Highlights) |
https://developer.android.com/about/versions/10/highlights
-
안드로이드 10 은 세가지 중요한 주제로 개발.
첫번째는 모바일 분야의 혁신적인 최신 기술을 적용한 것 (ML (Machine-learning), foldable 지원, 5G 가능 폰)
두번째로는 보안에 중요 포인트를 두었다는 것.
마지막은 사용자의 digital wellbeing 확장.
Innovation and new experiences
* Foldables
-
multi-resume 에 대한 지원이 강화됨.
resizeableActivity manifest attribute 의 작동방식이 수정되었다.
* 5G networks
-
5G 에 대한 지원을 하는 API 들이 추가되었다.
* Smart Reply in notifications
-
notification 에 ML 을 이용한 contextual action 을 제안한다.
예를 들어 메시지에 대해서는 "회신", 주소에 대해서는 "맵으로 보기" 등.
앱에서 어떤 것도 하지 않고 이런 기능을 활성화시킬 수 있다. (기본으로 활성화됨)
setAllowGeneratedReplies(), setAllowSystemGeneratedContextualActions() 등으로 enability 를 control 할 수 있다.
* Dark Theme
-
system 에서 dark theme 을 제공한다.
dark theme 은 빛이 별로 없는 곳에서 이상적이며, 배터리 절약도 도와준다.
Setting - Battery Saver 에서 on/off 할 수 있다.
* Gesture navigation
-
navigation bar 영역을 제거하는 gesture navigation 을 구현하였다.
setSystemUiVisibility() API 와 WindowInsets 를 적절히 사용하여 UI 가 gesture navigation 을 방해하지 않도록 할 수 있다.
* Settings Panels
-
app 에서 바로 context 에 관련된 system setting 을 보여줄 수 있다.
이는 Settings Panel API 를 통해 이루어진다.
이는 floating UI 로 예를 들면 인터넷 연결, NFC 설정, audio volume control 등을 바로 보여줄 수 있다.
* Sharing shortcuts
-
Share UI 에서 보여지는 것을 설정할 수 있다.
ShortcutInfo API 를 사용하며, AndroidX 의 ShareTarget 을 통해서도 구현할 수 있다.
Privacy for users
* Giving users more control over location data
-
새로운 permission option 으로 위치 정보에 대한 더 상세한 컨트롤이 가능하다.
기존의 항상 allow 가 앱이 사용중일 때만 allow 를 할 수 있는 option 으로 세분화되었다.
* Protecting location data in network scans
-
대부분의 network scan API 들이 coarse location permission 을 요구한다.
하지만, 이번에는 fine location 으로 더 높은 permission 을 요구하게 되었다.
* Preventing device tracking
-
앱은 더 이상 non-resettable device identifiers 에 접근할 수 없다.
이것들은 IMEI, serial number 등이다.
* Securing user data in external storage
-
앱은 file 을 private sandbox 에 저장할 수 있고, MediaStore 를 통해 shared 공간에 저장할 수도 있다.
* Blocking unwanted interruptions
-
background 에서 앱이 의도하지 않게 뜨는 것을 방지한다.
Security
* Storage encryption
-
Android 10 단말에서는 user data 가 모두 암호화되어야 한다.
* TLS 1.3 by default
-
TLS 1.3 에서는 성능이 개선되었다.
* Platform hardening
* Improved Biometrics
-
BiometricPrompt framework 가 확장되었다.
Camera and media
* Dynamic depth for photos
-
App 이 Dynamic Depth image 를 요청할 수 있다.
이는 JPEG 와 depth 관련된 XMP metadata 로 이루어졌다.
Dynamic Depth 는 open format 이다.
* Audio playback capture
-
새로운 audio playback capture API 를 통해 audio stream 을 capture 할 수 있다.
그리고 captioning 도 가능하다.
* New audio and video codecs
-
고해상도 video stream 을 가능하게 하는 AV1 를 지원한다.
대화와 음악 스트리밍에 최적화된 royalty-free codec Opus 를 이용한 audio encoding 도 지원.
high dynamic range video 를 위한 HDR10+ 도 지원한다. (단말이 지원하면)
MediaCodecInfo API 를 통해 쉽게 사용 가능하다.
* Native MIDI API
-
C++ 에서 audio processing 하는 앱들을 위해 native MIDI API 가 등장했다.
* Directional, zoomable microphones
-
MicrophoneDirection API 를 통해 audio capture 에 더 많은 기능을 제공한다.
audio recording 시 더 선호하는 마이크의 방향을 설정할 수 있다.
예를 들어 셀카 비디오를 찍을 때 front-facing mic 를 요청할 수 있다.
* Vulkan everywhere
-
cross-platform 이며, overhead 가 적고, 고성능 3D graphic 인 Vulkan 을 확장한다.
Vulkan 1.1 은 64bit 단말 & Android 10 이상에서 돌아간다.
Connectivity
* Improved peer-to-peer and internet connectivity
-
Local Wi-Fi 와 IoT 단말과의 연결에 대한 API 들이 강화되었다.
network connection API 를 사용하면 된다.
* Wi-Fi performance modes
-
high performance and low latency modes 를 enable 시켜 Adaptive Wi-Fi 를 사용할 수 있다.
이는 실시간 게임, 음성 통화같은 실시간성(low latency)를 요구할 때 아주 좋다.
WifiManager.WifiLock.createWifiLock 을 WIFI_MODE_FULL_LOW_LATENCY 또는 WIFI_MODE_FULL_HIGH_PERF 로 설정할 수 있다.
이렇게 하면 베터리를 적게 소비하며 요구사항에 맞는 모드로 작동한다.
Android foundations
* ART optimization
-
ART runtime 의 개선으로 앱이 더 빨리 시작하고, memory 를 덜 먹고, 더 부드럽게 작동한다.
Android 10 은 Concurrent Copying (CC) GC 에 Generational GC 기능을 추가하여 더 효율적으로 GC 를 수행하여 앱의 성능을 개선했다.
* Neural Networks API 1.2
* Thermal API
-
단말이 너무 뜨거우면 CPU 와 GPU 에 throttle 이 걸린다.
thermal API 를 통해서 온도 변화를 monitor 할 수 있다.
예를 들어 streaming app 에서 단말이 너무 뜨거우면 resolution, bit rate 등을 조정할 수 있다.
camera 에서는 flash 를 disable 시킨다던지, game 에서는 frame rate 를 줄인다던지를 할 수 있다.
* Compatibility through public APIs
-
non-SDK interface 에 대한 제약을 계속 가져간다.
방향은 오직 public API 만 사용하도록 하는 것이다.
Faster updates, fresher code
-
Project Treble 을 통해 더 빠른 업데이트를 가능하게 했다.
이는 Android 와 제조사, 그리고 칩셋 개발자간의 일관되고, 테스트 가능한 interface 를 제공함으로서 가능해진 것이다.
-
Project Mainline (공식적으로 Google Play system updates) 를 적용한 첫번째 release 이다.
Google Play system updates 를 통해 internal components 를 제조사의 full system update 없이 가능하도록 했다.
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] Recent app 에서 swipe 로 app 을 죽이면 process kill 이 될까? (0) | 2020.07.25 |
---|---|
[android] JobScheduler dumpsys log 분석해보자 (0) | 2020.07.24 |
[android 10] android Q 기능과 API 들 (0) | 2020.03.16 |
[android 10] Q target 하는 앱의 동작 변화 (0) | 2020.03.15 |
[android 10] 모든 앱에 해당하는 동작 변화 (0) | 2020.03.14 |
댓글