如何在android应用里执行adb 命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在android应用里执行adb 命令相关的知识,希望对你有一定的参考价值。
希望写一个apk,该apk能执行一些adb 命令,代码里如何实现?
比如界面里有一个按钮,点了该按钮以后就执行adb命令,如何在click()里写这些adb命令
在电脑上我执行
adb shell
insmod /system/lib/modules/wlan.ko
我现在需要在应用里也达到同样效果,但是
执行
proc = Runtime.getRuntime().exec(“insmod /system/lib/modules/wlan.ko”);
num = proc.waitFor();
num的返回值是255,也就是说没有执行成功,请问如何修改,是否是因为权限问题还是说缺少adb shell这样的类似操作?
ADB接口的作用主要是让电脑等其它设备控制安卓系统的,所以,称为“中间桥”;
不是为安卓自已用的,自已可直接执行称为SHELL,这与ADB无关。
所以安卓JAVA不一定有封装的ADB类。电脑上有ADB服务程序,端口5037,
它是中间程序,与安卓系统上守护进程(Daemon)通讯。
如果要在自已的手机上应该也能执行adb命令,应该直接跟守护进程
(Daemon)通讯了。百度上可以搜到的方法并不满意。
楼主用exec执行CMD命令,这已不是ADB接口了,这是系统的SHELL了!!!
自已用socket/tcp直接发命令效果不知怎样,地址用127.0.0.1, 安卓daemon进程的端口
5555 是奇数开始。
。。。 。至于ADB对话协议百度可以搜到,建议试一试。
楼上其实要的是SHELL,并不是ADB,我搜到一篇文章,但我并没有试过,
是否需要ROOT,不得而知,附上,你试一试 ,回个话。
满意就采纳!
我修改了提问,是否有解决办法?
追答楼主其实要的是SHELL,并不是ADB,我搜到一篇文章,但我并没有试过,
是否需要ROOT,不得而知,
2 如果你的apk想执行adb命令,需要和adbd建立连接,理论上是可以实现的。
3 最简单的办法是你可以参考SL4A(Scripting Layer for android)项目,SL4A支持Python、Perl、JRuby、Lua、BeanShell、javascript、Tcl、shell等脚本的执行。其中shell的实现完全可以替代adb。追问
我修改了提问,是否有解决办法?
追答你可以看一下你的apk的UID是不是0,我认为是权限问题,而且我记得android的shell不能执行insmod,需要有busybox才行。
参考技术B最简单的办法是你可以参考SL4A(Scripting Layer for Android)项目,SL4A支持Python、Perl、JRuby、Lua、BeanShell、JavaScript、Tcl、shell等脚本的执行。其中shell的实现完全可以替代adb。
参考技术C adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具所以adb命令能够直接在手机内部运行吗???????追问
麻烦看清我的问题再回答
追答看清了呀,我不认为能够在android程序中执行adb命令。android自身应该没有adb程序,你如何让它运行adb命令?
还有你【比如】中写的应该可以执行linux命令(部分,还不是全部),不是adb命令。。。
我修改了提问,是否有解决办法?
怎么在Android Studio中执行adb命令
android stuidio中默认集成了命令行窗口,你可以在下方的terminal中输入指令就可以使用shell指令。 参考技术A 😊以上是关于如何在android应用里执行adb 命令的主要内容,如果未能解决你的问题,请参考以下文章