仿360一键清理实现(二)

---------------------------------------------------------------------

编译环境:Android 4.0

测试环境:Android 4.2.2模拟器

屏幕分辨率:480*800

作者:疯狂小强

注意:

1.资源采集于网上,如有侵权请及时联系,以便处理。

2.代码仅用于学习交流,请勿商业化。

--------------------------------------------------------------------

仿360一键清理实现(一)已经介绍了“一键清理”过程的实现,本节介绍白名单编辑。

先上效果图:

关键就是获取APP的信息

获取到信息后就简单了。

代码如下:

private List<AppItem> getAppItem()
	{
		List<AppItem> appList = new ArrayList<AppItem>(); //用来存储获取的应用信息数据
		List<AppItem> appListSystem = new ArrayList<AppItem>();
		List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);
		for(int i=0;i<packages.size();i++)
		{
			PackageInfo packageInfo = packages.get(i);
			//非系统应用加上下面条件
			//packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0
			if(!packageInfo.packageName.equals("android")&&!packageInfo.packageName.equals("com.tang.demo360"))
			{
				AppItem item =new AppItem();
				item.setAppName(packageInfo.applicationInfo.loadLabel(getPackageManager()).toString());
				item.setPkgName(packageInfo.packageName);
				item.setIcon(packageInfo.applicationInfo.loadIcon(getPackageManager()));
				if((packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0)
				{
					appList.add(item);
				}
				else
				{
					appListSystem.add(item);
				}
			}
		}
		appList.addAll(appListSystem);
		return appList;
	}

packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0是判断是否是系统应用的条件

启动一个线程负责获取数据:

new Thread(new Runnable() {

			@Override
			public void run() {
				// TODO Auto-generated method stub
				data = getAppItem();
				handler.sendEmptyMessage(DATA_OK);
			}
		}).start();

并且用handler通知主线程更新UI.

点击ListItem后会加入白名单或者是从白名单中移除:

public class MSaveList extends ArrayList<String>
{
	private SharedPreferences share =null;
	public MSaveList (SharedPreferences share)
	{
		this.share = share;
	}
	public void save()
	{
		String temp = "";
		for(int i = 0;i<size(); i++)
		{
			temp =temp+get(i)+"/";
		}
		Log.i("AAA", "save:"+temp);
		SharedPreferences.Editor editor = share.edit();
		editor.putString("white_list", temp);
		editor.commit();
	}

	public List<String> load()
	{
		String temp = share.getString("white_list", "");
		if(temp.equals(""))
			return null;
		String s[] = temp.split("/");
		Log.i("AAA", "load:"+temp);
		for(int i = 0;i<s.length;i++)
		{
			add(s[i]);
		}
		return this;
	}
}

仿360一键清理实现(二)

时间: 2024-08-29 14:54:04

仿360一键清理实现(二)的相关文章

wing带你玩转自定义view系列(1) 仿360内存清理效果

本篇是接自 手把手带你做自定义view系列 宗旨都是一样,带大家一起来研究自定义view的实现,与其不同的是本系列省去了简单的坐标之类的讲解,重点在实现思路,用简洁明了的文章,来与大家一同一步步学习. 转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50500479 上一篇介绍了:神奇的贝塞尔曲线,这篇就来研究其应用. 我自己的学习方法是:学习了贝塞尔曲线之后,去研究他的规律,然后开始联想有没有见过类似的效果,最后自己去研究实现,在没

慎用“360安全卫士”一键清理功能

一个同事的计算机安装的Windows 10操作系统,C盘是100GB左右,现在磁盘空间已经占满,求助于我.我删除了一些无用软件.将虚拟内存文件设置在D盘(如图1所示).使用Windows的"磁盘清理"功能之后(如图2所示),只清理出了几GB的空间,效果不大.我想起"360安全卫士"有个一键清理功能,可以清除无用的垃圾,就想用这个软件清理一下.在帮助别人之后,我想我自己的计算机也很长时间没有清理了,同时也想测试一下这个软件的效果,就在自己的计算机上安装了"3

