首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android,JNI,蓝牙:使用JNI设计具有C++源代码/库的安卓应用程序

Android,JNI,蓝牙:使用JNI设计具有C++源代码/库的安卓应用程序
EN

Stack Overflow用户
提问于 2016-08-11 12:12:19
回答 2查看 2.4K关注 0票数 1

我需要设计安卓应用程序,它有C++源代码/库,使用蓝牙API/方法,使用JNI,NDK。我对蓝牙API知之甚少。

预条件

  1. 现有的Windows,Linux,Mac软件代码都是用C++编写的。这是连接和控制蓝牙设备(音箱等)的软件(桌面)。
  2. 现有的整个代码都在C++中。
  3. 需要使用现有的C++源代码,或者可以在Application中使用它作为库。

查询:

  1. 我应该使用MVC或MVP架构吗?
  2. 如何将C++蓝牙API与安卓蓝牙API联系起来?
  3. 如何在Android和C++代码之间进行双向通信,反之亦然。(如何使用回调和为C++注册事件?注意:目前我还没有接触到实际存在的Windows、MacOS、Linux软件代码,所以不知道当前的通信结构。如果有人知道我,请解释)
  4. Android蓝牙API是否足以满足开发人员使用本机代码(C++)的扩展支持?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-12 07:23:19

  1. 我个人会选择MVC。在我看来,它可以更好地实现功能。
  2. 绝对没有必要连接本地和android。既然两者的目的是相同的,那就看你用哪一种。android栈有点不稳定,但已经具备了所需的所有实现。除非本机代码将提供某种增值或不同的功能,否则再发明轮子是没有意义的。
  3. 您可以使用各自的C++库的SO文件,并使用JNI访问它们。相互交流不是问题。为了实现回调,您将找到代码片段。例如,如何在android代码和本机代码之间创建回调?
  4. 如前所述,如果您的本机库没有做比android更多的事情,那么就尽可能地避免它。
票数 4
EN

Stack Overflow用户

发布于 2016-08-11 12:42:26

答案

  1. 体系结构是足够灵活的,能够适应任何需求,完全由您来决定使用哪一个。
  2. 基本上,如果您在C++中有什么东西,就必须编写一个JNI包装器。您可以将它捆绑在一个jar中,并在您的项目中导入它,并且可以使用公开的APIs来使用它。
  3. 学习JNI及其用法。
  4. 安卓系统引入了蓝牙低能来使用蓝牙技术来通信远程设备。它们是否足以满足您的需求或不完全取决于您的需求。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38896061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档