Android

[Android] 안드로이드 12 바뀐 점을 살펴보자! part.1

Wootaeng 2021. 12. 1. 17:37
728x90

< 모든 앱에 적용 = OS12 인 기기에는 targetSDK 관계없이 적용되는 사항 >


이번 편에서는 전체적으로 바뀐 기능에 살펴본다

스트레치 오버스크롤 효과

Android 12 이상을 실행하는 기기에서 오버스크롤 이벤트의 시각적 동작이 변경됩니다.

Android 11 이하에서 오버스크롤 이벤트는 시각적 요소에 발광 효과가 나도록 합니다. Android 12 이상에서는 시각적 요소가 드래그 이벤트에 늘어났다가 다시 돌아오고 플링 이벤트에 플링 되었다가 다시 돌아옵니다. 용수철처럼 튕기듯 보이는 효과입니다.

스플래쉬 화면

Android 12에서는 모든 앱에 새로운 앱 실행 애니메이션을 사용 설정하는 SplashScreen API를 추가합니다. 여기에는

실행 시 앱 내 모션, 앱 아이콘을 보여주는 스플래시 화면, 앱 자체로의 전환이 포함됩니다.

새로운 환경은 앱을 출시할 때마다 표준 디자인 요소를 제공하지만 맞춤설정도 가능하므로 앱이 고유한 브랜딩을 유지할 수 있습니다.

웹 인텐트 확인

Manifest 부분에 접근하려는 특정 웹을 명시적으로 인텐트에 부여해줘야한다.

앱이 도메인에 승인되지 않으면 웹 인텐트는 대신 사용자의 기본 브라우저 앱으로 확인한다.

별도의 설정이 없다면 웹 브라우저 선택하는 창 없이 바로 열리게 된다.

동작 탐색을 위한 몰입형 모드 개선사항

전체 화면 시 하단 UI 를 안보이게 해서 게임 또는 전체 화면의 활동이 방해받지 않게 적용

< 좌 - os11 까지의 화면 , 우 - os12 부터의 화면구성>

포그라운드 서비스 알림의 UX 지연

노티피케이션을 활용하여 백그라운드 실행을 하는 포어그라운드 서비스의 경우, Android12부터는 사용자의 편의성을 위해 10초 안에 실행이 끝나는 포어그라운드 서비스는 알림(Notification)을 지연 시킬 수 있다.

  • 예외 사항

다음 상황에서는 앱이 백그라운드에서 실행되는 동안에도 앱이 포그라운드 서비스를 시작할 수 있습니다.

  1. 앱이 활동 과 같이 사용자에게 표시되는 상태에서 전환됩니다 .
  2. 앱은 기존 작업의 백 스택에 활동이 있는 경우를 제외하고 백그라운드에서 활동을 시작할 수 있습니다 .
  3. 앱은 Firebase 클라우드 메시징을 사용하여 우선순위가 높은 메시지를 수신합니다 .
  4. 사용자는 앱과 관련된 UI 요소에서 작업을 수행합니다. 예를 들어 말풍선 , 알림 , 위젯 또는 활동 과 상호 작용할 수 있습니다 .
  5. 앱은 사용자가 요청한 작업을 완료하기 위해 정확한 경보 를 호출 합니다.
  6. 앱이 기기의 현재 입력 방법 입니다.
  7. 앱이 지오펜싱 또는 활동 인식 전환 과 관련된 이벤트를 수신합니다 .
  8. 장치가 재부팅되고 수신한 ACTION_BOOT_COMPLETED, ACTION_LOCKED_BOOT_COMPLETED또는 ACTION_MY_PACKAGE_REPLACED A의 의도 동작 방송 수신기 .
  9. 앱은 수신 ACTION_TIMEZONE_CHANGED, ACTION_TIME_CHANGED또는 ACTION_LOCALE_CHANGED 방송 수신기의 의도 조치를.
  10. 앱이 BLUETOOTH_CONNECT 또는 BLUETOOTH_SCAN 권한 이 필요한 블루투스 브로드캐스트를 수신합니다 .
  11. 같은 특정 시스템의 역할이나 권한을 가진 앱 기기 소유자프로필 소유자 .
  12. 앱은 Companion Device Manager를 사용하고 REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND 권한 또는 권한을 선언합니다 REQUEST_COMPANION_RUN_IN_BACKGROUND . 가능하면 REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND.
  13. 사용자가 앱의 배터리 최적화를 끕니다. 시스템 설정에서 앱의 앱 정보 페이지 로 사용자를 보내 사용자가 이 옵션을 찾도록 도울 수 있습니다 . 그렇게 하려면 인 ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS 텐트 작업 이 포함된 인텐트를 호출합니다 .
  • 포그라운드 서비스 권장 대안: WorkManager

