Android 如何找出给定.apk中的哪个体系结构版本用于给定的应用程序安装?
单个Android 如何找出给定.apk中的哪个体系结构版本用于给定的应用程序安装?,android,android-ndk,installation,Android,Android Ndk,Installation,单个.apk文件可能包含针对不同体系结构(如x86、x86-64等)的NDK二进制文件。我假设,在给定设备上安装时,根据设备架构自动选择相应的二进制文件。但是,由于例如64位设备通常与32位软件兼容,因此我希望确保安装了相应的二进制文件 编辑: -我指的是用于测试目的的本地安装。 -我知道您可以有不同的.apk,每个都适用于一个特定的体系结构。假设存在一个包含所有体系结构目标的单一目标。在安装过程中指定ABI: 使用--ABI选项,在安装带有adb install的应用程序时,可以显式指定ABI
.apk
文件可能包含针对不同体系结构(如x86、x86-64等)的NDK二进制文件。我假设,在给定设备上安装时,根据设备架构自动选择相应的二进制文件。但是,由于例如64位设备通常与32位软件兼容,因此我希望确保安装了相应的二进制文件
编辑:
-我指的是用于测试目的的本地安装。
-我知道您可以有不同的.apk
,每个都适用于一个特定的体系结构。假设存在一个包含所有体系结构目标的单一目标。在安装过程中指定ABI:
使用--ABI
选项,在安装带有adb install
的应用程序时,可以显式指定ABI
对于Aarch32:
adb安装--abi-armeabi-v7a.apk
对于Aarch64:
adb安装--abi arm64-v8a.apk
参考:
检查正在运行的进程的ABI:
这可能被认为是一种黑客行为,但对我来说是有效的
如果您已经安装了.apk
并且不想重新安装,您可以检查感兴趣的.apk
文件中.so
文件的名称(例如使用mc)。在我的例子中,它们位于/lib/armeabi-v7a
和/lib/arm64-v8a
下。然后,您可以在设备上运行应用程序(在我的例子中,AARC64上的Android Nougat)并执行以下操作:
cat/proc//maps|grep
对于安装了--abi armeabi-v7a
选项的.apk,路径名为:
/data/app/在安装过程中指定ABI:
使用--ABI
选项,在安装带有adb install
的应用程序时,可以显式指定ABI
对于Aarch32:
adb安装--abi-armeabi-v7a.apk
对于Aarch64:
adb安装--abi arm64-v8a.apk
参考:
检查正在运行的进程的ABI:
这可能被认为是一种黑客行为,但对我来说是有效的
如果您已经安装了.apk
并且不想重新安装,您可以检查感兴趣的.apk
文件中.so
文件的名称(例如使用mc)。在我的例子中,它们位于/lib/armeabi-v7a
和/lib/arm64-v8a
下。然后,您可以在设备上运行应用程序(在我的例子中,AARC64上的Android Nougat)并执行以下操作:
cat/proc//maps|grep
对于安装了--abi armeabi-v7a
选项的.apk,路径名为:
/data/app/运行:adb shell
运行:dumpsys包包| grep
它将为您提供外部本机目录的路径,即/data/app//lib/YOUR_INSTALLED_lib_架构
否则,您可以使用此应用程序,它将提供应用程序中打包的库的详细信息以及应用程序中安装的libs的体系结构。Run:adb shell
运行:dumpsys包包| grep
它将为您提供外部本机目录的路径,即/data/app//lib/YOUR_INSTALLED_lib_架构
否则,您可以使用此应用程序,它将提供应用程序中打包的库的详细信息以及应用程序中安装的libs的体系结构。检查。因此运行进程的文件似乎只在根设备上工作(这不是我的情况),但解决方案看起来有效,谢谢!检查。因此运行进程的
文件似乎只能在根设备上工作(这不是我的情况),但解决方案看起来有效,谢谢!