Android Yerel Geliştirme Kiti (NDK) nedir?


Yanıtlar:


93

NDK (Yerel Geliştirme Kiti), Android cihazlar için C / C ++ dilinde programlama yapmanızı sağlayan bir araçtır. SDK ile entegre olması amaçlanmıştır ("yardımcı araç" olarak tanımlanır) ve yalnızca bir projenin performans açısından kritik bölümleri için kullanılır. Daha fazla bilgi için buraya bakın .


11
@YoushaAleayoub - Bir Android cihazda, Java ile yazılan kod, Java bayt kodlarını yorumlayan sistem tarafından sağlanan bir program olan Java Virtual Machine'de çalışır. C / C ++ ile yazılan kod, doğrudan CPU tarafından çalıştırılan makine talimatlarında derlenir. Bu son koda "yerel" kod denir çünkü CPU'ya özgüdür. Farklı CPU'ların farklı yerel kod talimatları gerektirdiğini unutmayın. Bu nedenle, NDK'yı kullandığınızda, tek bir donanım türü için veya çok çeşitli CPU'lar için kod üretme seçeneğiniz vardır ve bunların tümü uygulamanız için .apk dosyasında paketlenir.
Ted Hopp

Öyleyse, Android'de OpenCV kullanmak istersem, C ++ sürümünü kullanmak daha mı iyi?
user8663682

@ user8663682 - Android sürümünü kullanmanızı tavsiye ederim . Hâlâ NDK kullanımını gerektiriyor, ancak yetenekleri Android uygulamalarına göstermek için yapılan tüm çalışmalar zaten yapıldı.
Ted Hopp

56

NDK, uygulama performansını artırabilir. Bu genellikle işlemciye bağlı birçok uygulama için geçerlidir. Birçok multimedya uygulaması ve video oyunu, işlemci yoğun görevler için yerel kod kullanır. Performans iyileştirmeleri üç kaynaktan gelebilir. İlk olarak, yerel kod bir ikili koda derlenir ve doğrudan işletim sistemi üzerinde çalıştırılırken, Java kodu Java bayt koduna çevrilir ve Dalvik Sanal Makinesi (VM) tarafından yorumlanır . Android 2.2 veya daha yüksek sürümlerde, program çalışırken Java bayt kodunu analiz etmek ve optimize etmek için Dalvik VM'ye bir Just-In-Time (JIT) derleyicisi eklenir (örneğin, JIT, bayt kodunun bir bölümünü çalıştırılmadan önce ikili kod). Ancak çoğu durumda yerel kod, Java kodundan daha hızlı çalışır.

Java kodu, Android'de Dalvik VM tarafından çalıştırılır. Dalvik VM, kısıtlı donanım kaynaklarına (bellek alanı, işlemci hızı vb.) Sahip sistemler için özel olarak tasarlanmıştır.

NDK'daki performans iyileştirmelerinin ikinci kaynağı, yerel kodun, geliştiricilerin Android SDK'da erişilemeyen bazı işlemci özelliklerinden (Single Instruction Multiple Data (SIMD)) çoklu veri öğelerinin işlenmesine olanak tanıyan NEON gibi bazı işlemci özelliklerini kullanmalarına izin vermesidir. paralel. Belirli bir kodlama görevi örneği, bir video çerçevesi veya bir fotoğraf için renk dönüştürmedir. RGB renk uzayından 1920x1280 piksellik bir fotoğrafı YCbCr renk uzayına dönüştürdüğümüzü varsayalım. Saf yaklaşım, her piksele (yani iki milyon pikselden fazla) bir dönüştürme formülü uygulamaktır. NEON ile, işlem süresini kısaltmak için aynı anda birden fazla pikseli işleyebiliriz.

Üçüncü husus, kritik kodu, masaüstü yazılım geliştirmede yaygın bir uygulama olan montaj seviyesinde optimize edebilmemizdir.

Dezavantaj

