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. MySQL案例03:(MyCAT报错) [ERROR][$_NIOREACTOR-3-RW] caught err: java.lang.OutOfM emoryError: Unable to acquire 131072 bytes of memory, got 0

    上班坐下来没多久,接同事电话说有两台mysql服务器无法访问,其中这两台服务器是mycat服务器+MySQL服务器,具体处理过程如下: 一.错误信息 错误信息01: :: ::, [INFO ][$_ ...

  2. shell习题第7题:备份数据库

    [题目要求] 设计一个shell脚本用来备份数据库,首先在本地服务器上保存一份数据,然后再远程拷贝一份,本地保存一周的数据,远程保存一个月 假设我们知道mysql root账号的密码,要备份的库为da ...

  3. $.trim() 去除空格方法 (验证使用)

  4. PHP程序员学Objective-C之后的变化

    趣味坎谈,不一定100%准确,以自己的实际情况为准; 如题,我2008年开始学PHP,PHP是我学的第二门编程语言,一直用到现在,2010年初开始做iOS开发,学习了Objective-C,学这2门语 ...

  5. html中如何移除video下载按钮

    我发现部分安卓手机使用video标签播放视频的时候会自带一个下载按钮,一般产品大多都不需要这一功能,那如何屏蔽下载按钮呢?有下面两种,请一定使用第一种方式,使用css控制会有兼容性问题,建议不要使用这 ...

  6. C语言中的if与else if

    今天发现一个比较不理解的代码,是关于else if这个判断语句的代码.代码如下 #include<stdio.h> ; int main(void) { ) { printf(" ...

  7. 中国大学MOOC-JAVA学习(浙大翁恺)—— 信号报告

    使用switch-case语句的练习 import java.util.Scanner; public class Main { public static void main(String[] ar ...

  8. dart 自己写一个简单的文件编码器

    // import 'dart:convert'; import 'dart:io'; main() async { var src = File('./lib/convert/source.txt' ...

  9. markupsafe._compat出错的解决办法

    在windows下用pip进行安装的flask和freeze会在运行程序的时候出现报错 markupsafe._compat出错,那么此时找到对应的pip文件夹下自己创建一个_compat.py 然后 ...

  10. c++ 参数个数可变的函数

    #include <stdio.h> #include <string.h> #include <stdarg.h> int addnum(int i,...) { ...