Fix issue #2176944: Need API so browser, others can determine memory size of device

Change-Id: I65d91cdb70df91b67fe84297dd6a94d26a785131
This commit is contained in:
Dianne Hackborn
2009-10-08 17:55:49 -07:00
parent d10d02f53e
commit 2c6c5e6e49
3 changed files with 34 additions and 0 deletions

View File

@ -17299,6 +17299,17 @@
visibility="public"
>
</method>
<method name="getMemoryClass"
return="int"
abstract="false"
native="false"
synchronized="false"
static="false"
final="false"
deprecated="not deprecated"
visibility="public"
>
</method>
<method name="getMemoryInfo"
return="void"
abstract="false"

View File

@ -27,6 +27,7 @@ import android.os.RemoteException;
import android.os.Handler;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.SystemProperties;
import android.text.TextUtils;
import java.util.List;
@ -46,6 +47,26 @@ public class ActivityManager {
mHandler = handler;
}
/**
* Return the approximate per-application memory class of the current
* device. This gives you an idea of how hard a memory limit you should
* impose on your application to let the overall system work best. The
* returned value is in megabytes; the baseline Android memory class is
* 16 (which happens to be the Java heap limit of those devices); some
* device with more memory may return 24 or even higher numbers.
*/
public int getMemoryClass() {
return staticGetMemoryClass();
}
/** @hide */
static public int staticGetMemoryClass() {
// Really brain dead right now -- just take this from the configured
// vm heap size, and assume it is in megabytes and thus ends with "m".
String vmHeapSize = SystemProperties.get("dalvik.vm.heapsize", "16m");
return Integer.parseInt(vmHeapSize.substring(0, vmHeapSize.length()-1));
}
/**
* Information you can retrieve about tasks that the user has most recently
* started or visited.

View File

@ -1436,6 +1436,8 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
mSimpleProcessManagement = true;
}
Log.i(TAG, "Memory class: " + ActivityManager.staticGetMemoryClass());
MY_PID = Process.myPid();
File dataDir = Environment.getDataDirectory();