我想为移动应用程序编写一个安全框架。框架不应该依赖于某个目标平台(例如android)。因此,我想使用C ++并为特定平台构建我的自定义“库”(即第一步中的android,稍后可能是ubuntu touch)。我想使用该框架以模块化方式向我的任何应用程序添加安全相关功能。对于非常基本的功能,例如加密,我想使用一个公认的加密库,比如openSSL。
事先我读了一些关于为Android构建C ++库(并将它们包装在JNI中)的文章。例如,我阅读了如何为Android构建openSSL的指南: https://wiki.openssl.org/index.php/Android
这个: http://kvurd.com/blog/compiling-a-cpp-library-for-android-with-android-studio/
(两种描述都是针对特定的,...我正在使用Windows)
但我仍有一个非常普遍的问题。我不是c ++专家(我确实更熟悉java世界),这是我有史以来第一个自己的“图书馆”。是否有可能在我的框架中集成或包装像openSSL这样的现有库,这样我就可以在一个库中“打包”在一起,我可以将其包含在我的移动应用程序中? (比如在java项目中使用.jar文件并将该文件与新代码一起导出)或者我必须将框架和openSSL构建为单独的库,例如:的android?在这种情况下,如何从我的框架引用openSSL?
或者是否有更简单的方式以“跨平台”的方式提供这样的框架?我完全更喜欢用java代码编写所有内容并使用java库,但我想使用我的框架进行iOs或Ubuntu touch会很困难(或者不可能)......
我知道即使使用C ++方式也将是android中必需的额外工作(编写JNI包装器)。我的目标是尽可能多地在不同平台上重用功能和代码。 任何建议和提示都是非常受欢迎的。非常感谢提前。
更新:我想使用动态库,但如果更可行,我也接受静态解决方案的答案。