天道酬勤,学无止境

adb

How to change current directory inside IF statement and reference its path with environment variable CD?

I'm trying to install an app from my PC running Windows 10 using adb and I need to use command cd before I'm installing the app. But I see a strange behavior. If I use the cd command before the if statement, it's working well. But if I use the cd command inside the if statement, it is not working. Here is what I tried: This one is working well: cd %~f0\..\..\apps\app_sample\samples\sample_app\build\outputs\apk if "%arg1%" == "aaa" ( adb install %CD%\sample_app-debug.apk ) This one results on execution in an error: if "%arg1%" == "aaa" ( cd %~f0\..\..\apps\app_sample\samples\sample_app\build

2021-09-24 05:29:23    分类:问答    batch-file   if-statement   cmd   adb

"EOCD not found" with adb install

When an Android project exceeds about 2MB, I keep getting "EOCD not found, not zip" when trying to install the signed application on a device using adb install. This problem is limited to Windows (Windows XP) because I found no problem installing the same application on a fresh Ubuntu box. I could reproduce the problem with the HelloWorld application: adb will fail as soon as I add files to exceed 2MB (I generate a 2.7 MB apk file) in the assets folder. I am almost sure such problem didn't occur in June; unfortunately it seems I can't get back to May/June situation. Any ideas?

2021-09-24 04:39:20    分类:问答    android   windows   adb

Adb 安装进度条(Adb install progress bar)

