Add new onUidProcAdjChanged callback to be consumed by the camera
service. The camera service needs to know when individual process oom adj scores are changed in order to address bug #124224342. When two separate processes are displayed in split screen and focus is switched between them, both proc states will remain the same while their oom scores change. This is a problem if both have access to the camera - we want only one owner of the camera stream at any given time and for the app in focus to be the one to own it. This patch adds a new IUidObserver registration level for individual process oom score changes. In addition a new callback has been added to IUidObserver to track these changes. Change-Id: I68d964f474d20f819f54b614a4e314ce00aac8fb Bug: 124224342 Test: -- ActivityManagerServiceTest -- ActivityManagerProcessStateTest -- ActivityManagerFgsBgStartTest -- UidObserverControllerTest -- NetworkPolicyManagerServiceTest -- ShortcutManagerTest2 -- HintManagerServiceTest -- VibrationSettingsTest -- CameraEvictionTest#testCamera2AccessCallbackInSplitMode (x100)
This commit is contained in:
@@ -45,6 +45,7 @@ struct UidObserver : public BnUidObserver, public virtual IBinder::DeathRecipien
|
||||
void onUidIdle(uid_t uid, bool disabled) override;
|
||||
void onUidStateChanged(uid_t uid, int32_t procState, int64_t procStateSeq,
|
||||
int32_t capability) override;
|
||||
void onUidProcAdjChanged(uid_t uid) override;
|
||||
|
||||
// IBinder::DeathRecipient implementation
|
||||
void binderDied(const wp<IBinder>& who) override;
|
||||
@@ -120,6 +121,8 @@ void UidObserver::onUidActive(uid_t uid __unused) {}
|
||||
|
||||
void UidObserver::onUidIdle(uid_t uid __unused, bool disabled __unused) {}
|
||||
|
||||
void UidObserver::onUidProcAdjChanged(uid_t uid __unused) {}
|
||||
|
||||
void UidObserver::onUidStateChanged(uid_t uid, int32_t procState,
|
||||
int64_t procStateSeq __unused,
|
||||
int32_t capability __unused) {
|
||||
|
||||
Reference in New Issue
Block a user