如何不安装而运行APK应用程序(本机)

时间:2018-08-27 04:43:51

标签: android c apk

有什么方法可以不安装而运行apk?就像在Windows中运行exe一样。相对于此,本地apk会发生任何变化吗?

2 个答案:

答案 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文件的副本复制到给定目录(通常是/ data / app /)
  • 创建应用程序目录并设置权限以存储数据库和共享首选项,本机库(通常为/ data / data //)
  • 将dex代码提取到缓存目录

如果apk的资源和配置不在同一台设备上,则它无法在android设备上运行。