Android 中调用本地命令

通常来说,在 Android 中调用本地的命令的话,一般有以下 3 种情况:

  • 调用下也就得了,不管输出的信息,比如:echo Hello World。通常来说,这种命令不存在执行失败的情况,并且执行的结果也是可预期的;
  • 调用后要等待返回的结果,比如 ls -la /。之所以要等待返回的结果,一般存在以下的 2 种情况:第一种是命令本身存在可能无法执行或者是执行的结果不符合预期的情况。另一种是输出的结果是无法预期的。在此例子中,如果用户没有访问 / 目录的权限就会导致命令失败。而根目录中有些什么,是无法预期的;
  • 调用后的命令会持续运行,直到因为计数器达到指定时间或者是外界给出一些刺激停止。一些典型的例子如ping www.bing.cn(Linux 下),这一命令将会持续的进行 ping 操作直到外界将其终止。

对于这 3 种命令的处理方式,也是稍有不同的。

快速结束的命令(无需返回值)

对于这样的命令,因为其非常快的就可以执行完毕,且不需要返回值,一般来说,直接在需要调用的进程中,直接使用 Java 的 exec 方法进行调用就可以了。

快速结束的命令(需要返回值)

对于这样的命令,虽然我们需要获得它的返回值,但是因为其执行速度很快,所以,也可以直接在需要调用的金成中使用 exec 方法进行调用。但是不要忽略这样的情况 echo fileName.txt,假如文本文件的内容非常多,虽然程序能够执行,但是也许需要浪费很多的时间进行输出,那么实际需要的时间也是很久的,对于这样的命令,应该参照长连接命令进行处理。

长连接命令

对于长连接命令,一般来说,会单独的开一个线程,在该线程中开启 Java 的 Process 进行命令的处理。对应的代码,稍后给出。

Android 中调用本地命令的更多相关文章

  1. 【转】Android 学习笔记——利用JNI技术在Android中调用、调试C++代码

    原文网址:http://cherishlc.iteye.com/blog/1756762 在Android中调用C++其实就是在Java中调用C++代码,只是在windows下编译生成DLL,在And ...

  2. [转][android][利用JNI技术在Android中调用、调试C++代码]

    在Android中调用C++其实就是在Java中调用C++代码,只是在windows下编译生成DLL,在Android中会生成Linux系统下的.so文件(好吧,其实我基本没用过Linux). 没写过 ...

  3. js网页中调用本地应用程序

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta http-equiv="Con ...

  4. Android中调用C++函数的一个简单Demo

    这里我不想多解释什么,对于什么JNI和NDK的相关内容大家自己去百度或谷歌.我对Android的学习也只是个新手.废话少说直接进入正题. 一.在Eclipse中创建一个Android Applicat ...

  5. 在Android中调用WebService

    某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查.我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数 ...

  6. 在Android中调用C#写的WebService(附源代码)

    由于项目中要使用Android调用C#写的WebService,于是便有了这篇文章.在学习的过程中,发现在C#中直接调用WebService方便得多,直接添加一个引用,便可以直接使用将WebServi ...

  7. Awk中调用shell命令

    Awk中调用shell命令 需求 在awk中,有时候需要调用linux系统中命令,如计算字符串的MD5值,并保存下来. 方法参考 call a shell command from inside aw ...

  8. 【转载】如何在C语言中调用shell命令

    转载自:http://blog.csdn.net/chdhust/article/details/7951576 如何在C语言中调用shell命令 在linux操作系统中,很多shell命令使用起来非 ...

  9. Java乔晓松-android中调用系统拍照功能并显示拍照的图片

    android中调用系统拍照功能并显示拍照的图片 如果你是拍照完,利用onActivityResult获取data数据,把data数据转换成Bitmap数据,这样获取到的图片,是拍照的照片的缩略图 代 ...

随机推荐

  1. Redis 单机和多实例部署

    作者:北京运维 1. 安装环境说明 OS 版本:CentOS 7.5.1804 Redis 版本:redis-3.2.12 Redis 下载页面:http://download.redis.io/re ...

  2. js实现table合并相同列单元格

    /** * Created with JetBrains WebStorm. * User: Johnny * Date: 18-3-26 * Time: 下午4:48 * Table td 相同值合 ...

  3. Nginx 解决504 Error 最简单的方法

    <?php // Where am I ? set_time_limit(0); 就这个多,当然了,服务器还是务求稳妥,应当结合服务器和业务需求从配置上优化,才是正理.

  4. java->php之在线子域名查询-接口光速版

    因为不懂java,所以 用php重写了大佬的 在线子域名查询-接口光速版 http://sbd.ximcx.cn/  这是大佬的 然后 改一下 ,用php 其实就是改了几行代码而已,jquery和aj ...

  5. 一个没有成就而即将退赛的OIer的告别书

    期末考试成绩出来了. 我也知道混在这个班的时间不长了. 尽管如此,我觉得父母的意见是正确的,我确实不适合OI.所以我会成为省三都没有的一个OIer. 我不后悔,因为曾经是我自己错了. 我感谢遇到了好的 ...

  6. vue中-webkit-box-orient:vertical打包放到线上不显示

    解决方法: 1.找到build文件夹 下的webpack.prod.conf.js文件 2.注释new OptimizeCSSPlugin({                          css ...

  7. PostgreSQL 使用 LDAP 认证方式

    磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL杂记页     回到顶级页面:PostgreSQL索引页 [作者 高健@博客园  luckyjackgao@gmail. ...

  8. 苏州Uber优步司机奖励政策(4月18日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  9. day 11 大文件操作

    1.f.read(),  f.readline(),   f.readlines() ##### 1. f.read() 整体读 返回字符串 In [2]: f = open("aaa.py ...

  10. swift实现UItableview上拉下拉刷新模块

    最近用写个项目 发现上拉下拉刷新模块没找到合适的 so 自己写了一个 由于最近忙 教程就不写了 里面有 直接贴地址https://github.com/DaChengTechnology/DCRefr ...