Android

안드로이드 12(Android 12) 개발자 프리뷰 및 일정 / 백그라운드 서비스 제한에 이어 이제는 포그라운드서비스 제한이 시작됩니다 ㄷㄷㄷ

안드로이드 12 개발자 프리뷰가 나왔습니다. 4월 초까지 개발자 프리뷰 서비스를 사용가능하며, 4월 중순 부터 안드로이드 12 베타 릴리스 버전을 사용해 볼 수 있으며 안정화가 되면 출시될 것으로 보입니다.  자세한 일정은 여기를 클릭하세요.


https://developer.android.com/about/versions/12/overview

포그라운드 서비스 시작 제한

developer.android.com/about/versions/12/foreground-services
Android 12를 대상으로하는 앱은 몇 가지 특별한 경우를 제외하고 더 이상 백그라운드에서 실행되는 동안 포그라운드 서비스를 시작할 수 없습니다 . 앱이 백그라운드에서 실행되는 동안 앱이 포 그라운드 서비스를 시작하려고 시도하고 포 그라운드 서비스가 예외적 인 경우 중 하나를 충족하지 않으면 시스템은 .IllegalStateException 오류를 발생시킬예정입니다.  안드로이드 초창기에는 백그라운드 서비스를 아무나 사용할 수 있게 해주었으나 배터리 효율 어쩌고 저쩌고 하더니 백그라운드 서비스를 사용하려면 화이트 리스트에 올리도록 유도했고, 도즈모드를 도입했고, 그러다가 백그라운드 서비스를 이용하는 앱은 반드시 포그라운드 서비스에 올려야 했죠.. 그런데 이제 이것 마져도 구글은 빼앗아 가네요. 백그라운드 서비스에서 실시간으로 활동하고 있지 않으면 앱의 주요 기능이 실행 될 수 없는 앱들에게 많은 영향을 미칠 것으로 보입니다.

앱이이 변경의 영향을받는 경우 WorkManager를 사용하여 마이그레이션하는 것이 좋습니다 . Android 12 베타가 출시되면 WorkManager는 우선 순위가 더 높은 백그라운드 작업을 시작하는 데 권장되는 솔루션이됩니다.

Work Manager 2.7.0-alpha01에는 Android 12의 새로운 작업 유형 인 긴급 작업에 대한 지원이 포함 되어 있습니다. Android 11 이하에서이 버전의 WorkManager는 포 그라운드 서비스를 사용하여 이전 버전과의 호환성을 제공합니다.

Work Manager 2.7.0-alpha01에서 신속 작업을 사용하는 방법에 대한 전체 예제를 보려면 GitHub 의 WorkManagerSample을 살펴보세요 .

 

긴급 작업(Expedited job)

Android 12의 새로운 기능인 긴급 작업을 사용하면 앱이 중요한 작업을 실행하는 동시에 시스템이 리소스에 대한 액세스를 더 잘 제어 할 수 있습니다.  이러한 작업에는 포 그라운드 서비스와 JobScheduler작업 사이에 일련의 특성이 있습니다 .

  • 배터리 세이버 및 잠자기 모드를 포함 하여 시스템의 일부 전원 관리 제한의 영향을받지 않습니다 .
  • 시스템의 현재 워크로드가이를 가능하게하는 경우 시스템은이를 즉시 실행합니다.

긴급 작업이 연기 될 수 있음

시스템은 작업이 호출 된 후 가능한 한 빨리 주어진 긴급 작업을 실행하려고합니다. 그러나 다른 유형의 작업 과 마찬가지로 이미 실행중인 작업이 너무 많거나 시스템 리소스가 부족한 경우 시스템은 새 긴급 작업의 시작을 연기 할 수 있습니다.

특히, 시스템은 다음 조건 중 하나 이상이 발생하면 긴급 작업의 실행을 연기합니다.

  • 시스템 부하가 너무 높습니다.
  • 신속 작업 할당량 한도를 초과했습니다. 긴급 작업은 앱 대기 버킷을 기반으로하는 할당량 시스템을 사용 하고 롤링 시간 창 내에서 최대 실행 시간을 제한합니다. 긴급 작업에 사용되는 할당량은 다른 유형의 백그라운드 작업에 사용되는 할당량보다 더 제한적입니다.

WorkManager 업데이트

WorkManager 2.7.0-alpha01부터 앱은 setExpedited()Worker를 신속히 처리해야한다고 선언하기 위해 호출 할 수 있습니다 . 이 새로운 API는 Android 12에서 실행할 때 긴급 작업을 사용하고 API는 이전 버전의 Android에서 포 그라운드 서비스를 사용합니다.

개발자가 앱에서 신속한 작업을 요청할 때 의도적으로 작업하도록 장려하고 작업 실행 시간을 연장하는 기능을 더 잘 지원하기 위해 CoroutineWorker.setForeground() 및 ListenableWorker.setForegroundAsync() 메서드는 더 이상 사용되지 않습니다. 특히 Android 12를 실행하는 기기에서 호출을 시도 ListenableWorker.setForegroundAsync()하면 IllegalStateException. 개발자가 setExpedited()대신 사용 하는 것이 좋습니다 .

포그라운드 서비스가 허용 되는 작업

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


배터리 최적화를 제거하면 장치 배터리 수명이 줄어들 수 있음을 사용자에게 경고하는 시스템 대화 상자.

 

 

Google Pixel 용 다운로드(Downloads for Google Pixel)

developer.android.com/about/versions/12/download

 

Downloads for Google Pixel  |  Android 12 Developer Preview

Instructions for downloading and installing preview system images for Pixel devices

developer.android.com

지원되는 Google Pixel 기기의 개발자 인 경우 테스트 및 개발을 위해 해당 기기를 최신 빌드로 수동 업데이트 할 수 있습니다. 이 페이지는 Android 12 개발자 미리보기 시스템 이미지를 다운로드하여 기기에 플래시하는 데 도움이됩니다. 전체 기기를 초기화해야하므로 먼저 데이터를 백업해야합니다. Android 12 개발자 미리보기 빌드는 다음 Google Pixel 기기에서만 사용할 수 있습니다.

  • Pixel 3 및 3 XL
  • Pixel 3a 및 3a XL
  • Pixel 4 및 4 XL
  • Pixel 4a 및 4a (5G)
  • Pixel 5

 

[연관]

Android 12의 첫 번째 미리보기(Android 개발자 블로그)

2021년 구글플레이(Google PLAY) 정책 미리 준비 하기 : 타임라인

앱이 삭제되지않게 미리 처리하기 : 구글 개발자 정책 업데이트 됨(2020년 4월 16일)

Leave a Reply

error: Content is protected !!