Ön ve arka plan kullanıcı sistemi işleme

Mobil Android'de birden fazla kullanıcı desteği, kullanıcıların arka planda (başka bir kullanıcı etkinken) ve ön planda (mevcut kullanıcı olarak da bilinir) çalışmasını sağlar. Sistem, gerektiğinde kaynak tasarrufu sağlamak için . Her zaman bir ön plan kullanıcısı gerekir.

Android 10 sürümünden itibaren Android Automotive'de varsayılan bir ayar vardır yalnızca üç kullanıcının aynı anda çalıştırmasına izin veren yapılandırma (config_multiuserMaxRunningUsers). Bu nedenle, gözetimsiz sistem kullanıcısı (Kullanıcı 0), yalnızca bir ön plan kullanıcısı ve bir arka plan kullanıcısı yapılandırılabilir.

  • Normal koşullarda, geçerli kullanıcı ön planda çalışır. ve gözetimsiz sistem kullanıcısı (Kullanıcı 0) arka planda çalışır. Arka plana taşınan kullanıcılar durdurulur ancak kilitlenmez. Maksimum kullanıcı sayısına ulaşıldığında, en az kullanılan arka plan kullanıcısı durdurulur ve kilitli (config_multiuserDelayUserDataLocking).
  • Durdurulan ve kilidi açılan arka plan kullanıcıları Garaj Modu sırasında yeniden başlatılır.

Misafir kullanıcılar geçicidir ve yalnızca ön planda çalışabilir. Bir kullanıcı misafir modundan çıktığında misafir kullanıcı durdurulur ve arka planda çalışamaz.

Arka plan kullanıcı işlemleri

Bir kullanıcı ön plandan arka plana geçtiğinde (veya tam tersi), tüm etkinlikler ve söz konusu kullanıcı için ön plan hizmetleri sonlandırılır. Bu işlem, bu hizmetlerden bağlanan tüm hizmetleri durdurur. Ancak bazı temizlik işlemleri yapılması gerekiyor. Birinci taraf ve OEM sistem uygulamalarından gelen kalıcı hizmetler, kullanıcı (artık arka planda) durdurulmadıkça çalışmaya devam eder.

Kalıcı hizmetler daha sorunludur, çünkü bunlar hizmetleri, Android'in Out of Memory (OOM) uygulamasında yüksek öncelikli bir pakette bulunur. sistemidir. Ön plan kullanıcısı için uygulamalar daha fazla bellek gerektirse bile bu kalıcı arka plan işlemleri sonlandırılmaz. Sonuç olarak, ön plandaki kullanıcının Bu durumda, kalıcı hizmetler kalıcı olarak bellekten bir miktar Bu hafıza, yalnızca kullanıcı arabayı yeniden başlattığında ve arka plan kullanıcılar durdurulur.

Kullanıcı durumu

Kullanıcı başlatılana kadar durdurulmuş durumda (STATE_SHUTDOWN) kalır. Kullanıcı kimlik bilgisi (PIN gibi) ayarlanırsa Android kullanıcısı çalışır ancak Bir kişi kilit ekranının kilidini açana kadar kilitli (STATE_RUNNING_LOCKED) kalır açıklama girin. Kullanıcının kilidi açıldığında şifrelenmiş kimlik bilgisi depolama alanının şifresi çözülür ve söz konusu kullanıcının veri dizinleri kullanılabilir hale gelir. Normal kullanıcı geçişlerinde arka plandaki kullanıcı durdurulmaz ve kilidi açıldıktan sonra çalışmaya ve kilidi açık (STATE_RUNNING_UNLOCKED) olarak kalır.

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

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

CarService, Otomotiv cihazı Garaj Modu'nda devre dışıyken çalışacak şekilde ayarlanan işleri tetiklemek için JobSchedulerService'e sinyal gönderir. JobSchedulerService ürününün arka plan kullanıcısı için işleri çalıştırabilmesi için kullanıcı STATE_RUNNING_UNLOCKED durumunda olmalıdır. JobSchedulerService'e sıraya eklenen işler kalıcı olur ve güç döngüleri arasında korunur.

JobScheduler, güç döngüsü sonrasında kullanıcının kilidi hiç açılmadıysa belirli bir kullanıcı için iş çalıştıramaz. Ancak kullanıcının kilidi açıldığında ve kullanıcı STATE_RUNNING_UNLOCKED'te kalırsa kullanıcı için işler çalıştırılabilir.