Android Studio'daki ChromeOS lint kuralları

ChromeOS olarak, Android uygulama geliştiricilerin uygulamalarını Chromebook'lar için sorunsuz bir şekilde optimize etmelerini sağlayan geliştirici araçlarını ve çerçevelerini iyileştirmeye kararlıyız. Bu nedenle, büyük ekranlar ve ChromeOS için geliştirme deneyimini iyileştirmek amacıyla geliştiricilere etkili araç setleri sunmanın yollarını sürekli olarak aramamız gerekiyor.

ChromeOS, yıllar içinde yeni zorluklar ortaya çıktıkça gelişti. Bu zorluklardan biri, mühendisleri kritik sorunlar hakkında erken ve sık sık bilgilendirmektir. Lint kuralları, düzeltilmediği takdirde ortaya çıkacak sorunlar için geliştiricilere uyarı sinyalleri sağladığından kalite açısından büyük önem taşır. Güncellenen lint kurallarımız, geliştiricilere uygulamalarının ChromeOS'te nasıl çalıştığı konusunda daha fazla görünürlük sağlar. Bu kurallar, herhangi bir ChromeOS cihazda çalışan Android uygulamalarında sorunlara neden olabilecek hem yazılım hem de donanımla ilgili sorunları gösterir.

Bu lint kurallarının varlığı ve önemi hakkında daha fazla bilgi edinmek için blog yayınımızı okuyun.

Bu lint kuralları nerede?

Birkaç aydır aktif olarak geliştirme yapıyoruz. Android Studio'nun yayın takvimiyle birlikte, bazı hata analizi kuralları Electric Eel Canary derlemeleriyle kullanıma sunuluyor. Bu lint kurallarından bazıları artık Flamingo Canary sürümlerinde de kullanılabilir. Önümüzdeki aylarda bu özellikleri Android Studio'nun kararlı sürümlerine eklemek için çalışmaya devam edeceğiz.

Bir diğer önemli nokta ise bu kuralların Android Studio'nun yeni sürümlerinde varsayılan olarak etkinleştirileceğidir. Bu belgenin amacı, mühendislerin ChromeOS ve daha büyük ekranlar için geliştirme yapmasına nasıl yardımcı olmak istediğimiz konusunda daha net bir rehberlik sunmaktır.

Yeni lint kuralları (Flamingo Canary 3 itibarıyla güncellendi)

x86/x86_64 ABI desteği

Chromebook'ların çoğu Intel mimarisi üzerinde çalışır. Bu nedenle, Chromebook'lar ağırlıklı olarak x86 mimari platformudur. NDK kodu ikili dosyanın bir parçası olarak eklendiğinde ChromeOS'in düzgün şekilde desteklenmesi için x86'nın kullanılması, ARM kitaplıklarından gerekli çeviriyi kaldırarak performansı artırır. Bu nedenle, geliştirme ekibinizin x86 veya tercihen x86_64 mimari desteği eklemesi önemle tavsiye edilir. Bu, ChromeOS'teki veya herhangi bir Intel cihazdaki yerel kodların performansını artıracaktır.

Çözüm

Mümkünse build.gradle içindeki abiSplits öğenizin içine x86 ve x86_64 öğelerini ekleyin. Ayrıca, bu ABI'leri desteklemek için kodu uygun klasörlere eklediğinizden emin olun. Daha fazla bilgi edinmek için Android ABI'leri ile ilgili belgelere ve ADS'den ABI Desteği hakkındaki konuşmaya bakın.

Not: Kullanılan tüm üçüncü taraf kitaplıkların x86 ve x86_64 ikili dosyalarına sahip olduğundan emin olun.

ChromeOS donanım sınırlaması

ChromeOS cihazların çoğunda, Android telefonlara kıyasla daha küçük bir donanım sensörü ve diğer özellikler örnek seti bulunur. Bu kuralın amacı, geliştiricileri uyarmaktır. <uses-feature> işaretini android:required=true ile birlikte kullanıyorsanız uygulamanız ChromeOS'te Google Play Store'da kullanılamaz. Uygulamanıza mümkün olduğunca çok sayıda cihazdan erişilebilmesini sağlamak için donanım özelliğinin varsayılan olarak gerekli olmadığından emin olmanızı önemle tavsiye ederiz. Bunun yerine, çalışma zamanında belirli donanımların kontrol edilmesi için koruyucu kod ekleyebilirsiniz. Buna örnek olarak

<uses-feature android:name="android.hardware.camera" android:required="true">

Çözüm

