[本机]:使用Java函数&;Qt for Android中的第三方库
最近我使用qt编写了一个android应用程序。[本机]:使用Java函数&;Qt for Android中的第三方库,android,qt,mosync,Android,Qt,Mosync,最近我使用qt编写了一个android应用程序。 但我有一个大问题,我可以使用/调用一些原生android API吗,比如调用特殊活动 e、 在Android SDK中,我用java调用联系人: 意向意向=新意向(Intent.ACTION\u PICK,Contacts contract.Contacts.CONTENT\u URI); startActivityForResult(意向、选择联系人) java C++ Android SDK API的一些C++包装库吗? 或者,如果我需要一
但我有一个大问题,我可以使用/调用一些原生android API吗,比如调用特殊活动 e、 在Android SDK中,我用java调用联系人:
意向意向=新意向(Intent.ACTION\u PICK,Contacts contract.Contacts.CONTENT\u URI); startActivityForResult(意向、选择联系人) java C++ Android SDK API的一些C++包装库吗? 或者,如果我需要一个特殊的组件(用java编写),我可以在qt android程序中使用它吗?
或者用“纯qt”和“标准java”或“C++android NDK”的混合页面/活动制作一个程序 (我问这个问题是因为我有使用MOSYNC框架的经验,这是一个很好的框架,但您仅限于自己的库,无法使用任何外部库或android标准API,…) 提前谢谢 编辑: 根据JNI的改进( ),我有一个问题:
我可以在qt项目中使用“任意”android Java第三方库吗?当我在Java SDK项目中使用这些库时?您可以使用Android NDK在C/C++中编程。你必须在静态库中包装C++代码库,并通过java包装器和jn.< /p>加载它。
标准NDK不支持RTTI,标准C++的许多功能也不可用,如STD::String等。Dmitry Moskalchuk提供了NDK的一个修改版本,该版本至少支持这一点。此修改版本适用于所有运行ARM处理器的Android手机
注意:JNI调用会大大降低性能。Java并没有那么难——如果你知道如何用C/C++编程的话。java的优点在于,应用程序可以运行在运行Android的任何设备上,因为NDK应用程序依赖于编译的架构。< P>为了实现您想要的,您需要通过JNI调用C++代码中的java代码。对此我不知道任何C++包装库。您需要从JNI_OnLoad获取Java VM,当您想要调用Java方法时,您需要将VM附加到您的线程,with将为您提供一个JNIEnv,您可以使用它来查找您想要的类并调用其上的方法。应该有助于了解细节
至于使用QT开发Android应用程序是否值得,是的,如果您需要跨平台支持,并希望将同一应用程序部署到Android、Linux、Windows等。如果您只开发Android应用程序,那么根据我的经验,直接使用安卓系统更容易、更快。我不确定您是如何进行的“Qt for Android”。但此时此刻,这个想法得到了团队(K桌面环境)的正式支持。他们称之为project。2012年10月,他们发布了该项目的第一个beta版 因此,基本上,当您安装Essentials SDK时,您可能已经安装了这些东西
希望这能有所帮助。QT使用android NDK,它应该有一个包装器功能,不是吗?是的,sebastian,NDK有,但这并不意味着QT也有一个使用android sdk/NDK的包装器。Eclipse的评论似乎很主观。为什么android开发在Eclipse中最适合被问到的问题?以及如何使用它Eclipse使被问到的问题比使用任何其他IDE都更容易解决?我刚刚发现了一个从Android应用程序调用Java代码的示例:我认为这个问题可以打开。@Sashoalm NDK确实支持RTTI、异常和STL。请看:谢谢@gnuanu,实际上我问这个问题是为了得到正式提及!