Ön plan ve arka plan kullanıcı sistem yönetimi

Mobil Android'de, birden fazla Kullanıcı desteği, Kullanıcıların arka planda (başka bir Kullanıcı etkin olduğunda) ve ön planda (mevcut Kullanıcı olarak da bilinir) çalışmasına olanak tanır. Uygun olduğunda kaynakları korumak için sistem kullanıcıların kapatılmasını yönetir. Bir ön plan Kullanıcısı her zaman gereklidir .

Android 10'dan başlayarak, Android Automotive, aynı anda yalnızca en fazla üç Kullanıcının çalışmasına izin veren varsayılan bir yapılandırmaya sahiptir ( config_multiuserMaxRunningUsers ). Bu nedenle, başsız sistem Kullanıcısına (Kullanıcı 0) ek olarak yalnızca bir ön plan Kullanıcısı ve bir arka plan Kullanıcısı yapılandırılabilir.

  • Tipik durumlarda, mevcut Kullanıcı ön planda çalışır ve başsız sistem kullanıcısı (Kullanıcı 0) arka planda çalışır. Bir Kullanıcı arka plana taşındığında Kullanıcı durdurulur ancak kilitlenmez. Maksimum Kullanıcı sayısına ulaşıldığında, en son kullanılan arka plan Kullanıcısı durdurulur ve kilitlenir ( config_multiuserDelayUserDataLocking ).
  • Durdurulmuş ve kilidi açılmış arka plan Kullanıcılar Garaj Modu sırasında yeniden başlatılır.

Konuk Kullanıcılar geçicidir ve yalnızca ön planda çalışabilirler. Bir kişi Misafir modundan çıktığında Misafir Kullanıcı durdurulur ve arka planda çalışamaz.

Arka plan kullanıcı işlemleri

Kullanıcının ön plandan arka plana (veya tam tersi) geçişi meydana geldiğinde, söz konusu Kullanıcıya yönelik tüm etkinlikler ve ön plan hizmetleri sonlandırılır. Bu, söz konusu hizmetlere bağlı tüm hizmetlerin durdurulmasına yol açar. Ancak bir miktar temizlik kaldı. Birinci taraf ve OEM sistem uygulamalarından gelen kalıcı hizmetler, (arka planda) Kullanıcı durdurulmadığı sürece çalışmaya devam eder.

Kalıcı hizmetler, bu hizmetler Android'in Bellek Yetersiz (OOM) yönetim sisteminde yüksek öncelikli bir grupta yer aldığından daha sorunludur. Ön plan Kullanıcısına yönelik uygulamalar daha fazla belleğe ihtiyaç duysa bile bu kalıcı arka plan işlemleri sonlandırılmaz. Sonuç olarak, ön plandaki Kullanıcının bakış açısından, kalıcı Hizmetler kalıcı olarak bir miktar hafıza ayırır ve bu hafıza yalnızca bir kişi arabayı yeniden başlattığında ve arka plandaki Kullanıcılar durdurulduğunda geri döner.

Kullanıcı durumu

Kullanıcı başlatılana kadar Kullanıcı durdurulmuş durumdadır ( STATE_SHUTDOWN ). Bir Kullanıcı kimlik bilgisi (PIN gibi) ayarlanmışsa, Android Kullanıcısı çalışır ancak bir kişi söz konusu Kullanıcının kilit ekranının kilidini açana kadar kilitli kalır ( STATE_RUNNING_LOCKED ). Kullanıcının kilidi açıldığında, şifreli kimlik bilgileri deposunun şifresi çözülür ve o Kullanıcıya ait veri dizinleri kullanılabilir hale gelir. Tipik Kullanıcı değiştirme için, arka plandaki Kullanıcı durdurulmaz ve kilidi açıldığında çalışır durumda ve kilidi açık ( STATE_RUNNING_UNLOCKED ) kalır.

Kullanıcılar için Garaj Modu, JobScheduler ve uygulama güncellemeleri

Otomotiv uygulamalarının verileri güncellemesi için önerilen teknik, işleri Garaj Modu aracılığıyla (örneğin, uygulama güncellemelerinin Google Play Store'dan indirilmesi) bir cihaz boş durumdayken çalışacak şekilde planlamak için JobScheduler'ı kullanmaktır. Uygulamalar işleri JobScheduler ve JobSchedulerService'e kaydettikten sonra işler mümkün olduğunda çalıştırılır.

CarService, Garaj Modu aracılığıyla Otomotiv cihazı boştayken çalışacak şekilde ayarlanan işleri tetiklemek için JobSchedulerService'e bir sinyal gönderir. JobSchedulerService'in arka plandaki Kullanıcılara yönelik işleri çalıştırabilmesi için, söz konusu Kullanıcının STATE_RUNNING_UNLOCKED durumunda olması gerekir. JobSchedulerService'te kuyruğa alınan işler kalıcıdır ve güç döngüleri boyunca hayatta kalır.

JobScheduler, güç kapatıldıktan sonra Kullanıcının kilidi hiç açılmadıysa belirli bir Kullanıcı için işleri çalıştıramaz. Ancak, kilit açıldığında ve Kullanıcı STATE_RUNNING_UNLOCKED durumunda kalırsa, Kullanıcıya yönelik işler çalıştırılabilir.