ChromeOS için uygulama oluşturma

Chromebook gibi ChromeOS cihazlar, Google Play Store'u ve Android uygulamalarını destekler. Bu belgede, telefonlar veya tabletler için tasarlanmış ve Chromebook'lar için optimize etmek istediğiniz mevcut bir Android uygulamanız olduğu varsayılmaktadır. Android uygulamaları geliştirmenin temellerini öğrenmek için İlk Android uygulamanızı geliştirme başlıklı makaleyi inceleyin.

Uygulamanızın manifest dosyasını güncelleme

Başlamak için manifest dosyanızı güncelleyerek Chromebook'lar ile Android çalıştıran diğer cihazlar arasındaki bazı önemli donanım ve yazılım farklılıklarını hesaba katın.

ChromeOS M53 sürümünden itibaren, android.hardware.touchscreen özelliğini açıkça gerektirmeyen tüm Android uygulamaları, android.hardware.faketouch özelliğini destekleyen ChromeOS cihazlarda da çalışır. Ancak uygulamanızın tüm Chromebook'larda çalışmasına yardımcı olmak için manifest dosyanızı, aşağıdaki örnekte gösterildiği gibi android.hardware.touchscreen özelliğinin gerekli olmayacağı şekilde güncelleyin.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          ... >
    <!-- Some Chromebooks don't support touch. Although not essential,
         it's a good idea to explicitly include this declaration. -->
    <uses-feature android:name="android.hardware.touchscreen"
                  android:required="false" />
</manifest>

Farklı donanım cihazlar farklı sensör setleriyle donatılmıştır ve Chromebook'larda Android el cihazlarında bulunan tüm sensörler (ör. GPS ve ivme ölçerler) olmayabilir. Ancak bazı durumlarda sensörün işlevselliği başka bir şekilde sağlanır. Örneğin, Chromebook'larda GPS sensörleri olmayabilir ancak kablosuz bağlantılara dayalı konum verileri sağlanır. Android platformunun desteklediği sensörler hakkında daha fazla bilgi edinmek için sensörlere genel bakış başlıklı makaleyi inceleyin.

Uygulamanızın sensör kullanılabilirliğinden bağımsız olarak Chromebook'larda çalışmasını istiyorsanız manifest dosyanızı sensör gerektirmeyecek şekilde güncelleyin.

Bazı yazılım özellikleri Chromebook'larda desteklenmez. Örneğin, özel IME'ler, uygulama widget'ları, canlı duvar kağıtları ve uygulama başlatıcılar sağlayan uygulamalar desteklenmez ve Chromebook'lara yüklenemez. Chromebook'larda desteklenmeyen yazılım özelliklerinin tam listesi için uyumsuz yazılım özellikleri başlıklı makaleyi inceleyin.

Hedef SDK'nızı güncelleme

Android platformundaki tüm iyileştirmelerden yararlanmak için uygulamanızın targetSdkVersion özelliğini mevcut en son API düzeyine güncelleyin. Android platformunda farklı sürümlerde yapılan iyileştirmeleri inceleyin.

Ağ gereksinimlerini kontrol etme

Chromebook'lar, Docker veya LXC'ye benzer şekilde Android OS'in tamamını bir kapsayıcıda çalıştırır. Bu, Android'in sistemin LAN arayüzüne doğrudan erişemediği anlamına gelir. Bunun yerine, IPv4 trafiği ağ adresi çevirisi (NAT) için dahili bir katmandan geçer ve IPv6 tek noktaya yayın trafiği ek bir atlama üzerinden yönlendirilir.

Android uygulamasından internete yapılan giden tek noktaya yayın bağlantıları çoğunlukla olduğu gibi çalışır. Gelen bağlantılar genellikle engellenir. Android'den gelen çoklu yayın veya yayın paketleri, güvenlik duvarı üzerinden LAN'a yönlendirilmez.

Çoklu yayın kısıtlamasıyla ilgili bir istisna olarak ChromeOS, Android ile LAN arayüzü arasındaki mDNS trafiğini yönlendiren bir hizmet çalıştırır. Bu nedenle, LAN segmentindeki diğer cihazları keşfetmek için standart ağ hizmeti keşfi API'lerinin kullanılması önerilir. LAN'da bir cihaz bulunduktan sonra Android uygulaması, cihazla iletişim kurmak için standart TCP veya UDP tek yayın soketlerini kullanabilir.

Android'den gelen IPv4 bağlantıları, ChromeOS ana makinesinin IPv4 adresini kullanır. Android uygulaması, dahili olarak ağ arayüzüne atanmış özel bir IPv4 adresi görür. Android'den kaynaklanan IPv6 bağlantıları, Android kapsayıcısında özel bir herkese açık IPv6 adresi olduğundan ChromeOS ana makinesinden farklı bir adres kullanır.

