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

LeaveNhA

Doçent
Katılım
4 Aralık 2011
Mesajlar
597
Reaksiyon puanı
5
Puanları
18
[MENTION=25201]cgrszone[/MENTION], [MENTION=194661]eSa[/MENTION], [MENTION=105290]erenberk[/MENTION]...
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ı.
 

erenberk

Rektör
Katılım
10 Mayıs 2010
Mesajlar
10,535
Reaksiyon puanı
100
Puanları
228
Android yazılımını hiç denemedim gerçi bir ara eclipse ile tanışmıştım ama tanışmaktan ileri gitmedi :)
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
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.
 
Katılım
31 Aralık 2007
Mesajlar
17,486
Reaksiyon puanı
189
Puanları
243
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?

[video=youtube;It8xPqkKxis]http://www.youtube.com/watch?v=It8xPqkKxis[/video]
 

engerex

Dekan
Katılım
16 Ağustos 2008
Mesajlar
7,675
Reaksiyon puanı
26
Puanları
228
Fibonacci-HTC.png
 

LeaveNhA

Doçent
Katılım
4 Aralık 2011
Mesajlar
597
Reaksiyon puanı
5
Puanları
18
Tamamda beyler sorumun cevabı halen ortada yok.

Ama şu video'ya bittim [MENTION=25201]cgrszone[/MENTION], 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..!
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
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.
 

Amenofis

Öğrenci
Katılım
27 Aralık 2010
Mesajlar
36
Reaksiyon puanı
9
Puanları
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

Doçent
Katılım
4 Aralık 2011
Mesajlar
597
Reaksiyon puanı
5
Puanları
18
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 ?
 

Amenofis

Öğrenci
Katılım
27 Aralık 2010
Mesajlar
36
Reaksiyon puanı
9
Puanları
8
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

Doçent
Katılım
4 Aralık 2011
Mesajlar
597
Reaksiyon puanı
5
Puanları
18
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: [MENTION=25201]cgrszone[/MENTION], geleceğin iş planı ortaya çıktı. ;)
 

LeaveNhA

Doçent
Katılım
4 Aralık 2011
Mesajlar
597
Reaksiyon puanı
5
Puanları
18
mobil'den anlaşılabilir gelmedi üstadım, tam olarak arm işlemciler için geliştirme ortamı mı ?
 

engerex

Dekan
Katılım
16 Ağustos 2008
Mesajlar
7,675
Reaksiyon puanı
26
Puanları
228
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

Doçent
Katılım
4 Aralık 2011
Mesajlar
597
Reaksiyon puanı
5
Puanları
18
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...
 
Üst