前端的小玩意(9.4)——做一个仿360工具箱的web页面(自动生成所有图标,对图标添加响应逻辑)

前端的小玩意(9.1)--做一个仿360工具箱的web页面(Tab按钮切换) http://blog.csdn.net/qq20004604/article/details/52216203 前端的小玩意(9.2)--做一个仿360工具箱的web页面(全部工具里面的模板) http://blog.csdn.net/qq20004604/article/details/52226223 前端的小玩意(9.3)--做一个仿360工具箱的web页面(我的工具里的模板和样式) http://blog.c

Android 一键清理动画

版本:1.0 日期:2014.7.29 2014.7.30 版权:© 2014 kince 转载注明出处 一键清理是很多Launcher都会带有的功能,其效果也比较美观.实现方式也许有很多中,其中常见的是使用图片drawable来完成的,具体可以参考这篇文章:模仿实现360桌面水晶球式的一键清理特效.本文另辟蹊径,使用自定义View来完成同样的效果,性能.效率更高. ProgressWheel相信很多人并不陌生,我参考了其中一些代码.有意思的是,看完它的代码,发现其中隐藏了没有使用的矩形进度条,

前端的小玩意(9.3)——做一个仿360工具箱的web页面(我的工具里的模板和样式)

前端的小玩意(9.1)--做一个仿360工具箱的web页面(Tab按钮切换) http://blog.csdn.net/qq20004604/article/details/52216203 前端的小玩意(9.2)--做一个仿360工具箱的web页面(全部工具里面的模板) http://blog.csdn.net/qq20004604/article/details/52226223 (三)我的工具页面布局 如图: 首先将其分为二部分: 第一部分是上方整体红色方框区域: 包含若干个独立按钮,按钮

Android静默安装实现方案,仿360手机助手秒装和智能安装功能

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/47803149 之前有很多朋友都问过我,在Android系统中怎样才能实现静默安装呢?所谓的静默安装,就是不用弹出系统的安装界面,在不影响用户任何操作的情况下不知不觉地将程序装好.虽说这种方式看上去不打搅用户,但是却存在着一个问题,因为Android系统会在安装界面当中把程序所声明的权限展示给用户看,用户来评估一下这些权限然后决定是否要安装该程序,但如果使用了静默安装的方式,也就没

Android插件化的思考——仿QQ一键换肤,思考比实现更重要!

Android插件化的思考--仿QQ一键换肤,思考比实现更重要! 今天群友希望写一个关于插件的Blog,思来想去,插件也不是很懂,只是用大致的思路看看能不能模拟一个,思路还是比较重要的,如果你有兴趣的话,也可以加群:555974449,你也可以说出你想看的Blog哦,嘿嘿!好的,不多说,我们进入正题: 关于QQ的换肤,他们的实现思路我不是很清楚,但是你可以看一下这张换肤的截图 我们想使用哪个主题就直接下载就好了,这一实现的过程我们大致的可以猜想: 首选是下载到本地指定文件夹,然后通过插件加载到我

基于jquery仿360网站图片选项卡切换代码

今天给大家分享一款基于jquery仿360网站图片选项卡切换代码.这款实例适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="slides"> <div class="in widget-slide" data-jss="tabSelector : '.slide-nav li', viewSe

仿360加速球。(实现内存释放)

FloatCircleView的实现自定义view 创建WindowManager窗体管理类管理悬浮小球和底部大窗体 MyProgreeView手机底部窗体中小球的实现 FloatMenuView的实现 MyFloatService MainActivity的实现 现在手机上的悬浮窗应用越来越多,对用户来说,最常见的悬浮窗应用就是安全软件的悬浮小控件,拿360卫士来说,当开启悬浮窗时,它是一个小球,小球可以拖动,当点击小球出现大窗体控件,可以进行进一步的操作如:释放手机内存等等.于是借着慕课网的