如何从给定的 .apk 中找出哪个架构版本用于给定的应用程序安装?
How to find out which architecture version from a given .apk was used on a given app installation?
单个 .apk
文件可能包含针对不同架构(例如 x86、x86-64 等)的 NDK 二进制文件。我想,在给定设备上安装时,会根据设备架构自动选择相应的二进制文件。但是,由于例如 64 位设备通常与 32 位软件兼容,因此我想确保安装了相应的二进制文件。
编辑:
- 我的意思是用于测试目的的本地安装。
- 我知道您可以有不同的 .apk
,每个用于一种特定的体系结构。假设只有一个包含所有架构目标。
在安装过程中指定ABI:
您可以在使用 adb install
安装应用程序时使用 --abi
选项明确指定 ABI。
对于 Aarch32:
adb install --abi armeabi-v7a <YOUR_APK_FILE>.apk
对于 Aarch64:
adb install --abi arm64-v8a <YOUR_APK_FILE>.apk
检查 运行ning 进程的 ABI:
这可能被认为是 Hack,但对我有用。
如果您已经安装了 .apk
并且不想重新安装它,您可以在感兴趣的 .apk
文件中检查 .so
文件的名称(f.e. 使用 mc).在我的例子中,它们位于 /lib/armeabi-v7a
和 /lib/arm64-v8a
下。然后你可以 运行 你的设备上的应用程序(在我的例子中 Android 牛轧糖在 aarch64 上)并做:
cat /proc/<PID_OF_YOUR_RUNNING_APP>/maps | grep <NAME_OF_SO_FILE>
对于使用 --abi armeabi-v7a
选项安装的 .apk,路径名是:
/data/app/<APP_NAME>/lib/arm/<NAME_OF_SO_FILE>
带有 --abi arm64-v8a
选项:
/data/app/<APP_NAME>/lib/arm64/<NAME_OF_SO_FILE>
proc 文件系统参考:http://man7.org/linux/man-pages/man5/proc.5.html
运行:亚行shell
运行: dumpsys 包包 | grep
它将为您提供外部本机目录的路径,即 /data/app//lib/YOUR_INSTALLED_LIB_ARCHITECTURE
否则,您可以使用 https://play.google.com/store/apps/details?id=com.xh.nativelibsmonitor.app 这个应用程序,它会提供应用程序中打包的库的详细信息以及应用程序中安装的库的体系结构。
单个 .apk
文件可能包含针对不同架构(例如 x86、x86-64 等)的 NDK 二进制文件。我想,在给定设备上安装时,会根据设备架构自动选择相应的二进制文件。但是,由于例如 64 位设备通常与 32 位软件兼容,因此我想确保安装了相应的二进制文件。
编辑:
- 我的意思是用于测试目的的本地安装。
- 我知道您可以有不同的 .apk
,每个用于一种特定的体系结构。假设只有一个包含所有架构目标。
在安装过程中指定ABI:
您可以在使用 adb install
安装应用程序时使用 --abi
选项明确指定 ABI。
对于 Aarch32:
adb install --abi armeabi-v7a <YOUR_APK_FILE>.apk
对于 Aarch64:
adb install --abi arm64-v8a <YOUR_APK_FILE>.apk
检查 运行ning 进程的 ABI:
这可能被认为是 Hack,但对我有用。
如果您已经安装了 .apk
并且不想重新安装它,您可以在感兴趣的 .apk
文件中检查 .so
文件的名称(f.e. 使用 mc).在我的例子中,它们位于 /lib/armeabi-v7a
和 /lib/arm64-v8a
下。然后你可以 运行 你的设备上的应用程序(在我的例子中 Android 牛轧糖在 aarch64 上)并做:
cat /proc/<PID_OF_YOUR_RUNNING_APP>/maps | grep <NAME_OF_SO_FILE>
对于使用 --abi armeabi-v7a
选项安装的 .apk,路径名是:
/data/app/<APP_NAME>/lib/arm/<NAME_OF_SO_FILE>
带有 --abi arm64-v8a
选项:
/data/app/<APP_NAME>/lib/arm64/<NAME_OF_SO_FILE>
proc 文件系统参考:http://man7.org/linux/man-pages/man5/proc.5.html
运行:亚行shell 运行: dumpsys 包包 | grep
它将为您提供外部本机目录的路径,即 /data/app//lib/YOUR_INSTALLED_LIB_ARCHITECTURE 否则,您可以使用 https://play.google.com/store/apps/details?id=com.xh.nativelibsmonitor.app 这个应用程序,它会提供应用程序中打包的库的详细信息以及应用程序中安装的库的体系结构。