SORU
3 ŞUBAT 2013, Pazar


Uygulamanın ana iş parçacığı üzerinde çok fazla iş yapıyor olabilir

Android SDK/API çevre için yeni duyuyorum. Çizim/grafik çizmek için çalışıyorum. Hiçbir düzen ekranı gösteren örnek kodları farklı türde çalışan emülatör 3 farklı ücretsiz kütüphaneleri kullanarak çalıştım. Bu logcat aşağıdaki iletiyi tekrar ediyor:

 W/Trace(1378): Unexpected value from nativeGetEnabledTags: 0
 I/Choreographer(1378): Skipped 55 frames!  The application may be doing too much work on its main thread. 

Sorun devam etmedi ve grafik örnek bir kod lisanslı bir kütüphane bir kopyasının ilgili çalıştırdığımda çalıştı.

Ben son derece herhangi bir yardım için teşekkür ederiz.

CEVAP
15 Ocak 2014, ÇARŞAMBA


alınan :Android UI : Fixing skipped frames

Android Uygulama geliştirmeye başladı herkes bu mesajı görür logcat“Koreograf(abc): xx kareler! Atlanır Uygulama olabilir çok temel bir konu üzerinde çalışmak.”Aslında ne demek neden endişelenmeli size ve bunu çözmek için nasıl.

Bu demektir kodunuzu uzun süreç ve çerçeveler alıyor nedir bu nedenle, belki biraz ağır çünkü geçiliyor uygulamanız kalbinde yaptığını işleme veya DB erişim veya iplik bir süre durmasına neden olan başka bir şey. Burada daha ayrıntılı bir açıklama:

Apps vsync kendilerini bağlamak için izin verir koreograf ve düzgün şeyler performansını artırmak için zaman.

Android görünümü animasyonlar dahili Koreograf aynı için kullanır amaç: düzgün animasyonlar zaman ve muhtemelen geliştirmek performans.

Koreograf her vsync olayları anlattı olduğundan, eğer söyleyebilirim bu Runnables Koreograf ile birlikte geçti.post* API hayrı bir kare içinde Kare atlanması neden bitirmek.

Benim anlamakta Koreograf tek Kare atlama algılayabilir. Neden bu olur söylemenin bir yolu vardır.

“Uygulama ana çok iş yapıyor olabilir Mesaj iş parçacığı” yanıltıcı olabilir.

kaynak : Meaning of Choreographer messages in Logcat

Neden endişelenmelisiniz

Bu mesaj android açılır zaman emülatör ve kare atlanır sayısı oldukça küçüktür (&; 100 lt) olur emülatör yavaş – güvenli bir bahis alabilir hemen hemen her zaman. Eğer kare sayısı atlandı ama büyük ve 300 sırası ile ciddi bir sorun olabilir kodunuzu. Android cihazlar donanım geniş bir dizi gelir ios aksine ve windows cihazlar. RAM ve CPU değişir ve eğer isterseniz tüm cihazlarda makul performans ve kullanıcı deneyimi sonra bu şeyi düzeltmek gerekir. Kare UI atlanır yavaş ve cazip bir kullanıcı deneyimi olan kart her ikisi de,.

Nasıl düzeltebilirim

Bu olduğu tespit düğümler gerektirir veya tamir olabilir işleme uzun süre. En iyi yolu yapmaktır ne kadar küçük ya da büyük bir iş parçacığı tüm işlem olursa olsun ayrı ana UI iş parçacığı. Bu verilere SQLite Veritabanı veya form ol bazı hardcore matematik yapmak ya da sadece bir dizi sıralama – bunu farklı iplik

Burada bir sorun var şimdi, yapmak için yeni bir iş Parçacığı oluşturur sizin uygulamayı çalıştırmak, kaza ne zaman olacak bu işlemleri ve diyerek bir görünüm hiyerarşi oluşturan özgün iş parçacığı “Sadece onun görüşlerini dokunma“. Android UI olabilir bu gerçeği bilmek gerekir ana iş parçacığı veya UI iş parçacığı tarafından değiştirildi. Başka bir iş parçacığı bunu yapmak için çalışır, başarısız olur ve bu hata ile çöküyor. Ne yapmanız gereken runOnUiThread içindeki yeni bir Çalıştırılabilir oluşturun. bu tüm işlemleri UI içeren yapmanız gereken çalıştırılabilir. Bul örnek 3**.

İpucumuz var ve ana konu,verileri işlemek için Çalıştırılabilir, başka ne var? Uzun zamandır yapmayı sağlayan android AsyncTask var UI iş parçacığı üzerinde işler. Bu zaman çok yararlıdır veri güdümlü uygulamalar veya web apı tahrik veya kullanmak karmaşık UI vardır bu Tuval kullanılarak inşa gibi. AsyncTask gücü olmasıdır. arka planda bir şeyler yapıyor ve bir kez yapılır, yapmayı sağlar işlem, sadece UI olmadan gerekli işlemleri yapabilirsiniz geri kalmış herhangi bir etkiye neden oluyor. Bu AsyncTask mümkündür çünkü Etkinlik UI iş parçacığı için yaptığınız tüm işlemlerden kendisi türetir UI yapılır üzerinde ana UI farklı bir konu iş parçacığı, kullanıcı etkileşimine engel yoktur.

Bu pürüzsüz android yapmak için bilmeniz gerekenler. uygulamaları ve her acemi onun bu mesajı alır bildiğim kadarıyla konsol.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • apenney888

    apenney888

    27 EKİM 2010
  • Matt Harding

    Matt Harding

    23 Mayıs 2006
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008