Страницы

Поиск по вопросам

среда, 4 декабря 2019 г.

Что такое нативный код?

#android #ios


Что такое нативный код? ...или язык ...в общем объясните мне суть    


Ответы

Ответ 1



Понятие нативный код - код который поставляется разработчиками чего-либо. Как например весь код в Java SDK под Android считается нативным. Все библиотеки третих разработчиков уже нет. Бред. Нативный код - код, компилируемый в машинные инструкции и выполняемый непоредственно процессором устройства. Любой код на Java не нативен по определению, так как выполняется на виртуальной машине. Нативный код могут писать как разработчики платформы, так и третьи разработчики (при помощи упомянутого Android NDK).

Ответ 2



В одном слове "нативный" (от англ. native, "родной") недостаточно информации. Необходимо уточнение: родной для кого? Для JVM родной код - байт-код, родной язык - Java (и другие). Для Windows родной код - Portable Executable, родной язык - C++, Delphi и др. Для процессора x86 родной код - инструкции x86, язык - ассемблер. и т.п. Многие современные приложения выполняются на "слоеном пироге" из платформ: например, написанное на Java приложение выполняется на JVM, которая в свою очередь может выполняться под (или над?) Windows, которая выполняется на процессоре x86. Каждый слой имеет свой нативный код. Код из другого слоя для него не будет нативным, например, для Windows Java-код ненативный. Родной язык - язык, для которого есть компилятор в родной код (для данной платформы).

Ответ 3



Обратимся к Wiki In computing, software or data formats that are native to a system are those that the system supports with minimal computational overhead and additional components. This word is used in such terms as native mode or native code. Something running on a computer natively means that it is running without any external layer requiring fewer software layers. For example, in Microsoft Windows the Native API is an application programming interface specific for Windows NT kernel, which can be used to give access to some kernel functions, which cannot be directly accessed through a more universal Windows API. Нативный для среды исполнения код/язык/АПИ/Формат данных и т.д. - это такой, который понимается средой исполнения по умолчанию, без сложных надстроек. Абсолютно четкого определения нет - есть некое "общепринятое" понимание, которое может разниться от человека к человеку. Для Windows, например, нативным является исполняемый код в формате .exe (или .com) файла, который работает непосредственно с Win API. Для Unix систем нативным являются бинарные файлы (а, так-же, shell-скрипты внезапно), для JVM нативным является .jar (не только) файл. Т.е. если совсем просто, то нативный код - это тот, который вы скормили установленной из коробки среде исполнения(дабл клик по .exe файлу в Windows) и он исполнился, не ругаясь, что ему не хватает библиотек или фреймворков. Нативный язык - это это еще более обтекаемое определение. Можно, с оговорками, считать, что нативный для платформы язык - это язык, для которого производителем платформы создана среда разработки/компилятор в нативный код и о поддержке которого они официально заявляют в документации. PS На ум пришла хорошая аналогия. Уровень знания иностранного языка определяется экзаменами по нему с выставлением оценки: A1,A2,B1,B2,C1,C2. Но есть и еще один уровень владения языком - native. Означает он что человек с детства живет в данной языковой среде, говорит на нем и думает(!) на нем. Уровень native не говорит о грамотности человека, зачастую native хуже знает правила языка, чаще ошибается в грамматике и пунктуации, чем С2, но он для него РОДНОЙ.

Ответ 4



Если для запуска того, во что скомпилирована программа, не требуется jit-компилятор или интрерпретатор, то она скомпилирована в нативный код. Байт-код джавы и il-код .net'а нативными не являются. Программы на Си++ компилируются в нативный код. Программы на VB6 могут компилироваться как в нативный код, так и в P-код.

Ответ 5



Нативный код - тот код, который не исполняется сторонним (не предустановленным на ОС) интерпретатором, как в случае с C#, Java, Python и др. Язык Java для windows не нативна, так как JVM надо еще установить на винду. Но на андроиде Java нативна, ибо JVM там изначально стоит и все приложения ее используют. Для Android - Java, Kotlin Для iOs - Obj-C , Swift

Комментариев нет:

Отправить комментарий