Articles of shell

用于将命令定向到adb shell的shell / batch脚本

我正在尝试编写一个批处理(用于获胜)和一个用于Linux的shell脚本,以在Android UI上自动执行键和触摸事件。 在Windows批处理文件中,我正在为每个事件启动一个adb shell,例如 :again adb shell am start -a android.intent.action.MAIN -n com.q.me.fui.activity/.InitActivity sleep 15 adb shell sendevent /dev/input/event0 3 0 281 adb shell sendevent /dev/input/event0 3 1 70 adb shell sendevent /dev/input/event0 1 330 1 adb shell sendevent /dev/input/event0 0 0 0 adb shell sendevent /dev/input/event0 1 330 0 adb shell sendevent /dev/input/event0 0 […]

如何在android shell中创建一行for循环

这适用于bash for i in {1..5}; do echo $i; done 输出是1 2 3 4 5但是在android shell上输出是{1..5}

通过Jsch Shell的多个命令

我试图使用JSch库通过SSH协议执行多个命令。 但我似乎陷入困境,无法find任何解决方案。 setCommand()方法每个会话只能执行一个命令。 但是我想像Android平台上的connectbot应用程序一样顺序执行命令。 到目前为止我的代码是: package com.example.ssh; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.Properties; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.jcraft.jsch.Channel; import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; public class ExampleSSH extends Activity { /** Called when the activity is first created. */ EditText command; TextView result; Session […]

如何从adb shell运行Android相机应用程序?

如何从adb shell运行android摄像头程序? 我知道我应该使用am但是我不知道我应该准确输入什么命令 我用过这个: am start -a android.intent.action.MAIN -n com.android.camera 但它没有用!

是否有相当于iOS的’adb shell输入键盘文字’?

对于Android设备,我们可以使用Android Debug Bridge来调用input程序并发送任意字符串,以便设备作出反应,就像用户在设备上键入文本一样。 对于iOS,我发现最接近的黑客是让Linux看起来像无线键盘 ,而且特别的黑客似乎不再适用于Ubuntu 13.10上的最新iPad。 而且,即使它起作用,它也不如input keyboard text灵活,因为无法复制和粘贴要发送的字符串。 有没有相当于adb shell input keyboard text的iOS?

如何使用adb从多个连接的设备卸载APK?

adb uninstall 在连接1个设备时有效。 如何为5台以上连接的设备进行此项工作?

无法为Linux amd64加载本机库’libnative-platform.so’

首先,如果这属于Ask Ubuntu,我很抱歉……我不确定这个论坛是什么。 我正在尝试使用PHP和shell脚本从Github派生并构建一个Android项目。 基本上,我是从我写入网站的shell脚本中打印出一些输出。 当您访问该页面并按下某些按钮时,该项目将使用Gradle进行分叉和构建。 PHP代码运行shell脚本,然后在命令运行时将输出打印到浏览器中。 但是,我收到此错误作为我的脚本的输出: FAILURE: Build failed with an exception. * What went wrong: Failed to load native library ‘libnative-platform.so’ for Linux amd64. 该脚本现在只是运行gradle build ,但我打算稍后更改…现在,我正在构建根项目并输出结果。 如果我使用–stacktrace标志运行命令,这是输出: * Exception is: net.rubygrapefruit.platform.NativeException: Failed to load native library ‘libnative-platform.so’ for Linux amd64. at net.rubygrapefruit.platform.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:49) at net.rubygrapefruit.platform.Native.init(Native.java:55) at org.gradle.internal.nativeintegration.services.NativeServices.initialize(NativeServices.java:74) at org.gradle.internal.nativeintegration.services.NativeServices.initialize(NativeServices.java:60) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:203) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169) […]

Android:如何知道Android设备中是否已经使用adb安装了任何应用程序?

我将使用adb安装一个包含名称为“com.xyz.game”的Android应用程序。 我想使用shell脚本自动化该过程。 这个过程就像是已经安装了app,卸载它(使用命令adb uninstall com.xyz.game)并使用“adb install game.apk”安装,否则简单的“adb install game.apk”。 我怎样才能做到这一点?

以编程方式执行adb命令时出错

我试图以编程方式执行adb命令 这是我的代码: File f = new File(Environment.getExternalStorageDirectory(), “screen” + System.currentTimeMillis() + “.png”); new ExecuteCommand(MainActivity.this).execute(“adb shell screencap -p ” + Environment.getExternalStorageDirectory().getPath() + “/” + “screen” + System.currentTimeMillis() + “.png”); ExecuteCommand类: public class ExecuteCommand extends AsyncTask { Context mContext=null; public ExecuteCommand(Context _ctx) { mContext =_ctx; } ProgressDialog progressdailog; @Override protected void onPreExecute() { super.onPreExecute(); progressdailog = ProgressDialog.show(mContext, […]

从Android Studio gradle构建访问环境variables

在我的Android Gradle构建中,我需要访问我从.bash.profile设置的环境variables。 当我从命令行构建时,它工作正常 – Gradle脚本可以看到所有variables。 但是,当我尝试从Android Studio运行构建时 – 我不再拥有环境variables了。 以下是我所面对的大致情况: 1)通过~/.bash.profile设置自定义环境variables: export MY_CUSTOM_VAR=’Hello World’ 2)在build.gradle创建打印此环境variables的任务: task printVar << { println System.getenv("MY_CUSTOM_VAR") } 3)从命令行执行printVar 。 输出正确 – 设置了envvariables: 输出: Hello World 4)从Android Studio执行printVar 。 未设置环境variables。 输出为空 常识告诉我,通过export MY_CUSTOM_VAR=’Hello World’我只是让这个variables可用于shell进程(及其subprocess)。 如果我从命令行启动我的Android Studio(这样它将inheritance我的环境),这可能会有效。 但是自从我从Dock启动Android Studio(顺便说一句,我在Mac上) – 它有自己的环境,对我的~/.bash.profile 。 有什么办法可以将自定义环境variables填充到Android Studio吗?