18
2011
Bölüm – 4 R.java, Resources (Kaynaklar) ve Assets (Varlıklar)
R.java, Resources (Kaynaklar) ve Assets (Varlıklar) Andorid projesi içerisindeki “gen” dizini proje için üretilen (generated) değerleri içermektedir. Ayrıca proje içerisindeki “R.java” sınıfı, yine aynı proje içerisindeki “res” dizinine ait kaynakların referanslarını içermektedir. “res” klasörü içerisindeki bu kaynaklar; değerler, menüler, layout’lar, ikonlar, resimler veya animasyonlar olabilir. Örneğin projedeki herhangi bir yazıyı tanımlayan akynak XML dosyası veya resim olabilmektedir. Eğer proje için yeni bir kaynak oluşturulursa, bu kaynağa karşılık düşen referans otomatik olarak “R.java” dosyası içerisinde olaşacaktır. [...]
11
2011
VHDL nedir?
Kapı Seviyesinde Birleşik Devre Giriş VHDL “VHSIC (Very High-Speed Integrated Circuit) Hardware Description Language” Oldukça hızlı tümleşik devre donanım tanımlama dilidir. İlk olarak Amerika savunma bakanlığı tarafından ortaya atılmış ancak sonradan IEEE enstitüsüne devredilmiştir. VHDL dili ilk olarak IEEE 1076 standardı olarak tanımlanmış ve bu Standard 1987 yılında VHDL 87 olarak onaylanmıştır. Bu sürüm daha sonraları birçok düzeltmeye uğramıştır. Bu sürüm 1993 yılında yerini VHDL 93 sürümüne bırakmıştır. VHDL sayısal sistemi birçok seviyede tanımlama [...]
10
2011
Bölüm – 3 Güvenlik ve İzinler
Güvenlik ve İzinler Android üzerinde özellikle donanımla ilgili bir uygulama gerçekleştirilir iken bazı izinler almak gereklidir. Örneğin Andorid üzerinde internete erişen uygulama gerçekleştirmek istersek ilgile izinleri veren yapılandırma dosyasına gerekli tanımlanmaları yapmamız gerekmektedir. Andorid uygulamasının yüklenmesi sırasında uygulamaya ait gerekli izinleri onaylamak için kullanıcıya bir ekran gösterilmelidir. AndroidManifest.xml Android uygulaması “AndroidManifest.xml” dosyası içerisinde tanımlanmaktadır. Uygulama içerisindeki bütün aktiviteler, servisler, ortak yayın alıcılar ve içerik sağlayıcılar bu dosya içerisinde bildirilmelidir. Uygulamalara ait gerekli izinler bu dosyada [...]
3
2011
Bölüm – 2 Android İşletim Sistemi
Bir Android uygulaması aşağıdaki parçalardan oluşmaktadır:
Activity: Kullanıcı ile bire bir ilişki içinde olan (örneğin kullanıcının gördüğü bir ekran) Android uygulamasıdır. Bir Android uygulaması birden çok “Activity”lere sahip olabilir. Ayrıca çalışma sırasında bu “Activity”ler arasında geçiş yapabilir.
Views: “Activity”lere ait kullanıcı ara yüzleri ”android.view.View”den kalıtılan widget sınıfları kullanılarak oluşturulur…..
28
2011
Bölüm – 1 Android İşletim Sistemi
Android Linux çekirdeğini kullanan bir işletim sistemi olarak tanımlayabiliriz. Bu işletim sistemi üzerinde java programlama arayüzü kullanılarak program geliştirme yapılabilmektedir. Android işletim sistemi Kendi Java Sanal Makinesine(Dalvik Virtual Machine – DVM) sahip olmasının yanında derleyici, hata ayıklayıcı ve cihaz emülatörü gibi çok kullanışlı araçalarada sahip bir işletim sistemidir. Android Google firmasının liderliğini yaptığı Open Handset Alliance vakfı tarafından geliştirilmektedir. Android Dalvik Virtual Machine isimli özel makine kodları kullanan bir JVM’e sahiptir. Bu sebepten standart java [...]
22
2011
Android ve ses dosyaları
Android Üzeriden Ses ve Medya Android ortamında ses dosyalarını çalıştırmak için SoundPool ve MediaPlayer isimli iki tane API kullanılabilir. Tekrarlamalı ve/veya birden çok sesi aynı anda çalabilen SoundPlayer küçük ses sliplerini çalmak kullanılır. SoundPool ile çalınan ses dosyalarının ise 1MB’ı aşmamaları gerekmektedir. SoundPool vasıtası ile istenilen herhangi bir zamanda müzik dosyaları yüklenebilmektedir ve bu yüklemenin tamamlanıp tamamlanmadığının kontrolü, Android API 8 versiyonu içerisindeki OnLoadCompleteListener aracı mümkün olmaktadır. Android tarafından desteklenen farklı ses katarlarını kontrol etmek [...]
16
2011
Bölüm 5. Android için Oyun Döngüsü Kavramı
FPS değerinden bağımsız Sabit Oyun Hızı Yukarıdaki çözümleri yavaş donanım üzerinde daha hızlı çalışacak bir duruma getirmek ve hızlı donanım zerinde de daha çekici görsel efektlerin oluşmasını sağlamak mümkün müdür? Sorusuna verilecek cevap “mümkündür” olacaktır. Aslında oyun döngüsü kendi halinde çalıştığında saniyede 60 kez güncellemeye ihtiyaç duymaz. Kullanıcı girişleri, AI(Yapay Zekâ) ve oyun durumunun güncellenmesi için saniye başına 25 çerçeve yeterlidir. Dolayısıyla update_game() fonksiyonunu saniyede 25 kez çalıştırmak yeterli olacaktır, ne aşağısı ne yukarısı. Diğer [...]
9
2011
Bölüm 4. Android için Oyun Döngüsü Kavramı
Maksimum FPS kullanan Sabit Oyun Hızı İlk çözümümüz olan “FPS’ye Bağlı Sabit Oyun Hızı” yaklaşımıyla yazılan oyun döngüleri yavaş donanımlar üzerinde çalıştırıldığında, çerçeve gösterim oranında “frame rate” düşüş ve oyun hızında yavaşlama gibi problemler yaşanıldığı görülmüştür. Bu problemin çözümlerinde biri, saniyede 50 çerçeve “frame” işlenecek şekilde oyunun yüksek çerçeve gösterim oranında düşük donanımlarda çalışmasını sağlamak için oyun döngüsüne ek olarak çerçeve gösterim oranını “frame rate” kontrol edecek ve/veya sınırlayacak bir kriter konmasıdır. const int [...]
19
2011
Bölüm 3. Android için Oyun Döngüsü Kavramı
Değişken FPS kullanan Oyun Hızı Oyun döngüsüne yönelik bu yaklaşım tarzı ise oyunun mümkün olduğunca hızlı oynanmasını sağlamaktadır. Oyunun hızının FPS katsayısı belirlendiği bu yaklaşımda oyun, bir önceki çerçeve “frame” ile zaman farkı gözetilerek güncellenir. Yani FPS değişkeninin değeri çerçeveler arasındaki değişken zaman farkıdır. DWORD prev_frame_tick; DWORD curr_frame_tick = GetTickCount(); bool game_is_running = true; while( game_is_running ) { prev_frame_tick = curr_frame_tick; curr_frame_tick = GetTickCount(); update_game( curr_frame_tick – prev_frame_tick [...]
14
2011
Bölüm 2. Android için Oyun Döngüsü Kavramı
Bir oyun döngüsününzamana bağımlı olması için en kolay çözüm, her saniyede sabit sayıda (örn 25) çerçeve “frame” işlenecek şekilde oyunun çalışmasına izin vermektir. Peki nasıl? Bu basit çözüm bize oldukça fazla avantaj sağlamaktadır. update_game() fonksiyonun saniyede belirli bir sayıda (25 kez) çağrıldığı bilgisi bize oyunun hızını kontrol eden oyun döngüsünün sade ve anlaşılır kolay şekilde kodlamamızı sağlayacaktır. Örneğin oyun döngüsü içindeki tekrarlayan fonksiyonun gerçeklenmesi oldukça kolaydır.
Kariyer
- Yazılım Geliştirme Uzmanları
MobilMutfak - Java Yazılım Uzmanı
Yapı Kredi Emeklilik - Java Yazılım Uzmanı
Universal Bilgi Teknolojileri - Yazılım Geliştirmeci ve Proje Mühendisi
Yapı ve Kredi Bankası - Java Yazılım Uzmanı
Abaküs Finansal Yaz. A.Ş












