Qt/C++ Android Uygulaması

     Qt IDE alt kısımda android uygulama geliştimen için eksiklerin var uyarısını veriyordu. Uyarıya tıklayarak aşağıdaki pencereye ulaştım. 


    Bu pencereye yukarıdaki tools->options menusu aracılığı ile de ulaşabilirsiniz. ilk başta JDK eksik uyarısı var. Kırmızı ile işaretlediğim web butonuna basarak ilgili dowload sayfasına ulaştım. 

    
Varsayılan seçenekler ile JDK kurulumunu tamamladım.
 



    Qt IDE de browse tuşu ile JDK nın kurulduğu dizini seçtiğimde Qt JDK için yeşil ışık yaktı...



    İkinci aşama olarak yine Qt tarafından yönlendirilerek Anrdoid SDK nın kurulumunu yapıyorum.



    Eksik paketler var onları da yükle uyarısı geldi. Tamam dedik devam ediyoruz.


    Karşıma bir lisans anlaşması geldi.  Evet diyerek kabul ediyorum ve birşeyler yükleniyor... 


    Yükleme sırasına bir kaç defa daha onay isteniyor. Evet tuşuna basarak ilerliyorum...


Yükleme sonrası android bölümü de bize yeşil ışık yaktı. 


Open SSL için Download butonuna bastığımda işlem başarısız. Manuel olarak yükleme yapın uyarısı aldım. 



Yükleme adresini açtığımda github sitesine ulaşıyorum.


Githubdan Zip olarak dosyları indiriyorum.


    Zip dosyasını Qt nin OpenSLL bölümünde browse ile gösterdiği klasöre açıyorum ve Qt ye bu klasörü browse butonu ile gösteriyorum.



OpenSLL bölümünden de yeşil ışık aldık....


    Hazırlık işlemlerimiz tamam gibi görünüyor. Ayarlar penceresinin kapatarak yeni bir proje oluşturuyorum.


    Proje oluşturma sırasında karşıma android ile ilgili daha önce olmayan seçenekler çıkıyor. Bu aşamada hangisini seçmem gerektiğinden emin değilim. Anroid x86_64 ü seçip bir proje oluşturuyorum. 



Projeyi çalıştırdığımda karşıma cihaz yok uyarısı veren bir pencere çıkıyor. Bu aşamada telefonumu bağlayarak doğrudan telefon üzerinden çalışmam gerektiğini tahmin ediyorum. Kullandığım telefon Redmi Note 8. Telefon ayarlarından Mui sürümü bölümüne üst üste dokunarak geliştirici seçeneklerini aktif ediyorum. Sonrasında yine telefonda ayarlar -> ek ayarlar -> geliştirici seçenekleri altında  Usb hata ayıklama ve Usb üzerinden yükle ayarlarını aktif duruma getiriyorum. Telefonu Bilgisayara usb kablosu ile bağlayıp Ot nin no device penceresinde "Refresh Device List" butonuna bastığımda telefonum ekranda görünmeye başlıyor. 

Telefonum uyumsuz cihaz olarak görünüyor. Proje tipini rastgele seçmiştim demekki bu telefon için arm olan kitlerden birini seçmeliyim. Tekrar bir proje oluşturuyorum.

Ne olacağını görmek için uygulamayı çalıştır dediğimde yine bir şeyler indirmeye çalışıyor...


    Zaman aşımı hatası aldım. Linki kendim kontrol ettiğimde 100mb bir dosya görüyorum veya yavaş transfer oluyor. Telefonumun internet bağlantısı daha hızlı olduğu için telefonun internetini bilgisayar ile paylaştırıp tekrar denediğimde zaman aşımına düşmeden dosyayı indirmeyi başardım. İlk derleme işlemi biraz uzun sürdü. Son aşamada telefon ekranında uygulamayı yüklemek istiyormusunuz uyarısı geldi. Tamam dedim ve uygulama çalıştı. Ancak hiçbir şey yapmadığım için boş bir pencere olarak açıldı... O halde projemize bir şeyler ekleyip ne olduğunu görelim....


Butona basınca merhaba yazacak bir düzenleme yaptım. Tekrar çalıştıralım bakalım...



    Uygulama telefon üzerinde çalıştı... Yine bilmediğim sularda yüzüyorum. Hadi birde hesap makinesi uygulamasını yüklemeyi deneyelim...

Telefondan aldığım ekran görüntüsü...

Diğer telefonla çektiğim telefonun görüntüsü


    Windows için yaptığımız program android üzerinde çalışıyor... İşte Qt nin çapraz platform olmasının avantajı önümüzde duruyor....

    Telefon üzerinde programın çalıştığını gördükten sonra birde sanal telefon oluşturup görelim...

    Yine bir uyarı aldık. Sistem imajı yükle diyor... Qt IDE nin  Android Sdk ayarlarını yaptığımız bölümden android 10 için kendi telefonum ile uyumlu olsun diye aynı özellikte bir sistem imajı seçtim ve yükledim.


AVD manager sekmesinden sanal telefonu oluşturabildiğimi görüyorum...


    Biiiiip bir hata daha... Emulatör paketini yüklemelisiniz diyor. Yine SDK Manager sekmesinde Android Emulator olduğunu gördüm yüklüyorum...



Emulator yüklendikten sonra tekrar deneyerek sanal telefonu oluşturdum.


Programı tekrar çalıştırmak istediğimde sanal telefon karşıma çıkıyor.


Ve bir hata daha... 



    Ne demek istediğini tam anlamadım. Bilgisayarın işlemcisi x86 tabanlı olduğu için arm64 ü desteklemiyor sanırım... Anroid sekmesine geri dönüp x86 için sistem imajı yüklüyorum...


    Projeyi tekrar çalıştırdığımda x86_64 telefon uyumsuz olarak listelendi.... Projeyi arm64 için konfigüre etmiştim...


    Yine bir hata daha... x86_64 hardware accelerator gerektirir uyarısı aldım.... 


    Kafam karıştı. Bilgisayar AMD işlemcili o halde sanırım yine Qt nin SDK bölümünden Hypervisor driver ı kurmalıyım...


Yine aynı hatayı aldım...


    
    Konuyu biraz araştırınca windows ayarlarından bellek bütünlüğü ayarını açmam gerektiğini öğrendim.
Bilgisayarı yeniden başlatıp tekrar deniyorum...



    Ve sonunda... Sanal telefon ve üzerinde uygulamamız çalıştı. Sanal telefon ilk ekrana geldiğinde sağ tarafında ki power düğmesi ile telefonu açtım. Telefonun açılması bir miktar vakit aldı. Sonrasında uygulama çalışmaya başladı...

    Bu konu bildiğim bir konu değildi ve konuyu yazarken doğaçlama ilerledim. Sanal telefon kısmında biraz uğraşmış olsak da genel olarak Qt nin Android ayarları derli toplu duruyor. 

    Uygulama nasıl Apk haline getirilir. Arm işlemci için ayrı x86 içi ayrı ayarlar mı yapmalı.. gibi sorular var kafamda... Bu sorularıda bir başka zamana bırakalım...

    Son olarak Qt Widget uygulması ile bu projeyi gerçekleştirdik. Aslında Qt özellikle android gibi cihazlarda çalışmak üzere Qml adlı bir dil geliştirdi. Ancak Widget olarak anroid üzerinde uygulama çalıştırma konusunda şimdilik bir sorun yok gibi görünüyor.
 

Yorum Gönder

Daha yeni Daha eski