Android 获取Root权限之后的静默安装实现 代码示例分析
来源:互联网 发布:海思四核3798m阿里云 编辑:程序博客网 时间:2024/05/20 08:44
Adroid开发中,我们有时会遇到一些特殊功能的实现,有些功能并没有太高技术难度,但是如果之前没有接触过就需要花好多时间去研究解决。
今天,总结介绍一下 获取Root权限之后的静默安装和进门卸载功能的实现。
众所周知,Android的手机在获取Root权限之后几乎可以进行你想要的任何操作,而静默安装便是其中比较常见的一个需求:
豌豆荚、360手机助手等应用下载软件一般都有一个应用一键自动更新功能,一键批量卸载软件,他们是如何实现的呢?
一般这类软件,实现自动更新功能都需要请求root权限,在被授予了root权限后便可批量安装卸载软件,其实,这个并没有太高难度,其过程就是一个获取了Root权限之后的静默安装和卸载:
下面直接上代码:
注:
静默安装和卸载的shell 命令格式分别为:
private String cmd_install = "pm install -r +安装apk包路径";//静默安装命令
private String cmd_uninstall = "pm uninstall +程序包名";//静默卸载命令
程序代码:
import java.io.DataOutputStream;import java.io.OutputStream; import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.view.Menu;import android.view.View;import android.widget.EditText;/** * 静默安装 卸载 Demo * * @author blj * */public class MainActivity extends Activity { private EditText et_packagename; private String cmd_install = "pm install -r "; private String cmd_uninstall = "pm uninstall "; String apkLocation = Environment.getExternalStorageDirectory().toString() + "/"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_packagename = (EditText) findViewById(R.id.et_packagename); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void onClick_install(View view) { String cmd = cmd_install + apkLocation + et_packagename.getText().toString().trim(); System.out.println("静默安装命令:" + cmd); excuteSuCMD(cmd); } public void onClick_uninstall(View view) { String cmd = cmd_uninstall + et_packagename.getText().toString().trim(); // String cmd = cmd_uninstall + "com.kingsoft.website"; System.out.println("静默卸载命令:" + cmd); excuteSuCMD(cmd); } //执行shell命令 protected int excuteSuCMD(String cmd) { try { Process process = Runtime.getRuntime().exec("su"); DataOutputStream dos = new DataOutputStream( (OutputStream) process.getOutputStream()); // 部分手机Root之后Library path 丢失,导入library path可解决该问题 dos.writeBytes((String) "export LD_LIBRARY_PATH=/vendor/lib:/system/lib\n"); cmd = String.valueOf(cmd); dos.writeBytes((String) (cmd + "\n")); dos.flush(); dos.writeBytes("exit\n"); dos.flush(); process.waitFor(); int result = process.exitValue(); return (Integer) result; } catch (Exception localException) { localException.printStackTrace(); return -1; } } }
1 0
- Android 获取Root权限之后的静默安装实现 代码示例分析&&源码下载
- Android 获取Root权限之后的静默安装实现 代码示例分析
- Android获取Root权限之后的静默安装实现代码示例分析
- Android获取Root权限之后的静默安装实现代码示例分析
- Android 获取Root权限之后的静默安装实现 代码示例分析&&源码下载
- android通过获取root权限实现静默安装、
- Android Root权限静默安装
- Android Root权限静默安装
- Android Root权限静默安装
- android实现静默下载、静默安装、获取root权限并自动安装成系统APP、自启动
- 获取root权限,实现静默安装,手机截屏
- Android常用代码之APK root权限静默安装
- Android常用代码之APK root权限静默安装
- Android常用代码之APK root权限静默安装
- Android常用代码之APK root权限静默安装
- Android常用代码之APK root权限静默安装
- Android常用代码之APK root权限静默安装
- Android常用代码之APK root权限静默安装
- GetLogicalDriveStrings获取盘符
- POJ 2559 最大矩形面积 poj 3494
- 跟着辛星认识一下PHP的自动加载
- Android 异步加载网络图片并缓存到本地 软引用 学习分享
- hadoop编程小技巧(5)---自定义输入文件格式类InputFormat
- Android 获取Root权限之后的静默安装实现 代码示例分析
- android:duplicateParentState属性解释
- 数据结构之图(存储结构、遍历)
- java反射---获取类的构造方法
- Android前台画面和后台service之间通信的方法之Broadcast
- POJ 1107 W's Cipher (模拟解密)
- hdu-1406-完数习题解
- jquery validate 的remote用法
- [水]关于web地图