Я бы еще добавил, что автор данной книги является также автором вышеупомянутого фреймворка libgdx. Упрощенную версию этого фреймворка он в ней и описывает.
Я считаю хорошей практикой вырезать логи при релизе — нечего пользователям знать о внутренней кухне моего приложения. А если давать тегу имя по моему шаблону, то я получаю плюшку из коробки: тег всегда будет соответствовать правильному классу — и при переименовании класса, и при создании нового класса «копи-пастом» (по крайней мере в IDEA). Что же до расшифровки логов — если я вдруг не сохранил файлы для расшифровки, то ведь всегда есть система контроля версий и теги к ней: откатываемся до нужной ревизии, заново генерируем подписанный apk-файл и файл соответствия (mapping) для логов, и дальше уже работаем с ним.
Есть библиотека ListViewAnimations для анимации элементов списка в Андроиде, ей как раз очень не хватает отключения анимации при быстрой прокрутке, нужно автору предложить добавить такую возможность. А вообще, хотел предложить заменить System.currentTimeMillis() на SystemClock.elapsedRealtime() (в документации разница подробно писана). Конечно ошибка связанная со сменой часового пояса или переходом на летнее/зимнее время очень маловероятна, но почему бы не исправить, раз всего одну строчку нужно поменять. За статью спасибо, да и как-то именно этот ролик с Google IO я проглядел, будем смотреть.
А можно поинтересоваться, что именно вы этим примером иллюстрируете? Меня больше всего смущает то, что lock у потоков не общий, т.е. хоть j и будет в итоге равно сто миллионов (или сто миллионов и один при некоторых таймингах), но общее количество итараций все равно будет больше ста миллионов.
Так и это не панацея: что, если у вас два разных макета для различной ориентации экрана? И даже, если один, то появляется проблема с ActionBar'ом. Например, Activity была создана в ландшафтом режиме и у вас влезло 5 значков на ActionBar, а потом пользователь сменил ориентацию и у него уже портретный режим, а значков-то по прежнему 5, хотя должно быть 3, заголовок съелся. Ну, или наоборот, когда в ландшафтном режиме их становится меньше, чем должно было быть.
Можно уточнить: на странице с подробным описанием нововведений появилась запись «Support for Lint API checks». В то же время здесь говорится, что будет добавлено в 13-й версии. Чему верить?
чужеродный для BlackBerry UI и, как следствие, негативный user experience (приложение и особенно навигация в нем выглядят хуже по сравнению с нативными приложениями BlackBerry).
А то что версия для Андроида у вас игнорирует рекомендации к UI от Google вас не смущает? У вас же от интерфейса так и прёт iOS-ом: переключатели, скругленные границы таблицы, иконка в ActionBar'е, стрелочки «вправо».
Очень обширный вопрос. На странице по ссылке, которую я вам привел, слева есть меню с кодовыми названиями версий Андроида, начиная с 2.3 «Gingerbread». По нажатию на название, вам покажут страничку с основными нововведениями в данной версии. Вообще, минимальная поддерживаемая версия 2.2 не значит, что вы не сможете использовать возможности из более новых версий. В Андроиде есть понятия Min SDK Version и Target SDK Version. Если интересно можете прочитать про разницу на StackOverflow: http://stackoverflow.com/questions/4568267/android-min-sdk-version-vs-target-sdk-version. А так же многие вещи были бэкпортированы из новых версий в старые или самим Гуглом (Android Support Library), или сообществом (ActionBarSherlock, NineOldAndroids, HoloEverywhere). Так что жить можно :)
1. Создание тега для логов:
2. Запись в лог с именем метода для удобства (у меня было 4 версии этого шаблона для разных уровней логирования):
3. Поиск виджета:
System.currentTimeMillis()
наSystemClock.elapsedRealtime()
(в документации разница подробно писана). Конечно ошибка связанная со сменой часового пояса или переходом на летнее/зимнее время очень маловероятна, но почему бы не исправить, раз всего одну строчку нужно поменять. За статью спасибо, да и как-то именно этот ролик с Google IO я проглядел, будем смотреть.getApplicationVersionCode
, который очень похож на предложенную вами реализацию. Еще одно моё упущение.j
и будет в итоге равно сто миллионов (или сто миллионов и один при некоторых таймингах), но общее количество итараций все равно будет больше ста миллионов.Здесь, по-моему, должно быть «больше или равно». Метод ведь доступен с 14-й версии API.
А за статью спасибо, приятно что и на русском толковые статьи по Андроиду есть.
А то что версия для Андроида у вас игнорирует рекомендации к UI от Google вас не смущает? У вас же от интерфейса так и прёт iOS-ом: переключатели, скругленные границы таблицы, иконка в ActionBar'е, стрелочки «вправо».