2011-07-04 23 views
11

Yeni başlayanlar için Canlı Duvar Kağıtlarının uygulanmasını tartışan birçok makaleyi bulmak çok kolay.Android Live Wallpaper performans ve pil tasarrufu için pratikler?

Peki ya Canlı Duvar Kağıtlarının profesyonel gelişimi? iyi performans, düşük güç tüketimi (pil gücünden tasarruf etmek için) ve farklı cihazlara en iyi şekilde uyum sağlamak için doğru yolu yapılandırmak için en iyi yöntemler nelerdir?

Mümkünse, bu sorunları içeren bazı kod örnekleri harika olur.

cevap

13

Enerji tüketimi ...
1) Şimdiye kadarki en önemli şey, duvar kağıdının görünür olmadığında kendini kapatması gerektiğidir. Küp örneği bunu doğru olarak ele alır, runnable geri çağrıları onDestroy(), onSurfaceDestroyed() ve onVisibilityChanged() (görünürken == false) olarak kaldırır.
2) Bunun ötesinde, güç tüketiminin en büyük belirleyicisi kare hızınız olacaktır. 24 fps'lik bir animasyon, saniyenin ikinci el işaretini yapmak için 1 fps'de güncellenen saatten çok daha fazla meyve suyu tüketir. Bu konuda, kullanıcıyı eğitmek dışında, beklentilerin makul olması için hiçbir yolu yoktur. Bir uygulama oyunu, bir uygulama veya canlı duvar kağıdı olsun, pilinizi öldürecektir.

Performans ...
Tuvale çizim basitlik avantajına sahiptir, ancak çok sofistike bir duvar kağıdı için OpenGL kullanmanız gerekecektir. GLWallpaperService ve AndEngine var. Hisse senedi duvar kağıtları RenderScript'i kullanacak şekilde tasarlanmıştır (bu kodu Android kaynak ağacında aramak yararlı olabilir - SDK'daki küp örneğinden çok daha karmaşıktır). Ve duvar kağıdı işlemek için libGDX genişletme hakkında biraz konuşma yapıldı.

En İyi Uyum ...
Eh, tıpkı Android'in geri kalanı gibi: resminizi ölçeklenebilir oranlarda tasarlamanız, aygıtı sorgulamanız ve buna göre ayarlamanız gerekiyor. Basit bir duvar kağıdında, genellikle çiziminizi width ve height olarak parametreler olarak verilen onSurfaceChanged() içinde ölçeklendirmek yeterlidir. Bazı durumlarda, tam DisplayMetrics'i incelemek isteyebilirsiniz.