documentazione Android (http://developer.android.com/reference/android/util/Log.html) dice:i registri di debug di Android sono davvero ridotti al runtime?
dettagliato dovrebbe mai essere compilato in un'applicazione, tranne durante lo sviluppo. I log di debug sono compilati ma eliminati in fase di esecuzione. I registri di errori, avvertenze e informazioni sono sempre conservati
Ho appena fatto un test. Nella mia attività ho scritto:
private static String test(String what) {
Log.e("test", "I am called with argument: " + what);
return what;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.v("test", "log level: " + test("v"));
Log.d("test", "log level: " + test("d"));
Log.i("test", "log level: " + test("i"));
Log.w("test", "log level: " + test("w"));
Log.e("test", "log level: " + test("e"));
}
Ho esportato il mio progetto come file apk, quindi ho installato questo apk sul mio telefono. Ho eseguito questa applicazione sul mio telefono, poi ho guardato i registri. Lì ho visto che il test funzionale è stato chiamato tutte e cinque le volte e tutte e cinque le chiamate alle funzioni Log.something hanno comportato la scrittura del testo nei registri.
Quindi le chiamate Log.d sono davvero ridotte al runtime?
In breve la risposta sembra essere no. L'argomento è ampiamente discusso qui http://stackoverflow.com/questions/2446248/remove-all-debug-logging-calls-before-publishing-are-there-tools-to-do-this/2466662#2466662 – gpasci
Quindi c'è un bug nella documentazione? – user983447