2010-08-16 6 views
16

Ho una nuova app per Android che ho messo sul mercato pochi giorni fa. Ho fatto un bel po 'di test sul mio moto droide prima di pubblicarlo e ho cercato di essere molto accurato. Bene, ho ricevuto alcuni commenti negativi su come non funzionasse correttamente su EVO 2.2 o X10 di qualcuno (non sapevo nemmeno cosa fosse all'inizio). Bene, funziona perfettamente sul mio telefono.Test per le masse con un solo telefono ed emulatore

Qualche consiglio su come suppongo di risolvere o supportare un'applicazione che funziona su 100 diversi telefoni?

Come si stanno avvicinando altri sviluppatori? (senza effettivamente comprare tutti i telefoni là fuori). Grazie.

+0

Molto buona domanda . Mi sto chiedendo la stessa cosa. –

+0

Apprezzo tutte le risposte. Capisco le differenze hardware con schermi, macchine fotografiche, audio, ecc La mia applicazione utilizza nessuna di queste cose, solo: android.permission.ACCESS_WIFI_STATE android.permission.ACCESS_NETWORK_STATE android.permission.INTERNET android.permission.CHANGE_WIFI_STATE Deve esserci un modo migliore che solo indovinare cose e prendere commenti negativi e 1 stelle per tutto il tempo. – Nick

+0

Quali problemi specifici hai avuto? –

risposta

7

Non penso che ci sia un proiettile d'argento per evitare questo tipo di problemi. Un paio di linee guida/suggerimenti:

Prevenzione dei problemi:

  • utilizzare le API documentate solo pubblicamente. Se si dipende dai dettagli di implementazione , è probabile che le cose non vadano a buon fine su telefoni diversi.
  • Seguire le linee guida per supporting multiple screens e accertarsi di testare ciascuna delle combinazioni di dimensioni e densità dello schermo nell'emulatore.
  • Se si utilizza un gran numero di openGL, ricercare quali estensioni sono supportate da quali telefoni. Questo è dove il maggior numero di problemi tende ad essere.
  • Recluta i tuoi amici come beta tester. Puoi inviare loro un apk da caricare prima di pubblicarli sul mercato.

Diagnostica dei problemi:

  • A partire da Android 2.2, si sarà in grado di ottenere segnalazioni di errori da parte degli utenti, che dovrebbe aiutare nella diagnosi dei problemi in modo rapido: Android Application Error Reports
  • È anche possibile implementare qualcosa di simile remote stack trace per recuperare i messaggi di errore nel frattempo.
2

Un'opzione che sto considerando è una specie di beta pubblica. Fornire una versione gratuita sul mercato, chiaramente contrassegnata come una versione beta, con le istruzioni per i dettagli e-mail del dispositivo utilizzato e gli eventuali problemi riscontrati. Se intendi addebitare la versione finale, ti consigliamo di rendere la versione beta limitata nel tempo o limitata in qualche altro modo. È possibile eliminare la versione beta dal mercato e con essa eventuali feedback negativi, quando si rilascia la versione completa.

Un'alternativa a fare questo sul mercato ufficiale è caricare su pre-release area of AndAppStore.

Per quanto riguarda l'X10, nella mia limitata esperienza questo telefono sembra affiorare abbastanza frequentemente quando si tratta di reclami di app non funzionanti, in particolare se si riferisce al suono. Sony-Ericsson ha rilasciato an X10 add-on for the Android SDK, in modo da rendere il tuo emulatore simile a un X10, anche se non sono sicuro di quale sia la differenza nel suo comportamento.

2

Oppure utilizzare una community di test, in modo che le persone con dispositivi diversi possano effettivamente testare la tua app e fornire feedback.

0

La registrazione di tutte le attività degli utenti è un buon modo per valutare come l'app viene eseguita su diversi apis/dispositivi.

Google Firebase è l'ultimo (2016) sistema di Google per fornire dati di errore/errore sul telefono. includerlo nel file build.gradle:

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

incidenti mortali vengono registrati automaticamente senza richiedere l'input dell'utente e si può anche registrare incidenti non fatali o altri eventi in questo modo:

try 
{ 

} 
catch(Exception ex) 
{ 
    FirebaseCrash.report(new Exception(ex.toString())); 
} 
Problemi correlati