使用C和C ++进行Android开发[关闭]


47

我是C,C ++开发人员。我对移动开发感兴趣。我想知道如何使用C和C ++开发Android应用程序,我已经读到它们为C,C ++开发人员提供了一个工具包,但是它不具备Java工具包的所有功能。我应该选择C / C ++开发套件还是最好学习Java,因为它们将来可能无法提供所有功能?

Answers:


33

简短版本:每个Android SDK / NDK版本都可以在Android上使用C ++,并且更加容易,但是比Java难。


长版:

对于每个版本,Google都会为Android Native Development Kit添加更多功能,并使其越来越独立于Java代码。

阅读http://developer.android.com/sdk/ndk/overview.html了解更多详细信息:

编写本机活动,使您可以用本机代码实现生命周期回调。Android SDK提供了NativeActivity类,这是一个便捷类,用于将任何活动生命周期回调(onCreate(),onPause(),onResume()等)通知您的本地代码。您可以在本机代码中实现回调,以在发生这些事件时对其进行处理。使用本机活动的应用程序必须在Android 2.3(API级别9)或更高版本上运行。您不能原生访问服务和内容提供程序之类的功能,因此,如果要使用它们或任何其他框架API,仍可以编写JNI代码来使用。

问题是,如果您使用最新的NDK,将无法部署,并且将无法部署许多不最新的Android版本。

无论如何,即使使用以前的NDK版本,您也可以使用最少的Java代码(用于与OS交互)以及使用C ++或任何本机的完整应用程序代码。

此外,我们还努力通过像Vs-Android这样的IDE插件帮助本机开发人员在C或C ++中完全工作,该插件是Visual Studio 201x的插件,可向您隐藏所有编译和生成过程:http : //code.google.com / p / vs-android /

另外,如果您打算将应用程序移植到其他操作系统,则将C ++用作应用程序的核心(也许在顶部使用脚本语言)是个好主意。它的开发时间仅比其他替代产品贵-出于C ++特定的原因,并且它是可用的开发工具实现,例如,太多的编译时间可能会降低您的有效生产力。

话虽如此,这不是在移动应用程序上工作的最简单方法。


8

如果您有坚定的计划从事游戏开发,我建议您选择C ++。但是,如果没有,您最好选择Java。这是android官方网站上的入门入门书:

Android游戏开发:快速入门

注意:请阅读本教程的第2步(第二步:选择一种语言)。

如果您根本不懂Java,并且希望长期在Android上开发应用程序,那么学习Java是必不可少的。官方网站上提供了很棒的教程。您可以获取一本不错的书,专门学习Android开发:这是:学习Java for Android开发


提出问题的人已经知道C ++,那么您的建议有什么意义呢?
2011年

7

我应该选择C / C ++开发套件还是最好学习Java,因为它们将来可能无法提供所有功能?

答案是两者兼而有之。

  • 如果要编写任何主要关注性能的应用程序,那么它们几乎都必须位于Java之外的其他程序中。(C / C ++最流行)游戏是最重要的项目,但还有其他项目。
  • 如果您正在进行任何android开发,则还应该花一些时间学习Java到合理的水平。

我不明白您做Android开发需要Java的意思,但是如果您想做Android游戏开发,请使用C / C ++。为什么不完全使用c / c ++。
兰斯·波拉德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.