Lo strumento Traffico di rete è stato ritirato. Se usi Android Studio 3.0 o versioni successive, devi utilizzare Network Profiler per esaminare come e quando la tua app trasferisce i dati su una rete.
Nella sezione precedente hai codificato il codice dell'app con identificatori di traffico, hai eseguito test e raccolto dati. Questa lezione ti insegna come esaminare i dati sul traffico di rete raccolti e ti indirizza verso le azioni necessarie per migliorare le prestazioni di rete della tua app e ridurre il consumo di energia.
Analizzare il traffico di rete dell'app
L'uso efficiente delle risorse di rete da parte di un'app è caratterizzato da periodi significativi in cui l'hardware di rete non è in uso. Sui dispositivi mobili, l'avvio della radio per l'invio e la ricezione di dati e l'attivazione della radio mobile per lunghi periodi di tempo comportano costi significativi. Se la tua app accede alla rete in modo efficiente, dovresti notare che le sue comunicazioni sulla rete sono strettamente raggruppate e ben distanziate di periodi in cui l'app non effettua richieste di connessione.
La Figura 1 mostra il traffico di rete non ottimale da un'app, misurato dallo strumento Traffico di rete. L'app invia frequenti richieste di rete. A questo traffico ci sono pochi periodi di riposo in cui la radio potrebbe passare a una modalità standby a basso consumo. È probabile che il comportamento di accesso alla rete di questa app mantenga la radio attiva per periodi di tempo prolungati, il che riduce l'efficienza della batteria.
La Figura 2 mostra un modello ottimale di traffico di rete. L'app invia richieste di rete a raffica, separate da lunghi periodi di assenza di traffico, durante i quali la radio può passare in standby. Questo grafico mostra la stessa quantità di lavoro eseguita nella figura 1, ma le richieste sono state spostate e raggruppate per consentire alla radio di rimanere in standby la maggior parte delle volte.
Se il traffico di rete della tua app è simile al grafico nella Figura 2, significa che sei in buona forma. Congratulazioni. Puoi migliorare l'efficienza del networking controllando le tecniche descritte in Ottimizzazione dell'utilizzo generale della rete.
Se il traffico di rete della tua app è più simile al grafico nella Figura 1, è il momento di esaminare più in dettaglio il modo in cui l'app accede alla rete. Inizia analizzando i tipi di traffico di rete generati dalla tua app.
Analizzare i tipi di traffico di rete
Quando esamini il traffico di rete generato dalla tua app, devi comprendere la sua origine per ottimizzarlo in modo appropriato. Le attività di rete frequenti generate dalla tua app potrebbero essere del tutto appropriate se rispondono alle azioni degli utenti, ma del tutto inappropriata se la tua app non è in primo piano o se il dispositivo è in tasca o in borsa. Questa sezione illustra come analizzare i tipi di traffico di rete generati dalla tua app e ti indirizza alle azioni che puoi intraprendere per migliorare le prestazioni.
Nella lezione precedente, hai codificato il codice dell'app per diversi tipi di traffico e hai utilizzato lo strumento Traffico di rete per raccogliere dati sull'app e generare un grafico delle attività, come mostrato nella Figura 3.
Lo strumento Traffico di rete colora il traffico in base ai tag creati nella lezione precedente. I colori si basano sulle costanti del tipo di traffico definite nel codice dell'app. Fai riferimento al codice dell'app per confermare quali costanti rappresentano il traffico avviato da utenti, app o server.
Le seguenti sezioni spiegano come esaminare i tipi di traffico di rete e forniscono consigli su come ottimizzare il traffico.
Analizzare il traffico di rete avviato dall'utente
L'attività di rete avviata dall'utente può essere raggruppata in modo efficiente mentre un utente esegue un'attività specifica con la tua app o può essere distribuita in modo non uniforme quando l'utente richiede le informazioni aggiuntive di cui l'app ha bisogno. L'obiettivo dell'analisi del traffico di rete avviato dall'utente è cercare schemi di utilizzo frequente della rete nel tempo e tentare di creare, o aumentare la dimensione, periodi in cui non si accede alla rete.
L'imprevedibilità delle richieste degli utenti rende difficile ottimizzare questo tipo di utilizzo della rete nella tua app. Inoltre, gli utenti si aspettano risposte rapide quando utilizzano attivamente un'app, quindi ritardare le richieste di efficienza può portare a esperienze utente scadenti. In generale, dovresti dare la priorità a una risposta rapida all'utente piuttosto che a un uso efficiente della rete mentre un utente interagisce direttamente con la tua app.
Di seguito sono riportati alcuni approcci per ottimizzare il traffico di rete avviato dall'utente:
- Precaricare i dati di rete: quando un utente esegue un'azione nella tua app, l'app anticipa quali dati potrebbero essere necessari per le successive azioni, li recupera in blocco in un'unica connessione e li conserva finché l'utente non li richiede.
- Verifica la connettività o in ascolto di modifiche: controlla la connettività di rete o ascolta le modifiche alla connettività prima di eseguire un aggiornamento.
- Riduci il numero di connessioni: utilizza API server che consentono di scaricare i dati in set.
Analizza il traffico di rete avviato dall'app
L'attività di rete avviata dal codice dell'app è in genere un'area in cui puoi avere un impatto significativo sull'uso efficiente della larghezza di banda di rete. Durante l'analisi dell'attività di rete della tua app, cerca i periodi di inattività e determina se possono essere aumentati. Se noti pattern di accesso di rete coerente dalla tua app, cerca un modo per distanziare questi accessi per consentire al segnale radio del dispositivo di passare alla modalità a basso consumo.
Di seguito sono riportati alcuni approcci per ottimizzare il traffico di rete avviato dall'app:
Richieste di rete in batch e in pianificazione: rimanda le richieste di rete della tua app in modo che possano essere elaborate insieme e in un determinato momento, il che è vantaggioso per la durata della batteria.
Consenti al sistema di verificare la connettività: evita il costo della batteria dell'esecuzione dell'app solo per verificare la presenza di una connessione di rete quando puoi lasciare che il sistema esegua il controllo mentre l'app è in sospensione.
Analizza il traffico di rete avviato dal server
Anche l'attività di rete avviata dai server che comunicano con la tua app è generalmente un'area in cui puoi avere un impatto significativo sull'uso efficiente della larghezza di banda di rete. Durante l'analisi dell'attività di rete dalle connessioni server, cerca i periodi di inattività e determina se possono essere aumentati. Se noti pattern di attività di rete coerente dai server, cerca dei modi per separare questa attività per consentire al radio del dispositivo di passare alla modalità a basso consumo.
Di seguito è riportato un approccio per ottimizzare il traffico di rete avviato dal server:
- Utilizza FCM per gli aggiornamenti del server: potresti usare il servizio Firebase Cloud Messaging per gli aggiornamenti lato server anziché eseguire il polling.