BATJ30道经典常见Android 高级面试题及答案( 六 )

首先OOM是什么?

当程序需要申请一段“大”内存 , 但是虚拟机没有办法及时的给到 , 即使做了GC操作以后

这就会抛出 OutOfMemoryException 也就是OOM

Android的OOM怎么样?

为了减少单个APP对整个系统的影响 , android为每个app设置了一个内存上限 。

public void getMemoryLimited(Activity context)
   {
       ActivityManager activityManager =(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
       System.out.println(activityManager.getMemoryClass());
       System.out.println(activityManager.getLargeMemoryClass());
       System.out.println(Runtime.getRuntime().maxMemory()/(1024*1024));
   

09-10 10:20:00.477 4153-4153/com.joyfulmath.samples I/System.out: 19209-10 10:20:00.477 4153-4153/com.joyfulmath.samples I/System.out: 51209-10 10:20:00.477 4153-4153/com.joyfulmath.samples I/System.out: 192</pre>

推荐阅读