`

android代码库之执行Shell命令或者脚本

阅读更多
public String execCommand(String command) throws IOException {
// start the ls command running
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(command); // 这句话就是shell与高级语言间的调用
// 如果有参数的话可以用另外一个被重载的exec方法
// 实际上这样执行时启动了一个子进程,它没有父进程的控制台
// 也就看不到输出,所以我们需要用输出流来得到shell执行后的输出
InputStream inputstream = proc.getInputStream();
InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
// read the ls output
String line = “”;
StringBuilder sb = new StringBuilder(line);
while ((line = bufferedreader.readLine()) != null) {
// System.out.println(line);
sb.append(line);
sb.append(‘\n’);
}
// 使用exec执行不会等执行成功以后才返回,它会立即返回
// 所以在某些情况下是很要命的(比如复制文件的时候)
// 使用wairFor()可以等待命令执行完成以后才返回
try {
if (proc.waitFor() != 0) {
System.err.println(“exit value = ” + proc.exitValue());
}
} catch (InterruptedException e) {
System.err.println(e);
}
return sb.toString();
}
另一段执行Shell的代码
分享到:
评论
1 楼 Trinea 2014-02-28  
关于Android中利用Shell执行某些命令已封装成完善的API,可轻松实现如修改hosts,拷贝文件、安装apk及在拥有root权限下执行某些操作等,如拷贝文件如下:

String[] commands = new String[] { "mount -o rw,remount /system", "cp /mnt/sdcard/xx.apk /system/app/" };
CommandResult result = ShellUtils.execCommand(commands, true);

具体可以看看这篇文章介绍 http://www.trinea.cn/android/android-java-execute-shell-commands/

相关推荐

    android 给app授权 执行shell命令

    总的来说,给Android应用授予Root权限并执行shell命令是一个涉及设备修改、权限管理、代码实现和错误处理的复杂过程。务必谨慎操作,因为这可能影响设备安全性和稳定性。对于非专业人士,建议只在充分了解风险和必要...

    android系统中调用shell脚本

    因此,要在Android上运行shell脚本,我们通常需要通过Java代码来间接实现。 1. **使用Runtime类**:这是最基础的方法,通过`Runtime.getRuntime().exec()`方法执行shell命令。例如: ```java Process process = ...

    Android执行shell命令(转)

    可以创建一个包含多个命令的shell脚本(如:`script.sh`),然后通过`adb push`将脚本推送到设备上,再用`adb shell sh script.sh`执行脚本。 6. 源码级操作 对于开发者而言,有时需要在源码层面执行shell命令,...

    android执行shell命令

    在编写shell脚本或命令时,要确保命令在Android环境下是兼容的。 - **日志输出**:通过`logcat`命令可以查看设备的日志输出,这对于调试和理解命令执行结果非常有帮助。 - **性能影响**:频繁或长时间的shell命令...

    java android 执行脚本代码(java代码)

    在Android开发中,Java语言是主要的编程工具,但有时候我们可能需要在应用程序中执行一些脚本代码,比如JavaScript、Python或Shell等。这通常是为了实现一些特定功能,如自动化处理、数据解析或是利用第三方库的脚本...

    android apk重签名,shell脚本自动化

    在Android应用开发中,APK文件是应用程序的可分发包,它包含了所有代码、资源、库和应用程序的元数据。然而,在某些情况下,我们可能需要对APK进行重签名,例如,当需要将第三方应用集成到自己的系统中,或者在进行...

    2.2.4-Shell脚本编写与执行编译ffmpeg库.zip

    - 在Linux终端中,导航到包含Shell脚本的目录,使用`bash scriptname.sh`命令执行脚本。 - 在Android环境中,可能需要使用`ndk-build`命令来编译FFmpeg,该命令会自动调用`make`并应用Android特定的构建规则。 5....

    Android_adb_shell

    Android调试桥(Android Debug Bridge,简称ADB)是Android开发者不可或缺的工具,它允许用户通过USB或无线网络连接设备进行调试、传输文件、执行shell命令等操作。`adb_shell`是ADB的一部分,提供了对Android设备或...

    android studio项目打jar包脚本.rar

    3. **命令行执行脚本**:可能是一个批处理文件(Windows)或shell脚本(Unix/Linux),用于调用Gradle命令执行打包任务,只需运行这个脚本,就能完成JAR的创建。 4. **注意事项**:使用这个脚本前,可能需要确保...

    Python库 | adb_shell-0.2.3.tar.gz

    1. **命令执行**:`adb_shell`库允许用户直接在连接的Android设备上运行shell命令,这包括系统级别的操作,如查看设备信息、管理进程、修改文件权限等。通过简单的Python调用,可以实现复杂命令的执行,提高了开发...

    android_shell_ssh_gcc

    在Android系统中,`android_shell_ssh_gcc`这个主题涵盖了几个关键的开发和管理工具,它们对于Android开发者和系统管理员来说至关重要。以下是这些工具的详细解释: 1. **Android Shell**:Android Shell是Android...

    自动打包代码shell

    3. **构建过程**:Shell脚本会调用对应的构建工具来编译代码,这通常包括清理旧的构建产物,编译源码,链接库,生成资源文件等步骤。例如,在Android项目中,可以使用`./gradlew assembleRelease`命令来构建Release...

    android ffmpeg4.1.3 x264 编译脚本.zip

    在"ubuntu下编译 安卓使用的 ffmpeg4.1.3 集成 x264库的编译脚本"这个过程中,首先需要确保你有一个Ubuntu环境,因为Ubuntu是最常用的Linux发行版之一,且与Android开发工具兼容性良好。`ndkr19c`是Android NDK的一...

    turtle:从Kotlin脚本或应用程序轻松运行Shell命令

    这个库的出现,极大地便利了开发者在Kotlin环境中与操作系统进行交互,比如执行系统级别的任务、自动化过程或者管理文件等。下面我们将深入探讨turtle库的核心功能、使用方法以及它如何与Kotlin、Gradle和JVM环境...

    adeb,一个为android和adb设计的基于debian的shell环境.zip

    这对于在设备上本地编译和调试代码非常方便,特别是在处理依赖于特定库或工具的项目时。 在安全方面,使用adeb时应谨慎行事,因为它增加了设备被恶意软件攻击的风险,尤其是在没有正确配置权限或安装不安全软件包的...

    使用Java自动化方法模拟Android人工点击、触屏事件(含platform-tools工具)

    在Java自动化测试中,我们可以使用Runtime类或者ProcessBuilder类来执行这个adb命令。以下是一个简单的示例,展示了如何在Java代码中调用adb shell命令: ```java public class RobotInsert { public static void ...

    python 通过adb 查看Android系统状态脚本

    由于Android系统的开放性,获取网络速度的方法可能因设备而异,可能需要解析logcat输出,或者使用特定的shell命令。在实际应用中,你需要查找适用于目标设备的正确命令。 `send_to_wireshark`函数是将接收到的网络...

    shell学习,第一章

    Shell脚本是编写在Shell环境下的一种解释型语言,不需要编译即可执行。 2. **Shell环境**:在Mac环境下,Shell广泛用于开发,其中Bash是最常见的默认脚本语言,因为它免费且易于使用。除了Bash,还有c Shell、K ...

    Android 实现静默安装并自动重启(需要root)

    4. **自动化执行**:为了使脚本在没有用户交互的情况下自动执行,可以将其添加到启动器的启动项或者利用定时任务服务(如CronJob for Android)来触发执行。 需要注意的是,静默安装和自动重启可能会对用户隐私和...

    AndroidBot:该项目是一个用户界面,用于通过 Android Debug Bridge 使用 Android Shell 的“输入”命令编写和运行脚本

    AndroidBot 是一个专门为Android设备设计的自动化工具,它提供了一个用户友好的图形界面,使得开发者和测试人员可以通过Android Debug Bridge (ADB) 使用Android Shell的"输入"命令来编写和执行脚本。这个项目的主要...

Global site tag (gtag.js) - Google Analytics