SORU
15 Mart 2010, PAZARTESİ


Yayınlamadan önce tüm hata ayıklama günlüğü aramaları kaldırın: bunu yapmak için araçlar var mı?

Google'a göre, öyle olmalı "kaynak kod yöntemleri Oturum açmak için herhangi bir çağrı devre dışı bırakın" benim Android yayınlamadan önce app. publication checklist: Bölüm 5 özü

Ve serbest bırakılması için başvurunuzu oluşturmak için önce hata ayıklama seçeneğini devre dışı bırakın günlüğü devre dışı olduğundan emin olun. Kaynak dosyalarında yöntemleri Günlük çağrıları kaldırarak günlüğü devre dışı bırakabilirsiniz.

Açık kaynak projem büyük ve bu işi bırakıyorum her seferinde el ile yapmak için bir ağrı. Ayrıca, Günlük bir çizgi kaldırma, örneğin: potansiyel olarak zor

if(condition)
  Log.d(LOG_TAG, "Something");
data.load();
data.show();

Ben Günlük satır açıklama, o zaman bu durum, bir sonraki satıra geçerlidir ve şans yük() çağrılmaz. Bulunmamalıdır karar verebilirim böyle nadir durumlarda yeterli mi?

Bu birçok kişi düzenli olarak bunu yapmak sanırım çok resmi kontrol listesi.
Tüm satırları kaldırır bir araç var mı?
Tercihen yukarıdaki gibi bir kod tarafından kandırdın değil.

CEVAP
17 Mart 2010, ÇARŞAMBA


Ben bulmak çok daha kolay bir çözüm olduğunu unutmayın tüm if kontroller her yerinden ve sadece kullanın ProGuard kaldýrmak herhangi Log.d() Log.v() yöntemini çağırdığında diyoruz bizim Karınca release hedef.

Bu şekilde, biz her zaman normal çıkış oluşturur hata ayıklama bilgisi olan ve serbest bırakılması için değişiklikler oluşturur herhangi bir kod yapmak zorunda değilsiniz. Marathon uygun olduğunda da başka istenmeyen ifadeler kaldırmak için bayt kodu üzerinde birden fazla geçiş yapabilir, blok boş ve otomatik olarak kısa yöntem satır içi olabilir.

Örneğin, burada Android için çok temel Marathon bir config

-dontskipnonpubliclibraryclasses
-dontobfuscate
-forceprocessing
-optimizationpasses 5

-keep class * extends android.app.Activity
-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** v(...);
}

Bir dosyaya Kaydet, Karınca, sadece derlenmiş JAR geçen Marathon ve Android platformu KAVANOZ çağırın diye kullanıyorsun.

Ayrıca Bkz: 17* *Marathon El Kitabı.


Güncelleme (4.5 yıl sonra):Günümüzde Android için Timber günlük kullandım.

Sadece biraz daha nazik daha varsayılan Log uygulama günlüğü etiketi otomatik olarak ayarlanır ve kolay günlük biçimlendirilmiş dizeleri ve özel durumlar — ama ayrıca belirtmek farklı günlük davranışları çalışma zamanı.

Bu örnekte, açıklamaları günlüğü yalnızca hata ayıklama yapılarında logcat için benim app yazılır:

KeresteApplication onCreate() benim yöntem kurmak

if (BuildConfig.DEBUG) {
  Timber.plant(new Timber.DebugTree());
}

O zaman benim kod başka bir yerde kolayca giriş yapabilirsiniz:

Timber.d("Downloading URL: %s", url);
try {
  // ...
} catch (IOException ioe) {
  Timber.e(ioe, "Bad things happened!");
}

Tüm günlük ifadeleri gelişimi sırasında logcat gönderilir ve, üretim, hata ayıklama ifadeleri kaydedilir daha gelişmiş bir örnek için Timber sample app bakın, ama hataları sessizce bildirdi Crashlytics için.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FD2097

    FD2097

    21 HAZİRAN 2009
  • FPSRussia

    FPSRussia

    19 NİSAN 2010
  • GWTLecturer

    GWTLecturer

    18 EKİM 2012