Inform AudioFlinger of device's low RAM attribute
to help it configure it's memory
Bug: 9798886
Change-Id: Ia2df59cfcb76f5ff48cca92b107915e2adde899c
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index 5eb6d37..525b4de 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -22,6 +22,7 @@
import static android.media.AudioManager.RINGER_MODE_VIBRATE;
import android.app.Activity;
+import android.app.ActivityManager;
import android.app.ActivityManagerNative;
import android.app.AppOpsManager;
import android.app.KeyguardManager;
@@ -528,6 +529,7 @@
updateStreamVolumeAlias(false /*updateVolumes*/);
createStreamStates();
+ readAndSetLowRamDevice();
mMediaServerOk = true;
// Call setRingerModeInt() to apply correct mute
@@ -3469,6 +3471,8 @@
// process restarts after a crash, not the first time it is started.
AudioSystem.setParameters("restarting=true");
+ readAndSetLowRamDevice();
+
// Restore device connection states
synchronized (mConnectedDevices) {
Set set = mConnectedDevices.entrySet();
@@ -6698,4 +6702,13 @@
pw.print(" mMainType=0x"); pw.println(Integer.toHexString(mCurAudioRoutes.mMainType));
pw.print(" mBluetoothName="); pw.println(mCurAudioRoutes.mBluetoothName);
}
+
+ // Inform AudioFlinger of our device's low RAM attribute
+ private static void readAndSetLowRamDevice()
+ {
+ int status = AudioSystem.setLowRamDevice(ActivityManager.isLowRamDeviceStatic());
+ if (status != 0) {
+ Log.w(TAG, "AudioFlinger informed of device's low RAM attribute; status " + status);
+ }
+ }
}