diff options
author | Dianne Hackborn <hackbod@google.com> | 2010-12-23 11:43:46 -0800 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2010-12-23 15:41:16 -0800 |
commit | 4e24aac6aeb6c7dad2a40aa6d455debf2d1738f6 (patch) | |
tree | 5fee5efb0c4384e987fa8a0e5ce7b22ce94e58dc | |
parent | cd17391944303b28f02734219e44d1ebd353d80d (diff) | |
download | frameworks_base-4e24aac6aeb6c7dad2a40aa6d455debf2d1738f6.zip frameworks_base-4e24aac6aeb6c7dad2a40aa6d455debf2d1738f6.tar.gz frameworks_base-4e24aac6aeb6c7dad2a40aa6d455debf2d1738f6.tar.bz2 |
Add some standard definitions for device heaps.
These can be included as desired by particular devices to configure
their Dalvik heap in a standard way.
Change-Id: I487c751d7c583b0e93552f16ab43a93314219778
-rw-r--r-- | api/current.xml | 11 | ||||
-rw-r--r-- | build/phone-hdpi-512-dalvik-heap.mk | 23 | ||||
-rw-r--r-- | build/phone-hdpi-dalvik-heap.mk | 22 | ||||
-rw-r--r-- | build/tablet-dalvik-heap.mk | 22 | ||||
-rw-r--r-- | core/java/android/app/ActivityManager.java | 22 |
5 files changed, 100 insertions, 0 deletions
diff --git a/api/current.xml b/api/current.xml index d7e626d..54cdbd7 100644 --- a/api/current.xml +++ b/api/current.xml @@ -24307,6 +24307,17 @@ visibility="public" > </method> +<method name="getLargeMemoryClass" + return="int" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</method> <method name="getMemoryClass" return="int" abstract="false" diff --git a/build/phone-hdpi-512-dalvik-heap.mk b/build/phone-hdpi-512-dalvik-heap.mk new file mode 100644 index 0000000..afc45ee --- /dev/null +++ b/build/phone-hdpi-512-dalvik-heap.mk @@ -0,0 +1,23 @@ +# +# Copyright (C) 2010 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Provides overrides to configure the Dalvik heap for a standard high density +# phone with around 512MB total RAM. + +PRODUCT_PROPERTY_OVERRIDES += \ + dalvik.vm.heapstartsize=5m \ + dalvik.vm.smallheapsize=32m \ + dalvik.vm.heapsize=32m diff --git a/build/phone-hdpi-dalvik-heap.mk b/build/phone-hdpi-dalvik-heap.mk new file mode 100644 index 0000000..ee30b92 --- /dev/null +++ b/build/phone-hdpi-dalvik-heap.mk @@ -0,0 +1,22 @@ +# +# Copyright (C) 2010 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Provides overrides to configure the Dalvik heap for a standard high density phone. + +PRODUCT_PROPERTY_OVERRIDES += \ + dalvik.vm.heapstartsize=5m \ + dalvik.vm.smallheapsize=32m \ + dalvik.vm.heapsize=32m diff --git a/build/tablet-dalvik-heap.mk b/build/tablet-dalvik-heap.mk new file mode 100644 index 0000000..9cb2f6b --- /dev/null +++ b/build/tablet-dalvik-heap.mk @@ -0,0 +1,22 @@ +# +# Copyright (C) 2010 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Provides overrides to configure the Dalvik heap for a standard tablet device. + +PRODUCT_PROPERTY_OVERRIDES += \ + dalvik.vm.heapstartsize=5m \ + dalvik.vm.smallheapsize=48m \ + dalvik.vm.heapsize=48m diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index ebdc7fd..096a6eb 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -64,6 +64,28 @@ public class ActivityManager { 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.smallheapsize", "16m"); + return Integer.parseInt(vmHeapSize.substring(0, vmHeapSize.length()-1)); + } + + /** + * Return the approximate per-application memory class of the current + * device when an application is running with a large heap. This is the + * space available for memory-intensive applications; most applications + * should not need this amount of memory, and should instead stay with the + * {@link #getMemoryClass()} limit. The returned value is in megabytes. + * This may be the same size as {@link #getMemoryClass()} on memory + * constrained devices, or it may be significantly larger on devices with + * a large amount of available RAM. + */ + public int getLargeMemoryClass() { + return staticGetLargeMemoryClass(); + } + + /** @hide */ + static public int staticGetLargeMemoryClass() { + // 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)); } |