使用 Android NDK 中的系统函数在 Android 嵌入式设备上运行 Shell 脚本文件

2024-01-01

All

这里我想通过android NDK中的系统调用运行.sh文件。

我能跑cp,rm通过系统调用命令。但 sh 命令无法通过系统调用运行。

我还在 android 上安装 busybox。我使用下面的代码。我设置了所有权限test.sh.

Code :

#include <stdlib.h>
#include <stdio.h>
#include <android/log.h>
#include <jni.h>

#define LOG_TAG "Demo"

#define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)


void Java_com_ndkdemo_NDKdemoActivity_systemcall(JNIEnv * env, jobject obj) {

    int result;

    result = system("cp /mnt/sdcard/test /Download");

    LOGD("result is cp %d", result);

    result = system("sh ./test.sh");

    LOGD("result of test.sh is %d", result);

}

输出 :

 result is cp 0.
 result of test.sh is 0.

在这里我得到了 0system("sh ./test.sh");但还没有开始test.sh script.

无法获得输出"Hi"在控制台上。

test.sh 包含

#!/system/bin/
echo "Hi"

如果我在提示符下执行直接命令,那么它的工作正常及其给定的输出"Hi"在控制台上。

请帮我解决这个问题。

Thanks


您希望在哪里看到“回声”?默认情况下,android 将 stdout 发送到 /dev/null。

根据文档 http://developer.android.com/guide/developing/tools/adb.html#stdout您可以使用以下命令将 stdout 和 stderr 重定向到日志(因此它将显示在 logcat 中):

$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start

