在Android里,程序内存被分为2部分:native和dalvik,dalvik就是我们普通的Java使用内存,分析堆栈的时候使用的内存。我们创建的对象是在这里面分配的,对于内存的限制是 native+dalvik 不能超过最大限制. Android 原生系统一般默认16M,但是国内手机一般都是特殊定制的,都有修改系统的内存大小,所有有时候,要查看具体应用系统分配的内存大小,还是需要实际去测试的,

测试方法如下:

方式一:

ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);    //最大分配内存    int memory = activityManager.getMemoryClass();    System.out.println("memory: "+memory);    //最大分配内存获取方法2    float maxMemory = (float) (Runtime.getRuntime().maxMemory() * 1.0/ (1024 * 1024));    //当前分配的总内存    float totalMemory = (float) (Runtime.getRuntime().totalMemory() * 1.0/ (1024 * 1024));    //剩余内存    float freeMemory = (float) (Runtime.getRuntime().freeMemory() * 1.0/ (1024 * 1024));    System.out.println("maxMemory: "+maxMemory);    System.out.println("totalMemory: "+totalMemory);    System.out.println("freeMemory: "+freeMemory);

方式二:

Runtime rt=Runtime.getRuntime();long maxMemory=rt.maxMemory();log.i("maxMemory:",Long.toString(maxMemory/(1024*1024)));這個可以直接得到app可使用的最大memory size算出來是MB, 获得的是heapgrowthlimit1,maxMemory()方法获取系统可为APP分配的最大内存,2,totalMemory() 获取APP当前所分配的内存heap空间大小。先看机器的内存限制,在/system/build.prop文件中:heapgrowthlimit就是一个普通应用的内存限制,用ActivityManager.getLargeMemoryClass()获得的值就是这个。而heapsize是在manifest中设置了largeHeap=true 之后,可以使用的最大内存值结论就是,设置largeHeap的确可以增加内存的申请量。但不是系统有多少内存就可以申请多少,而是由dalvik.vm.heapsize限制。你可以在app manifest.xml加 largetHeap=true可以申請較多的記憶體 ,但還是有機會爆掉.    .......cat /system/build.prop   //读取这些值getprop dalvik.vm.heapsize  //如果build.prop里面没有heapsize这些值,可以用这个抓取默认值setprop dalvik.vm.heapsize 256m  //设置-----------------------    build.prop 部分内容 ---------------------dalvik.vm.heapstartsize=8mdalvik.vm.heapgrowthlimit=96mdalvik.vm.heapsize=384mdalvik.vm.heaputilization=0.25dalvik.vm.heapidealfree=8388608dalvik.vm.heapconcurrentstart=2097152ro.setupwizard.mode=OPTIONALro.com.google.gmsversion=4.1_r6net.bt.name=Androiddalvik.vm.stack-trace-file=/data/anr/traces.txt 

 

更多相关文章

  1. MTK androiod5.1源码精简系统APP
  2. Android如何让APP进程常驻内存?
  3. 修改android 4.4系统下面的休眠时间,只留下永不休眠选项
  4. 前沿技术:FaceBook推出的Android图片加载库Fresco
  5. Android序列化详解及最佳实践(Serialize&Parcel)
  6. Launcher功能的修改及添加,本篇是一些小功能的展示,通知栏显隐,dock
  7. 【Android】Android系统启动过程
  8. android远程控制(一)---从PC端写数据到android系统驱动让android系
  9. 论Camera和MediaRecorder的友情(安卓学习年度总结篇)

随机推荐

  1. Android中的定位Demo
  2. 怎样在android中添加背景图片?
  3. 感谢Google Android
  4. android的各种布局
  5. Android中利用ViewPager实现视图切换
  6. Android(安卓)Fragment完全解析
  7. android架构师之路——APP外置换肤原理解
  8. 如何在Android Studio中导入包:android-su
  9. Android--Adapter深入理解及ListView优化
  10. 在电脑上体验Android