android应用程序的干净内存使用

android应用程序的干净内存使用,android,memory,Android,Memory,如何以编程方式清理android中的应用程序内存使用情况?例如,像“clean MASTER”应用程序那样使用干净的内存来提升内存。这是无用的 首先,要理解为什么,您必须理解UNIX(以及Android)是如何管理RAM的 这会有所帮助 本质上说,应用程序被加载到ram中,以获得更好的访问时间和更流畅的感觉。它们不会占用您的CPU或耗尽您的电池 事实上,如果您清除RAM,系统必须将这些重要的应用程序(例如应用程序抽屉)再次加载到RAM中,这肯定会占用CPU,从而耗尽电池电量 短:清除ram需要消

如何以编程方式清理android中的应用程序内存使用情况?例如,像“clean MASTER”应用程序那样使用干净的内存来提升内存。

这是无用的

首先,要理解为什么,您必须理解UNIX(以及Android)是如何管理RAM的

这会有所帮助

本质上说,应用程序被加载到ram中,以获得更好的访问时间和更流畅的感觉。它们不会占用您的CPU或耗尽您的电池

事实上,如果您清除RAM,系统必须将这些重要的应用程序(例如应用程序抽屉)再次加载到RAM中,这肯定会占用CPU,从而耗尽电池电量

短:清除ram需要消耗电池。我无法想象你会喜欢这个;)

要了解更多关于Android内存管理的信息,您可以阅读下面的指南

如果仍然希望以编程方式清除内存,可以参考

简而言之,它说您可以按以下方式进行(未测试):

@覆盖
受保护的空onDestroy(){
super.ondestory();
Java.Lang.Runtime.GetRuntime().RunFinalization();
Java.Lang.Runtime.GetRuntime().Gc();
trimCache(this.ApplicationContext);
}
公共缓存(上下文)
{
尝试
{
Java.IO.File dir=context.CacheDir;
if(dir!=null&&dir.IsDirectory)
{
deleteDir(dir);
}
DeleteDatabase(“webview.db”);
DeleteDatabase(“webviewCache.db”);
}
捕获(例外e)
{
WriteTextFile(“trimCache”,即消息,currDate);
//TODO:处理异常
}
}
public bool deleteDir(Java.IO.File dir)
{
if(dir!=null&&dir.IsDirectory)
{
String[]children=dir.List();
foreach(子对象中的字符串子对象)
//for(int i=0;i
如果你能做到这一点,Clean Master应用程序所有者会怎么做?在Android上完全没有用,会导致性能下降。安卓可以很好地管理它的内存,而不需要你的应用做任何事情。如果你的应用程序中有内存问题,请解决它们。只需处理诸如加载使用堆内存的图像之类的事情,你就不会有任何内存问题。。。
@Override
protected void onDestroy(){
 super.onDestroy();
 Java.Lang.Runtime.GetRuntime().RunFinalization();
 Java.Lang.Runtime.GetRuntime().Gc();                   
 trimCache(this.ApplicationContext);
}

public void trimCache(Context context)
   {
       try
       {
           Java.IO.File dir = context.CacheDir;
           if (dir != null && dir.IsDirectory)
           {
               deleteDir(dir);
           }
           context.DeleteDatabase("webview.db");
           context.DeleteDatabase("webviewCache.db");
       }
       catch (Exception e)
       {
           CostantsLift.WriteTextFile("   trimCache ", e.Message, currDate);
           // TODO: handle exception
       }
   }

   public bool deleteDir(Java.IO.File dir)
   {
       if (dir != null && dir.IsDirectory)
       {
           String[] children = dir.List();
           foreach (string child in children)
           //for (int i = 0; i < children.Length; i++)
           {
               bool success = deleteDir(new Java.IO.File(dir, child));
               if (!success)
               {
                   return false;
               }
           }
       }

       // The directory is now empty so delete it
       return dir.Delete();
   }