Android - Sind LogCat-Anrufe für Endbenutzer sichtbar, wenn sich das Telefon im Debug-Modus befindet?

8

Ich habe Log.whatever () verwendet, um verschiedene Informationen zu protokollieren, während ich meine Android-App entwickelt habe. Während ich meine App auf dem Android Marketplace veröffentlichen möchte, versuche ich herauszufinden, was ich entfernen muss.

Laut dem Entwicklerhandbuch für Android-Entwickler empfehlen sie vor der Veröffentlichung:

%Vor%

Wie deaktiviert die Protokollmethoden? Offensichtlich konnte ich alle durchgehen und sie löschen (was ein bisschen Schmerz ist), aber gibt es eine andere Möglichkeit, Log-Anrufe zu deaktivieren, von denen ich nichts weiß?

Welche Gefahr gibt es auch, Log-Aufrufe in einer veröffentlichten Anwendung zu haben? Kann irgendjemand Eclipse installieren, in sein Telefon pluggen und den Debug-Modus aktivieren und alle LogCat Informationen sehen, die ich während meiner Entwicklung sehe?

Auch der Dev Guide schlägt vor:

%Vor%

Ich war mir dieser Flagge bis jetzt nicht bewusst. Was genau macht es? Ich habe bis jetzt meine App gut entwickelt und debuggen lassen, und diese Flagge wird in meinem Manifest nicht auf wahr oder falsch gesetzt.

    
Jake Wilson 04.10.2011, 20:45
quelle

6 Antworten

8

Ja, jeder kann das Android SDK (mit oder ohne Eclipse) installieren, um alle Protokollnachrichten auf Ihrem Gerät anzuzeigen.

Ich empfehle nicht, Ihren Protokollierungscode vollständig zu entfernen, sondern ihn stattdessen wie folgt zu umbrechen: if (DEBUG) Log.d(...) , wobei DEBUG ein statischer boolescher Wert ist, den Sie an einer geeigneten Stelle definieren. Ich bevorzuge es, eine Dienstprogrammklasse zu erstellen, damit alle Protokollaufrufe über verschiedene Klassen gleichzeitig aktiviert / deaktiviert werden können.

    
mah 04.10.2011, 20:49
quelle
5

Am einfachsten wäre es, eine benutzerdefinierte Klasse namens MyLog zu definieren, die nun alle Aufrufe von Log.d () auf MyLog.d () ersetzt. Jetzt können Sie innerhalb Ihrer Klasse ein Flag haben, das Protokolle aktivieren oder deaktivieren kann. hoffe das hilft.

    
CommonMan 04.10.2011 20:53
quelle
1

Eine gute Vorgehensweise besteht darin, etwas wie if (DEBUG) Log.whatever zu verwenden und dann einfach DEBUG false zu machen.

Es besteht keine wirkliche Gefahr, außer dass Sie eine zugrunde liegende Implementierung offenlegen können, die in Ihrer App Pannen und hackbare Punkte aufdeckt. Das eigentliche Problem ist die Leistungseinbuße, die Sie durch zu viel Protokollierung bekommen.

Wie für android:debuggable="true" suchen Sie in hier nach

Schließlich, ja, Logcat Logs sind global und können von jedem gesehen werden, der das Android SDK verwendet.

    
Gallal 04.10.2011 20:53
quelle
1

Ja Protokolle können von jedem gesehen werden. Nicht nur, dass Apps Protokolle programmgesteuert sammeln können: Ссылка

Stellen Sie also sicher, dass Sie keine sensiblen Daten preisgeben, da viele Apps Protokolle sammeln - meins im Falle von nicht behandelten Ausnahmen / Abstürzen.

    
Peter Knego 04.10.2011 20:56
quelle
0

Ja, ganz sicher. Jeder kann sie sehen.

Wenn Sie das nicht möchten, löschen Sie sie aus Ihrem Code. Es ist jedoch ganz normal. Ich sehe viele Apps, die Protokolle verwenden, und die Wahrscheinlichkeit ist groß, dass fast keiner Ihrer Benutzer das zur Überprüfung Ihrer Protokolle verwendet.

    
Michell Bak 04.10.2011 20:48
quelle
0

Ich würde empfehlen, Ihre Log-Anweisungen nicht zu verpacken. Abhängig von der Größe Ihrer Anwendung, die eine Weile dauern könnte, wird wahrscheinlich zu einem guten Stück zusätzlichen Code führen und ist nur ein Streit IMHO.

Stattdessen habe ich festgestellt, dass Proguard beim Exportieren einer App automatisch Ihren Code optimiert und Log-Anweisungen entfernt Freigabe, viel einfacher zu sein. Es wird auch bestimmte Bereiche verschleiern, die alle Reverse-Engineer verlangsamen, die versuchen, Ihre App zu zerstören.

Wenn Sie sich für Proguard entscheiden, können Sie in Ihrer proguard-project.txt-Datei Folgendes einfügen, um Protokollanweisungen zu entfernen:

%Vor%     
skyjacks 31.07.2015 10:42
quelle

Tags und Links