Bulut ve yerel depolama alanını etkili bir şekilde kullanma

Chromebook'lar, kullanıcıların bir cihazdan diğerine kolayca geçiş yapmasına olanak tanır. Bir Chromebook'u kullanmayı bırakıp başka bir Chromebook'u kullanmaya başlayan kullanıcıların yalnızca oturum açması gerekir ve tüm uygulamaları görünür.

Bu özellik sayesinde, cihazlar arasında senkronizasyonu etkinleştirmek için uygulamanızın verilerini buluta yedekleyebilirsiniz. Ancak uygulamanızın normal şekilde çalışması için internet bağlantısına güvenmeyin. Bunun yerine, cihaz çevrimdışı olduğunda kullanıcının çalışmasını yerel olarak kaydedin ve cihaz tekrar internete bağlandığında bulutla senkronize edin.

Chromebook'lar okullarda olduğu gibi çok sayıda kişi tarafından da paylaşılabilir. Yerel depolama alanı sınırsız olmadığından, depolama alanıyla birlikte hesapların tamamı cihazdan herhangi bir zamanda kaldırılabilir. Eğitim ortamlarında bu senaryoyu göz önünde bulundurmanız önerilir.

Uygulamanız için yeni test durumları geliştirme

Uygulamanız için test senaryoları geliştirmek istiyorsanız öncelikle uygun manifest işaretlerini belirttiğinizden emin olun. Özellikle screenOrientation değerini unspecified olarak ayarlamayı düşünebilirsiniz. Yatay yönlendirme belirtmek istiyorsanız tabletlerde optimum deneyim sağlamak için sensorLandscape kullanmayı düşünebilirsiniz.

Masaüstü ortamları için özel boyut veya yönlendirme ihtiyaçlarınız varsa boyut ya da yönlendirme ipuçları olarak meta etiketler ekleyebilirsiniz. Telefonlarda boyutu ve yönü dahil etmek için bunun yerine düzen defaultHeight, defaultWidth veya minHeight özelliklerini belirtin.

Belirli cihaz kategorileri için belirli giriş cihazı işleme ile ilgileniyorsanız giriş uyumluluğu modunu devre dışı bırakmak için android.hardware.type.pc değerini belirtin.

Herhangi bir ağ oluşturma yöntemi kullanıyorsanız bağlantı sorunu çözüldükten sonra veya cihaz uyku modundan uyandığında uygulamanın ağa yeniden bağlanabildiğinden emin olun.

Test planınızda kullanabileceğiniz Chrome OS'te Android uygulamaları için test durumları listesini incelemenizi öneririz. Test durumları, ChromeOS cihazlarda çalışması beklenen Android uygulamalarının hazırlanması gereken yaygın senaryoları kapsar.

Çoklu pencere ve yön değişiklikleri

ChromeOS'in çok pencereli ortamı, durumun kalıcılığı ve geri çağırma sorunlarını daha belirgin hale getirebilir. Uygun olduğunda durumunuzu kaydetmek ve geri yüklemek için ViewModel kullanın.

Durumun kalıcılığını test etmek için uygulamanızı bir süre küçültün, kaynak yoğun başka bir işlem başlatın ve uygulamanızı geri yükleyerek bıraktığınız duruma döndüğünü doğrulayın.

Tam ekran tuşuna (F4) basarak, ekranı büyüterek ve geri yükleyerek pencere boyutunu test edin. Ücretsiz yeniden boyutlandırmayı test etmek için önce geliştirici seçeneklerinde etkinleştirin, ardından uygulamanızın kilitlenmeden sorunsuz bir şekilde yeniden boyutlandırıldığını kontrol edin.

ChromeOS cihazınız destekliyorsa her şeyin beklendiği gibi çalışıp çalışmadığını kontrol etmek için dizüstü bilgisayar modundan tablet moduna geçin. Yön değişikliklerini test etmek için cihazı tablet modunda bir kez döndürün, ardından tekrar dizüstü bilgisayar moduna geçin. Bu adımı birkaç kez tekrarlayın.

Üst çubuğun, kullanıcı arayüzü öğelerini veya konuma dayalı dokunma girişini kaydırarak uygulamanızın bozulmasına neden olmadığından emin olun. ChromeOS cihazlarda uygulamanızın durum çubuğu alanına önemli bilgiler yerleştirmediğinden emin olun.

Kamerayı veya kalemi gibi başka bir donanım özelliğini kullanıyorsanız daha önce belirtilen pencere ve cihaz değişikliklerini yaparken düzgün çalıştığından emin olun.