안드로이드 Q (안드로이드 10) 변경사항
2019. 8. 5. 12:23ㆍReviews
Android Q에 포함된 기능동작 변경사항
- Android Q에서 실행되는 앱에 영향을 줄 수 있는 시스템 변경사항을 살펴봅니다. (Behavior changes for apps)
자세히 알아보기 - 모든 앱
- Android Q 플랫폼에는 앱에 영향을 줄 수 있는 동작 변경이 포함되어 있습니다. 다음과 같은 동작 변경사항은 targetSdkVersion에 상관없이 Android Q에서 실행되는 모든 앱에 적용됩니다. 이러한 변경사항을 적절히 지원해야 하는 경우 앱을 테스트한 후 필요에 따라 수정해야 합니다.
- 앱에서 지원해야 하는 새로운 사용자 개인정보 보호 장치를 알아봅니다. (Privacy and location)
자세히 알아보기 - 범위 지정 저장소 (Scoped storage)
공유된 외부 저장소의 파일에 액세스할 때 적용되는 새로운 제한사항에 관해 알아봅니다. 대부분 앱별 디렉터리 또는 강력한 유형의 미디어 컬렉션에 있는 파일을 사용하여 작업을 완료합니다.
자세히 알아보기 - Android Q 베타 4를 기준으로, Android 9(API 레벨 28) 이하를 타겟팅하는 앱은 기본적으로 이전 Android 버전의 저장소 작동 방식이 변경되지 않습니다. 기존 앱이 범위 지정 저장소를 사용하도록 업데이트할 때 새 requestLegacyExternalStorage manifest 속성을 사용하면 앱에서 Android 9 이하를 타겟팅하는 경우에도 Android Q 기기에서 앱의 새 동작을 사용 설정할 수 있습니다.
- 사용자에게 파일에 대한 더 많은 권한을 제공하고 파일이 복잡해지는 것을 제한하기 위해 Android Q에서는 앱이 /sdcard 경로에 저장된 파일과 같이 기기의 외부 저장소에 있는 파일에 액세스하는 방법을 변경합니다. Android Q에서는 저장소 사용자 측 런타임 권한에 해당하는 READ_EXTERNAL_STORAGE 및 WRITE_EXTERNAL_STORAGE 권한을 계속 사용합니다. 하지만 기본적으로 Android Q를 타겟팅하는 앱과 변경을 선택하는 앱에는 외부 저장소에 대한 필터링된 보기가 제공됩니다. 이러한 앱은 해당 앱별 디렉터리 및 특정 유형의 미디어만 볼 수 있으므로 앱이 추가 사용자 권한을 요청할 필요가 없습니다.
- 기기 위치 (App access to device location)
포그라운드에서 앱을 사용하는 동안에만 기기 위치에 액세스를 허용하는 새로운 사용자 옵션에 관해 알아봅니다.
자세히 알아보기 - Android Q 베타 4를 기준으로 이번 변경사항에는 다음 속성이 포함됩니다.
- 백그라운드에 있는 동안 기기 위치에 대한 액세스를 요청하는 경우 앱에 영향을 줍니다.
- 사용자는 백그라운드에서 기기 위치에 대한 액세스를 앱에 부여한 후 알림을 받을 수 있습니다.
- 백그라운드에서 위치에 액세스하는 데 새 권한을 사용하거나 백그라운드 위치 업데이트가 없을 경우 단계적 성능 저하를 확인하여 완화
- Android Q에서는 동작이 항상 사용됨
- Android Q에서는 앱이 기기 위치에 액세스할 수 있는 경우 사용자가 더 세밀하게 관리할 수 있습니다. Android Q에서 실행되는 앱에서 위치 액세스를 요청하면 사용자에게 그림 1과 같은 대화상자가 표시됩니다. 이 대화상자를 통해 사용자는 두 가지 범위로, 즉 앱을 사용하는 동안(포그라운드만 해당) 또는 항상(포그라운드 및 백그라운드) 위치 정보에 액세스할 수 있는 권한을 부여합니다.
- 사용자가 앱의 위치 정보 액세스를 더 세밀하게 관리할 수 있도록 Android Q에는 새로운 위치 정보 액세스 권한인 ACCESS_BACKGROUND_LOCATION이 도입되었습니다. 기존 ACCESS_FINE_LOCATION 및 ACCESS_COARSE_LOCATION 권한과 달리 새 권한은 앱이 백그라운드에서 실행되는 경우에만 앱의 위치 정보 액세스에 영향을 줍니다. 앱 활동 중 하나가 표시되거나 앱이 포그라운드 서비스를 실행 중인 경우가 아니면 앱은 백그라운드에 있는 것으로 간주됩니다.
- 위치에 대한 사용자 동의를 요청하는 대화상자
- 백그라운드 앱 시작 (Background activity starts)
사용자 상호작용 없이 백그라운드에서 시작하는 활동에 관한 새로운 제한사항을 살펴봅니다.
자세히 알아보기 - Android Q 베타 4를 기준으로 이번 변경사항에는 다음과 같은 속성이 포함됩니다.
- 사용자 상호작용 없이 활동을 실행하는 경우 앱에 영향을 줌
- 알림에서 트리거된 활동을 사용하여 완화
- 백그라운드 활동 시작 허용 개발자 옵션을 사용 설정하여 제한사항 사용 중지
- Android Q는 앱이 활동을 시작할 수 있는 경우를 제한합니다. 이 동작을 변경하면 사용자에게 발생하는 중단을 최소화할 수 있고 사용자가 화면에 표시되는 내용을 더 자세히 제어할 수 있습니다.
- 이 동작에 관한 변경사항은 Android 9(API 레벨 28) 이하를 타겟팅하는 앱을 포함하여 Android Q에서 실행되는 모든 앱에 적용됩니다. 또한 앱이 Android 9 이하를 타겟팅하고 원래 Android 9 이하를 실행하는 기기에 설치된 경우에도 이 동작 변경은 기기가 Android Q로 업그레이드된 후에 계속 적용됩니다.
- 하지만 사용자 상호작용의 직접적 결과로 앱이 활동을 시작하는 동안에는 앱이 이 변경사항의 영향을 받지 않을 가능성이 높습니다. 실제로 대부분의 앱은 이 변경사항의 영향을 받지 않습니다.
- 변경사항
- 경고 메시지
- 시간이 중요한 이벤트의 알림 만들기
- 우선 순위가 높은 알림
- 사용자에게 알림 표시
- 동작 변경 사용 중지
- 하드웨어 식별자 (Data & Identifiers)
IMEI, 일련번호, MAC 등의 데이터와 같은 기기 하드웨어 식별자에 액세스하는 데 새로운 제한사항이 적용됩니다.
자세히 알아보기 - 이 문서에서는 데이터 및 시스템 식별자에 액세스할 때 적용되는 여러 가지 제한사항을 설명합니다. 이 변경사항을 통해 사용자의 개인정보를 보호할 수 있습니다.
- 이 변경사항 중 일부는 Android Q에서 실행되는 모든 앱에 영향을 주지만, 다른 변경사항은 Android Q를 타겟팅하는 앱에만 영향을 줍니다.
- 변경사항
- 관심 연락처
- 무작위 MAC 주소
- /proc/net filesystem 액세스 (NetworkStatsManager / ConnectivityManager)
- 재설정할 수 없는 기기 식별자 - READ_PHONE_STATE
- 틀립보드 데이터 액세스
- 카메라 및 연결 (Camera & Connectivity)
전체 카메라 메타데이터에 액세스하는 데 새로운 제한사항이 적용되며, 이제 여러 연결 워크플로에 세부적인 위치 정보 액세스 권한이 필요합니다.
자세히 알아보기 - 이 문서에서는 카메라 및 연결 정보 액세스에 적용되는 몇 가지 제한사항에 관해 설명합니다. 이 변경사항을 통해 사용자의 개인정보를 보호할 수 있습니다.
- 이 변경사항 중 일부는 Android Q에서 실행되는 모든 앱에 영향을 주지만, 다른 변경사항은 Android Q를 타겟팅하는 앱에만 영향을 줍니다.
- 변경사항
- 모든 카메라 정보에 액세스하는데 권한이 필요함
- Wi-Fi 사용 및 중지 관련 제한사항
- Wi-Fi 네트워크 구성 제한사항
- 전화 통신, Wi-Fi, BT API에 필요한 세부적인 위치 정보 액세스 권한 - ACCESS_FINE_LOCATION
- API Lists
- 전화 통신
- TelephonyManager
- getCellLocation()
- getAllCellInfo()
- requestNetworkScan()
- requestCellInfoUpdate()
- getAvailableNetworks()
- getServiceStateForSubscriber
- getServiceState()
- TelephonyScanManager
- requestNetworkScan()
- TelephonyScanManager.NetworkScanCallback
- onResults()
- PhoneStateListener
- onCellLocationChanged()
- onCellInfoChanged()
- onServiceStateChanged()
- Wi-Fi
- WifiManager
- startScan()
- getScanResults()
- getConnectionInfo()
- getConfiguredNetworks()
- WifiAwareManager
- WifiP2pManager
- WifiRttManager
- 블루투스
- BluetoothAdapter
- startDiscovery()
- startLeScan()
- LeScanCallback()
- 권한 (Permission)
- 이 문서에서는 권한 모델에 대한 여러 가지 변경사항을 설명합니다. 이 변경사항은 사용자 개인정보 보호를 향상하기 위해 적용됩니다.
- Android 9(API 수준 28) 이하를 타겟팅하는 경우에도 Android Q에서 실행되는 모든 앱에 영향을 주는 변경사항은 다음과 같습니다.
- 변경사항
- 화면 콘텐츠에 대한 제한 된 액세스
- READ_FRAME_BUFFER, CAPTURE_VIDEO_OUTPUT, CAPTURE_SECURE_VIDEO_OUTPUT
- MediaProjection API
- 레거시 앱에서 사용자 표시 권한 확인
- Google Play에 앱을 게시하려면 Android 8.0(API 레벨 26) 이상을 타겟팅해야 합니다.
- 앱에서 Android 5.1(API 수준 22) 이하를 타겟팅하는 경우 아래 그림과 같이 Android Q에서 앱을 처음 실행할 때 권한 화면이 사용자에게 표시됩니다.
- 실제 활동 감지
- Android Q는 사용자의 걸음 수를 인식하거나 걷기, 자전거 타기, 자동차로 이동하기와 같은 사용자의 신체적 활동을 분류해야 하는 앱에 사용할 새 ACTIVITY_RECOGNITION 런타임 권한을 도입했습니다. 이 권한은 설정에서 기기 센서 데이터가 사용되는 방식을 사용자에게 보여 주도록 설계되었습니다.
- Activity Recognition API와 같이 Google Play 서비스에 있는 일부 라이브러리에서는 사용자가 앱에 이 권한을 부여한 경우에만 결과를 제공합니다.
- UI에서 제거된 권한 그룹
- 폴더블, 공유, 연결, 미디어, NNAPI, 생체 인식 등을 위한 API를 알아봅니다. (Features and APIs)
자세히 알아보기 - API Difference Report
https://developer.android.com/sdk/api_diff/q-beta3/changes.html?hl=ko - 보안 기능 향상
- 향상 된 생체 인식 인증 대화상자 - FingerprintManager / BiometricPrompt
- APK에서 직접 삽입 된 DEX 코드 실행
- 이제 삽입된 DEX 코드를 앱의 APK 파일에서 직접 실행하도록 플랫폼에 알릴 수 있습니다. 이 옵션을 사용하면 공격자가 기기에서 로컬로 컴파일된 코드로 변조한 경우에 공격을 차단할 수 있습니다.
- 이 기능을 사용하면 앱이 시작될 때 ART에서 이전에 미리 컴파일된 네이티브 코드를 읽는 대신에 JIT 컴파일러를 사용해야 하므로 앱 성능에 영향을 줄 수 있습니다. 게시된 앱에서 이 기능을 사용할지 여부를 결정하기 전에 앱의 성능을 테스트하는 것이 좋습니다.
- android:useEmbeddedDex = true
aaptOptions {
noCompress 'dex'
}
- TLS 1.3 지원
- 플랫폼의 TLS 구현은 이제 TLS 1.3을 지원합니다. TLS 1.3은 성능 이점과 향상된 보안을 포함하는 TLS 표준의 주 버전입니다. 벤치마킹 결과에 따르면 TLS 1.3을 사용하면 TLS 1.2에 비해 보안 연결을 최대 40% 더 빠르게 설정할 수 있습니다.
- SSLContext
- 공개 Conscrypt API - android.net.ssl.SSLSockets
- 연결 기능
- Wi-Fi 네트워크 연결 API - WifiNetworkSpecifier
- 사용자 승인 우회
- Wi-Fi 네트워크 제안 API
기기의 네트워크 사용자 인증 정보를 추가하여 Wi-Fi 액세스 포인트에 자동 연결할 수 있는 지원이 추가되었습니다. - Wi-Fi 고성능 및 짧은 지연 시간 모드 개선
- DNS 리졸버에서 전문 검색
- Wi-Fi 간편 연결 - ACTION_PROCESS_WIFI_EASY_CONNECT_URI
- Wi-Fi Direct 연결 API 제공
- 통신 기능
- 통화 품질 개선 - IMS 품질에 대한 정보 수집 기능 추가
- 통화 선택 및 발신번호 표시 - 주소록에 없는 통화를 잠재적 스팸 전화로 식별
- 통화 리디렉션 서비스 API - NEW_OUTGOING_CALL 중단 > CallRedirectionService 대체
- 외부 저장소에 파일을 만드는 기능 개선
- 독점적으로 액세스 가능한 권한 추가 - IS_PENDING
- 디렉토리 힌트 - MediaColumns.RELATIVE_PATH / MediaColumns.DISPLAY_NAME
- 기기 선택
- 기본 공유 저장소 기기는 항상 VOLUME_EXTERNAL_PRIMARY라고 합니다. 다른 볼륨은 MediaStore.getExternalVolumeNames()를 호출하여 탐색할 수 있습니다.
- StorageVolume 클래스의 createAccessIntent() 메서드는 Android Q에서 지원이 중단되었으므로 외부 저장소 기기를 둘러보는 데 이 메서드를 사용해서는 안 됩니다. 이 메서드를 사용하면 Android Q 기기를 실행하는 사용자가 앱 내에서 외부 저장소에 저장된 파일을 볼 수 없습니다.
- 미디어 및 그래픽
- 오디오 재생 캡처
- 네이티브 MIDI API
- MediaCodecInfo 개선
- Thermal API 제공
- 카메라 및 이미지
- 흑백 카메라 지원
- 다이나믹 포커스 형식 0 Dynamic Depth Fromat - DDF
- 고효율 이미지 파일 형식 (HEIF) 제공
- 다중 카메라 개선 - Camera2 API
- 접근성 서비스 API
- AccessibilityNodeInfo 입력 키 플래그
- 접근성 대화상자 음성 피드백
- 물리적 키보드의 접근성 바로가기
- 소프트 키보드 컨트롤러 향상
- 사용자 정의 접근성 시간 제한
- 자동 완성 향상
- 호환성 관련 자동 완성 요청
- 사용자 이름과 비밀번호 동시에 저장
- 저장 UI와 사용자 상호작용
- 데이터세트 업데이트 지원
- 필드 분류 향상
- UserData.Builder 생성자
- 여러 유형의 카테고리 ID에 대한 값 매핑 허용
- 신용카드 번호 지원 향상
- 앱별 필드 분류 지원
- UI 및 시스템 제어
- JVMTI PopFrame 한도 지원
- Surface control API
- WebView 중단 렌더기 감지 - WebViewRederProcessClient
- 설정 패널
- 공유 향상
- 어두운 테마
- 포그라운드 서비스 유형 - foregroundServiceType
Android Q 베타 시작하기
- Android Q 다운로드 — Pixel 기기를 등록하거나 에뮬레이터를 설정합니다.
- 환경 설정 — 자세한 내용은 설정 가이드에서 확인할 수 있습니다.
- 새로운 기능 확인 — 앱에 영향을 줄 수 있는 개인정보 보호 기능 및 동작 변경사항을 알아봅니다.
- 앱 테스트 — 절차를 거치면서 문제를 찾아봅니다.
- 앱 업데이트 — 가능한 경우 Q를 타겟팅하고 베타 채널 또는 기타 그룹을 통해 사용자를 대상으로 테스트합니다.
'Reviews' 카테고리의 다른 글
[넷플릭스 우회방법] 2019 넷플릭스 접속 & 무료체험판 제공 VPN 베스트 9 (0) | 2019.07.25 |
---|---|
[안드로이드][삼성 인터넷 브라우저] 삼성 비디오 어시스턴트 되살리기 (0) | 2019.04.16 |
[Free VPN] - Proton VPN (0) | 2019.03.14 |
[Real Class][리얼 클래스] 내 돈 내고 직접 체험하는 진짜 후기 - 리얼 클래스 장단점 (3) | 2018.12.09 |
샤오미 포코폰 스펙 및 성능 (0) | 2018.09.08 |