我不确定我想要实现的目标是否可能。
我正在从另一个 apk 加载一个类,如下所示:
final Class classToLoad = (Class<Object>) pathClassLoader.loadClass(classPath);
这一切都很好,但我需要扩展它,所以我尝试创建一个扩展它的子类:
class other extends classToLoad {...code to follow...}
但是编译器提示它需要类名而不是 classToLoad
有什么办法可以解决吗?
在我被喊倒之前,是的,我正在尝试修改另一个应用程序的行为,我没有该应用程序的源代码,但我并不是试图“破解”付费应用程序或类似应用程序,我是只尝试启动未导出的服务,启动该服务的唯一方法是打开 Activity 并点击菜单项,我正在尝试自动执行此操作,尽管我有一种感觉,我会被告知这一点不可能。
最佳答案
Is there any way around it?
据我所知,这没有帮助。
although I have a feeling I will be told this is not possible.
目前还不清楚从外部 APK 加载类与“打开 Activity 并点击菜单项”有何关系。无论如何,您无法执行任何操作来启动该服务,除非在 root 设备上(您可以在其中自动执行其他应用程序的实际 UI,或修改其 list 以导出服务等)。即使您以某种方式导致其他应用程序的部分 UI 在您的进程中运行,该进程仍然是您的进程,而不是其他应用程序的进程。您的进程没有任何启动非导出服务的权限。
关于java - 在 Java (Android) 中扩展动态加载的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49466899/