Android 在运行时操作现有本机应用程序的UI

Android 在运行时操作现有本机应用程序的UI,android,cordova,apk,Android,Cordova,Apk,我知道这听起来有点“黑客”,但我想对我已经安装在Android中的一些应用程序的UI进行个性化设置。例如,使用相同的字体、颜色等。我知道这听起来很奇怪,但除了我之外,我没有考虑为其他人创建应用程序,因此如果我必须根目录我的手机或使其处于调试模式,这不是一个问题。有线索吗 PS:我已经看到一些建议解压/压缩apk的答案,但我不想修改应用程序的源代码,只是在运行时注入一些风格(就像时尚扩展对Web应用程序所做的那样) PS2:由于Cordova应用程序是使用Web技术构建的,因此可能需要操纵DOM,

我知道这听起来有点“黑客”,但我想对我已经安装在Android中的一些应用程序的UI进行个性化设置。例如,使用相同的字体、颜色等。我知道这听起来很奇怪,但除了我之外,我没有考虑为其他人创建应用程序,因此如果我必须根目录我的手机或使其处于调试模式,这不是一个问题。有线索吗

PS:我已经看到一些建议解压/压缩apk的答案,但我不想修改应用程序的源代码,只是在运行时注入一些风格(就像时尚扩展对Web应用程序所做的那样)

PS2:由于Cordova应用程序是使用Web技术构建的,因此可能需要操纵DOM,但如何从外部操作呢


提前谢谢

免责声明:因为这个问题非常笼统,所以这个答案也是如此


让我们考虑一下SyGoNoMod(现在退休的)主题引擎的例子。以下是一篇文章中的一些例外(此处添加了重点):

在最基本的层面上,主题只是一种机制,允许在运行时替换资源。。。只需将它们视为构成应用程序UI的元素。无论何时启动应用程序,Android都会加载与该应用程序相关的资源,应用程序会请求这些资源

这是检索资源的正常流程,但是当应用主题时会发生什么呢?当系统加载应用程序的资源时,它会检查是否应用了主题,如果有,它会将主题资源添加到原始资源中。这就是魔法发生的时刻当应用程序请求资源时,系统将检查该资源是否有主题版本,如果有,则返回主题资源,如果没有,则只返回原始资源。这里的关键点是原始资源永远不会被修改/移动/更改,系统只是从主题而不是原始主题返回一个资源。如下图所示,就应用程序而言,没有区别

这是通过利用一个称为运行时资源覆盖的框架来实现的,该框架是由。RRO框架的一部分是一个名为IDMAP的工具。IDMAP检查应用程序中的资源,并将资源类型和名称与主题资源中的资源进行比较。对于匹配的资源,它在主题中存储原始资源到匹配资源的映射。一旦这个过程完成,我们就有了一个有效的方法来确定资源是否主题化以及资源所在的位置

。。。而且还会继续下去

最近的一个工具就是Substratum


我认为这些应该让你走上正确的道路。

你试过这个吗@gal007想知道这个问题与cordova有什么关系?这是一个编程问题吗?更多的是xdaDevelopers的事情@Ghandi开发混合应用程序的一种方法是使用Cordova框架。由于它使用的是Web技术,我想它可以像DOM一样进行操作,尽管我不知道如何从外部进行操作我很高兴我提供了帮助!祝你搜索好运!