Runtime.exec()小结

Runtime.exec()小结
发表于3 天前  ⁄ 编程开发  ⁄ 暂无评论

按项目需求,把终端系统logcat日志写到SD卡下的某个文件,方便拷贝/查看。以下是利用Runtime.exec()函数执行logcat指令来实现的小结。

一、exec介绍:

可以使用exec的重载形式有好几种,常用的有:

public Process exec(String command)

public Process exec(String[] command)

public Process exec(String command,   String[] envp, File dir)
            throws IOException在有指定环境和工作目录的独立进程中执行指定的字符串命令。
这是一个很有用的方法。对于 exec(command, envp, dir) 形式的调用而言,其行为与调用 exec(cmdarray, envp, dir) 完全相同,其中 cmdarray 是 command 中所有标记的数组。
更准确地说,可以使用通过调用 new StringTokenizer(command) 创建的 StringTokenizer 将 command 字符串拆解成标记,调用时不对字符类别做进一步的修改。然后将标记生成器所生成的标记以相同的顺序放入新的字符串数组 cmdarray 中。
参数:
command - 一条指定的系统命令。
envp - 字符串数组,其中每个元素的环境变量的设置格式为 name=value;如果子进程应该继承当前进程的环境,或该参数为 null。
dir - 子进程的工作目录;如果子进程应该继承当前进程的工作目录,则该参数为 null。
返回:
一个新的 Process 对象,用于管理子进程
抛出:
SecurityException - 如果安全管理器存在,并且其 checkExec 方法不允许创建子进程
IOException - 如果发生 I/O 错误
NullPointerException - 如果 command 为 null,或者 envp 的某个元素为 null
IllegalArgumentException - 如果 command 为空

二、注意点:

    1、exec的String command只能执行一条指令,如果需要执行多条指令需要放入sh脚本文件中执行或者调用多次exec函数。

    2、exec的String command不支持通配符(*)。

    3、有些指令需要指定File dir(工作目录)。

    4、默认的工作目录是根目录/。(通过执行指令pwd可查到)

    5、导出logcat日志到SD卡ziyouku目录,参数:("logcat -df logcat.log",new File("/mnt/sdcard/ziyouku/"))

    6、logcat读取权限:<uses-permission android:name="android.permission.READ_LOGS" />

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值