Android, açıklığı nedeniyle ilk on yılında önemli bir büyüme kaydetti. Aralarından seçim yapabileceğiniz çok sayıda cihaz var ve gelişen geliştirici ekosistemi, bu cihazlara uzun vadeli canlılık sağlayan birçok uygulama ve oyun sağlıyor. Bir geliştirici olarak, kullanıcıların mümkün olan en iyi deneyimi yaşamalarını ve uygulamanızın tüm bu cihazlarda olabildiğince çok çalışmasını sağlamak istersiniz. Ayrıca olabildiğince çok kullanıcının uygulamanızı yüklemesini, onların da kullanmaya devam etmelerini ve sizin kontrolünüz dışındaki nedenlerle uygulamanızı kaldırmalarını istemiyorsunuz. Şimdiye kadar, Android uygulamalarının yayınlanma ve dağıtılma biçiminin tüm bu alanlarda iyileştirilmesi için yer var. Geliştiricilerin karşılaştığı bazı zorlukları gözlemlemek ve Google'ın yardımcı olmak için neler aldığını size söylemek istiyorum.
Android'in ilk on yılına bakıldığında
On yıldır Android üzerinde uygulama yayınlama süreci şu şekilde:
Yıllar geçtikçe bu yöntem işe yaradı. Aslında, insanlar her ay Google Play'den 8 milyardan fazla uygulama yüklüyor! Ancak, göreceğiniz gibi, bu model, geliştiricilerin görmezden gelemeyeceği zorluklar ortaya çıkarmaktadır.
Göz ardı edilmesi zor olan "büyük" sorun
Zorluk şunlarda yatıyor: Uygulama hacmi gittikçe büyüyor . Hatta 2012 yılından bu yana başvuru hacmi ortalama 5 kat arttı. Bunu anlamak kolaydır: Kullanıcı elde tutma / geri dönüş sağlamak ve iş büyümesini sürdürmek için uygulamanıza harika özellikler ve yeni içerik eklemek istiyorsunuz. Ekipmanın performansı gittikçe daha iyi hale geliyor ve bu parlak yeni özelliklerden yararlanmayı umuyorsunuz. Cihaz ekosistemi daha çeşitli hale geldi, bu nedenle hem büyük hem de küçük ekranlarda sorunsuz çalışmasını sağlamak için uygulamadaki kodu ve kaynakları kopyalamaya ve farklı CPU türlerinde sorunsuz bir şekilde çalışmasına karar veriyorsunuz.
Her kullanıcı sınırsız depolama alanına, sınırsız veri trafiğine ve her zaman var olan hızlı bağlantılara sahipse, uygulamaların gittikçe büyümesinde bir sorun yoktur. Ne yazık ki durum böyle değil (elbette umarız bir gün!). Aşağıdaki şekle bakarak, Google Play'deki uygulamaların boyutunun yükleme dönüşüm oranları ile negatif yönde ilişkili olduğunu görebilirsiniz. Bu, uygulama büyüdükçe yükleme oranının düşeceği anlamına gelir. Bunun birçok nedeni vardır: Çoğu kullanıcının cihazlarında yeterli boş alan yoktur. Kullanıcılar, ortalama depolama alanına sahip giriş seviyesi cihazlar kullanıyor olabilirler. Üst düzey cihazlara sahip kullanıcılar için bile, fotoğraflarının, videolarının ve diğer medya dosyalarının kalitesi kademeli olarak artmakta ve böylece daha fazla yer kaplamaktadır. İnternetteki kullanılabilir alan giderek küçülüyor. Kullanıcılar ayrıca, özellikle gelişmekte olan pazarlarda pahalı veri paketlerini kullanırken büyük uygulamaların ağa yavaşça bağlanmasını beklemek istemiyorlar.
Uygulama dosyası boyutu ile yükleme hızı arasında negatif bir korelasyon varDaha büyük uygulamaların yükleme oranının düşeceğini biliyoruz. Kullanıcı araştırmamız, uygulama boyutunun yüklemeyi kaldırma için ana itici güç olduğunu gösteriyor ve bu da uygulama boyutunu, kullanıcı tutma oranını artırmada giderek daha önemli bir faktör haline getiriyor. Kendi deneyiminizi düşünün. Bir uygulama yüklemeye çalıştığınızda, Google Play'den yeni uygulamaları yüklemek için yer açmak üzere sık kullanılmayan bazı uygulamaları kaldırmanız gerektiğini belirten bir uyarı gördünüz mü? Milyonlarca insan her gün bu uyarıları görüyor ve bu uyarıyı aldıklarında Genellikle en büyük uygulamaları ve oyunları kaldırırlar . Geçen yıl Google Play tarafından yapılan bir kullanıcı anketinde, kullanıcıların uygulamaları ve oyunları kaldırmasının ana nedeni, bu uygulamalar ve oyunlar en az bir aydır kullanılmış olsa bile yer açmaktı.
Yukarıdaki sorunları çözmek için geliştiricilerin benimseyebileceği çözümler çok sınırlıdır. Tek bir sürümde her cihaz yapılandırması için birden fazla APK oluşturabilirsiniz. Ancak, hem 32 biti hem de 64 biti hedeflerken farklı ekran boyutları ve CPU mimarileri için optimize etmek istediğinizde işler hızla kontrolden çıkar her sürüm için yüzlerce APK oluşturmaya başlayabilirsiniz. Bu acı vericidir ve çoğu geliştirici bunu yapmayacaktır. Çoğu kişi tüm içeriği "sağlam" bir APK'ye koyar ve bu da kullanıcının cihazında çok sayıda kullanılmayan içeriğe neden olur. Ayrıca, birden çok APK kullansanız bile dil için optimizasyon yapamazsınız. Kullanıcı yalnızca bir veya iki dile ihtiyaç duysa bile, her bir APK'ye her cihaz için tüm çeviri dizelerini dahil etmeniz gerekir, bu da daha fazla yer israfına neden olur.
Bu nedenle, geliştiricinin ikilemi açıktır: uygulamanın boyutunu artırmak, daha düşük bir dönüşüm oranına ve daha yüksek bir kaldırma riskine yol açabilir; birden çok APK kullanmak, sürüm yinelemenizin verimliliğini azaltacak ve yorulmanıza neden olacaktır. Uygulama hacminin artmasını önlemek için farklı işlevler arasındaki değiş tokuşları tartmak çok zaman alabilir.
"Küçük" ama "akıllı" çözüm burada
Google, geliştiricilerin bu ikilemlerle yüzleşmesini istemediğinden, gelişmek için her zaman çok çalışıyoruz. Genel fikir şudur: İhtiyacınız olan tüm içeriği Google Play'e yüklerseniz, Play Store'un her kullanıcı ve cihaz için talep üzerine ilgili içeriği sağlamasına izin verin. Basit, değil mi? Bu süreç, Android'in çeşitli ekosistemini desteklemek için ihtiyaç duyduğunuz iş miktarını azaltabilir ve kullanıcıların elindeki uygulamanın boyutunu küçültebilir. Bu makalenin ilerleyen kısımlarında keşfedeceğiniz gibi, bu yeni çözüm aynı zamanda kullanıcı edinme sürecini iyileştirmeye yardımcı olur: özellikler ve güncellemeler aracılığıyla kullanıcılar anında keşfedilir, kurulur, çekilir ve korunur.
Daha küçük kurulum paketi
Bu vizyona ulaşmak için Google, bu yılın başlarında yeni bir uygulama yayınlama formatı başlattı Android Uygulama Paketi . Aşağıda ayrıntılı olarak nasıl çalıştığı açıklanmaktadır:
Bu yeni dağıtım modu, uygulamaların boyutunu önemli ölçüde azaltabilir, indirme süresini azaltabilir ve depolama alanı kullanımını azaltabilir. Kullanıcılara, kullanıcıların kullanmayacağı kod ve kaynakları içermeyen daha verimli bir uygulama sağlarsınız. Çoğu geliştirici için bu yeni dağıtım moduna geçmek de çok basittir. Android Studio'da bir App Bundle oluşturma süreci, kabaca bir APK oluşturmakla aynıdır. Unity kullanan oyun geliştiricileri, Unity'nin 2018.3 beta ve sonraki sürümlerinde de uygulama paketleri oluşturabilir. Android App Bundle açık kaynaklıdır ve geriye dönük uyumludur (Android L'den önceki sürümler için Play otomatik olarak birden çok APK kullanır; yani Play, bölünmüş APK'lar kullanmak yerine tüm dil kaynakları dahil olmak üzere her cihaz yapılandırması için bir APK oluşturur).
App Bundle'a geçtik ve bir saat içinde ilk dahili sürümümüzü yükledik. Swiggy ~ Uygulama boyutunu% 23 azaltmak için Apple Bundle'ı kullanınBinlerce popüler uygulama geliştiricisi, uygulamalarını paketlemek için App Bundle kullanıyor. Android App Bundle'ı kullanan geliştiricilerin APK boyutu, önceden benimsenen "tam APK" dan ortalama% 3,5 daha küçüktür ("tam APK", Android App Bundle'ın gerektirdiği tüm cihaz yapılandırmalarını ve dilleri içeren bir APK anlamına gelir). Daha da önemlisi, her bir sürümü yönetmesi gerekenler için yeni biçim, artık cihaz yapılandırması için birden fazla APK kullanmanıza gerek olmadığı anlamına geliyor. Google Play bu sorunu sizin için çözecek ve hayatınızı kolaylaştıracak. Play Console, yakında büyük App Bundle'ları yüklemenize izin verecek, karşılık gelen APK boyutu 500 MB'tır. Boyut sınırını artırdıktan sonra, çoğu durumda ek genişletme dosyaları kullanmanız gerekmeyeceğine inanıyoruz.
Artık birden fazla APK kullanmak zorunda değiliz. App Bundle bize zaman kazandırıyor. redBus ~ Uygulama hacmini% 22 azaltmak için App Bundle'ı kullanınYeni dağıtım modelinin ve yeni yayınlama biçiminin avantajı, Google Play'in APK oluşturma işlemi sırasında optimizasyonlar sunarak size zaman ve emekten tasarruf etmesidir. Az önce duyurulan bir örnek: Android Marshmallow'da tanıtılan nadiren kullanılan bir platform özelliği olan sıkıştırılmamış yerel kod kitaplıkları için destek. App Bundle kullanan geliştiriciler bu özelliği ek çalışma yapmadan edinebilir.
Android M'den önce, uygulamanıza dahil edilen tüm yerel kod kitaplıklarının APK'dan çıkarılması gerekiyordu. Bu, her cihazda kod tabanının iki kopyasının kurulu olduğu anlamına gelir: APK'deki sıkıştırılmış kopya ve sıkıştırılmamış kopya. Bu, boşa giden alana yol açar. Android M'den başlayarak, kod kitaplığını APK'dan sıkıştırılmamış bir durumda doğrudan okuyabilirsiniz. İndirme işlemi sırasında Play'in APK'ları sıkıştırması genellikle APK'daki yerel kod tabanını sıkıştırmaktan daha etkilidir, bu nedenle genel indirme boyutu da daha küçüktür. Yükleme boyutu konusunda endişelenmeden bundan yararlanabilmeniz için Play Console'un boyut sınırları değişiyor. Bunlar, Play Console'a yüklediğiniz uygulamanın boyutuna değil, kullanıcı tarafından indirilen sıkıştırılmış APK'nın boyutuna bağlı. Ortalama olarak, bu optimizasyon tek başına yerel kod tabanını kullanan uygulamaların dosya indirmelerini% 8 ve cihazdaki yükleme boyutunu% 16 azaltmak için yeterlidir. Uygulama paketine geçtiğiniz sürece, bu kadar inanılmaz bir dosya boyutunu küçültmenin keyfini çıkarabilirsiniz!
20'den fazla dilde kaynak dosyaları, uygulamamızın boyutunu artırdı ve yükleme dönüşüm oranımızı önemli ölçüde düşürdü. Android App Bundle'ı kullandıktan sonra durum çok değişti. Riafy ~ Uygulama hacmini% 37 azaltmak için Apple Bundle'ı kullanınBahsettiğim gibi, uygulamalar, uygulama paketlerini kullanmak için Google Play aracılığıyla uygulamaları imzalamayı seçmelidir. Uygulama imzalama anahtarı, uygulama yüklendikten sonra güncellemenin her zaman aynı geliştiriciden gelmesini sağlayan bir mekanizmadır. Google bu anahtarla ek erişim elde edemez veya geliştiriciyle ilgili bilgileri tanımlayamaz. Yalnızca kurulum ve güncellemeler için bölünmüş APK'ları imzalamak için kullanılır. Google, güvenliğe büyük önem vermektedir. Google, Google'ın özel uygulama anahtarlarını korumak için kullandığı aynı güvenli anahtar deposunu kullanarak geliştiricilerin anahtarlarını korumak için bir mühendis ekibine ve gelişmiş bir altyapıya sahiptir. Aslında, çoğu geliştirici için uygulamayı imzalamayı ve ardından her sürümü imzalamak için yükleme anahtarını kullanmayı seçmek, anahtarı tutmaktan daha güvenlidir, çünkü anahtar kaybolabilir veya açığa çıkabilir. Bu mekanizmayı kullanmamaya karar verirseniz ve uygulama imzalama anahtarınızı kaybederseniz, uygulamanızı güncelleyemezsiniz. Ne yazık ki, bu gerçekleştiğinde herhangi bir yardım sağlayamayız.
Dinamik işlev
Android App Bundle'ın bir diğer önemli yeniliği de modüler tasarımdır. Bu, uygulamanıza talep üzerine yüklenebilecek diğer uygulama özelliklerini içeren modüller ekleyebileceğiniz anlamına gelir. Bu, daha önce bahsettiğim uygulamanın daha büyük hale gelmesinin önemli bir nedenidir: işlevlerin büyümesi. Artık yükleme sırasında uygulamanın boyutunu artırmadan daha fazla özellik ekleyebilirsiniz. Dinamik özellik modülleri için tarama ve kontrol yöntemleri, Google Play Protect'in uygulamanın kendisini tarama ve kontrol etme yöntemiyle aynı olduğundan dinamik özellikleri kullanmak, Android'de dinamik olarak kod yüklemenin güvenli bir yoludur.
Dinamik işlev modülüne herhangi bir uygulama işlevi dahil edilebilir ve talep üzerine sağlanabilir. Dinamik fonksiyonları tıpkı bir uygulama yazarken olduğu gibi kodlayabilirsiniz. Uygulanabilir işlevler şunları içerir:
Anında keşif
Android App Bundle'ın, uygulamanızı küçük ve dinamik işlevler aracılığıyla oldukça yapılandırılabilir tutmanıza nasıl yardımcı olduğundan daha önce bahsetmiştim. Android App Bundle ayrıca hazır uygulamaları (Hazır Uygulamalar) destekler. Google Play Instant, kullanıcıların tam uygulamayı veya oyunu yüklemeden önce Play Store'daki "Şimdi Deneyin" düğmesi, reklamlar ve bağlantılar aracılığıyla uygulamaları ve oyunları denemelerine olanak tanır. Anında Arama şimdi 1,3 milyar cihaza yüklenmiştir ve uygulama keşfi ve kurulumunu yürütmek için mükemmel bir yol olduğu kanıtlanmıştır, böylece uygulamayı yüklememiş olabilecek kullanıcılar kazanır. Vimeo, Google Play Instant ile başarılı olan birçok iş ortağından biridir. Raporları, yeni yüklemelerin% 15'inin deneme özelliklerinden geldiğini gösteriyor.
Geçmişte, oluşturma ve yayınlama süreçleri bağımsız olduğundan, bazı geliştiricilerin kurulum gerektirmeyen uygulamaları benimsemesi kolay değildi. Ancak Android Uygulama Paketlerinin ortaya çıkmasıyla birlikte artık ayrı bir kurulum gerektirmeyen uygulama oluşturmanıza ve sürdürmenize gerek kalmadı. Uygulama paketine geçtikten sonra, kurulum gerektirmeyen uygulama için giriş noktası olarak bir modül ekleyebilirsiniz Uygulamanız yeterince küçükse, yalnızca temel modülü etkinleştirmeniz gerekir. Temel uygulama modülünün ve ücretsiz yükleme uygulama modülünün boyutu 10MB ile sınırlıdır, bu nedenle Play Store ve web banner'larında "Şimdi dene" düğmesini etkinleştirebilirsiniz. Hazır uygulamalar yalnızca desteklenen izinleri isteyebilir. Yüklediğiniz uygulama başka izinler gerektiriyorsa, lütfen kullanıcıların iyi bir deneyim yaşamasını sağlamak için ücretsiz kurulum uygulamasında doğru şekilde bilgi isteyin.
Bu, her uygulamanın 10MB hacim sınırını kolayca karşılayabileceği anlamına gelmez. İşlevleri kademeli olarak yüklemek için dinamik işlev modüllerini kullanmak, uygulama boyutunu büyük ölçüde azaltmanın birçok yolundan biridir. 10 MB boyut sınırı yalnızca ücretsiz yükleme özelliğine sahip uygulama paketi üretim ortamına gönderildiğinde geçerlidir, böylece boyut sınırının daha önce aşılıp aşılmadığını test edebilirsiniz. Temel modülü ve ücretsiz kurulum giriş modülünü 4MB'nin altına daha da düşürebilirseniz, Google Arama ve e-posta veya sosyal medya gibi kanallar aracılığıyla paylaşılan tüm web bağlantıları gibi ücretsiz kurulum deneyimi için daha fazla teşhir fırsatını etkinleştirebilirsiniz. Ücretsiz yüklemeyi veya normal yüklemeyi destekleyen bir uygulama paketi oluşturmak istiyorsanız, Android Studio 3.3 beta'yı da kullanabilirsiniz.
Daha hızlı güncelleme hızı
Bahsetmek istediğim son şey, uygulamaları kullanıcıların ellerinde güncel tutmaktır. Hedef kitlenizi çekmenin ve elde tutmanın son adımı, tüm en son özelliklerinize ve en son yamalara sahip olduklarından emin olmaktır. Birçok Google Play kullanıcısı otomatik güncelleme özelliğini etkinleştirmiş olsa da, çoğu henüz bunu etkinleştirmemiştir ve bazı kullanıcılar sık sık yüksek hızlı Wi-Fi bağlantılarına bağlanamaz ve tüm uygulamaları normal şekilde güncel tutamaz. Yeni Uygulama İçi Güncellemeler API'si (Uygulama İçi Güncellemeler API'si), güncellemelerin ne zaman mevcut olduğunu algılamanıza olanak tanır ve özelleştirilebilir bir çevrimiçi güncelleme sürecini entegre eder. Görünür ve uygulamanın bir parçası gibi görünür. Bir güncelleme tespit edildiğinde, kullanıcıyı bir komut istemiyle hemen güncellemesi için bilgilendirebilir veya kullanıcıyı daha esnek bir şekilde güncelleme yapması için bilgilendirmek için seçtiğiniz bir şekilde kullanıcıya bilgi verebilirsiniz.
Kullanıcıların bu güncellemeleri mümkün olan en kısa sürede uygulamalarını sağlamak için, özellikle güvenlik düzeltmeleri veya gizlilik geliştirmeleri gibi kritik güncellemeler için anında bir güncelleme süreci tasarladık. Kullanıcı, uygulamanızda bu güncellemeyi kabul ettiğinde, sistem bu güncellemeyi indirip uygular ve uygulama otomatik olarak yeniden başlatılır. Bazı uygulamalar bunun için kendi çözümlerini zaten uygulamıştır, ancak yeni API, uygulamanız çalışırken bunu yapmak için daha basit, standartlaştırılmış bir yol kullanır. Ayrıca, güncellemenin zamanlaması daha esnektir, kullanıcı güncellemeyi kabul ettiği sürece arka planda indirilmeye başlayacaktır. İndirme işlemi tamamlandıktan sonra, kullanıcıdan uygulamayı yeniden başlatmasını isteyebilir veya arka plana girdiğinde uygulamayı güncelleyebilirsiniz.
Google Chrome şu anda uygulama içi güncelleme API'sını test ediyor ve yakında daha fazla geliştiricinin kullanımına sunacağız. Herhangi bir uygulamayla çalışır, böylece bir uygulama paketine geçerken kullanabilirsiniz. İyi bir güncelleme oranı elde etmek istiyorsanız en iyisi güncellemenin faydalarını kullanıcılarınıza net bir şekilde açıklamaktır. Mümkünse, uygulamanızı ilk açtıklarında sormak yerine yapmak istediklerini bitirdikten sonra güncelleme yapmalarına izin verin Güncellenmeleri gerekiyor mu? Birisi uygulamanızı ilk kez açtığında, net bir kullanım amacına sahip olmalıdır. Şu anda uygulamanın güncellenmesini beklemek istemiyorlar.
Daha küçük, daha iyi, daha hızlı ve daha canlı
Tüm bu çabalar, daha küçük, daha verimli uygulamalar ve daha hızlı, daha basitleştirilmiş sürümler aracılığıyla daha fazla yükleme ve daha düşük bir kaldırma oranı elde etmenize yardımcı olmak için tasarlanmıştır. Android App Bundle, dönüşüm oranlarını artırmak için dinamik özelliklere ve anında deneme deneyimine sahip yüksek düzeyde yapılandırılabilir uygulamaları da destekler. Son olarak, kullanıcıların uygulamalarını güncel tutmak her zamankinden daha kolay.
Bunun uygulama ekolojimizin daha canlı bir yönde gelişmesini sağlayacağına inanıyoruz. Android'in önümüzdeki on yılını dört gözle bekleyelim! Herkese sorunsuz ve başarılı bir gelişim yolculuğu diliyorum!
----- Röportajı takip etmek ve dinlemeye devam etmek için yukarıya tıklayın
Android gelişmiş video için özel mesaj "666" (Advanced Flutter, plug-in, hot fix teknolojisi)