Come rendere l'app Android liscia
Assumendo che ti riferisci alla fluidità delle prestazioni dell'app Android. Ecco il mio pezzo di nota a cui darei un'occhiata se avessi qualche lag/ singhiozzo nelle mie app' prestazioni.
- Seguire le linee guida di Google per Android. È lì sul loro sito web.
- Seguire e controllare Youtube per tutti i loro video nella costruzione di un'app con le migliori prestazioni.
Alcuni punti fondamentali che potrei guardare nel codice, dopo aver letto le linee guida di cui sopra.
- Utilizzo le listviews? - Se sì, allora è una cattiva pratica ora (da Android L) - Le listview sono state sostituite con le viste Recycler, quindi usate queste ultime.
- Ancora una volta, uso le listview personalizzate (listview con immagini e testo)? - Se sì, allora cercate di sapere cos'è il pattern viewholder e usatelo nel vostro algoritmo in quanto la listview/recycler view ricrea ogni vista durante lo scorrimento. Quindi avere un'enorme porzione di immagini e testo senza implementare il pattern viewholder creerà sicuramente dei ritardi quando la listview viene fatta scorrere.
- Utilizzo AsyncTask ?- Se SI, allora mettete il vostro Asynctask in una classe separata e non create il vostro Asynctask all'interno della vostra classe activity, in quanto crea un riferimento implicito e porta a problemi di perdita di memoria.
- Utilizzo il metodo .get() mentre chiamo il mio Asynctask da eseguire ?- Se SI, allora questa funzione bloccherà il thread UI fino al completamento dell'esecuzione del task.
- Utilizzo così tante variabili statiche ? - Se sì, allora probabilmente questa è la causa principale delle perdite di memoria nella tua app, dato che il riferimento alle variabili statiche verrà mantenuto fino a quando l'app non verrà chiusa dall'utente.
- Utilizzo un database SQLite? - Se sì, allora ricordatevi di chiudere il cursore ogni volta che l'iterazione su di esso e/o la transazione dei dati è terminata.
- Eseguo più threads all'interno del mio codice attività ? - Se sì, allora le possibilità di perdite di memoria sono più alte, anche se i thread's sono eseguiti in modo seriale per default, potreste chiudere/interrompere un thread prima che esso completi effettivamente il suo lavoro. Pensateci e usate invece un ThreadPool Manager.
- Infine, usate lo strumento LINT (assicuratevi di controllare la casella dei problemi di performance prima di eseguire lo strumento) in Android Studio per capire dove potreste aver sbagliato e cosa potrebbe essere fatto per risolvere il problema. È possibile accedere allo strumento LINT dall'opzione analizza disponibile sulla barra dei menu.
Tutto ciò detto e fatto, si sta cercando di creare un'applicazione che funziona su milioni di dispositivi con un'enorme quantità di variazioni in ogni configurazione del dispositivo. Quindi tutti i dettagli delle linee guida di cui sopra sono solo uno STRUMENTO E NON UNA REGOLA. Some might work good and some might not, test it until you're satisfied and then launch the app.
Hope this helps you out !
Cheers
Happy coding !