Android bat批处理自动执行adb shell命令
来源:互联网 发布:美恰软件 编辑:程序博客网 时间:2024/05/21 19:49
1 问题
最近在做app的时候,要将Android手机中的Sqlite数据库导入到pc上,查看里面的数据,然后每次去app的目录下面去找出数据库,然后在adb shell中复制到sdCard,然后退出shell,再用adb pull命令拉到pc上,非常麻烦,一不小心就出错了,多搞几次就崩溃了。作为程序猿当然不能这么干啦。
当然你可以用DDMS,可视化操作导出数据库,但是且不谈真机上DDMS根本没有权限看到数据库,作为一个程序猿,你需要更优雅的解决办法
2 手动操作
下面先讲手动操作,如何将Android数据库导出到Windows电脑上
首先进入命令行cmd,然后一步一步执行下面命令:
adb shell //进入shellsu - //切换到root命令cp /data/data/com.demo.app/databases/db_test /mnt/sdcard // 复制数据库到sdCard上,否则无法拉到pc上 exit //退出rootexit //退出shell,回到cmdadb pull /mnt/sdcard/db_test C:\Users\Administrator\Desktop // 将数据库拉到桌面上
- 1
- 2
- 3
- 4
- 5
- 6
注意:这里必须先将数据库复制到sdCard卡上,然后再从sdCard上拉到电脑上,因为adb pull没有root权限,没有办法直接从/data/data目录下面去拉数据库
好了,通过上述操作就可以把demoapp下面的db_test数据库拉到pc上,是不是巨麻烦,下面来讲批处理操作
3 自动操作
bat文件可以自动执行一批dos命令,不用一个一个输入。具体方法是:
新建一个txt文件a.txt,输入上面的手动命令,注意在bat中注释符号是”rem”,需要将所有的”//”换成”rem”,然后修改文件名为a.bat,直接双击运行,然后。。。。呵呵
咋不按套路出牌呢,为啥卡在这儿呢?这是因为一旦进入shell,bat批处理命令就失效了,也就是卡在了shell里面,不会继续往下执行了,所以,正确的写法是:
adb shell "su -c 'cp /data/data/com.demo.app/databases/db_test /mnt/sdcard'"adb pull /mnt/sdcard/db_test C:\Users\Administrator\Desktop
- 1
- 2
注意:adb shell “su -c ‘shell中要执行的命令’ “
这样就使得adb shell具有了root权限
再也不用去shell里面敲命令了,双击一键完成,是不是很优雅呢
4 总结
其实归结起来就是如何让adb shell执行时拥有root权限:
adb shell “su -c ‘your command’ “
另外,真机必须root
- Android bat批处理自动执行adb shell命令
- Android bat批处理自动执行adb shell命令
- 【Android】Windows批处理bat,执行adb shell指令
- BAT脚本如何自动执行 adb shell 以后的命令
- BAT脚本如何自动执行 adb shell 以后的命令
- bat脚本如何自动执行 adb shell 以后的命令
- BAT脚本如何自动执行 adb shell 以后的命令
- bat批处理循环执行adb命令
- Android Java代码执行adb Shell命令
- Android Java代码执行adb Shell命令
- android apk 怎么执行adb shell命令
- Android Java代码执行adb Shell命令
- android程序执行adb shell命令
- batT脚本如何自动执行 adb shell 以后的命令(android抓包)
- Android:Android.bat批处理命令
- 【Shell DOS BAT文件】批处理命令
- bat 自动执行 SVN 命令
- C#执行adb shell命令
- LMA和VMA
- 前端小白--CSS实现水平垂直居中
- FGSM(Fast Gradient Sign Method)生成对抗样本(32)---《深度学习》
- Vegas文字投影的模糊效果怎么制作?
- Unity响应Android的返回键,Home键
- Android bat批处理自动执行adb shell命令
- NFS开发环境搭建
- ELK=Elasticsearch+Logstash+kibana
- Ajax+asp.net无刷新验证用户名的几种方法
- Java基础之final
- 记一次才过的坑:label嵌套input
- Java正六面体4种颜色染色方式
- String类format
- python常用模块安装