Android利用代码清除App的数据和重启设备

简介: /** * 利用代码清除App的数据 * 平常我们在清除App的数据时,多半在设置中找到对应的App * 然后选择其清除数据.下面给出代码实现.
	/**
	 * 利用代码清除App的数据
	 * 平常我们在清除App的数据时,多半在设置中找到对应的App
	 * 然后选择其清除数据.下面给出代码实现.
	 * 
	 * 注意事项:
	 * 1 设备需要root
	 * 2 该示例中删除的是系统级应用
	 * 2 注意在命令的末尾需要加上换行\n
	 *   这就相当于我们平时在Dos中输入命令后再换行一样.
	 *   否则命令不会被执行.
	 */
	private void cleanData(String packageName){
		try {
			System.out.println("---> 9527 开始清除 "+packageName);
			Process su= Runtime.getRuntime().exec("su");
			String cmd ="rm -r "+"/data/data/"+packageName;
			cmd = cmd + "\n exit\n";
			//以下两句代表重启设备
			//String cmd ="reboot";
			//cmd = cmd + "\n exit\n";
			su.getOutputStream().write(cmd.getBytes());
			if ((su.waitFor() != 0)) {
				throw new SecurityException();
			}
		} catch (Exception e) {
			System.out.println("---> 9527 清除数据时 e="+e.toString());
		}
		
	}


以下代码更新于:2014年8月10日00:15:36

/**
	 * 利用代码清除App的数据
	 * 平常我们在清除App的数据时,多半在设置中找到对应的App
	 * 然后选择其清除数据.下面给出代码实现.
	 * 
	 * 在上面的一段代码中把data/data/packageName下的东西全部删除了.
	 * 所以需要重启设备,因为它的lib都被删除了.
	 * 在设备重启后,会自动生成新的lib该系统应用才可以正常运行.
	 * 
	 * 为了避免重启设备,在清理数据时应该不删除lib文件夹,代码如下.
	 * 
	 * 
	 * 注意事项:
	 * 1 设备需要root
	 * 2 该示例中删除的是系统级应用
	 * 2 注意在命令的末尾需要加上换行\n
	 *   这就相当于我们平时在Dos中输入命令后再换行一样.
	 *   否则命令不会被执行.
	 */
	private void cleanData(String packageName){
		try {
			Process su= Runtime.getRuntime().exec("su");
			String cmd = "cd /data/data/"+packageName+";"+"rm -r `ls|grep -v lib`";
			System.out.println("------cmd="+cmd);
			cmd = cmd + "\n exit\n";
			su.getOutputStream().write(cmd.getBytes());
			if ((su.waitFor() != 0)) {
				throw new SecurityException();
			}
		} catch (Exception e) {
			System.out.println("---> 9527 清除数据时 e="+e.toString());
		}
		
	}


相关文章
|
16天前
|
消息中间件 网络协议 Java
Android 开发中实现数据传递:广播和Handler
Android 开发中实现数据传递:广播和Handler
16 1
|
1天前
|
Ubuntu Android开发 数据安全/隐私保护
【Android平板编程】远程Ubuntu服务器Code-Server编程写代码
【Android平板编程】远程Ubuntu服务器Code-Server编程写代码
|
2天前
|
Java Android开发
Android 长按桌面显示菜单的代码
Android 长按桌面显示菜单的代码
7 0
|
2天前
|
Java Android开发
Android 切换壁纸代码流程追踪
Android 切换壁纸代码流程追踪
10 0
|
2天前
|
存储 JavaScript 前端开发
uni-app 从vue3项目创建到Pinia管理数据全局使用 持久化存储数据 详细教程
uni-app 从vue3项目创建到Pinia管理数据全局使用 持久化存储数据 详细教程
|
2天前
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
10 0
|
2天前
|
Android开发
Android APP 隐藏系统软键盘的方法
Android APP 隐藏系统软键盘的方法
9 0
|
2天前
|
Android开发
Android修改默认system/bin/下可执行程序拥有者和权限,使用实例,只有root和系统app权限才能执行某个命令。
Android修改默认system/bin/下可执行程序拥有者和权限,使用实例,只有root和系统app权限才能执行某个命令。
11 0
|
2天前
|
Java API Android开发
Android系统升级A/B分区OTA升级应用层调用UpdateEngine代码
Android系统升级A/B分区OTA升级应用层调用UpdateEngine代码
7 0
|
2天前
|
Java Linux API
统计android设备的网络数据使用量
统计android设备的网络数据使用量
12 0