Ecco cosa so, se ci sono errori, fammi sapere.Android Wear: c'è qualche motivo per usare un oggetto Time piuttosto che un oggetto Calendar?
Esempi di quadranti di orologio, come lo analog watch face, nell'SDK utilizzano un oggetto Ora deprecato per la gestione del tempo.
Secondo la documentazione Time è stato dichiarato obsoleto nel livello 22 (Android 5.1). Ora ovviamente ha ancora molta vita, ma nell'interesse del futuro codice di verifica ho guardato il passaggio all'oggetto Calendario.
Credo che sia il tempo che il calendario siano involucri di fantasia per una variabile lunga. Ho scritto questo benchmark per testare la loro velocità.
long timeStart = 0;
long timeEndcalendarStart = 0;
long timeDifference = 0;
long calendarEnd = 0;
long calendarDifference = 0;
for (int index = 0; index < 30000; index++) {
timeStart = System.currentTimeMillis();
Time testTime = new Time();
testTime.setToNow();
long mills = testTime.toMillis(false);
float seconds = testTime.second;
float minutes = testTime.minute;
float hours = testTime.hour;
timeEndcalendarStart = System.currentTimeMillis();
Calendar testCalendar = Calendar.getInstance();
long cmills = testCalendar.getTimeInMillis();
float cseconds = testCalendar.get(Calendar.SECOND);
float cminutes = testCalendar.get(Calendar.MINUTE);
float chours = testCalendar.get(Calendar.HOUR);
calendarEnd = System.currentTimeMillis();
timeDifference += timeEndcalendarStart - timeStart;
calendarDifference += calendarEnd - timeEndcalendarStart;
}
I risultati dei benchmark mostrano calendario come 2 volte più veloce in esecuzione su una Moto 360.
Switching un quadrante di prova per calendario mostra alcun ricordo di essere trapelato nel debugger.
Quindi la mia domanda è doppia. C'è un problema con il mio benchmark, o è davvero più veloce? Se è così, qual è il vantaggio del Tempo, tale che l'hanno usato nei loro esempi?
La mia ipotesi è che l'hanno appena usata per rendere più comprensibili i loro esempi. Il tempo è un nome più intuitivo, ma mi piacerebbe sapere se c'è una ragione tecnica.
Gli esempi sono stati sviluppati sulla piattaforma 21 ... e sono stati copiati sulla piattaforma 22. Questo è l'unico motivo. Grazie – shivamDev