İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Mobil Programlama
Mobil Programlama

C++ Android [NDK] [Eclips] - Yardım

LeaveNhA14.04.201314 cevap8.200 görüntüleme
2011'den beri597 mesaj
#1
cgrszone, eSa, erenberk...
bulduklarımın dışında bütün forum halkının ilgisini bekliyorum. :D

C++ bilen biri olarak android yazılıma geçmek istiyorum fakat eclips ve ndk gibi sistemlerin ne kullanımı ne birbirine entegrasyonu ile ilgili hiç bir tutarlı döküman bulamıyorum, ndk ve eclips gibi sistemlerin kullanımı, birleştirilmesi ve örnek bir projenin derlenmesiyle ilgili bilen bi üstadımın kısa ve eğitsel bir video çekip paylaşmasını bekliyorum, onun dışında link de verilebilir hali hazırda varsa.

Sistem hakkında resmi sitesinde ingilizce kaynak var ama hiçbirşey anlamadım dersem yeri, ben mi fevri ve tezcanlı davranıp anlamadım diye düşünüyorum ama destekte almaya çalıştım ama olmadı.
Cevaplar
2010'den beri11 bin mesaj
#2
Android yazılımını hiç denemedim gerçi bir ara eclipse ile tanışmıştım ama tanışmaktan ileri gitmedi :)
2008'den beri6.607 mesaj
#3
Yanlış bilmiyorsam, NDK her yerde kullanılamıyor ve beklenildiği kadar performans arttırmıyor. Bence hiç NDK ile uğraşmadan direkt Java ile başlayın.
2007'den beri17 bin mesaj
#4
N3CAT1 dedi: ↑
Yanlış bilmiyorsam, NDK her yerde kullanılamıyor ve beklenildiği kadar performans arttırmıyor. Bence hiç NDK ile uğraşmadan direkt Java ile başlayın.
Pardon?
2008'den beri7.675 mesaj
#5
LeaveNhA Konuyu açan
2011'den beri597 mesaj
#6
Tamamda beyler sorumun cevabı halen ortada yok.

Ama şu video'ya bittim cgrszone, respect ! ;)

- - - Mesaj Güncellendi - - -

Ben C++ biliyorum ve C++ geliştiriciliğinin "profesyönel" anlamda ne kadar illet ve cefasal bişey olduğunu sadece profesyönel olmak için yıllarını harcayan insanlar bilir...
Hali hazırda çalıştığım bi firma var ve projelere odaklamak istiyorum ben iş verimimi, yeni bir dili hayatıma sokamam...

Kaldı ki bu dil java ise..!
2008'den beri6.607 mesaj
#7
Genel olarak bu konuyu ayrıntılı araştırmadım. Yalnız Android Developers sayfasında da benimkine benzer açıklama yapılmış.

Ayrıca şunu da belirtmek isterim. Videoda yapılan karşılaştırma androidin 1.5 versiyonu ile yapılmış. Şuan 4.2 versiyonunda olduğunu ve yeni telefonların donanımlarının üst düzey olduğunu belirtirsek farklı bir tablo çıkabilir ortaya.
2010'den beri36 mesaj
#8
Uygulamayı full c++ ile yazsan bile yine de dalvik vm altında çalışıyor kaçış yok. Ayrıca c++ ile javadaki herşeyi yapamıyorsun, ndk api çok kısıtlı. Eninde sonunda javaya muhtaçsın. En iyisi google ın önerdiği yöntem. Java + jni.

Jni ile androide c kodu gömüp çalıştırmışlığım var. Zaten çok kritik durumlar haricinde androidde native kod ile uğraşılmaz, gerçekten uğraştırıyor çünkü.
LeaveNhA Konuyu açan
2011'den beri597 mesaj
#9
Zoru severim, şaka değil.
Şahsi görüşleriniz ve yorumlarınız için hepinize teşekkürler fakat hala merağımı gidericek bi cevap alamadım, C++ geliştiricisi olarak hangi yolları izleyerek derleme ve geliştirme yapabilirim ?
2010'den beri36 mesaj
#10
Dediğim gibi sadece c++ olmaz java şart. Sizin istediğiniz gibi bir geliştirme ortamını bende isterdim ama yok. C++ için sadece basit bir stl portu yazmışlar o kadar. Native api nin geri kalanı çekirdek c kütüphanesi.

Jni arayüzü ile c/c++ kullanmak için proje dizinine "jni" adında bir dizin ekliyoruz. İçine kaynak kod, Android.mk ve Application.mk dosyalarını düzenleyip ekliyoruz. Sonra konsolu açıp bu dizine geçerek "ndk-build" scriptini çalıştırıyoruz. Bu script derleyiciye gerekli parametreleri vererek kodu derliyor. Derleme sonucu bir dinamik kütüphane (.so dosyası) oluşuyor ve projenin libs dizinine kopyalanıyor. C tarafı bu kadar.

Java tarafında ise "loadLibrary" metodu ile bu kütüphaneyi uygulamaya yüklüyoruz ve çağırmak istediğimiz c fonksiyonlarını "native" belirteci ile birebir ekliyoruz. Bunlar sadece başlık olacak gövdesi yok. Bu fonksiyonları java içinde çağırdığımız zaman önceden derlediğimiz dinamik kütüphaneden bağlanarak çalıştırılıyor.

Bunun dışında Android.mk ve Application.mk dosyalarını projene göre düzenlemen gerekli. Modül ve kaynak kod isimlerini, ekstra olarak eklenecek kütüphaneleri, ABI, platform, derleyici versiyonu vs. seçimlerini bu dosyalarda belirtiyorsun. Derleyici opsiyonlarıyla oynamak için toolchain dizinindeki "setup.mk" dosyasını kullanabilirsin.

Androidde c/c++ kabaca bu şekilde. Native Activity bile kullansan bu yine jni arayüzü ile oluyor. Uygulamaya java ile giriş yaptıktan sonra hemen c tarafına geçerek işlemleri orada yapmayı düşünebilirsin ama alt düzey c fonksiyonları ile uygulamanın tamamını kontrol etmek mümkün değil. Bununla uğraşacağın zamanda rahatlıkla java öğrenebilirsin. C++ ı iyi bilen biri için en fazla 2-3 hafta sürer. Zaten c++ ın yanında oyuncak denilecek kadar kısıtlı bir dil. Ondan sonrası developer.android.com

Androidde c/c++ olarak elde ne var dersen: http://mobilepearls.com/labs/native-android-api/
LeaveNhA Konuyu açan
2011'den beri597 mesaj
#11
Peki eclips ve ndk yüklemelerine ayrı ayrı sahibim bunları entegre etmek için yapmam gerekenler nedir, ciddi bi karmaşa seziyorum bu konuda.

ps: cgrszone, geleceğin iş planı ortaya çıktı. ;)
LeaveNhA Konuyu açan
2011'den beri597 mesaj
#13
mobil'den anlaşılabilir gelmedi üstadım, tam olarak arm işlemciler için geliştirme ortamı mı ?
2008'den beri7.675 mesaj
#14
ARM Development Studio 5
ARM'nin kendi geliştirme stüdyosu. Linux/Android/RTOS desteği mevcut. ARM'nin tüm işlemcilerini destekliyor. Detaylı analiz sunuyor. Android için Eclipse, Android SDK ve NDK kurulumla hazır geliyor.
LeaveNhA Konuyu açan
2011'den beri597 mesaj
#15
Geriye de sadece c++ ile geliştirmek kalıyo yukarıda yazdığı gibi sanırım, çok yoğunum ama yarın vakit ayırıcam buna...

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.