懂视移动端 视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501
当前位置: 首页 - 手机 - 正文

android shell命令

来源:懂视网 责编:小OO 时间:2020-04-03 21:01:16
导读android shell命令,ADB接口的作用主要是让电脑等其它设备控制安卓系统的,所以,称为“中间桥”;不是为安卓自已用的,自已可直接执行称为SHELL,这与ADB无关。所以安卓JAVA不一定有封装的ADB类。电脑上有ADB服务程序,端口5037,它是中间程序,与安卓系统上守护在这里教大家怎么在命令模式下使用adb。不会的看一下啊方法打开winows菜单,输入cmd命令,点击确定,进入

ADB接口的作用主要是让电脑等其它设备控制安卓系统的,所以,称为“中间桥”; 不是为安卓自已用的,自已可直接执行称为SHELL,这与ADB无关。 所以安卓JAVA不一定有封装的ADB类。电脑上有ADB服务程序,端口5037, 它是中间程序,与安卓系统上守护

在这里教大家怎么在命令模式下使用adb。不会的看一下啊

方法

打开winows菜单,输入cmd命令,点击确定,进入命令模式下

如果你配置了adb的环境变量 那么你连接手机以后,直接执行 adb shell 则进入命令模式了 如果你没有配置环境变量,那么,你需要进入sdkplatform-tools目录下 再执行 adb shell

输入命令 D:(这里输入的D表示你的sdk存放的盘下)

Android中执行adb shell命令的方式如下: /** * 执行一个shell命令,并返回字符串值 * * @param cmd * 命令名称&参数组成的数组(例如:{"/system/bin/cat", "/proc/version"}) * @param workdirectory * 命令执行路径(例如:"system/bin/")

然后回车输入cd

android虽说是linux内核。但是实际上包含的linux命令只有很小一部分,很多连grep都没有。 arp应该也没有内置进去,只有下载命令后push进去了。。

然后选择你sdk路径,复制路径

android系统执行shell脚本,需要首先确认用户具有修改shell的权限,使用 process来执行指令,如下代码: public void execShell(String cmd){ try{ //权限设置 Process p = Runtime.getRuntime().exec("su"); //开始执行shell脚本 //获取输出流

鼠标点击cmd,选择编辑,选择粘贴 将复制的路径粘贴到命令行 回车。

看看你java运行使用的是哪个客户,一般是当前用户,你建一个这个用户有全部权限的目录“u”,然后执行使用exec("chmod 777 /u/a.sh");exec("/u/a.sh")

然后输入命令adb start-service 打开adb。出现如图所示,表示adb服务开启成功,就可以使用adb命令了。

package net.gimite.nativeexe; import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import j

使用adb  shell 命令。

这是方法,添加到你的应用程序中即可,比较简陋,呵呵! public void execShell(String cmd){ try{ //权限设置 Process p = Runtime.getRuntime().exec("su"); //获取输出流 OutputStream outputStream = p.getOutputStream(); DataOutputStream

扩展阅读,以下内容您可能还感兴趣。

android shell command有哪些

Android执行shell命令

一、方法

1. /**

2. * 执行一个shell命令,并返回字符串值

3. *

4. * @param cmd

5. * 命令名称&参数组成的数组(例如:{"/system/bin/cat", "/proc/version"})

6. * @param workdirectory

7. * 命令执行路径(例如:"system/bin/")

8. * @return 执行结果组成的字符串

9. * @throws IOException

10. */

11. public static synchronized String run(String[] cmd, String workdirectory)

12. throws IOException {

13. StringBuffer result = new StringBuffer();

14. try {

15. // 创建操作系统进程(也可以由Runtime.exec()启动)

16. // Runtime runtime = Runtime.getRuntime();

17. // Process proc = runtime.exec(cmd);

18. // InputStream inputstream = proc.getInputStream();

19. ProcessBuilder builder = new ProcessBuilder(cmd);

20.

21. InputStream in = null;

22. // 设置一个路径(绝对路径了就不一定需要)

23. if (workdirectory != null) {

24. // 设置工作目录(同上)

25. builder.directory(new File(workdirectory));

26. // 合并标准错误和标准输出

27. builder.redirectErrorStream(true);

28. // 启动一个新进程

29. Process process = builder.start();

30.

31. // 读取进程标准输出流

32. in = process.getInputStream();

33. byte[] re = new byte[1024];

34. while (in.read(re) != -1) {

35. result = result.append(new String(re));

36. }

37. }

38. // 关闭输入流

39. if (in != null) {

40. in.close();

41. }

42. } catch (Exception ex) {

43. ex.printStackTrace();

44. }

45. return result.toString();

46. }

