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

时间:2017-01-26 23:50:58

标签: android load dalvik dex

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

到目前为止,根据我的理解,我可以使用两种方法中的任何一种。

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

2)pathClassLoader。看起来像这里的正确选项。可以使用此选项的JAR / ZIP / APK文件。

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

1 个答案:

答案 0 :(得分:0)

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

所以你不能,例如," import"从第二个apk到您的主应用程序的活动。您可以访问该活动的类,但不能使用它直接启动活动。

根据您的要求,可以创建一个"占位符"主应用程序中的活动,它从辅助apk创建Activity类的实例,并将所有方法调用转发给该实例。一般来说,我实际上并不建议这样做。我怀疑实际上做得很好(如果不是不可能的话)。