有什么方法可以不安装而运行apk?就像在Windows中运行exe一样。相对于此,本地apk会发生任何变化吗?
答案 0 :(得分:8)
最简单的答案是:
你不能。
长答案(TL; DR)
如果与Windows的{em>二进制文件并且可以执行的文件.exe
相比,则.apk
不是二进制文件,因此不能执行< / em>。 .apk
实际上是一个zip
存档,只是用.apk
而不是.zip
来命名。
对于Android .apk
是一个应用程序包,其中包含可执行代码+资源+资产+其他所需的东西。这意味着.apk
文件本身并未运行。
工作原理(简体):
当您在Android上启动应用程序时,系统提取.apk
文件,打开manifest
文件,找到您选择要启动的启动程序活动,并在Java VM上执行Activity.class
代码。
因此,实际上,您可以通过手动提取APK,启动虚拟机并在其中运行.class
代码来具有root用户访问权限,但是恕我直言,这不值得这样做。
您可以 运行的内容是arm
编译的Linux二进制文件的大部分。如果它们不需要访问系统拥有的文件或其他数据,或者您在设备上具有root用户访问权限,则可以使用arm
二进制文件。但是您仍然需要安装一些APK才能运行它们。
请注意,答案得到简化以简化理解,实际上,APK,Java VM等使一切变得更加复杂。
答案 1 :(得分:1)
在由设备上的android软件包管理器管理的apk安装过程中(甚至通过adb),将执行各种过程,例如:
如果apk的资源和配置不在同一台设备上,则它无法在android设备上运行。