I have an existing app(not released public yet just internal) based on c++ which i would like to port to android and use its services in my android app. I use STL and boost in that app.
My question is if i want to port the existing code to android, can i just compile them as static or shared objects.
I was planning to use Android NDK for porting the native c++ code to android as a library, and use it in my android application which is in Java
but because i also use open source libraries and if i use them in my android app’s code should i release the source code of my library as well?
I don’t understand how these license things usually work when it comes to releasing it as an public app. I guess if i compile it as shared library, i guess i should be fine, but i think there will be some issues when it comes to app upload??(or not maybe??)
Second, if i compile them as static libraries, then i guess i need to release my source object files??
I’m not so comfortable in releasing my source, how can i do this effectively? Which path should i take(shared / static object), or will it not even matter because anyways the application would just be an installer and it should work just fine in any mobile phone?? Will there be any open-source violation issues if i do that??
Thanks
You first have to learn Java… and figure out that there is no STL and boost libraries.
The Java ecosystem has its own crowd of opensource libraries you can use to be more productive. Including them in your apps is just like copying a set of .jar files in the right folder and add them in the build path.
About licensing, most issues come with GPL licensed libraries. The GPL license requires any app produced with a GPL component to be also open sourced and licensed with GPL (the famous “contagious” license).
Anyway, the GPL is rarely used for libraries as this full open source requirement would limit their adoption. There is a derived GPL license called LGPL which does not require your apps to be open sourced.
Though, libraries are often distributed under more permissive licenses and most of the time it is not an issue to include them in your apps.