Strategien zur Behebung eines Fehlers, der nur auf einem bestimmten Gerät auftritt

12

Als Android-Entwickler ist der Zielmarkt, für den ich Apps erstelle, sehr fragmentiert. Ich kann zwar bestimmte Anforderungen festlegen - z. B., dass meine App nur die Android-Version xx oder höher unterstützt. Manchmal können jedoch Fehler auftreten, die nur bei einem bestimmten Telefonmodell auftreten.

Gibt es Strategien, um gerätespezifische Fehler zu behandeln, ohne das betreffende Telefon zu kaufen? Wir führen eine Reihe von Telefonen zum Testen, können es uns jedoch nicht leisten, ein neues Telefon zu kaufen, wenn 2 oder 3 Benutzer einen Fehler melden, der nur für ihr Telefonmodell auftritt.

Ich bin mir sicher, dass andere Android-Entwickler in der Vergangenheit auf ähnliche Probleme gestoßen sind, und ich bin gespannt, welche kostengünstigen Strategien verfügbar sind, um gerätespezifische Fehler zu beseitigen.

Aktualisieren Sie, um einige Details hinzuzufügen:

  • Ich verwende Bugsense , um Fehlerberichte zu erfassen. Wenn also Ausnahmen ausgelöst werden, kenne ich das Modell des Telefons, den Stack-Trace, die Häufigkeit , mit der es meinen Benutzern passiert ist, und einige andere Details.
  • Die Benutzer befinden sich möglicherweise in verschiedenen Ländern, sodass ich nicht davon ausgehen kann, dass ich ihr Telefon jemals ausleihen kann.

Stellen Sie sich ein Szenario wie dieses vor: 100 Benutzer haben die App installiert, aber drei Personen haben sich darüber beschwert, dass eine Schaltfläche beim Drücken nicht richtig funktioniert. Keines der Handymodelle, die ich zum Testen habe, hat das Problem erfahren. Es scheint keinen Emulator für das Problemtelefonmodell zu geben.

StackExchange Was zum Teufel
quelle
2
Unser lokaler Inkubator hat in Zusammenarbeit mit einem lokalen Mobilfunkunternehmen eine Mobilgerätebibliothek erstellt , um genau dieses Problem zu lösen. Möglicherweise können Sie in Ihrer Nähe etwas Ähnliches finden (oder es einigen geeigneten Personen vorschlagen).
Hannele
Sie sind für Ihre Frage eingetreten und haben darum gebeten, sie wieder zu öffnen. Bitte stellen Sie sicher, dass Sie über die Auswahl einer Antwort nachdenken.
JeffO
als referenz: metadiskussion zu dieser
frage

Antworten:

10

Vor Jahren hatte ich das gleiche Problem bei der Entwicklung von Software für Palm-Geräte. Es gibt ein paar offensichtliche Strategien:

  • Unterstützung der Benutzer beim Testen : Lassen Sie ein Beta-Testprogramm erstellen, Ihre App über Fehler informieren und Fehler auf gute Weise melden.
  • Verwenden gerätespezifischer Emulatoren

Beide sind jedoch recht einschränkend. Es gibt keinen todsicheren Ersatz für das tatsächliche Gerät.

Eine interessante Sache, auf die ich gestoßen bin , ist AppThwack , ein Unternehmen, mit dem Sie Hunderte von echten Android-Geräten aus der Ferne testen können. Ich habe keine persönlichen Erfahrungen damit, aber es sieht vielversprechend aus (es ist auch ein starkes Indiz dafür, dass es keine einfache, billige Antwort auf Ihr Problem gibt).


quelle
1
+1 für AppThwack. Sie haben jede Menge Geräte und Sie können Ihre Tests auf bestimmte Gerätepools richten. Sie können die Instrumentierung anweisen, Screenshots zu machen, und Sie erhalten Absturzprotokolle für jedes Gerät. Es ist ein ziemlich guter Ersatz dafür, nicht jedes bekannte Gerät zur Hand zu haben (=
David Cowden
+1 für "bestes Testprogramm", ich hatte eines für meine Batterie-Tracking-Android-App. Als ich es an einen Benutzer schickte, der bizarre Ergebnisse erzielte und die Debug-Ausgabe erhielt, war es ein extremer WTF-Moment: Er hatte sein Telefon irgendwie so kaputt gemacht, dass Android selbst in einer Minute 60% Akku meldete, in der nächsten 40% , 80% am nächsten, und es sprang einfach weiter herum. An diesem Punkt in der App können sie nichts tun, um das Problem zu beheben. Sie mussten ihr Telefon reparieren.
Izkata
-1

Leider gibt es keine einfache Antwort auf dieses Problem.

@ dan1111 Antwort verfeinern Mit Benutzern beim Testen für Android helfen

  • füge in deiner android-app viele log-anweisungen hinzu, die wichtige kontextinformationen à la protokollieren
    • Öffnen Sie jetzt die Datenbank "/data/data/my.namespace.com/databases/myDatabase.db" oder
    • Rufen Sie jetzt den Webservice "my.server.com/loadingOrder(id=22)" an.
  • Bitten Sie den Benutzer, alogcat auf dem Gerät zu installieren , das das lokale Debug-Protokoll lesen kann, und weisen Sie ihn an, Filter festzulegen , um die Ursache des Problems zu ermitteln und das Protokoll an Sie zu senden.
k3b
quelle
Was nützt es, Alogcat zu installieren, während OP sagt, dass es bereits so etwas gibt: "Verwenden Sie Bugsense, um Fehlerberichte zu erfassen. Wenn also Ausnahmen geworfen werden, werde ich das Modell des Telefons, die Stapelverfolgung und die Häufigkeit kennen ist meinen Usern passiert, und ein paar andere Details ... "
Gnat