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());
		}
		
	}


相关文章
|
1月前
|
XML Java 数据库
安卓项目:app注册/登录界面设计
本文介绍了如何设计一个Android应用的注册/登录界面,包括布局文件的创建、登录和注册逻辑的实现,以及运行效果的展示。
119 0
安卓项目:app注册/登录界面设计
|
19小时前
|
JavaScript C++ 容器
【Azure Bot Service】部署NodeJS ChatBot代码到App Service中无法自动启动
2024-11-12T12:22:40.366223350Z Error: Cannot find module 'dotenv' 2024-11-12T12:40:12.538120729Z Error: Cannot find module 'restify' 2024-11-12T12:48:13.348529900Z Error: Cannot find module 'lodash'
21 11
|
14天前
|
机器人 Shell Linux
【Azure Bot Service】部署Python ChatBot代码到App Service中
本文介绍了使用Python编写的ChatBot在部署到Azure App Service时遇到的问题及解决方案。主要问题是应用启动失败,错误信息为“Failed to find attribute 'app' in 'app'”。解决步骤包括:1) 修改`app.py`文件,添加`init_func`函数;2) 配置`config.py`,添加与Azure Bot Service认证相关的配置项;3) 设置App Service的启动命令为`python3 -m aiohttp.web -H 0.0.0.0 -P 8000 app:init_func`。
|
2月前
|
存储 开发工具 Android开发
使用.NET MAUI开发第一个安卓APP
【9月更文挑战第24天】使用.NET MAUI开发首个安卓APP需完成以下步骤:首先,安装Visual Studio 2022并勾选“.NET Multi-platform App UI development”工作负载;接着,安装Android SDK。然后,创建新项目时选择“.NET Multi-platform App (MAUI)”模板,并仅针对Android平台进行配置。了解项目结构,包括`.csproj`配置文件、`Properties`配置文件夹、平台特定代码及共享代码等。
123 2
|
26天前
|
存储 大数据 数据库
Android经典面试题之Intent传递数据大小为什么限制是1M?
在 Android 中,使用 Intent 传递数据时存在约 1MB 的大小限制,这是由于 Binder 机制的事务缓冲区限制、Intent 的设计初衷以及内存消耗和性能问题所致。推荐使用文件存储、SharedPreferences、数据库存储或 ContentProvider 等方式传递大数据。
39 0
|
2月前
|
XML Android开发 数据格式
🌐Android国际化与本地化全攻略!让你的App走遍全球无障碍!🌍
在全球化背景下,实现Android应用的国际化与本地化至关重要。本文以一款旅游指南App为例,详细介绍如何通过资源文件拆分与命名、适配布局与方向、处理日期时间及货币格式、考虑文化习俗等步骤,完成多语言支持和本地化调整。通过邀请用户测试并收集反馈,确保应用能无缝融入不同市场,提升用户体验与满意度。
85 3
|
1月前
|
安全 网络安全 Android开发
深度解析:利用Universal Links与Android App Links实现无缝网页至应用跳转的安全考量
【10月更文挑战第2天】在移动互联网时代,用户经常需要从网页无缝跳转到移动应用中。这种跳转不仅需要提供流畅的用户体验,还要确保安全性。本文将深入探讨如何利用Universal Links(仅限于iOS)和Android App Links技术实现这一目标,并分析其安全性。
173 0
|
2月前
|
XML 数据库 Android开发
10分钟手把手教你用Android手撸一个简易的个人记账App
该文章提供了使用Android Studio从零开始创建一个简单的个人记账应用的详细步骤,包括项目搭建、界面设计、数据库处理及各功能模块的实现方法。
|
6月前
|
存储 算法 安全
AVB数据解析:Android verified boot 2.0 vbmeta 数据结构解析
AVB数据解析:Android verified boot 2.0 vbmeta 数据结构解析
594 0
|
存储 Android开发
【Android 逆向】函数拦截 ( GOT 表数据结构分析 | 函数根据 GOT 表进行跳转的流程 )
【Android 逆向】函数拦截 ( GOT 表数据结构分析 | 函数根据 GOT 表进行跳转的流程 )
156 0
【Android 逆向】函数拦截 ( GOT 表数据结构分析 | 函数根据 GOT 表进行跳转的流程 )