Uygulamanızdaki özelliklerin gerçekten gerekli olduğundan emin olun. Gerekli değilse android:required parametresini false olarak değiştirin ve API çağrıları gerektiğinde savunma amaçlı programlama ekleyin. Daha fazla bilgi edinmek için açıkça belirtilen özelliklerle ilgili belgelere bakın.

Yeniden boyutlandırılamayan etkinlikler

Varsayılan olarak, Chromebook'larda Android R veya sonraki sürümleri çalıştıran ChromeOS için Android Runtime, varsayılan kullanıcı arayüzü durumuna bağlı olarak bir Android uygulamasını uygulamanın telefon veya tablet sürümünde başlatır. Ancak ChromeOS kullanıcıları için daha iyi bir deneyim sunan üçüncü bir seçenek olan Yeniden Boyutlandırılabilir mod da vardır. Bu işareti Etkinliğinizin bir parçası olarak etkinleştirdiğinizde, uygulamanızı herhangi bir çok pencereli ortamda kullanabilen kullanıcılar, uygulamanızı uygun boyuta yeniden boyutlandırabilir. Bu değişiklikler, kullanıcıların kullanıcı arayüzünü ihtiyaçlarına göre ölçeklendirmesine olanak tanır. Bu değişiklikleri manifestinize ekledikten sonra uygulamanızı aşağıda belirtilen masaüstü emülatörüne karşı test edin.

Uygulamanızı masaüstü emülatöründe test etme

Çözüm

resizableActivity="true" dosyanızdaki Etkinliğinize resizableActivity="true" özelliğini ekleyin.AndroidManifest.xml Daha fazla bilgi edinmek için büyük ekran kısıtlamaları ile ilgili belgelere bakın.

Yapılandırma değişiklikleri

Yeniden boyutlandırılabilir ekranlarla ilgili önemli bir uyarı: Kullanıcı, uygulamanın boyutunu her değiştirdiğinde onConfigurationChanged() çağrılır. Uygulamanız bu yöntemde tam yeniden çizim yapıyorsa bununla ilişkili performans etkileri olur. Şu anda, finish() kaydedilmiş örnek durumunu tam yeniden çizim uygulamak yerine daha ayrıntılı bir şekilde ele almanız gerektiğinden onConfigurationChanged içinde çağrılmadığından emin olmak için kontrol yapıyoruz. Performans düşüşünün yaşanacağı durumları tespit etmeye ve bu kuralı buna göre güncellemeye devam edeceğiz.

Çözüm

Etkinlikleriniz ve parçalarınızdaki onConfigurationChanged() API'sinde finish() çağrılmadığından emin olun. Daha fazla bilgi için yapılandırma değişikliklerini işleme ile ilgili belgelere bakın.

Klavye ve fare desteği

Jetpack Compose'un kullanımının artmasıyla birlikte, bu kitaplıklarla geliştirme yaparken fare ve klavye desteği işlevinin de dahil edilmesini istedik. Zaman içinde fare, klavye, izleme dörtgeni ve diğer çevre birimi etkileşimlerinin kullanılabilirliğini artırmaya devam edeceğiz. Temel deneyimleri elde etmek için Gradle bağımlılıklarınızı gerekli minimum sürümlere güncellemeniz gerekir.

Çözüm

androidx.compose.foundation:foundation'yı en az 1.2 sürümüne güncelleyin. Daha fazla bilgi için Compose sürüm notlarına bakın.

İpucu: Kullanıcıların% 90'ı Chromebook'larda uygulamalarla etkileşim kurarken klavye ve fare kullanır. (Kaynak: 2022 Google'ın kendi verileri*)

Geri bildirim

Ekibimiz, bu araçları ve büyük ekranlar için optimizasyonlarla ilgili dokümanları iyileştirmek için sürekli çalışmaktadır. Bu süreçteki önemli bir adım, Android Studio'da dağıtılan hata analizi kurallarının doğruluğu ve kullanışlılığı hakkında bize geri bildirim vermektir. Kural hakkında geri bildirim göndererek bunu yapabilirsiniz. Lint kuralı Android Studio'da göründüğünde "Bu uyarıyla ilgili geri bildirim gönder"i tıklayın. Aşağıdakine benzer bir iletişim kutusuna yönlendirilirsiniz. Verilen bilgiler ne kadar doğru ve açıklayıcı olursa uygun değişiklikleri yapma konusunda o kadar hızlı hareket edebiliriz.

Android Studio&#39;da geri bildirim iletişim kutusu