如何让第三方应用程序在Android上主题我的应用程序?

问题描述:

我已经在市场上的许多应用程序中看到过这种功能,例如ADWLauncher。你安装一个应用程序,但然后你可以下载仅用于主题第一个应用程序的应用程序。我真的很想在我制作的应用程序中这样做,但我不知道如何去做。如何让第三方应用程序在Android上主题我的应用程序?

最简单的解决方案是简单地将所有可能的主题包含到主应用程序中,然后根据安装的其他应用程序“解锁”它们。这是一个非首选的解决方案,因为添加更多主题会使应用程序变得更大,导致浪费的空间。这也阻止了第三方提出自己的主题。

另一个解决方案是从主题应用程序的资源和类被香草应用程序加载,但我不知道如何实现这一点。

有没有另外一种方法可以实现?建议的机制是什么?任何输入将不胜感激。之前,但没有响应

类似的问题已经问:

https://*.com/questions/3772440/android-how-to-allow-third-party-developers-to-skin-my-app

https://*.com/questions/3771923/android-possible-for-one-app-to-provide-styles-themes-for-another-app

我一直在寻找关于如何做到这一点的例子,但据我所知,没有办法在软件包之间共享资源和代码。我能找到的最佳解决方案是通过一个ContentProvider为一个包提供其他包的资源。

我很好奇这一点。我现在最好的猜测是确保你的所有UI控件都是可绘制的,而不仅仅是股票的旋钮/滑块/等等。在UI中使用可绘制的图形,当你发布你的apk时,这些资源不应该只是可见但可被其他人改变。然后再次,我不是100%肯定的,所以不要引用我那个大声笑。

您可以使用此代码段

context.getPackageManager().getResourcesForApplication(String appPackageName); 
获得其他应用程序的资源