2010-08-16 5 views
16

Ich habe eine neue Android-App, die ich vor ein paar Tagen auf den Markt gebracht habe. Ich habe einige Tests mit meinem Motorraddroiden gemacht, bevor ich ihn veröffentlicht habe und versucht habe, sehr gründlich zu sein. Nun, ich habe ein paar negative Kommentare dazu bekommen, wie es auf jemandes EVO 2.2 oder X10 nicht funktioniert hat (wusste nicht einmal, was das zuerst war). Nun, es läuft perfekt auf meinem Handy.Testen für die Massen mit nur einem Telefon und Emulator

Irgendwelche Ratschläge, wie ich eine App reparieren oder unterstützen soll, die auf 100 verschiedenen Telefonen läuft?

Wie nähern sich andere Entwickler diesem? (ohne tatsächlich jedes Handy dort zu kaufen). Danke.

+0

Sehr gute Frage . Ich frage mich das Gleiche. –

+0

Ich schätze alle Antworten. verstehe ich die Hardware-Unterschiede mit Bildschirmen, Kameras, Audio usw. Meine App nutzt nichts von dem Zeug, nur: android.permission.ACCESS_WIFI_STATE android.permission.ACCESS_NETWORK_STATE android.permission.INTERNET android.permission.CHANGE_WIFI_STATE Es muss einen besseren Weg geben, als nur Dinge zu erraten und negative Kommentare und 1 Sterne die ganze Zeit zu nehmen. – Nick

+0

Welche spezifischen Probleme hatten Sie? –

Antwort

7

Ich glaube nicht, dass es ein Wundermittel gibt, um diese Art von Problemen zu vermeiden. Ein paar Richtlinien/Vorschläge:

Vermeiden von Problemen:

  • Verwenden Sie nur öffentlich dokumentierte APIs. Wenn Sie auf die Implementierung Details angewiesen sind, sind die Dinge wahrscheinlich auf verschiedenen Telefonen fehlschlagen.
  • Befolgen Sie die Richtlinien für supporting multiple screens, und stellen Sie sicher, dass jede der Kombinationen von Bildschirmgrößen und -dichten im Emulator getestet wird.
  • Wenn Sie viele OpenGL verwenden, erforschen Sie, welche Erweiterungen von welchen Telefonen unterstützt werden. Hier besteht die größte Anzahl der Probleme.
  • Rekrutieren Sie Ihre Freunde zu Betatestern. Du kannst ihnen eine apk schicken, um sie zu laden, bevor sie auf dem Markt veröffentlicht wird.

Fehlerdiagnose:

  • Beginnend mit Android 2.2, können Sie Fehlermeldungen von den Benutzern zurück zu bekommen, die schnell die Diagnose von Problemen helfen sollte: Android Application Error Reports
  • Sie auch etwas umsetzen können wie remote stack trace um in der Zwischenzeit Fehlermeldungen zurück zu bekommen.
2

Eine Option, die ich in Betracht ziehe, ist eine Art öffentlicher Beta. Stellen Sie eine kostenlose Version auf dem Markt bereit, die eindeutig als Beta gekennzeichnet ist, mit Anweisungen zum Senden von E-Mail-Details des verwendeten Geräts und aufgetretenen Problemen. Wenn Sie beabsichtigen, die endgültige Version zu berechnen, sollten Sie die Beta-Version zeitlich begrenzt oder auf andere Weise eingeschränkt verwenden. Sie können die Beta-Version vom Markt löschen und damit jedes negative Feedback, wenn Sie die Vollversion veröffentlichen.

Eine Alternative dazu auf dem offiziellen Markt ist das Hochladen auf die pre-release area of AndAppStore.

Wie bei der X10, erscheint dieses Handy in meiner begrenzten Erfahrung ziemlich häufig, wenn es um Beschwerden von Apps geht, die nicht funktionieren, besonders wenn es sich um Ton handelt. Sony-Ericsson hat an X10 add-on for the Android SDK freigegeben, damit Sie Ihren Emulator wie ein X10 aussehen lassen können, obwohl ich nicht sicher bin, wie viel Unterschied es zu seinem Verhalten macht.

2

Oder verwenden Sie eine Test-Community, damit Nutzer mit verschiedenen Geräten tatsächlich Ihre App testen und Feedback geben können.

0

Die Protokollierung aller Benutzeraktivitäten ist ein guter Weg, um zu bewerten, wie die App auf verschiedenen Geräten funktioniert.

Google Firebase ist Googles neueste (2016) Möglichkeit, Sie mit Absturz/Fehlerdaten auf Ihrem Telefon zu versorgen. Fügen Sie es in Ihrem build.gradle Datei:

compile 'com.google.firebase:firebase-crash:9.0.0' 

tödliche Unfälle automatisch protokolliert werden ohne Benutzereingabe und Sie können auch nicht-tödliche Unfälle oder andere Ereignisse protokollieren, wie so:

try 
{ 

} 
catch(Exception ex) 
{ 
    FirebaseCrash.report(new Exception(ex.toString())); 
} 
Verwandte Themen