Mac 下使用 Shell 批量安装 app

316 阅读2分钟

以前发在 CSDN 上, blog.csdn.net/u014443348/…

掘金氛围感觉更好一点,打算慢慢转过来。

最近碰到一个情况,就是需要在一个 Android 设备上安装很多应用,大家开发 Android 的都知道使用 adb install 来执行 Apk 的安装。

如果只安装一两个的话也没有问题,但是数量一多;或者你要连续在几个设备安装,肯定还是麻烦 … 毕竟这种机械性的行为能自动化绝对不手动,懒才是科技进步的动力哈。

自上次使用了 Shell 模拟触摸来测试小游戏之后,这次又想到了使用 Shell 来做,我们本来就是批量执行命令而已。这次还是 Mac 的系统,Linux 的操作系统应该也能执行,后面会贴出 WIndows 下的代码。

简单说下我们目标:把所有要装的 Apk 丢在一个文件夹中,然后再里面放入了一个脚本文件,执行该脚本的时候,自动搜索该目录下所有  .apk 文件并尝试安装。(此处暂时没有考虑递归搜索),因为代码量也不大,配上简单注释,简单看两眼就基本懂了。

先放一个效果图。

在这里插入图片描述

接下来是代码部分。


#!/bin/bash

#adb install cmd
install="adb install -r "

#app file
target=".apk"

#enter shell folder
basefolder=`dirname $0`
cd $basefolder

#list all file
for file in $(ls)
do
    # find fileName contain target and install it.
    result=$(echo $file | fgrep "${target}")
    if [[ "$result" != "" ]]
    then
        $install $file
    fi
done

因为 Mac 下执行  .sh 文件可能出现权限问题,如下图。
在这里插入图片描述
此时在命令行中使用 chmod 777 对需要执行的  .sh 文件赋予权限,然后再执行就没有问题了。我新建  .sh 中并加了一个简单的文字输出,并赋予权限再执行,如下图。
在这里插入图片描述
此处贴一个 Windows 下的代码,这样大家只需要新建两个脚本文件,然后放在 app 目录中在对应平台执行对应文件就可以了。


@echo off

for /f "delims=" %%i in ('dir /b /a-d /s .') do adb install -r %%~nxi