NDK, Android SDK'da bulunan birçok API'ye doğrudan erişemez ve NDK'da geliştirme, uygulamanıza her zaman ekstra karmaşıklık getirecektir.


19

Android NDK, uygulama geliştiricilerin yerel (C / C ++) kod kullanarak uygulamalarının performans açısından kritik bölümlerini oluşturmalarına olanak tanıyan, yalnızca Android SDK ile birlikte kullanılan yardımcı bir araçtır.

Bu, mevcut kodun yeniden kullanılması ve hızın artırılması şeklinde faydalar sağlar.

Lütfen aşağıdaki bağlantılara gidin.

Bağlantı-1

Bağlantı-2

Bağlantı-3


8

Android NDK için yardımcı bir araçtır Android SDK Eğer yerel kodda uygulamalarınızın performansını kritik bölümlerini oluşturma olanağı verir. C veya C ++ ile programlama yaparken etkinlikler oluşturmanıza, kullanıcı girdilerini yönetmenize, donanım sensörlerini kullanmanıza, uygulama kaynaklarına erişmenize ve daha fazlasını yapmanıza olanak tanıyan başlıklar ve kitaplıklar sağlar . Yerel kod yazarsanız, uygulamalarınız bir .apk dosyası halinde paketlenir ve yine de aygıttaki bir sanal makinenin içinde çalışır. Temel Android uygulama modeli değişmez.

Aşağıdaki bağlantılar da sorunuzu yanıtlamaktadır:

NDK nedir?

Yerel Kodda Ne Zaman Geliştirilmeli

NDK İndir

NDK uygulaması nasıl oluşturulur

NDK ile nasıl çalışılır

Android NDK için 10 ipucu


3

Android NDK, Android uygulamalarınızda yerel kod kullanan bileşenleri yerleştirmenize olanak tanıyan bir araç setidir.

Android uygulamaları Dalvik sanal makinesinde çalışır. NDK, C ve C ++ gibi yerel kod dillerini kullanarak uygulamalarınızın bölümlerini uygulamanıza olanak tanır. Bu, mevcut kodun yeniden kullanılması ve bazı durumlarda hızın artırılması şeklinde belirli uygulama sınıflarına fayda sağlayabilir.

Kaynak: http://developer.android.com/sdk/ndk/overview.html

Android NDK, uygulamalarınızın performans açısından kritik bölümlerini yerel kodda oluşturmanıza olanak tanıyan, Android SDK'ya eşlik eden bir araçtır. C veya C ++ ile programlama yaparken etkinlikler oluşturmanıza, kullanıcı girdilerini yönetmenize, donanım sensörlerini kullanmanıza, uygulama kaynaklarına erişmenize ve daha fazlasını yapmanıza olanak tanıyan başlıklar ve kitaplıklar sağlar. Yerel kod yazarsanız, uygulamalarınız bir .apk dosyası halinde paketlenir ve yine de aygıttaki bir sanal makinenin içinde çalışır. Temel Android uygulama modeli değişmez.

Kaynak: http://developer.android.com/sdk/ndk/index.html


3

NDK, uygulamanız için C / C ++ kodları yazmanıza izin veren bir araç kümesidir.Örneğin, uygulamanıza kritik bir işlev / performans eklemek istediğinizi ve bunu C / C ++ ile yazmak ve ardından tutulması veya başka bir IDE, C / C ++ 'nızı yazmanıza izin vermez ve bu durumda NDK kullanmanız ve uygulamanıza entegre etmeniz gerekir.



2

Android NDK (yerel geliştirme kiti)

Android Yerel Geliştirme Kiti (NDK), yerel koda göre derleyen C / C ++ kodunda yazacak geliştiricilerdir

Neden kullanmalı?

Kaynak kodu doğrudan CPU için makine koduna derlenir (Java'da olduğu gibi bir ara dile değil), böylece geliştiriciler en iyi performansı elde edebilir

Nasıl kullanılır?

İşte en iyi öğreticiler

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.