最近我用qt写了一个android应用程序。
但我有一个很大的问题,我可以使用/调用一些原生的android API,比如调用特殊的activity吗?
例如,在 Android SDK 中,我在 java 中调用联系人:
意图意图 = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(意图,PICK_CONTACT);
是否有一些用于 java android sdk API 的 c++ 包装库?
或者如果我需要一些特殊的组件(用java编写的),我可以将它放在我的qt android程序中吗?
或者制作一个具有“纯qt”和“标准java”或“C++ android NDK”混合页面/活动的程序?
(我问这个问题是因为我有使用 MOSYNC 框架的经验,这是一个很好的框架,但你仅限于它自己的库,你不能使用任何外部库或 android 标准 API,...)
提前致谢。
EDIT:根据 JNI 的改进(http://qt-project.org/doc/qt-5/qtandroidextras-index.html http://qt-project.org/doc/qt-5/qtandroidextras-index.html), 我有个问题:
我可以在我的 qt 项目中使用“任何”android Java 第三方库吗?当我在 Java SDK 项目中使用这些库时?
为了执行您想要的操作,您需要通过 JNI 从 C++ 代码调用 Java 代码。我不知道有任何 C++ 包装库可以用于此目的。您需要从 JNI_OnLoad 获取 Java VM,当您想要调用 Java 方法时,您需要将 VM 附加到您的线程,并为您提供 JNIEnv,您可以使用它来查找所需的类并调用方法在上面。这个链接 http://mkk.ekk.pl/?wpis=3应该有助于细节。
至于是否值得使用QT来开发Android应用程序,是的,如果你需要跨平台支持,并且想将同一个应用程序部署到Android、Linux、Windows等。如果你只是开发Android应用程序,那么在根据我的经验,直接使用Android会更容易、更快。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)