adb 拉取当前应用 apk

目标 & 背景

最近几天在查一些原生 bug 时,需要拉取安卓机上现有的安装包,由于是谷歌渠道,因此实际文件会由多个 apk 组成。每次都输入指令查询太过于麻烦,所以本篇文章将这个场景封装为一个日常使用的函数

指令

将这段代码放在环境配置文件,如 .zshrc 中即可

# 输出当前安卓设备打开的应用包名
alias curapkname='adb shell dumpsys window | grep mCurrentFocus | cut -d " " -f 5 | cut -d "/" -f 1'

pullcur () {
	bundle=`curapkname`
	# 实际输出为多行 package:/xxxxx
	# 截取每一行的路径,拉取到本地
	for file in $(adb shell pm path $bundle | grep -o '/.*')
	do
		echo $file
		adb pull $file
	done
}