通过java代码代替adb命令
增加工具类
ShellUtils.javaJava
使用
以目前自己的几个场景举下例子
(1) 拷贝文件
原理是adb执行命令:
mount -o rw,remount /system
cp /mnt/sdcard/xx.apk /system/app/
Java代码如下:
String[] commands = new String[] { "mount -o rw,remount /system", "cp /mnt/sdcard/xx.apk /system/app/" };
CommandResult result = ShellUtils.execCommand(commands, true);
注意一般拷贝文件是不需要root的,上面用root是因为需要拷贝到/system/app/下面
(2) 静默安装和卸载
这个很多朋友已经用过了Android root权限静默安装或卸载应用,原理是执行命令:pm install apkFilePath及pm uninstall packageName
具体代码可见:PackageUtils installSilent(Context context, String filePath, String pmParams)
(3) Android修改hosts文件
原理是执行命令:
mount -o rw,remount /system
echo “127.0.0.1 localhost” > /etc/hosts
echo “185.31.17.184 github.global.ssl.fastly.net” >> /etc/hosts
chmod 644 /etc/hosts
代码如下:
Java
List<String> commnandList = new ArrayList<String>();
commnandList.add("mount -o rw,remount /system");
commnandList.add("echo \"127.0.0.1 localhost\" > /etc/hosts");
commnandList.add("echo \"185.31.17.184 github.global.ssl.fastly.net\" >> /etc/hosts");
commnandList.add("chmod 644 /etc/hosts");
CommandResult result = ShellUtils.execCommand(commnandList, true);
用echo命令改hosts文件很牛逼哦,不用重启可以直接生效的哦。
原文地址:http://blog.csdn.net/wang2470198567/article/details/42872639