Android:Java,C或C ++?

我使用Java在Android中编写了一些简单的应用程序。
但是后来我发现这个:

它提供的头文件和库允许您在使用C或C ++进行编程时构build活动,处理用户input,使用硬件传感器,访问应用程序资源等等。 ( 来源 )

这与它有什么关系:

Android应用程序是用Java编程语言编写的。 ( 来源 )

所有三种语言都可能吗?
对不起愚蠢的问题。

Solutions Collecting From Web of "Android:Java,C或C ++?"

你链接到的文章有很好的信息。 它还链接到http://developer.android.com/sdk/ndk/overview.html ,其中说:

NDK不会受益于大多数应用程序。 作为一名开发人员,您需要权衡自身的弊端。 值得注意的是,使用本机代码不会导致性能自动增加,但总会增加应用程序的复杂性。 一般来说,如果对于应用程序来说必须使用本机代码,而不仅仅是因为您更喜欢用C / C ++编程。

NDK的典型优秀候选者是独立的CPU密集型操作,不会分配太多的内存,如信号处理,物理仿真等等。 简单地重新编写一个在C中运行的方法通常不会导致性能的大幅提升。 在检查是否应该用本机代码开发时,考虑一下你的需求,看看Android框架API是否提供了你需要的function。 但是,NDK可以成为重用大量现有C / C ++代码的有效方法。

Android是Linux下面,所以你可以运行任何语言。 为了好玩,我在Android手机上运行了Perl脚本。 从实际的应用程序开发angular度来看,Google在Dalvik上运行的Java实现将是典型的路线。

Java总是允许你调用“本地代码”组件。 然而,如果可能的话,你想避免它们,因为它们可以在代码中引入微妙的错误和平台依赖。

我不相信你可以在C / C ++中为Android编写一个完整的应用程序,但是至less你必须有一个Java包装器。

这是一个很好的问题,AFAIK,c或c ++,当你真的想编程一些核心dalvikfunction,比使用Android API,如传感器相关的function或硬件的问题。

如果你想使用API​​来构build应用程序,那么它将主要以Java / XML的forms。

根据这项调查 ,重写C语言中那些“不占用大量内存”的“独立的,CPU密集型的操作” 可能会使性能/电池寿命提高17倍。 本文发现运行CCTOOLS Fortran更快。 所以替代语言是值得考虑的。