现在你可能会看到你的回声adb logcat.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Android NDK 中的系统函数在 Android 嵌入式设备上运行 Shell 脚本文件 的相关文章

  • 蓝牙发送和接收文本数据

    我是 Android 开发新手 我想制作一个使用蓝牙发送和接收文本的应用程序 我得到了有关发送文本的所有内容逻辑工作 但是当我尝试在手机中测试它时 我看不到界面 这是Main Activity Code import android sup
  • ASP.Net Core 内容配置附件/内联

    我正在从 WebAPI 控制器返回一个文件 Content Disposition 标头值自动设置为 附件 例如 处置 附件 文件名 30956 pdf 文件名 UTF 8 30956 pdf 当它设置为附件时 浏览器将要求保存文件而不是打
  • 如何在 C# 控制台应用程序中将修饰符(ctrl、alt、shift)按键捕获为单个按键?

    Console ReadKey 仅在按下 正常 键时捕获输入 然后将修饰符 如果有 附加为键信息的一部分 如何将单个修饰键注册为输入 提供了一种解决方案这个链接 https blogs msdn microsoft com toub 200
  • 时间:2019-03-17 标签:c#ThreadSafeDeepCopy

    我一直在阅读很多其他问题以及大量谷歌搜索 但我一直无法找到明确的解决方案 根据我读过的一些最佳实践 类的静态方法应该创建线程安全的 并且实例成员应该将线程安全留给消费者 我想为该类实现深度复制方法 该类本身还有其他引用类型成员 有没有什么方
  • vs2008 c#:Facebook.rest.api如何使用它来获取好友列表?

    如何在此基础上取得进一步的进步 获取好友列表的下一步是什么 string APIKey ConfigurationManager AppSettings API Key string APISecret ConfigurationManag
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • 在 JSQMessagesViewController 中显示 LocationMediaItem

    我刚刚尝试实施LocationMediaItem in my Xamarin iOS应用程序使用JSQMessagesViewController 一切都很顺利 唯一的问题是UICollectionView应该显示位置的单元格永远停留在加载
  • 找不到数据库路径是不可能的

    我对 android 开发很陌生 现在我正在尝试通过扩展 SQLiteOpenHelper 的类创建数据库 我确信数据存储在我的 Nexus 7 我用来测试应用程序的设备 上的某个位置 但是我找不到数据库的路径 我四处寻找其他类似的问题 所
  • React Native HTTPS Api 调用在 IOS 中有效,但在 Android 中无效

    所以基本上我所做的就是简单地对启用了 HTTPS 的 UAT 服务器进行简单的 Axios 调用 我已经在 IOS 中测试了整个应用程序 API 调用工作正常 但一旦我在 Android 中测试了相同的应用程序 在真正的 Android 设
  • Android:分配内存失败

    我正在尝试创建一个具有 2047 mb 内存的模拟器 当我运行它时 我收到此错误 2011 02 22 14 24 14 Emulator 2011 02 22 14 24 14 Emulator This application has
  • 将标量添加到特征矩阵(向量)

    我刚刚开始使用 Eigen 库 无法理解如何向所有矩阵成员添加标量值 假设我有一个矩阵 Eigen Matrix3Xf mtx Eigen Matrix3Xf Ones 3 4 mtx mtx 1 main cxx 104 13 error
  • 在 EnvDTE 中调试时捕获 VS 局部变量

    是否可以使用 EnvDTE 进行 vsix Visual Studio 扩展来捕获本地和调试窗口使用的调试数据 或者可以通过其他方法吗 我想创建一个自定义的本地窗口 我们可以修改它以根据需要显示一些较重的内容 而无需为高级用户牺牲原始的本地
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • 每个数据库多个/单个 *.edmx 文件

    我有一个通过 ADO net 数据服务与数据库交互的项目 数据库很大 近 150 个具有依赖关系的表 该项目几年前开始 当时使用的是数据集 现在我们正在转向实体模型关系 由于我们添加了更多需要使用的表 该模型正在不断增长 这是管理这一切的正
  • 如何在android中安装和使用couch db

    我应该如何在 android 中安装和使用 couch Db 我的意思是本地沙发数据库 我可以在平板电脑和模拟器中使用它 为此我必须遵循哪些步骤 我目前正在开发一个使用它的项目 有两种选择 1 couchbase android 是的 co
  • 更改 Windows Phone 系统托盘颜色

    有没有办法将 Windows Phone 上的系统托盘颜色从黑色更改为白色 我的应用程序有白色背景 所以我希望系统托盘也是白色的 您可以在页面 XAML 中执行此操作
  • 矩阵到数组 C#

    这将是转换方阵的最有效方法 例如 1 2 3 4 5 6 7 8 9 into 1 2 3 4 5 6 7 8 9 in c 我在做 int array2D new int 1 2 3 4 5 6 7 8 9 int array1D new
  • 将 char[][] 转换为 char** 会导致段错误吗?

    好吧 我的 C 有点生疏了 但我想我应该用 C 来做我的下一个 小 项目 这样我就可以对其进行抛光 并且我已经有不到 20 行的段错误了 这是我的完整代码 define ROWS 4 define COLS 4 char main map
  • C++0x中disable_if在哪里?

    Boost 两者都有enable if and disable if 但 C 0x 似乎缺少后者 为什么它被排除在外 C 0x 中是否有元编程工具允许我构建disable if按照enable if 哦 我刚刚注意到std enable i

