Android使用代码消除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());
} }
版权声明:本文博主原创文章,博客,未经同意不得转载。
Android使用代码消除App数据并重新启动设备的更多相关文章
- android软件简约记账app开发day04-记账页面条目的代码书写
android软件简约记账app开发day04-记账页面条目的代码书写 在前三天我们完成了基本的界面展示,从今天开始,我们进入到后台逻辑代码的编写中,今天开发记账条目的代码 我们在主页面点击记一笔图标 ...
- Android系统的五种数据存储形式(二)
之前介绍了Android系统下三种数据存储形式,今天补充介绍另外两种,分别是内容提供者和网络存储.有些人可能认为内存提供者和网络存储更偏向于对数据的操作而不是数据的存储,但这两种方式确实与数据有关,所 ...
- Android 采用post方式提交数据到服务器
接着上篇<Android 采用get方式提交数据到服务器>,本文来实现采用post方式提交数据到服务器 首先对比一下get方式和post方式: 修改布局: <LinearLayout ...
- Android实用代码七段(五)
前言 每次分享意味着每次都有进步,本系列以实用为主,欢迎和我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯 ...
- Android中突发情况Activity数据的保存和恢复
Android中突发情况Activity数据的保存和恢复 写在前面:在我们的APP使用的过程中,总有可能出现各种手滑.被压在后台.甚至突然被杀死的情况.所以对APP中一些临时数据或关键持久型数据,就需 ...
- 实现android上解析Json格式数据功能
实现android上解析Json格式数据功能,该源码转载于安卓教程网的,http://android.662p.com ,个人感觉还不错的,大家可以看看一下吧. package com.practic ...
- Android学习系列(15)--App列表之游标ListView(索引ListView)
游标ListView,提供索引标签,使用户能够快速定位列表项. 也可以叫索引ListView,有的人称也为Tweaked ListView,可能更形象些吧. 一看图啥都懂了: 1. ...
- Android 常用代码大集合 [转]
[Android]调用字符串资源的几种方法 字符串资源的定义 文件路径:res/values/strings.xml 字符串资源定义示例: <?xml version="1.0&q ...
- Android开发周报:Android L默认加密用户数据
Android开发周报:Android L默认加密用户数据 新闻 <iCloud前车之鉴,Android L默认开启加密功能>:iCloud 艳照风波再起,第二波女星照片流出,大量女星的裸 ...
随机推荐
- HDU 1661 Assigments 贪心法题解
Problem Description In a factory, there are N workers to finish two types of tasks (A and B). Each t ...
- Windows Phone开发(43):推送通知第一集——Toast推送
原文:Windows Phone开发(43):推送通知第一集--Toast推送 好像有好几天没更新了,抱歉抱歉,最近"光荣"地失业,先是忙于寻找新去处,唉,暂时没有下文.而后又有一 ...
- iOS游戏开发游戏功能之外的东西
对于一个游戏的开发,我们除了完毕游戏的功能之外,还有多少东西我们须要考虑呢? 非常多.也非常烦! 但做过一遍之后下一次就会非常easy. 都有什么东西我们想加入到游戏其中呢? (1)分享功能 (2)评 ...
- abstract修饰方法总结
abstract这种方法修饰,主要用在抽象类和抽象方法. 抽象的类是不可实例化的比如 public abstract class Test{ } 他能够含有抽象的方法 public abstract ...
- Yii/Yii2:查询返回以某特定列为索引(键)的数组
在Yii1.x中,要想查询语句返回以特定列为键(key)的数组数据,代码例如以下(下述样例以表主键为返回数组索引): $users = User::model()->findAll(array( ...
- POJ 2533-Longest Ordered Subsequence(DP)
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 34454 Acc ...
- WPF用SkewTransform画3D柱状图
WPF用SkewTransform画3D柱状图 SkewTransform主要是对控件实现一种2-D扭曲,具体内容可以查看以下链接: http://msdn.microsoft.com/zh-cn/l ...
- veridata实验例(3)验证veridata发现insert操作不会导致同步
veridata实验例(3)验证veridata发现insert操作不会导致同步 续接:<veridata实验举例(2)验证表BONUS与表SALGRADE两节点同步情况>,地址:点击打开 ...
- mysql寻呼最快
大家都知道,mysql分页写: select * from 'yourtable' limit start,rows 如今我数据库一张表里面有9969W条数据.表名叫tweet_data select ...
- 如何设置多个同一页的tinymce编辑
的页面设置多个tinymce编辑器 This example shows how to setup multiple editors on the same page and with differe ...