问题 我是这方面的初学者,所以如果我问任何明显的问题,请介意我。 我想一个APK安装到使用设备的adb install apk.apk然而,APK大约是几百MB大,它需要一些时间。 我可以在命令窗口中实现某种进度条来显示进度吗? 我见过adb push/pull 的东西。 我不确定它是否相同。 我在Windows 8.1 中运行它。 我还设置了一个adb环境变量。 非常感谢。 回答1 好吧, adb install apk.apk只是一个美化的快捷方式: adb push apk.apk /data/local/tmp adb shell pm install /data/local/tmp/apk.apk adb shell rm /data/local/tmp/apk.apk 因此,如果您非常喜欢查看上传进度条 - 只需先adb push -p您的 apk,然后adb shell pm install手动或使用简单脚本adb shell pm install它。 回答2 如果你不调用推送/安装操作(例如Android Studio为你做的),你可以查询推送状态如下(bash脚本): function check_push_progress(){ local push_to=$1 #path in the device local push_from=$2 #path to

2021-09-24 00:08:15    分类:技术分享    android   command   adb   line

以编程方式执行 adb 命令时出错(Error while executing adb command programmatically)

问题 我正在尝试以编程方式执行 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"); 执行命令类: public class ExecuteCommand extends AsyncTask<String, String, String> { Context mContext=null; public ExecuteCommand(Context _ctx) { mContext =_ctx; } ProgressDialog progressdailog; @Override protected void onPreExecute() { super.onPreExecute(); progressdailog =

2021-09-23 18:07:47    分类:技术分享    android   shell   adb   screenshot

从 ADB 安装后静态广播接收器不起作用(Static BroadcastReceiver not Working after Installation from ADB)

问题 我正在处理一个需要通过 adb 广播自定义意图“com.example.demo.action.LAUNCH”来启动应用程序的项目。 我的计划是静态注册一个广播接收器“LaunchAppReceiver”,它将在收到自定义意图时启动应用程序。 我通过调用安装了 .apk adb install -r <pakcageName> 然后我通过调用发送了意图 adb shell am broadcast -a com.example.demo.action.LAUNCH 然而,在发送意图后什么也没有发生。 广播接收器似乎根本没有收到意图。 我是否需要以某种方式实例化接收器才能接收到意图? 注意:由于 android 设备是远程的,我必须使用 adb 来处理安装和启动。 谢谢!! 我声明广播接收器如下 public class LaunchAppReceiver extends BroadcastReceiver{ public LaunchAppReceiver () {} @Override public void onReceive(Context context, Intent intent) { Intent newIntent = new Intent(context, MainActivity.class); newIntent.addFlags(Intent.FLAG

2021-09-20 14:55:32    分类:技术分享    android   android-intent   broadcastreceiver   adb

Android Studio 无法在设备上运行项目?(Android Studio unable to run project on device?)

问题 我收到以下错误。 我也找不到为什么会在互联网上发生这种情况。 ddms: Can't bind to local 8601 for debugger ddmlib: Broken pipe java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcher.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:29) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:69) at sun.nio.ch.IOUtil.write(IOUtil.java:40) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:336) at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213) at com.android.ddmlib.Client.sendAndConsume(Client.java:675) at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap

2021-09-20 06:57:38    分类:技术分享    android   android-studio   adb

如何在 Android 文件系统上模拟文件的“tail”命令?(How I can simulate “tail” command for file on the Android file system?)

问题 我在 SD-CARD 上有文件,我的应用程序将其用作日志文件。 是否可以通过 adb 实时查看所有更改的文件? 就像tail -f /sdcard/myfile.log命令一样。 回答1 这似乎对我很有用: adb shell "while true; do cat; sleep 1; done < /sdcard/myfile.log" 回答2 你可以用 logcat 做到这一点。 您可以添加一个视图,该视图只会显示您的应用程序中的日志条目,并且它会不断更新。 回答3 您可以安装busybox,然后: adb shell tail -f /path/of/your/file 但请记住,您应该拥有 root 访问权限才能安装 busybox。 如果您使用的是模拟器,请检查以下内容:如何在 Android 模拟器上获得 root 访问权限? 回答4 有一个很棒的应用程序:终端 IDE。 它包含许多 linux 命令,并且不需要 root 访问权限。 您可以从 GooglePlay 安装它。 Is 是免费的(并且是开源的,GPLv2)。 它的最佳功能之一是可以通过telnet 。 在手机上启动它,然后键入telnetd命令。 它将启动一个 telnet 守护进程,它默认侦听端口 8080。 之后,您可以使用以下命令从 PC 连接它:(在 Windows 上使用 cygwin)

2021-09-20 00:31:38    分类:技术分享    android   adb

如何通过 adb 在连接的设备之一中安装 apk? [关闭](How to install an apk in one of the connected devices through adb? [closed])

问题 关闭。 此问题不符合 Stack Overflow 准则。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其成为 Stack Overflow 的主题。 6年前关闭。 改进这个问题 我有多个设备/模拟器连接到我的计算机,我想在其中一个设备中安装 apk 或运行其他 adb 命令。 我怎么做? 回答1 如果你想安装apk 要在设备上安装 apk 的多个模拟器和一个连接的设备: adb -d install <path of apk> 多个模拟器和多个设备连接并且您想在设备上安装: A. 获取设备名称和序列号。 adb devices B. 现在在给定的设备 ID 上安装 apk。 adb -s <serial number of device> install <path of apk> 多个模拟器并且您想在选定的模拟器上安装: adb -e install <path of apk> 有关更多详细信息,请访问以下链接:http://developer.android.com/tools/help/adb.html 回答2 用 adb devices 获取所有连接设备的列表。 然后使用 adb -s <deviceId> install abc.apk 回答3 您可以使用以下命令查询连接到计算机的设备列表: adb devices 然后

2021-09-19 16:52:23    分类:技术分享    android   command-line   adb

是否可以从应用程序执行 ADB shell 命令?(Is it possible to execute ADB shell commands from app?)

问题 我有一台带有根目录(开箱即用)的 Android PC 连接到始终以横向显示的外部显示器(HDMI 和 USB),即使我的应用程序在清单的活动声明中指定了纵向: android:screenOrientation="portrait" 我试图从这个 SO 帖子中执行以下命令来强制肖像: proc = Runtime.getRuntime().exec("adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0"); int exitVal = proc.waitFor(); 这应该将屏幕设置为纵向,但显示始终保持横向。 没有异常记录。 我也使用了以下方法但没有成功: process = Runtime.getRuntime().exec("content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0"); process = Runtime.getRuntime().exec(new String[]{"su","-c","content insert --uri content://settings

2021-09-18 19:36:07    分类:技术分享    android   shell   adb   screen-orientation

无法让这个 adb shell am start line 工作(cannot get this adb shell am start line to work)

问题 我正在尝试在我的模拟器上启动这个应用程序.. 这是我的 adb shell am start line C:\Users\harvey\AndroidStudioProjects\Sunshinea1>adb shell am start -n com.example.harvey.Sunshinea1app/com.example.harvey.Sunshinea1app.MainActivity WARNING: linker: libdvm.so has text relocations. This is wasting memory and is a security risk. Please fix. Starting: Intent { cmp=com.example.harvey.Sunshinea1app/.MainActivity } Error type 3 Error: Activity class {com.example.harvey.Sunshinea1app/com.example.harvey.Sunshinea1app.MainActivity} does not exist. C:\Users\harvey\AndroidStudioProjects\Sunshinea1> 我知道警告不是这样的问题,但 MainActivity 不存在

2021-09-18 12:27:39    分类:技术分享    android   adb