Was ist das Android NDK (native Development Kit)? Wie kann man es benutzen? Warum sollte man es benutzen?
Was ist das Android NDK (native Development Kit)? Wie kann man es benutzen? Warum sollte man es benutzen?
Antworten:
Das NDK (Native Development Kit) ist ein Tool, mit dem Sie in C / C ++ für Android-Geräte programmieren können. Es soll in das SDK integriert werden (es wird als "Begleittool" bezeichnet) und nur für leistungskritische Teile eines Projekts verwendet. Sehen Sie hier für weitere Informationen.
NDK kann die Anwendungsleistung verbessern. Dies gilt normalerweise für viele prozessorgebundene Anwendungen. Viele Multimedia-Anwendungen und Videospiele verwenden nativen Code für prozessorintensive Aufgaben. Die Leistungsverbesserungen können aus drei Quellen stammen. Zunächst wird der native Code zu einem Binärcode kompiliert und direkt unter dem Betriebssystem ausgeführt, während Java-Code in Java-Bytecode übersetzt und von Dalvik Virtual Machine (VM) interpretiert wird . Ab Android 2.2 wird Dalvik VM ein Just-In-Time- Compiler (JIT) hinzugefügt, um den Java-Bytecode zu analysieren und zu optimieren, während das Programm ausgeführt wird (z. B. kann JIT einen Teil des Bytecodes kompilieren Binärcode vor seiner Ausführung). In vielen Fällen wird nativer Code jedoch immer noch schneller ausgeführt als Java-Code.
Java-Code wird von Dalvik VM auf Android ausgeführt. Dalvik VM wurde speziell für Systeme mit eingeschränkten Hardwareressourcen (Speicherplatz, Prozessorgeschwindigkeit usw.) entwickelt.
Die zweite Quelle für Leistungsverbesserungen bei NDK ist, dass Entwickler mit nativem Code einige Prozessorfunktionen nutzen können, auf die im Android SDK nicht zugegriffen werden kann, z. B. NEON, eine SIMD- Technologie (Single Instruction Multiple Data) , mit der mehrere Datenelemente verarbeitet werden können parallel zu. Ein spezielles Beispiel für eine Codierungsaufgabe ist die Farbkonvertierung für einen Videorahmen oder ein Foto. Angenommen, wir konvertieren ein Foto mit 1920 x 1280 Pixel aus dem RGB-Farbraum in den YCbCr-Farbraum. Der naive Ansatz besteht darin, auf jedes Pixel (dh über zwei Millionen Pixel) eine Konvertierungsformel anzuwenden. Mit NEON können wir mehrere Pixel gleichzeitig verarbeiten, um die Verarbeitungszeit zu verkürzen.
Der dritte Aspekt ist, dass wir den kritischen Code auf Baugruppenebene optimieren können, was in der Desktop-Softwareentwicklung üblich ist.
Nachteil
NDK kann nicht direkt auf viele im Android SDK verfügbare APIs zugreifen, und die Entwicklung in NDK führt immer zu einer zusätzlichen Komplexität Ihrer Anwendung.
Das Android NDK ist ein Begleittool, das nur in Verbindung mit dem Android SDK verwendet wird und es Anwendungsentwicklern ermöglicht, leistungskritische Teile ihrer Apps mithilfe von nativem (C / C ++) Code zu erstellen.
Dies bietet Vorteile in Form der Wiederverwendung von vorhandenem Code und einer höheren Geschwindigkeit.
Bitte gehen Sie durch die folgenden Links.
Das Android NDK ist ein Begleittool zum Android SDK , mit dem Sie leistungskritische Teile Ihrer Apps in nativem Code erstellen können. Es bietet Header und Bibliotheken , mit denen Sie Aktivitäten erstellen, Benutzereingaben verarbeiten, Hardwaresensoren verwenden, auf Anwendungsressourcen zugreifen und vieles mehr, wenn Sie in C oder C ++ programmieren . Wenn Sie nativen Code schreiben, werden Ihre Anwendungen weiterhin in eine APK-Datei gepackt und in einer virtuellen Maschine auf dem Gerät ausgeführt. Das grundlegende Android-Anwendungsmodell ändert sich nicht.
Die folgenden Links beantworten auch Ihre Frage:
Das Android NDK ist ein Toolset, mit dem Sie Komponenten einbetten können, die nativen Code in Ihre Android-Anwendungen verwenden.
Android-Anwendungen werden in der virtuellen Dalvik-Maschine ausgeführt. Mit dem NDK können Sie Teile Ihrer Anwendungen mit systemeigenen Codesprachen wie C und C ++ implementieren. Dies kann bestimmten Anwendungsklassen Vorteile in Form der Wiederverwendung vorhandenen Codes und in einigen Fällen einer höheren Geschwindigkeit bieten.
Quelle: http://developer.android.com/sdk/ndk/overview.html
Das Android NDK ist ein Begleittool zum Android SDK, mit dem Sie leistungskritische Teile Ihrer Apps in nativem Code erstellen können. Es bietet Header und Bibliotheken, mit denen Sie beim Programmieren in C oder C ++ Aktivitäten erstellen, Benutzereingaben verarbeiten, Hardwaresensoren verwenden, auf Anwendungsressourcen zugreifen und vieles mehr können. Wenn Sie nativen Code schreiben, werden Ihre Anwendungen weiterhin in eine APK-Datei gepackt und in einer virtuellen Maschine auf dem Gerät ausgeführt. Das grundlegende Android-Anwendungsmodell ändert sich nicht.
NDK ist nur eine Reihe von Tools, mit denen Sie C / C ++ - Codes für Ihre Anwendung schreiben können. Angenommen, Sie möchten Ihrer App eine wichtige Funktion hinzufügen und sie in C / C ++ schreiben und dann in Eclipse oder eine andere Form umwandeln Mit IDE können Sie Ihr C / C ++ nicht schreiben. In diesem Fall müssen Sie NDK verwenden und in Ihre App integrieren.
NDK ist ein Toolset, mit dem Sie Teile Ihrer App in systemeigenen Codesprachen wie C und C ++ implementieren können. Überprüfen Sie diese https://developer.android.com/tools/sdk/ndk/index.html
Android NDK (natives Entwicklungskit)
Mit Android Native Development Kit (NDK) können Entwickler Code in C / C ++ schreiben, der zu nativem Code kompiliert wird
Warum sollte man es benutzen?
Der Quellcode wird direkt in Maschinencode für die CPU kompiliert (und nicht in eine Zwischensprache wie bei Java), damit Entwickler die beste Leistung erzielen können
Wie kann man es benutzen?
Hier die besten Tutorials
https://developer.android.com/ndk/index.html
https://www.androidauthority.com/android-ndk-everything-need-know-677642/
https://www.ntu.edu.sg/home/ehchua/programming/android/Android_NDK.html