Bu dokümanda, Navigation SDK'sını kullanarak oluşturduğunuz bir mobil navigasyon uygulamasında güç tüketimini nasıl optimize edebileceğinizle ilgili en iyi uygulamalar açıklanmaktadır. Aynı zamanda, bu uygulamaları kullanırken dikkate alınması gereken avantajları ve dezavantajları da açıklar. Bu dokümanda özellikle aşağıdakiler ele alınmaktadır:
- Yüksek güç tüketimine sahip kaynaklar, en yüksekten en düşüğe göre sıralanmıştır.
- Güç tüketimini optimize etmeye yönelik stratejiler. Öncelik sırasına göre, kare hızından başlayarak.
- Uygulama kullanıcılarınızı gezinirken cihaz kullanımlarını nasıl yönetecekleri konusunda eğitmek için son kullanıcı stratejileri.
Navigasyon uygulamanızı neden optimize etmelisiniz?
Uygulamanızın kullanıcıları, duruma bağlı olarak uzun süre boyunca navigasyon kılavuzlarını çalıştırabilir. Örneğin, sürücüler ve teslimat kuryeleri, aşina olmadıkları bölgelerde görevleri tamamlamak için uzun saatler çalışabilir. Bu tür durumlarda, uygulama içi adım adım yol tarifine büyük ölçüde güvenirler. Bu durum, bazı tipik sorunlara yol açar:
- Pil tüketimi ve şarj cihazlarının kullanılabilirliği. Navigasyonu yoğun olarak kullanmak, cihaz pillerinin beklenenden daha hızlı tükenmesine neden olabilir. Birçok kullanıcı, cihazını araçta şarj ederek bu sorunu çözebilir ancak iki tekerlekli araç sürücüleri bunu yapamaz.
- Isı nedeniyle cihazın kısıtlanması. Cihazlarını sürekli şarj eden kullanıcılar bile sorun yaşayabilir. Uzun süre boyunca yüksek güç tüketimi, cihazın ısınmasına neden olarak termal kısıtlamaya ve ardından performans kaybına yol açabilir.
Adım adım navigasyon uygulamaları; ekran, GPS ve baz istasyonlarıyla radyo iletişimi gibi güçlü özellikleri kullanır. Bu nedenle, mobil uygulamanızın güç kullanımını optimize etmek için en iyi uygulama budur. Ayrıca, performans ile güç tüketimini optimize etme arasında doğru dengeleri sağlayabilmek için hedef kitlenizin güç kullanım ihtiyaçlarını göz önünde bulundurmalısınız.
En çok güç tüketen nedir?
Bu bölümde, yüksek güç tüketimiyle ilişkili uygulama içi etkinlikler iki kategoriye ayrılır:
- Ekran oluşturma
- Konum güncellemeleri
Ekran oluşturma
Ekran oluşturma, genellikle mobil navigasyon uygulamalarında en yüksek güç tüketimine neden olur. Cihaz ekranda bir harita ve diğer kullanıcı arayüzü öğelerini her çizdiğinde GPU ve CPU işleme kullanılır. Benzer şekilde, kullanıcı bu ekranı uzun süre açık bıraktığında da daha fazla güç harcanır.
Özellikle uygulamayı saatlerce kesintisiz olarak kullanan sürücülerin veya yolcuların, gezinmek için görünür bir haritaya güvenmesi, uygulamanın güç tüketimini bir dereceye kadar artırabilir. Bu senaryoda, harita gerçek zamanlı olarak güncellendiği için uygulama ekranda daha yüksek bir oluşturma hızı da gerçekleştirir. Bazı durumlarda ekran, özellikle kullanıcı bir yerden başka bir yere durmadan gittiğinde neredeyse sürekli olarak yeniden çizilebilir.
Konum güncellemeleri
Ekran oluşturmaya ek olarak, diğer iki gezinme etkinliği de cihaz gücü tüketir:
- Radyo baz istasyonu ve GPS kullanımı
- TVS sağlamak veya filodaki bir aracın konumunu raporlamak gibi konum güncellemeleri ve paylaşımı.
Hem GPS hem de hücre radyosu iletişimi, güç gerektiren başlangıç işlemlerine dayanır: GPS'in uyduları bulması, hücre radyolarının da kulelerle iletişim kurması ve bağlantı kurması gerekir. Bu nedenlerden dolayı, hücresel radyolar başlangıç maliyetlerini en aza indirmek için 20-30 saniye boyunca etkin kalmasına rağmen, navigasyon sırasında temel olarak sürekli çalışırlar. Bu ayarları işletim sistemi kontrol eder. Bu ayarları uygulamanızda kolayca yapılandıramazsınız.
Konum güncellemelerinde güç kullanımı, öngörülemeyen faktörlere göre değişir. Örneğin, cihaz kule değiştirmemek için navigasyona devam etmek üzere gereken minimum sinyali kullanacağından, cihaz ile hücresel baz istasyonu arasındaki mesafe güç kullanımını belirler. Bu nedenle, bağlantısının zayıf olduğu bir alanda gezinen bir cihaz, baz istasyonuna yakın bir cihazdan daha fazla güç tüketir. Ayrıca, bazı uygulamalar konum güncellemelerini merkezi bir filo yönetim hizmetiyle paylaşabilir ve dolayısıyla bunu başarmak için bir sunucuyla iletişim kurmaları gerekir.
Uygulamanızın güç kullanımını optimize etme
Navigasyon uygulamalarında güç kullanımını optimize etmenin zorluğu, bu uygulamaların çok fazla güç tüketen kaynaklara bağımlı olmasıdır. Bu durum, ekranın kullanımını kısıtlamak gibi ödünler vermeden etkiyi azaltma seçeneklerinizi sınırlandırır. Bu bölümde, uygulamanızı optimize ederken uygulayabileceğiniz yaklaşımların en etkiliden en az etkiliye doğru sıralanmış bir listesi verilmiştir.
Kare hızını değiştirme
Ekran, gösterdiği içeriği kare hızı olarak bilinen bir sıklıkta günceller. Kare hızı genellikle saniyedeki kare sayısı (FPS) olarak ölçülür. Ekran oluşturma işlemi çok fazla CPU veya GPU kullandığından güç tüketimini azaltmak için kare hızını düşürebilirsiniz.
Kare hızının azaltılmasının olumsuz etkisi, özellikle harita sık sık güncelleniyorsa ekran oluşturmanın daha az düzgün görünmesidir. Bu durum, harita yüksek ayrıntı göstermek için yakınlaştırıldığında, kullanıcı yüksek hızda seyahat ettiğinde veya hız ya da yön büyük miktarda değiştiğinde en belirgin şekilde görülebilir.
Kare hızlarını değiştirme hakkında daha fazla bilgi edinmek için Android Media Dev Center geliştirici dokümanlarında Kare hızı bölümüne bakın.
Harita olmadan gezinme
Son kullanıcının cihaz ekran parlaklığını nasıl ayarlayacağını veya ekranını ne kadar süre açık tutacağını kontrol edemeseniz de harita olmadan navigasyon kılavuzu seçeneği sunabilirsiniz. Bu sayede son kullanıcı, güç tasarrufu yapmak için bu seçeneği belirleyebilir. Örneğin, sürücüler düzenli olarak aynı mahallede çalışıyorsa haritaya dayalı yönlendirmeye sık sık ihtiyaç duymayabilir. Harita göstermeden navigasyon, Navigasyon SDK'sında hedef ayarlayarak ve rehberliği başlatarak etkinleştirilebilir.
Gezinme kullanıcı arayüzünü gizlemek için NavigationView veya SupportNavigationFragment eklemeyin. Bunu daha önce yaptıysanız bunları ekleyen kodu kaldırın. Aşağıdaki kod, Navigasyon SDK'sı Android demo uygulamasından değiştirilmiştir ve gezinme kullanıcı arayüzünü ekleyen kodu kaldırmak için yorumların nasıl kullanıldığını gösterir:
//Obtain a reference to the NavigationFragment
//setContentView(R.layout.activity_nav_fragment);
//mNavFragment = (SupportNavigationFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_fragment);
Navigasyon SDK'sı, yoldaki yakalanan konumları, tahmini varış saatini ve kalan yolculuk mesafesini güncellemeye devam eder. Sürücü ilerledikçe uygulamanız, SDK tarafından oluşturulan tüm etkinliklere abone olmaya devam edebilir. Bu, her kullanım alanı için uygun değildir ve elbette sürücünün haritayı görmesi ve görsel yönlendirmeyi takip etmesi gereken durumlarda iyi bir tavsiye değildir. Aşağıdaki ekran görüntülerinde, etkin navigasyon sırasında harita görünümlerini değiştirmenin yan yana karşılaştırması gösterilmektedir.
Koyu harita stili kullanma
Haritayı ekranda oluşturmak için gereken enerji miktarını azaltmak üzere haritayı koyu bir tema kullanacak şekilde biçimlendirebilirsiniz.
Navigasyon SDK'sı, haritalarını Android için Google Haritalar SDK'sını kullanarak oluşturur. Bu SDK'lar, uygulamanızdaki gezinme olmayan harita görünümlerinin stil özelliklerini belirlemeye yönelik seçenekler içerir. Gezinme görünümü, koyu modu zorlamayı da destekler. Bu durum, ekran türlerindeki farklılıklar nedeniyle her cihazı aynı şekilde etkilemeyebilir ancak bazı durumlarda güç tasarrufu sağlayabilir. Yakın tarihli bir çalışmada, bazı ekranlarda koyu modun sağladığı güç tasarrufunun, ekranın başlangıçtaki parlaklığına bağlı olduğu tespit edildi. Örneğin, koyu mod, tam parlaklığa ayarlanmış ekranlarda daha fazla güç tasarrufu sağlar. Bu, parlaklığı maksimum değerin% 30-50'sine ayarlanmış ekranlara kıyasla daha fazladır. Enerji tasarrufu, son kullanıcının ekran parlaklığını nasıl ayarladığına bağlı olacağından, uygulamalarınızda koyu modu kullanırken bunu göz önünde bulundurmanız önemlidir.
Gezinme kullanıcı arayüzünü değiştirme hakkında daha fazla bilgi edinmek için Gezinme kullanıcı arayüzünü değiştirme başlıklı makaleyi inceleyin.
Haritanız için koyu stil oluşturmak istiyorsanız koyu harita stili seçiminizi temsil eden bir JSON stili içeren bir MapStyleOptions nesnesi kullanın. Eski JSON stilleri, https://mapstyle.withgoogle.com/ adresindeki eski stil düzenleyici kullanılarak oluşturulabilir.
GPS konum güncelleme sıklığını değiştirme
Cihazdan gönderilen konum güncellemelerinden kaynaklanan güç kullanımını değerlendirirken, aktarım sırasında gönderilen veri miktarından ziyade konum güncellemelerinin sıklığına odaklanın.
Bu, Navigasyon SDK'sında doğrudan kontrol edebileceğiniz bir ayar değildir. Ancak Android uygulamanız bağımsız olarak konum istiyorsa Android geliştirici dokümanlarında yer alan Pil için konumu optimize etme makalesindeki önerileri dikkate almalısınız. Aynı öneri GPS olmayan konum kaynaklarının (Hücresel ve Kablosuz) kullanımı için de geçerlidir.
Kullanıcılarınıza eğitim verin
Uygulamanızın kullanıcıları, güç tüketimini nasıl optimize edeceklerini öğrenmek isteyebilir. Uygulamalarındaki güç tüketimini azaltmalarına yardımcı olmak için kullanıcılarınıza aşağıdakileri yapmalarını önerin:
- Telefonu kilitleme
- Navigasyon uygulamasını arka plana alma
- Mümkünse navigasyonu harita olmadan kullanın.
- OLED ve AMOLED ekranlar için karanlık modu kullanarak veya uyarlanabilir parlaklığı etkinleştirerek ekran parlaklığını azaltın
- Cihazı serin tutun
- Varsa araç içi kablosuz ağa bağlanın
Güç tüketimini ölçme
Güç tüketimini ölçmek için profesyonel sınıf araçlar kullanabilirsiniz ancak bu araçları elde etmek genellikle zor veya maliyetlidir. Android Studio'daki Güç Profilleyici ve XCode Organizer'daki Pil Kullanımı bölmesi gibi uygulamalar ve IDE profilleme araçları güç tüketimini ölçer ancak arka plan işlemlerinin etkisini kaldırmak veya ölçüm için bir performans referans noktası belirlemek zor olabilir. Bazı durumlarda cihaz kısıtlamaları, gerekli verilere erişimi engelleyebilir.
Özel amaçlı güç izleme donanımı kullanabilir ve pil bağlantısı yapılandırmasını değiştirebilirsiniz. Bunu yapmanıza yardımcı olacak ticari ürün ve hizmetler de mevcuttur. Cihazlarda bu şekilde değişiklik yapmanın cihazın garantisini geçersiz kılabileceğini unutmayın.