我可以用Android创build一个相当原生的C ++应用程序吗?

我对以下function感兴趣:

  1. 编写完全用C ++编写的Android电子市场应用程序(实际上是现有产品的一个端口)。
  2. 使用快速的屏幕缓冲区像素推送(或更确切的说是使用OpenGL ES)。
  3. 抓住用户input并将其引导至C ++代码。

为Market编写这样的应用程序是否合法? 市场政策对这种事情有些严格吗?

Related of "我可以用Android创build一个相当原生的C ++应用程序吗?"

至于Android 2.3(姜饼)的NDK r5,这是可能的,但我认为只有设备支持原生应用程序必须有姜饼。

从本地活动样本:

Android SDK提供了一个辅助类NativeActivity,它允许您编写完全原生的活动。 通过本地活动,可以编写一个完全原生的应用程序。 NativeActivity负责处理Android框架和本地代码之间的通信,因此您不必对其进行子类化或调用其方法。 您只需将您的应用程序声明为AndroidManifest.xml文件中的本地应用程序,并开始创build您的本机应用程序。

这真的不是我的一杯茶,但有一种叫做Android NDK(本地开发工具包)的东西,如果你想用C编写你的程序的话就不要用了。不知道C ++编译器是如何支持的。

据我所知,你的应用程序可以是几乎100%的本地代码,但要记住,通过这种方式,你可能会很难在Android硬件中支持不同的CPU。 如果您需要引导本机代码,以便它从Java启动,那么对您来说可能不是一个大问题。

当search“Android NDK”时,我发现了几个不同的教程。 这是一个非常简约的Hello World 。 很明显,你需要的不仅仅是一个返回一个string到Java的库,但是这是一个很好的开始,你可能需要做所有的描述。 使用NDK和Android作为关键字进行search,您将得到一个很好的select。 我看不出有什么理由在这里列出,因为这样的名单往往在一年左右的时间内就已经过时了。

我想来自谷歌的官方Android开发者网站将保持在平台的新版本上,并有更新,它有一个链接到当前的NDK。

与姜饼(Android 2.3),看起来你可以用C ++build立你的整个应用程序。

cf: http : //phandroid.com/2011/01/11/android-developers-blog-awesome-ndk-leads-to-awesome-apps/

“随着最新版本的NDK,r5,已经做了很多与Gingerbread版本一致的重大改进,最主要的是能够完全用C ++为Android 2.3编写原生应用程序,这意味着甚至程序员和开发人员没有Java的知识将不必执行该代码的单行…“

不能担保这个博客的真实性,但是,从我读过的,看来你可以做到这一点

没有100%的原生解决scheme,但我认为你正在寻找的是Android NDK (原生开发工具包)

从他们的网站“请注意,NDK不支持您开发原生应用程序,Android的主运行时仍然是Dalvik虚拟机。

我相信它可以让你从Android应用程序调用你自己的本地代码

我个人从来没有用过我的游戏,但是我确定它会帮助很多事情(比如能够pipe理我自己的内存,而不是对垃圾收集器有“滞后”

这个线程中的对话可以帮助你。 http://groups.google.com/group/android-ndk/browse_thread/thread/50362904ae0574cf

本质是,可以制作只有Native的应用程序,Android Market也不会限制你。 但是对本地开发的支持有限,很有可能会使用一些非标准的function,这些function在未来的版本中可能会被打破。

http://developer.android.com/guide/basics/what-is-android.html

“Android SDK提供了使用Java编程语言开始在Android平台上开发应用程序所需的工具和API。”

http://arstechnica.com/open-source/news/2009/06/android-goes-beyond-java-gains-native-cc-dev-kit.ars

一般来说,你不这样做。 通过JNI有一些有限的C ++支持,但它主要是为了补充Java代码,而不是替代它。 C ++没有框架/ API支持(AFAIK),所以这不是真正的select。