Search code examples
androiduser-interfacethemesskins

How can I allow 3rd party apps to theme my app on Android?


I've seen this functionality in many apps in the market, such as ADWLauncher. You install an app but then you can then download apps that only serve to theme the first app. I'd really like to do this in an app I've made but I have no clue how to do it.

The simplest solution would be to simply include all possible themes into the main application and then "unlock" them based upon what other apps are also installed. This is a non-preferred solution because the addition of more themes will make the app bigger resulting in wasted space. This also prevents 3rd parties from coming up with their own themes.

Another solution would be for the resources and classes from the themed app to be loaded in by the vanilla app, but I have no clue how this could be accomplished.

Is there another way that this could be accomplished? What is the suggested mechanism to do this? Any input will be greatly appreciated.

Similar questions have been asked before but with no response:

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

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


Solution

  • I have been looking all over for an example on how to do this but as far as I can tell there isn't a way to share resources and code between packages. The best solution I can find is for one package to provide its resources for other packages by way of a ContentProvider.