二、用途

执行Linux下的top、ps等命令,这些命令你也通过adb可以执行查看效果。

1)top命令如下:

1. adb shell

2. $ top -h

3. top -h

4. Usage: top [-m max_procs] [-n iterations] [-d delay] [-s sort_column] [-t] [-h]

5. -m num Maximum number of processes to display. // 最多显示多少个进程

6. -n num Updates to show before exiting. // 刷新次数

7. -d num Seconds to wait between updates. // 刷新间隔时间(默认5秒)

8. -s col Column to sort by <cpu,vss,rss,thr> // 按哪列排序

9. -t Show threads instead of processes. // 显示线程信息而不是进程

10. -h Display this help screen. // 显示帮助文档

11. $ top -n 1

12. top -n 1

就不把执行效果放上来了,总之结果表述如下:

1. User 35%, System 13%, IOW 0%, IRQ 0% // CPU占用率

2. User 109 + Nice 0 + Sys 40 + Idle 156 + IOW 0 + IRQ 0 + SIRQ 1 = 306 // CPU使用情况

3.

4. PID CPU% S #THR VSS RSS PCY UID Name // 进程属性

5. xx xx% x xx xx xx xx xx xx

6.

7. CPU占用率:

8. User 用户进程

9. System 系统进程

10. IOW IO等待时间

11. IRQ 硬中断时间

12.

13. CPU使用情况(指一个最小时间片内所占时间,单位jiffies。或者指所占进程数):

14. User 处于用户态的运行时间,不包含优先值为负进程

15. Nice 优先值为负的进程所占用的CPU时间

16. Sys 处于核心态的运行时间

17. Idle 除IO等待时间以外的其它等待时间

18. IOW IO等待时间

19. IRQ 硬中断时间

20. SIRQ 软中断时间

21.

22. 进程属性:

23. PID 进程在系统中的ID

24. CPU% 当前瞬时所以使用CPU占用率

25. S 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。

26. #THR 程序当前所用的线程数

27. VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

28. RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存)

29. PCY OOXX,不知道什么东东

30. UID 运行当前进程的用户id

31. Name 程序名称android.process.media

32.

33. // ps:内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

34. // PSS Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)

35. // USS Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

在附件Android系统->android top.txt文件内,自个总结的。

2)执行代码

1. // top命令

2. public static final String[] TOP = { "/system/bin/top", "-n", "1" };

3.

4. // 现在执行top -n 1,我们只需要第二行(用第二行求得CPU占用率,精确数据)

5. // 第一行:User 35%, System 13%, IOW 0%, IRQ 0% // CPU占用率

6. // 第二行:User 109 + Nice 0 + Sys 40 + Idle 156 + IOW 0 + IRQ 0 + SIRQ 1 = 306

7. // // CPU使用情况

8. public static synchronized String run(String[] cmd) {

9. String line = "";

10. InputStream is = null;

11. try {

12. Runtime runtime = Runtime.getRuntime();

13. Process proc = runtime.exec(cmd);

14. is = proc.getInputStream();

15.

16. // 换成BufferedReader

17. BufferedReader buf = new BufferedReader(new InputStreamReader(is));

18. do {

19. line = buf.readLine();

20. // 前面有几个空行

21. if (line.startsWith("User")) {

22. // 读到第一行时,我们再读取下一行

23. line = buf.readLine();

24. break;

25. }

26. } while (true);

27.

28. if (is != null) {

29. buf.close();

30. is.close();

31. }

32. } catch (IOException e) {

33. e.printStackTrace();

34. }

35. return line;

36. }

37.

38. // 获取指定应用的top命令获取的信息

39. // PID CPU% S #THR VSS RSS PCY UID Name // 进程属性

40. // 如果当前应用不在运行则返回null

41. public static synchronized String run(String[] cmd, String pkgName) {

42. String line = null;

43. InputStream is = null;

44. try {

45. Runtime runtime = Runtime.getRuntime();

46. Process proc = runtime.exec(cmd);

47. is = proc.getInputStream();

48.

49. // 换成BufferedReader

50. BufferedReader buf = new BufferedReader(new InputStreamReader(is));

51. do {

52. line = buf.readLine();

53. // 读取到相应pkgName跳出循环(或者未找到)

54. if (null == line || line.endsWith(pkgName)) {

55. break;

56. }

57. } while (true);

58.

59. if (is != null) {

60. buf.close();

61. is.close();

62. }

63. } catch (IOException e) {

64. e.printStackTrace();

65. }

66. return line;

67. }

