if("1".equals(SystemProperties.get("persist.sys.emmcsdcard.enabled")))这是把内存设在为内部存储
在cpp文件中
#include <cutils/properties.h>
char value[PROPERTY_VALUE_MAX];
property_get("sys.secpolicy.camera.disabled", value, "0");获取值
2、给应用分配最小的内存
VMRuntime.getRuntime()
.setTargetHeapUtilization(TARGET_HEAP_UTILIZATION);
VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE);
private final static float TARGET_HEAP_UTILIZATION = 0.75f;
private final static int CWJ_HEAP_SIZE = 6 * 1024 * 1024;
3、杀死本进程
private ActivityManager mAm;
private long SECONDARY_SERVER_MEM;
private MemInfoReader mMemInfoReader = new MemInfoReader();
private long mMB = 1024 * 1024;
ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo();
mAm.getMemoryInfo(memInfo);
SECONDARY_SERVER_MEM = memInfo.secondaryServerThreshold;
long totalMemory = Runtime.getRuntime().totalMemory() / mMB;
long freeMemory = Runtime.getRuntime().freeMemory() / mMB;
long maxMemory = Runtime.getRuntime().maxMemory() / mMB;
long remainMemory = maxMemory - totalMemory;
mMemInfoReader.readMemInfo();
long freeSize = mMemInfoReader.getFreeSize();
long cachedSize = mMemInfoReader.getCachedSize();
long availMem = freeSize + cachedSize - SECONDARY_SERVER_MEM;