Android中使用Java的 ProcessBuilder & Process

ProcessBuilder

1. ProcessBuilder 的用途?

  • 管理着一系列关于一个进程的属性,并且可以通过这些属性创建一个系统进程(Java Process的子进程)

2. 管理着哪些属性?

  • command, 指向着一系列可能会被执行的外部文件,和一系列取决于所处系统的操作系统命令
  • environment, 取决于所处系统的环境变量,起始值当前进程的环境变量拷贝
  • working directory, 默认值是该进程的工作目录。
  • standard input、standard output、standout error,指向该进程的各种流,可以通过Process类下的相应方法获得
  • redirectErrorStream, 用来指示该进程的standard output和error output是否输出到同一个地方

3. 注意

  • 由于该类没有使用同步锁,因此在多线程情况使用时需要手动在外部使用同步锁的操作

Process

1. Process 类是什么?

  • Process 本身是一个抽象类,就其本身来说代表着对一个进程的操作控制,同时拥有着关于这个进程的一些信息。
  • 由ProcessBuilder.start() 和 Runtime.exec() 创建一个Process的子类对象,通过该对象进行操作。

2. Process 类能够对进程进行哪些操作?

  • 获取进程的输入输出流
  • 查看进程的退出状态
  • 杀死进程
  • 等待进程执行的完成

用例

1. 执行一条Linux命令

  • 在Android中插入以下代码块
    ProcessBuilder pb = new ProcessBuilder(); try { Process process = pb.command("touch", "data/test.txt").start(); process.waitFor(); } catch (IOException | InterruptedException e) { e.printStackTrace(); }
  • 通过adb, 切换到/data/目录下,会看到生成了一个文件名为test的txt文件,证明我们过Process执行命令的操作成功了.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,267评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,224评论 6 342
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,084评论 6 13
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,405评论 2 33
  • 1 到了大学,才发现世界上居然有超过五百块的衣服。大学毕业,才发现世界上居然有标牌子的内裤。 我在初中的时候,自己...
    芊之芊阅读 4,507评论 0 2

友情链接更多精彩内容