本地语言对特定操作系统意味着什么?

时间:2018-04-30 07:31:43

标签: java android operating-system programming-languages native

例如java(或kotlin)是android开发的本地语言是什么意思? 这里的母语是什么意思? 这个概念对其他操作系统是否也存在?例如,我们也有Windows和/或Linux的母语吗?

编辑:
我不确定使用短语"母语"多少是正常的 我正在寻找的主要内容是使语言更友好并且更频繁地用于特殊操作系统的原因是什么。

例如,操作系统的api是否更容易从一种或几种特定语言调用? (如果是的话为什么?)
是否存在编译器到一组中间指令(如java字节代码)和几个硬件的一组指令?

另一个例子我们有一些编译成java字节码的语言,为什么它们没有广泛用于android开发?

4 个答案:

答案 0 :(得分:3)

  

例如java(或kotlin)是android开发的本地语言是什么意思?

从技术角度来看,它没有任何意义。

  

这里的原生意味着什么?

这取决于你在“这里”的意思。您声称“本机”正在以这种方式使用,但您没有提供任何明确的示例/参考。

如果我们有一些你所谈论的例子,我们可能会弄清楚作者试图说的是什么。但这并不是必然使作者使用“原生”一词正确或被广泛接受。

  

这个概念对其他操作系统是否也存在?例如,我们是否也有Windows和/或Linux的本地语言?

没有。

我不相信它也存在于Android中!当然,我不接受将Java或Kotlin称为Android平台的“本地语言”是正常的用法。

现在,在Java,Android,Linux,Windows和其他操作系统平台上已经接受了“native”这个词的使用。 “本机库”是以某种(未指定的!)编程语言实现并编译到运行JVM的平台的硬件指令集的库(或dll)。它由“本机代码”指令组成......不是字节码。本机库的源语言通常是 C或C ++,但它理论上可以是任何可以编译为本机代码的语言,并且提供与(例如)兼容的调用序列JNI。 (请注意,JNI代表Java Native Interface ...)

答案 1 :(得分:1)

低级编程

与像Java这样的解释语言或Java等部分语言以及c#的部分语言相比,低级编程意味着汇编到处理器指令(如汇编程序和机器代码)的非常接近的编程。

原生Android应用

与Android-Apps相比,原生Android应用包含与设备硬件非常接近的代码。原生Andoid应用程序通常不包含Java字节码。他们使用靠近设备硬件的图书馆或应用程序。

如果Android应用必须是原生的,那么决定有两个标准:

  1. 必须直接控制硬件
  2. 应用程序的性能很重要(因为直接控制器指令可以优化,并且没有解释的开销)。

答案 2 :(得分:0)

长篇短篇,了解一般概念 -

Native表示它是特定平台的语言。

也就是说,为android或IOS(苹果公司的OS)开发具体都有自己的母语。(C是android的本地语言[Kotlin基于Java而Java基于C]和IOS的Objective-C)

另一方面,有些语言不是原生语言。例如,React native正在为android和IOS平台开发。 在这些情况下,视图不是本机元素,而是更多Web表单元素(JS,CSS等)。

大多数时候,母语会有更好的功能和表现。

结论 - Native表示特定平台的语言(您可以说是官方平台语言)。

答案 3 :(得分:0)

从最严格的意义上讲,本机语言只是编译语言的另一术语,即产品不需要在运行时进行解释的语言。例如。 C,C ++。我认为它的起源与本地代码一词密切相关。

现在进入 Android ,它的顶层API是用Java编写的。作为编写OS组件的语言,Java通常被称为 native
但是,我不会说这是正确的用法。另外,在Android中,用于Java开发的工具集称为“软件开发套件”,而用于C / C ++开发的工具集称为“本地开发套件”。