Вот что я знаю, если есть какие-либо ошибки, дайте мне знать.Android Wear: Есть ли причина использовать объект Time, а не объект Calendar?
Пример таких лиц, как analog watch face, в SDK использует устаревший объект Time для управления временем.
Согласно документации Time был устарел на уровне 22 (Android 5.1). Теперь, очевидно, у него все еще много жизни, но в интересах будущего кода проверки, который я посмотрел, я посмотрел на переход к объекту «Календарь».
Я считаю, что время и календарь являются причудливыми обертками для длинной переменной. Я написал этот тест, чтобы проверить их скорость.
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;
}
Результаты тестов показывают календарь, как 2 раз быстрее запустить его на Moto 360.
Switching тестового циферблата в календарь показывает памяти не утечку в отладчике.
Так что мой вопрос в два раза. Есть ли проблема с моим эталоном, или это действительно быстрее? Если да, то в чем преимущество времени, так что они использовали его в своих примерах?
Моя гипотеза заключается в том, что они просто использовали ее, чтобы сделать их примеры более понятными. Время - более интуитивное имя, но я хотел бы знать, есть ли техническая причина.
Примеры были разработаны на платформе 21 ... и они были скопированы на платформу 22. Это единственная причина. Спасибо – shivamDev