引言
相信对使用 mac
的小伙伴来说,命令行肯定是必不可少的一个基操。但是开发中有些命令行贼长,比如当你要安装一个 aab
时,这个步骤很是麻烦,于是乎有没有一种更简单的方式呢?答案是肯定的,现如今各种第三方工具,都可以支持一键干这干呢。那么有没有双击就可以的呢?当然也可以,双击执行 shell
去安装,提前写一个脚本即可,但今天我想分享一下使用 mac
自带的 自动操作 来做这些事,即 AppleScript
脚本在 Android
开发中实际常见应用场景。
什么是自动操作?
- 让
Mac
替你执行重复任务 - 为自己的操作添加脚本
两句话概括,就这么简单。而我们常见的效率工具,其实底层都必不可少的使用到了 macOs
的原生语言 AppleScript
,或者说很多第三方工具都只是其的一个包装。具体见自动操作使用手册
常见场景
双击安装apk
代码语言:javascript复制on run {input, parameters}
tell application "Terminal"
set thePath to POSIX path of input as string
do script "adb install -r " & thePath
activate
end tell
end run
双击安装aab
代码语言:javascript复制on run {input, parameters}
tell application "Terminal"
set thePath to POSIX path of input as string
# 你的bundle工具路径,里面放了你的其他信息,这个文件路径其实比较随意
set bundleToolPath to "/Users/petterp/Documents/工具/bundletool/"
# 转为apks后的名字
set myApksName to "my_app.apks"
set apksPath to bundleToolPath & myApksName
do script "rm -r " & bundleToolPath & "*.apks"
do script "bundletool build-apks --bundle=" & thePath & " --output=" & apksPath
# 暂停10s是因为我不知道如何等待上个命令执行完,找不到相关,只能硬性暂停
delay (10)
do script "bundletool install-apks --apks=" & apksPath
activate
end tell
end run
更多场景
- 对于任意一个文件,一键push到手机存储 说一下我自己想法:很简单其实,和上述双击安装一样,也是一行脚本,adb push xxx xxx,不过你可以搭配其他工作流程一起使用,比如点击时候,弹出一个选择列表,提前预备一些文件夹,选择完成后,所选择的内容文本将自动传递到接下来的流程里,这样再执行adb push,就可以更自由的push到指定手机存储文件夹。
- 对于任意一个生僻单词,双击使用mac播放,并将其加入固定生词本 说一下我自己想法:首先读取文本信息并使用mac播放比较简单,如何加入生词本,这个得找找文本编辑相关,其实也不复杂,那就写个脚本,去给指定文本后面补一个单词即可。
- …
配置教程
以双击安装Apk为例子:
command 空格
搜索自动操作,进入后选应用程序,然后选取。
搜索 Apple
,在搜索结果里,将列表里的 运行AppleScript 拖动到右侧灰色块内,粘贴上面的代码到代码框中;
保存重命名为自定义的名字;
点击任意一个apk,双击选择打开方式,更改默认打开方式为刚才创建的应用打开;
ok,即可实现双击安装apk 到设备。
我该去哪里学呢?
这个问题问得好,但其实完全没必要自己去写,如果有现成的话。如果你想让自己更懒一点,那么你可以参考以下地址学习,相关的文档其实并不是很多。
AppleScript 入门:探索 macOS 自动化
苹果脚本跟我学
适用于Mac的自动操作手册
展望
聊一聊非技术的小知识,个人观点。
在 ios14 中,我们会使用很多快捷指令,就比如一键打开健康码,我常用的功能如下:
但是这些功能复杂吗,除去手机灰尘喇叭清理,其实都是很简单的功能,至少在 ios
设备上,其就是打开一个 url
,跳转到了第三方app指定页面,即 Android
中我们常说的 Url Scheme
。
在即将最新发布的的 macOsMontery
中,也加入了快捷指令。
说这些主要就是想,在今后乃至未来,这种工具化的小组件会越来越多,而这些小组件离 普通用户
也会越来越近,而善用这些小组件,可以为我们省下不少时间,作为开发者,我们完全参与其中,写一些常见的组件,或者在一定程度上,会大大提高我们的愉悦度。
而不是面对这些东西,脑子里只有一个想法,这玩意我用命令行两下就解决了啊