0

I'd like to allow specific third party developers to write plugins for my app without them accessing my app's main source code. And without me accessing their plugin code.

These plugins would extend specific classes, which the main app would scan for, register, and execute dynamically. I have this part working in a project with dynamic feature modules (DFM's), however so far these are all signed by the same cert and built together, by me.

However, the ask is that we each don't see each other's code. I believe you can only execute code in another package which was signed by the same cert.. so herein lies the issue.

I can definitely expose some code for them (the abstract classes / interfaces they'd be extending), but don't want to expose much more than that.

I'm thinking along the lines of a public api module + a private app module, but need help filling in the details as to who builds what with who's certificate. Any good ways to get this done?

Thanks..

Steven L
  • 15,304
  • 1
  • 21
  • 16
  • 1
    When are the third-party plugins loaded? Compile time, on APK delivery, after install. Old related question: [Allow others to develop plugins for my app](https://stackoverflow.com/q/26977827/295004) – Morrison Chang Jun 15 '22 at 00:43
  • Not easily. It may not quite be impossible, but it's a very large ask. Especially if you want them to extend your code. Most plugin systems on Android use WebViews to display custom HTML, or use separate apps and communicate via intent. Trying to work more like a dll, which seems to be what you have in mind, would require custom class loaders for dex files. It would also get you banned from the Play Store, as this is against their terms of service. – Gabe Sechan Jun 15 '22 at 05:23

0 Answers0