--------------------------------------------

PID:进程在系统中的ID

CPU% - 当前瞬时所以使用CPU占用率

#THR - 程序当前所用的线程数

UID - 运行当前进程的用户id

Name - 程序名称org.xmpp.app

VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)

PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)

USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

Android 讲述执行怎样执行shell脚本

android系统执行shell脚本,需要首先确认用户具有修改shell的权限,使用 process来执行指令,如下代码:public void execShell(String cmd){

try{

//权限设置

Process p = Runtime.getRuntime().exec("su"); //开始执行shell脚本

//获取输出流

OutputStream outputStream = p.getOutputStream();

DataOutputStream dataOutputStream=new DataOutputStream(outputStream);

//将命令写入

dataOutputStream.writeBytes(cmd);

//提交命令

dataOutputStream.flush();

//关闭流操作

dataOutputStream.close();

outputStream.close();

}

catch(Throwable t)

{

t.printStackTrace();

}

}

android程序执行shell命令是shell权限吗,如果不是该怎么用shell权限来执行可执行文件?

在android设备上直接运行adb连接设备本身,就可以获得shell用户身份。

PS.楼上说的shell是一个程序吧,android系统有个用户名也叫"shell"

android shell脚本

#! /bin/sh

mount -o remount,rw -t yaffs2 /dev/block/mtdblock1 /system

cat /data/mydata/Manager.apk > /system/app/Manager.apk

chmod 755 /system/aapp/Manager.apk

mount -o remount,ro -t yaffs2 /dev/block/mtdblock1 /system

reboot

一般手机上系统mtd分区为/dev/block/mtdblock1

还要重启,如果不重启有两种现象

1.文件没有显示在应用程序列表

2.文件安装在Data区而不是system区

进入android的shell后,接下来的批处理命令就不执行了,寻求帮助

与其在折腾在bat里执行shell,不如打开一步步执行脚本里面的语句,分支的根据情况选就好了,因为你现在是在一个模拟的shell下的对吧?追问非模拟shell,是android 系统手机的shell。众所周知,android系统是linux内核。

因为进入shell后,还有很多命令要执行,而这整个操作我每天要做很多次,每次都第一条接一条的手打,太繁琐,效率太差,因此想有个办法解决

网上牛人众多,相信一定可以找出办法的追答那把脚本拷到手机上,然后在手机上安装一个叫终端模拟器的东西,在手机上就能进终端,然后在手机里直接执行脚本就好了,为什么要弄到电脑上呢...

而且我在电脑上进安卓shell是通过adb命令进的,那个应该是模拟出来的,不知道你是怎么进去的?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:0731-84117792 E-MAIL:11247931@qq.com

  • 热门焦点

最新推荐

猜你喜欢

热门推荐

excel排名次函数公式,中国式排名怎么弄 cad中如何同时标注x和y坐标的坐标数据 错误代码是0x80070035找不到网络路径的解决办法是什么 手机支付宝花呗如何关闭 华为mate 10&mate 10 pro新机导入数据/手机克隆如何使用 excel函数怎么用 怎么把excel表格导入word win10教程:[10]win10如何关闭uac控制 淘宝手机端如何设置商品(店铺)优惠卷 如何下载txt小说 使用驱动器中的光盘之前需要将其格式化应该怎么弄 需要新应用打开此ms-windows-store (win10正解是什么) win10任务栏图标显示、隐藏的设置方法是什么 如何在电脑上玩手机游戏 photoshop软件中的仿制图章工具如何操作和使用 怎么更改qq密保问题 matlab怎么读取excel文件中的数据 excel表格打印时出现好多分页如何处理 怎么使用cad中的堆叠功能 怎么批量删除说说 qq邮箱如何开启smtp,imap服务 怎么测试网络延迟 电脑win7系统自带画图软件使用技巧是什么 怎么让excel表打印每页都显示表头 搜狗输入法中英文切换怎么设置 wifi从哪扫二维码连接 matlab if 条件语句 用法以及实例是什么 ppt幻灯片如何将多张图片设置同样大小 相同尺寸 换新手机qq同步助手怎么用 cad缺少shx文件如何操作 怎么解决excel中合计数字与实际数字差一分钱 怎么设置打印标题 绝不可错过的9款app自建制作工具是什么 手机怎么批量删除微博 教你怎么压缩多张图片文件 普通电脑如何在线观看红蓝3d电影 微信手机通讯录匹配如何关闭 如何用电脑发传真 cad单位设置方法是什么 iserror函数的使用方法是什么
Top