3

我正在开发一个带有动态模块的 android 应用程序。假设有一个基本模块(base)和一个动态模块(feature)。我使用 Android Studio (或bundle tool)安装了应用程序,base并且feature安装了 apks 并位于

/data/app/example.dynapp--Gn1-FdAo0qV-8Y8Q5qb7g==/base.apk
/data/app/example.dynapp--Gn1-FdAo0qV-8Y8Q5qb7g==/feature.apk

我通过运行找到了这些地址

adb shell pm path example.dynapp

然后我将应用程序包上传到 Play Console 并从 Google Play 安装到我的手机上。接下来,我feature在使用该应用程序时下载了该模块。但是,在我运行后adb shell pm path example.dynapp它只显示baseapk 并且没有featureapk 的迹象。顺便说一句,似乎feature模块已安装,因为feature模块的功能正常工作。

我的问题是 Google Play 将这些动态加载的模块(或 APK)保存在哪里。有没有办法使用adb(例如adb pull)访问它们。

4

1 回答 1

0

它将它存储在应用程序目录中。

像这样:

/data/data/com.myapp.mypackage/files/splitcompat/1400191/verified-splits/kotlin.config.xxhdpi.apk

显然,1400191 发生了变化。

为了找到您下载的 apk 文件,您可以在设备上运行 linux 命令来找到它们:

find / -name *.xxhdpi.apk

甚至更好:

find /data/data/com.myapp.mypackage -name *.xxhdpi.apk 

注意:您需要在“adb shell”之后运行这些,之后,您需要作为您的应用程序运行。如果你有一个根设备,那么在“adb shell”之后输入“su”就足够了。

于 2021-02-20T00:13:14.110 回答