从文件中提取应用程序代码.apk



因此,我正在尝试使用正在运行的应用程序,并让它通过其.apk文件访问尚未安装的应用程序的代码。我需要访问诸如辅助应用程序包名称,提供程序,捆绑包,数据等内容,而无需将其安装到手机上。

到目前为止,根据我的理解,我可以使用两种东西之一。

1) dexClassLoader。使用此选项,我需要能够从某种存储(例如SD卡)访问.apk文件。

2) 路径类加载器。这里似乎是正确的选择。可以通过此选项使用 JAR/ZIP/APK 文件。

本质上,我试图通过将第二个应用程序的代码绑定到正在运行的进程来将第二个应用程序加载到第一个应用程序中,我只是在访问其代码而不对其进行反编译时遇到问题。我想我的问题是我应该在这里使用/尝试第一个或第二个选项,还是第三个选项可用?

虽然您可以使用 dexClassLoader 等从第二个应用程序动态加载代码,但不能动态地向应用程序添加新组件。任何组件都必须在 AndroidManifest .xml 中静态声明。

因此,例如,您不能将活动从第二个apk"导入"到主应用程序中。您可以访问该活动的类,但不能直接使用它启动活动。

根据您的要求,可以在主应用程序中创建一个"占位符"活动,该活动从辅助 apk 创建 Activity 类的实例,并将所有方法调用转发到该实例。一般来说,我实际上不会建议这样做。我怀疑要真正正确地做起来是非常困难的(如果在某些情况下不是不可能的话)。

相关内容

最新更新