随机推荐

  • 在从 XAML 实例化的控件中使用 MEF

    我创建了一个 UserControl 它使用 Import 属性 public class MyUserControl UserControl IPartImportsSatisfiedNotification Import public
  • 使用正确的派生类型调用泛型方法

    我有以下场景 我有三个课程 我们称它们为A B and C 它们的共同点是它们继承自相同的接口 ISomeInterface它们是使用实体框架映射到实体的类 我有一个方法接收实现此接口的对象列表 但对象本身将是A B or C 方法外壳看起
  • 网格碰撞器在应该有孔的地方有墙壁并且变形了

    我的曲线水管模型需要一个曲线圆柱对撞机 以便我的玩家红色立方体可以轻松通过 我尝试了网格碰撞器 它不起作用 还尝试了另一种技巧 我在搅拌机中构建了 2 个模型 一个用于网格渲染 一个用于碰撞器 作为一个整体 九分之一导致网格碰撞器无法在整个
  • Gtest:“{”之前预期的类名

    我正在尝试将 Gtest 下的测试用例转换为使用测试夹具 以便在添加更多测试时可以有一个通用的设置 然而 这会导致错误 test integrate cc 4 47 error expected class name before toke
  • 使用 perl 和 Net::DNS 检查 DNS

    所以 在 有一个小脚本 参见第 173 页 其目的是迭代检查 DNS 服务器以查看它们是否为给定主机名返回相同的地址 然而 书中给出的解决方案仅当主机具有静态IP地址时才有效 如果我希望该脚本能够与具有多个关联地址的主机一起使用 我该如何编
  • jquery 相当于 getcompulatedstyle()

    我在一个中找到了这个 getCompulatedStyle polyfillJavaScript 插件 https github com viljamis responsive nav js if computed window getCo
  • 为什么根文件系统被加载到ramdisk中?

    我正在研究Linux的启动过程 我遇到过这样一句话 RAM 比软盘快几个数量级 因此 ramdisk 的系统运行速度很快 无论如何 内核都会将根文件系统加载到 RAM 中来执行它 所以我的问题是 如果内核将根文件系统加载到 RAM 中 为什
  • Twig - 获取规范标签的 URL

    我希望在我的应用程序中创建一个动态 rel canonical 标签 该标签会拉入当前 URL 但希望确保删除所有查询参数 例如http www example com test page 2 http www example com te
  • 使用 karma 进行角度单元测试时,dispatchEvent() 和 triggerEventHandler() 有什么区别?

    我正在为指令 在输入事件上调用 编写单元测试 该指令正在修改 formControl 上的输入值 我在我的规范文件中创建了一个测试组件 我注意到triggerEventHandler 和dispatchEvent 之间的区别 在trigge
  • 对“__android_log_print”的未定义引用

    我的 make 文件有什么问题 Android mk LOCAL PATH call my dir include CLEAR VARS LOCAL MODULE foo LOCAL SRC FILES foo c LOCAL EXPORT
  • 使用流有条件地填充地图 - Java 8

    我正在尝试将此 简化的 代码转换为使用 Java 8 流 Map
  • XSLT Xalan dyn:评估示例

    我希望您在样式表中使用 EXSLT DYN EVALUATE 我已添加名称pace 但我不知道需要导入的 xsl 文件在哪里 我不相信我安装了 XALAN 来指向导入 我该如何安装这个 安装后 我将其指向 xsl 它会选择该函数并应用它吗
  • 显示表,描述 redshift 中等效的表

    我是 aws 新手 谁能告诉我 redshifts 与 mysql 命令的等价物是什么 show tables redshift command describe table name redshift command 所有信息都可以在PG
  • 生成随机、唯一的值 C#

    我已经搜索了一段时间并一直在努力找到这个 我试图用 C 生成几个随机的 唯一的数字 我在用着System Random 我正在使用DateTime Now Ticks seed public Random a new Random Date
  • R studio - 我需要使用混淆矩阵的敏感性和特异性以及阳性和阴性预测值的置信区间

    我正在写一篇关于住院儿童帐单代码有效性的论文 我是一个非常新手的 R studio 用户 我需要敏感性和特异性以及阳性和阴性预测值的置信区间 但我不知道该怎么做 我的数据有 3 列 ID true value billing value 这
  • Golang 模板“减号”功能

    我知道在go我可以调用名为的模板函数add对于像这样的表达1 1 但是如何为表达式命名函数2 1 没有add默认包含的功能 但是 您可以轻松地自己编写此类函数 例如 tmpl template Must template New Funcs
  • 为什么 C++ 标准文件流没有更严格地遵循 RAII 约定?

    为什么 C 标准库使用流open close 语义与对象生命周期分离 从技术上讲 关闭销毁可能仍会生成类 RAII 但获取 释放独立性会在范围内留下漏洞 其中句柄可以指向任何内容 但仍需要运行时检查来捕获 为什么库设计者选择他们的方法而不是
  • Django 教程:运行服务器错误

    我正在遵循 django 教程 但我立即在第 1 部分中遇到了问题 运行 python manage py runserver 后 我在浏览器中输入 URL 并收到错误 ImproperlyConfigured Module django
  • 如何使用 jQuery 查找特定类型(表)的最后一个子项?

    假设我有以下结构 div table tbody tr td div table tbody tr td div table Last table here table div td tr tbody table div td tr tbo
  • 使用 Android NDK 中的系统函数在 Android 嵌入式设备上运行 Shell 脚本文件

    All 这里我想通过android NDK中的系统调用运行 sh文件 我能跑cp rm通过系统调用命令 但 sh 命令无法通过系统调用运行 我还在 android 上安装 busybox 我使用下面的代码 我设置了所有权限test sh C