앱이 이 변경사항으로 영향받는 경우 WorkManager를 사용하도록 이전하세요. WorkManager는 우선순위가 높은 백그라운드 작업을 시작하는 데 권장되는 솔루션입니다.

WorkManager 2.7.0부터 앱은 setExpedited()를 호출하여 Worker신속 처리 작업을 사용해야 한다고 선언할 수 있습니다. 이 새 API는 Android 12에서 실행될 때 신속 처리 작업을 사용하며 이전 버전의 Android에서는 포그라운드 서비스를 사용하여 이전 버전과의 호환성을 제공합니다.

보안 및 개인 정보 보호

마이크 및 카메라 전환

Android 12 이상을 실행하는 지원 기기에서 사용자는 단일 전환 옵션을 눌러 기기의 모든 앱에 카메라 및 마이크 액세스를 사용 설정하거나 사용 중지할 수 있습니다.

현재 마이크 및 카메라가 사용되는지도 상단에 알림으로 확인 할 수 있다.

프라이버시 대시보드 기능 추가

대시보드는 사용자에게 스마트폰 속 앱이 어떤 데이터에, 얼마나 자주 접근하고 있는지 보여주는 것이다. 사용자는 대시보드에서 해당 앱의 접근 권한을 쉽게 제한할 수 있다.

대시보드에 들어가지 않더라도 상태 표시줄 오른쪽 상단에 특정 앱이 어떤 데이터에 접근하고 있는지를 실시간으로도 알 수 있다. 빠른 설정을 통해 이 역시 빠르게 권한 취소를 할 수 있다.

Netlink MAC 주소 제한사항

MAC 주소 접근을 추가적으로 제한한다. MAC 주소를 요청하는 API 사용시 Android12를 타겟팅하는 앱은 null을 반환한다.

Android 11이하에서는 하드코딩된 값을 반환한다 (02:00:00:00:00:00)

MAC 으로 사용자를 식별하는 것은 권장하지 않으므로 구글의 고유 식별에 대한 권장사항 가이드를 확인하자

신뢰 할 수 없는 터치 이벤트 차단

안전하지 않은 방식으로 오버레이하여 앱을 가리는 경우 터치 이벤트를 사용할 수 없다.

하지만 예외는 있다.

1. 앱 내에서 오버레이를 사용

2. 접근성 윈도우, IME, 어시스턴트 윈도우는 예외적으로 허용

3. 윈도우의 최상위 View가 Gone 또는 INVISIBLE 상태 일 때

4. 윈도우의 alpha 속성이 0.0 일 때

5. 시스템 얼럿 윈도우가 불투명 할 때

앱이 시스템 대화상자를 닫을 수 없음

ACTION_CLOSE_SYSTEM_DIALOGS 인텐트 액션 지원 중단

앱이 더 이상 시스템 다이얼로그를 강제로 닫을 수 없다.

  • 예외

다음과 같은 경우 앱은 여전히 Android 12 이상에서 시스템 대화상자를 닫을 수 있습니다.

1.앱이 계측 테스트를 실행 중입니다.

2.앱이 Android 11 이하를 타겟팅하고 알림 창 위에 있는 창을 표시합니다.

3.앱이 Android 11 이하를 타겟팅합니다. 또한 사용자가 알림의 작업 버튼을 사용하여 알림과 상호작용했으며 앱은 사용자 작업에 응답하여 서비스broadcast receiver를 처리하고 있습니다.

4.앱이 Android 11 이하를 타겟팅하고 활성 접근성 서비스를 보유합니다. 앱이 Android 12를 타겟팅하고 알림바를 닫으려는 경우 대신 GLOBAL_ACTION_DISMISS_NOTIFICATION_SHADE 접근성 작업을 사용하세요.

비 SDK 인터페이스 제한 사항 업데이트

Android12에서는 비 SDK 인터페이스 목록을 업데이트함. (변경사항 목록 확인)

Android9 부터 앱에서 사용할 수 있는 비 SDK 인터페이스를 제한함.

타겟팅 API에 따라 일부 비 SDK 인터페이스를 사용할 수 있지만, 크래시가 발생할 위험성이 높아짐.

로그 메시지 확인 및 StricMode, veridex 도구 등을 사용하여 테스트 할 수 있음.

 

 

 

참고자료 : 안드로이드 12 , 동작변경사항 모든앱 , 동작변경사항 타겟 , 새로운 기능 API

728x90
반응형