是否可以使用命令行从Play商店安装应用,如果可以,怎么办?
我要完成的工作类似于使用adb install file.apk,但目标不是apk文件,而是Play商店应用的程序包名称(例如adb install com.spotify.mobile.android.ui)。
这样的事情可能吗?
gplaycli
github.com/matlink/gplaycli
是否可以使用命令行从Play商店安装应用,如果可以,怎么办?
我要完成的工作类似于使用adb install file.apk,但目标不是apk文件,而是Play商店应用的程序包名称(例如adb install com.spotify.mobile.android.ui)。
这样的事情可能吗?
gplaycli
github.com/matlink/gplaycli
Answers:
简短答案:不。
adb install
是一个“快捷方式”,等效于打开一个shell(使用adb shell
)并键入pm install
。pm
代表package-manager,他的行为与其他Linux发行版中的其他Package Manager(例如,aptitude
在Debian或pacman
Arch Linux中)相同,除了pm
不从遥远的地方获取软件包。
Play商店是一个像其他应用程序一样的应用程序,我们不能像调用C或“常规” Java程序这样的程序来调用android应用程序,因为该.apk
文件实际上不是二进制文件,而是简单的压缩包。这是Dalvik虚拟机(在某种程度上等同于Java虚拟机),与运行的应用程序交易。Play商店应用程序只需下载所需的应用程序,然后pm install
在下载的程序包上运行即可。
我一直在寻找相同的答案,我找不到单个命令来执行此操作,但是我发现在这种情况下可能有用的几个选项:
A.将.apk下载到您的计算机并从中安装apk(只需在Google中搜索“ apk downloder”,然后找到一个适合您的APK)即可:
adb install com.myapp.apk
B.从adb打开playstore应用并将其指向您的程序包,如下所示:
adb shell am start -a android.intent.action.VIEW -d 'market://details?id=com.myapp'
(我敢肯定它可以自动模拟neccesarry点击并安装应用程序,但这需要做更多的工作)
没有比从计算机cmd进行安装更容易的了,但这就是我们现在所拥有的。
adb-am ()
{
adb shell am start -a android.intent.action.VIEW -d "market://details? id=$1"
}
并确保将每个灰色块粘贴为单独的一行。然后,您可以与它运行adb-am com.google.android.apps.photos
一种实现您想要(至少部分地)实现目标的方法是使用
pm install -i "com.android.vending" -r "path to apk"
在adb shell中。这样,尽管该应用是侧面加载的,但它似乎是从Play商店安装的。
如果您知道安装和接受按钮的x和y坐标,则可以在市场开始指向应用程序(如Ohad Cohen所述)后运行以下命令
亚行外壳输入触摸屏水龙头xy-安装按钮的x和y坐标之间有空格
暂停一两秒钟然后运行
亚行外壳输入触摸屏点击xy-接受按钮的x和y坐标,中间有空格
然后关闭播放商店adb shell,强制停止com.android.vending