2010-02-20 53 views
24

我感兴趣的以下特点:我可以用Android制作一个相当原生的C++应用程序吗?

  1. 写作是在完全用C写成++(实际上是现有产品的端口)为Android Market的应用程序。
  2. 使用快速屏幕缓冲区像素推送(或更确切地说,使用OpenGL ES)。
  3. 获取用户输入并将其指向C++代码。

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

回答

0

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

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

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

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

+0

我相信OpenGL API至少直接暴露在NDK级别上,例如对于全屏幕游戏来说,完全本地化肯定是一种选择(可能还是推荐)。 –

8

这真的不是我的一杯茶,但有一种叫做Android NDK(Native Development Kit)的东西,如果你想用C编写你的程序,不知道C++编译器如何支持。

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

我在Google搜索“Android NDK”时发现了几个不同的教程。 This one is a very minimalistic Hello World。很明显,你需要的不仅仅是一个向java返回一个字符串的库,但它是一个很好的开始,你可能需要做所有描述的事情。使用NDK和Android作为关键字进行搜索,并获得很好的选择。我看不出有什么理由在此列出,因为这些列表往往会在一年左右时间内过时并破坏。

我猜Google官方的Android Developer site会保持不变,并在新版本的平台上更新,它有一个链接到当前的NDK。

+0

为什么downvote? – Fredrik

+0

如果我不得不猜测,这是因为您建议Gooling使用字符串,而不是直接链接到项目。有时人们想挑剔。但是,您提供的链接为+1。这是设置开发环境的全面演练,而不仅仅是一小段代码。 –

+0

除链接不适用于NDK AFAICT。它用于编写控制台应用程序,使用属于Android开放源代码项目的交叉编译器。术语“NDK”甚至不出现在页面上,并且该帖子是在NDK发布之前编写的。 – CommonsWare

1

没有100%原生解决方案,但我认为你正在寻找的是Android NDK(原生开发套件)

从他们的网站“请注意,NDK并不能使你开发本机只有应用。Android的主运行时仍然是Dalvik虚拟机。“

我相信它可以让你从一个Android应用程序

我个人从来没有用它为我的游戏使你自己的本机代码调用,但我相信这将有助于对很多事情(如能够来管理我自己的内存,并没有“滞后”对垃圾收集器做)

15

从Android 2.3(姜饼)到NDK r5这是可能的,但我认为只有支持本地应用的设备必须在它们上面有姜饼。

从天然活性样品:

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

+1

给了我们一个例子。眼见为实:) –

+3

@Deo Checkout samples/native-activity /在NDK中。 – tonylo

2

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

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

“ 随着NDK,R5的最新版本,许多大的方面做了改进与姜饼版本保持一致,最重要是编写一个原生应用程序的能力Android 2.3完全以C++语言编写,这意味着即使是没有Java知识的程序员和开发人员也不需要实现单行代码......“我读过的,看来你可以做到这一点

相关问题