Android İpucu – Thumb Modu

Android veya Arm işlemciler için yazılım geliştiren arkadaşlar VS içerisindeki “General->Project Defaults” altındaki “Thumb Mode” ayarı sizlerin de merakınızı cezbetti mi?
Bu çok kısa yazımda bu ayardan çok kısaca bahsedeceğim. Bu konu hakkında daha detaylı bilgi için aşağıdaki referansları karıştırabilirsiniz. Bu yazımda da Stackoverflow’daki cevaplardan faydalandım.

ARM işlemciler iki temel komut seti sunuyorlar:

  • ARM: Buradaki bütün komutlar 32-Bit uzunluğunda,
  • Thumb: Burada ise çoğu komut 16-Bit olmak ile birlikte bazı 32-Bit komutlar da sunulmakta.

Hangisini kullanacağınızı VS de olduğu gibi yazılımı oluştururken belirliyorsunuz ve bunlardan çalışma zamanında sadece biri aktif olmakta (Thumb ise komutlar Thumb komut setine göre ayrıştırılır, ARM ise ARM komut satırına göre).

Her ne kadar bunlar farklı komut satırları olarak da görünseler, aslında aynı kabiliyetlerı sunarlar ve aynı Assembly kodları ile ifade edilirler.
Ör:

kodu

olarak ifade ediliyor. Elbette bu iki komutta aynı işlevi yerine getiriyorlar sadece kodlama türleri ve uzunlukları farklı. Thumb’ta bulunan her komutun ARM’da da bir karşılığı bulunmaktadır.

Gelelim Android durumuna. Varsayılan olarak Android Thumb setini kullanıyor, çünkü bu daha kompak kod üretiyor ve kod biraz daha küçülüyor (tabi burada da anlatıldığı üzere bu küçülme öle yarıya inme kadar olmuyor).

Kısaca söylemek gerekirse Thumb ile oluşturulan kodlar biraz daha yavaş olsa da, ARM ile oluşturulan kodlara göre daha kompak oluyorlar. Hikayenin özeti bu 🙂

Bir sonraki paylaşımda görüşmek üzere.

Kaynaklar:

VS 2017 ile C/C++ Kütüphanelerin (SDL) Android için Oluşturulması

Evet arkadaşlar başlıktan da anlaşılacağı üzere bu yazımda sizler ile SDL 2.0.7. (mevcut yayınlanmış son sürüm SDL)’i VS ile Android için oluşturma için gerekli adımlardan bahsedeceğim. Öncelikle bu yazımda kullandığım kodları ve temel alt yapıyı Matt Style’s ın şu yazısından aldığımı söylemem gerek. Kendisi oldukça güzel bir şekilde gerekli adımlardan kısaca bahsetmiş. Ben ona ek… Continue reading

Android NDK ile uğraşırken dikkat edilecekler :)

Evet arkadaşlar C++, GitHub derken nereden çıktı bu NDK diyebilirsiniz ama eğer elinizde hazır C++ kütüphaneleriniz var ve bunu hızlı ve performanslı bir şekilde Android platformunda kullanmak istiyorsanız en iyi yöntem NDK (Native Development Kit).  NDK her ne kadar google tarafından resmi olarak önerilmese de, yüksek performans ve çoklu platform desteği için olmazsa olmaz. Ben… Continue reading