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...
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.
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.
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.
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....
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ü...
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.
Biiiiip bir hata daha... Emulatör paketini yüklemelisiniz diyor. Yine SDK Manager sekmesinde Android Emulator olduğunu gördüm yüklüyorum...
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...
https://developer.android.com/studio/run/emulator-acceleration#vm-windows adresindeki açıklamalara bakıyorum.
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...
Konuyu biraz araştırınca windows ayarlarından bellek bütünlüğü ayarını açmam gerektiğini öğrendim.
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.