ChromeOS için uygulama derlemeye başlayın

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

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

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

ChromeOS sürüm M53'ten itibaren, android.hardware.touchscreen özelliğini açıkça gerektirmeyen tüm Android uygulamaları, android.hardware.faketouch özelliğini destekleyen ChromeOS cihazlarda da çalışmaktadır. Ancak, uygulamanızın tüm Chromebook'larda çalıştığından emin olmak için manifest dosyanızı, aşağıdaki örnekte gösterildiği gibi android.hardware.touchscreen özelliğini gerektirmeyecek ş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ında farklı sensör grupları vardır ve Chromebook'larda GPS ve ivme ölçer gibi Android avuç içi cihazlardaki tüm sensörler bulunmayabilir. Ancak bazı durumlarda sensörün işlevselliği başka bir şekilde sağlanır. Örneğin, Chromebook'larda GPS sensörleri bulunmayabilir, ancak kablosuz bağlantılara dayalı konum verileri sağlarlar. Android platformunun desteklediği sensörler hakkında daha fazla bilgi edinmek için sensörlere genel bakış sayfasına göz atın.

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

Bazı yazılım özellikleri Chromebook'larda desteklenmez. Örneğin, özel IME'ler, uygulama widget'ları, animasyonlu 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 bölümüne bakın.

Hedef SDK'nızı güncelleyin

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

Ağ iletişimi gereksinimlerini kontrol edin

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

Bir Android uygulamasından internete giden tek noktaya yayın bağlantıları çoğunlukla olduğu gibi çalışır. Genel olarak, gelen bağlantılar 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ına bir istisna olarak ChromeOS, Android ile LAN arayüzü arasında mDNS trafiğini ileten bir hizmet çalıştırır. Bu nedenle, LAN segmentindeki diğer cihazları keşfetmek için standart ağ hizmeti keşfi API'leri önerilen yoldur. Android uygulamaları, LAN üzerinde bulduğunda bu cihazla iletişim kurmak için standart TCP veya UDP unicast yuvalarını 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 kapsayıcının özel bir herkese açık IPv6 adresi olduğundan, Android kaynaklı IPv6 bağlantıları ChromeOS ana makinesinden farklı bir adres kullanır.

Bulut ve yerel depolamayı etkili şekilde kullanın

Chromebook'lar kullanıcıların bir cihazdan diğerine kolayca geçiş yapmasına olanak tanır. Kullanıcı bir Chromebook'u kullanmayı bırakıp başka bir Chromebook'u kullanmaya başlarsa tek yapması gereken oturum açmaktır. Bu aşamada tüm uygulamaları görünür.

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

Chromebook'lar okullarda olduğu gibi çok sayıda kullanıcı arasında da paylaşılabilir. Yerel depolama sonsuz olmadığından, hesapların tamamı (depolama alanlarıyla birlikte) istediğiniz zaman cihazdan kaldırılabilir. Eğitimle ilgili ortamlarda bu senaryoyu aklınızda tutmanız önerilir.

NDK kitaplıklarını güncelleme

Uygulamanız Android NDK kitaplıklarını kullanıyorsa ve hedef SDK sürümü 23 veya sonraki bir sürümse metin yer değiştirmelerinin, Android 6.0 (API düzeyi 23) ve sonraki sürümlerle uyumlu olmadığından NDK kitaplıklarınızın hem ARM hem de x86 sürümlerinden kaldırıldığından emin olun. NDK kitaplıklarınızda metin yer değiştirmeleri bıraktığınızda, özellikle x86 mimarisi kullanan bir cihazda çalışırken Chromebook'larla uyumluluk hatalarına da neden olabilirsiniz.

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

Uygulamanız için test senaryoları geliştirmek üzere öncelikle uygun manifest işaretlerini belirttiğinizden emin olun. Özellikle, screenOrientation yönergesini unspecified olarak ayarlayın. Yatay bir yön belirlemek istiyorsanız tabletteki deneyimin optimum düzeyde olması için sensorLandscape kullanabilirsiniz.

Masaüstü ortamları için özel boyut veya yön ihtiyaçlarınız varsa meta etiketleri boyut veya yön ipuçları olarak ekleyebilirsiniz. Telefonlara boyut ve yön eklemek için bunun yerine düzen defaultHeight, defaultWidth veya minHeight özelliklerini belirtin.

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

Herhangi bir türde ağ kullanıyorsanız, bağlantı sorunu çözüldükten veya cihaz uyku modundan çıktıktan sonra uygulamanın ağa yeniden bağlanabildiğinden emin olun.

Test planınızda kullanabileceğiniz Chrome OS'teki Android uygulamaları için test senaryolarının listesini kontrol etmenizi ö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 çoklu pencere ortamı, durum 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 aracını kullanın.

Durum kalıcılığını test etmek için uygulamanızı bir süre en aza indirin, kaynakları yoğun bir şekilde kullanan başka bir işlem başlatın ve uygulamanızı geri yükleyerek bıraktığınız duruma döndüğünü onaylayın.

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

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

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

Kamerayı veya kalem gibi başka bir donanım özelliğini kullanıyorsanız daha önce açıklanan pencere ve cihaz değişiklikleri sırasında düzgün şekilde çalıştığından emin olun.