I have tried to do research on this topic, but have not found an answer that I can consider “correct”. There are several similar posts on SO, but like most people, I think my question is different… :-). Thanks in advance for any assistance.
I am developing an application which will have training modules built in. Not all users will need to have all training modules available on their devices all the time. Also, these modules will be resource heavy, which is why I do not want to include all of them in the base application. My idea is to provide additional APK packages (with the same signature) so that these modules can interact freely. Questions are:
- I have read somewhere (but can’t find the link again) that if different APKs use the same signature, they can talk to each other. Please let me know if this is not true.
- How would I be able to share code across these APKs? I have read about sharing resources, but now sure how the code sharing will work.
- If this is not the best approach to solving this problem, I would welcome any direction on a different approach.
I am still in research mode on this particular part of my application and, therefore, am quite flexible on the design approach I can take.
Thanks…
Any apps can “talk to each other”. Having two or more signed with the same signing key allows you to define custom signature-level permissions that mean that only your apps can “talk to each other” and that apps from other developers cannot talk to your via the same means.
Ideally, you wouldn’t. You are certainly welcome to have one app invoke APIs exposed by another app:
And those APIs can be secured by the custom signature-level permissions mentioned above, so they are APIs only for your family of apps, not for arbitrary apps to use.