Was ist das Android NDK (native Development Kit)? Wie kann man es benutzen? Warum sollte man es benutzen?
android
android-ndk
Nikunj Patel
quelle
quelle
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.
quelle
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.
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.
quelle
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.
Link-1
Link-2
Link-3
quelle
Die folgenden Links beantworten auch Ihre Frage:
Was ist NDK?
Wann in nativem Code zu entwickeln ist
NDK herunterladen
So erstellen Sie eine NDK-App
wie man mit NDK arbeitet
10 Tipps für Android NDK
quelle
Quelle: http://developer.android.com/sdk/ndk/overview.html
Quelle: http://developer.android.com/sdk/ndk/index.html
quelle
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.
quelle
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
quelle
Mit Android Native Development Kit (NDK) können Entwickler Code in C / C ++ schreiben, der zu nativem Code kompiliert wird
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
quelle