清理内存clear

清理内存clear:

package com.android.cleanprocesstool;

import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.util.Log;
import android.os.UserHandle;
import android.os.UserManager;

import java.util.List;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.BatteryStats;
import android.os.Bundle;
import android.os.Handler;
import android.os.IPowerManager;
import android.os.Message;
import android.os.ServiceManager;
import android.os.SystemClock;
import android.text.format.DateUtils;
import android.widget.TextView;
import android.os.Bundle;
import android.app.ActivityManager;
import android.text.format.Formatter;
import android.util.Log;
import android.widget.Toast;
import java.util.List;

public class ClearMemReceiver extends BroadcastReceiver {
    private static final String TAG = "Settings";
    private static final String PRIMARY_PROFILE_SETTING =
        "com.android.settings.PRIMARY_PROFILE_CONTROLLED";

    ActivityManager.MemoryInfo memoryInfo;
    private ActivityManager myActivityManager;
    private Context context;
    long mBeforeClearMem = 0;
    long mAfterClearMem = 0;

    private final long MIN_MEM_CLEAR = 10 * 1024 * 1024;
    @Override
    public void onReceive(Context context, Intent broadcast) {
        context = context;
        memoryInfo = new ActivityManager.MemoryInfo();
        myActivityManager =(ActivityManager)context.getSystemService(Activity.ACTIVITY_SERVICE);
        myActivityManager.getMemoryInfo(memoryInfo) ;

        mBeforeClearMem = memoryInfo.availMem;
        clearBackgroundProcesses(context);
    }

    private String[] mWhiteList = {
        "com.tencent.qqmusic",
        "com.tencent.mobileqq"
    };

    private void clearBackgroundProcesses(Context context) {

        ActivityManager activityManger = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> list = activityManger.getRunningAppProcesses();

        int importance = ActivityManager.RunningAppProcessInfo.IMPORTANCE_SERVICE;
        if (list != null) {
            for(int i = 0; i < list.size(); i++) {
                ActivityManager.RunningAppProcessInfo apinfo = list.get(i);
                String[] pkgList = apinfo.pkgList;
                for (int j = 0; j < pkgList.length; j++) {
                    boolean inWhiteList = false;
                    for  (String whitelist : mWhiteList) {
                        if (whitelist.equals(pkgList[j])) {
                            inWhiteList = true;
                            break;
                        }
                    }
                    if (!inWhiteList && !pkgList[j].startsWith("com.android.providers")) {
                        activityManger.forceStopPackage(pkgList[j]);

                    }
                }
            }
        }
        myActivityManager =(ActivityManager)context.getSystemService(Activity.ACTIVITY_SERVICE);
        myActivityManager.getMemoryInfo(memoryInfo) ;
        mAfterClearMem = memoryInfo.availMem;
        if (mAfterClearMem - mBeforeClearMem < MIN_MEM_CLEAR) {
            Toast.makeText(context, context.getResources().getString(R.string.clear_mem_no_need), Toast.LENGTH_LONG).show();

        } else {
            String memInfoString = Formatter.formatFileSize(context, mAfterClearMem - mBeforeClearMem);
            String toast = context.getResources().getString(R.string.clear_mem_release);
            Toast.makeText(context, String.format(toast, memInfoString), Toast.LENGTH_SHORT).show();

        }
    }

}
时间: 2024-10-14 03:07:26

清理内存clear的相关文章

自定义水波球清理内存的悬浮窗小工具

一.概述 现在一些手机管家都会有一个用来清理内存的悬浮窗小工具,感觉挺实用的,就自己做了一个.首先介绍一下这个工具的功能,除了可以清理内存,还有调节手机屏幕亮度.手电筒.无线网.移动数据.蓝牙.GPS开关的功能.先上图,感受一波: 清理手机内存     一些常用功能的开关 二.功能实现 1.悬浮窗     MainActivity只有两个按钮,控制悬浮窗的打开和关闭.这里我是用Service去控制的.下面我把FloatWindowService的代码贴出来: public class Float

Centos清理内存 内存回收释放及内存使用查看的相关命令

在清理前内存使用情况 free -m 用以下命令清理内存 echo 1 > /proc/sys/vm/drop_caches 清理后内存使用情况再用以下命令看看. free –m 多出很多内存了吧. 查看内存条数命令: dmidecode |grep -A16 "Memory Device$"

Linux下清理内存和Cache方法

Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches 频繁的文件访问会导致系统的Cache使用量大增 $ free -m total used free shared buffers cached Mem: 3955 3926 28 0 55 3459 -/+ buffers/cache: 411 3544 Swap: 5726 0 5726 free内存减少到几十兆,系统运行缓慢 运行sync将dirty的内容写回硬盘 $sync 通过修改proc系统的dro

如何在Android实现桌面清理内存简单Widget小控件

如何在Android实现桌面清理内存简单Widget小控件 我们经常会看到类似于360.金山手机卫士一类的软件会带一个widget小控件,显示在桌面上,上面会显示现有内存大小,然后会带一个按键功能来一键清理内存,杀死后台进程的功能,那么这个功能是如何实现的呢,我们今天也来尝试做一个类似的功能的小控件. 效果图: 一.UI部分的编写: 参照Google的文档,首先在建立一个类继承AppWidgetProvider import android.appwidget.AppWidgetProvider

C# System.Timers.Timer定时器的使用和定时自动清理内存应用

项目比较大有时候会比较卡,虽然有GC自动清理机制,但是还是有不尽人意的地方.所以尝试在项目启动文件中,手动写了一个定时器,定时清理内存,加快项目运行速度. public class Program { [DllImport("psapi.dll")] static extern int EmptyWorkingSet(IntPtr hwProc); //清理内存相关 static void Main() { //启动定时清理内存 SetTimer(); } /// <summar

Nagios/Cacti异常报警,设定总动清理内存

Naigos/Cacti处理报警事宜跟进 1,查看日志 查看大量报警,查看内存较大 使用命令清理内存 清除内存 sync echo 3 > /proc/sys/vm/drop_caches 2,清理后恢复正常,并查看SNMP运行状态,如异常 手动开启服务   service snmpd start mkdir qiuyuetao vi create.sh sync && echo 3 > /proc/sys/vm/drop_caches crontab -e 00 12 1 *

在线清理内存

清理前: [[email protected] ~]# free -m             total       used       free     shared    buffers     cachedMem:          7972       7722        249          0        256       2597-/+ buffers/cache:       4868       3104Swap:         8189          1

jmeter压测前清理内存

jmeter 压测时设置了内存为sed -i 's/HEAP="-Xms512m -Xmx512m"/HEAP="-Xms36096m -Xmx360096m"/' jmeter占了48G内存中的很大一部分再执行的时候会出现如下提示:Cannot allocate memory Creating summariser <summary>Created the tree successfully using multiple.jmxStarting the

Centos下查看cpu、磁盘、内存使用情况以及如何清理内存

查看内存使用情况 free -m 查看cpu使用情况 top #查看进程运行情况 查看磁盘以及分区情况 df -h 查看网络情况 ifconfig 查看端口使用情况 #1.方法一 lsof -i:端口号 #2.方法二 netstat -apn|grep 端口号 清理内存 #1.[推荐]释放网页缓存(To free pagecache), sync echo 1 > /proc/sys/vm/drop_caches #2.释放目录项和索引(To free dentries and inodes)