Pull to refresh
5
0
Александр Миронов @4ex

User

Send message
И вдогонку сегодняшнее обновление. Автор утверждает, что запустил свою игру на Windows Phone 8.1
Был небольшой прогресс в последнее время: http://www.badlogicgames.com/forum/viewtopic.php?f=17&t=14766&start=10#p72332. Но пока сообществу это не особенно интересно.
Я бы еще добавил, что автор данной книги является также автором вышеупомянутого фреймворка libgdx. Упрощенную версию этого фреймворка он в ней и описывает.
Я считаю хорошей практикой вырезать логи при релизе — нечего пользователям знать о внутренней кухне моего приложения. А если давать тегу имя по моему шаблону, то я получаю плюшку из коробки: тег всегда будет соответствовать правильному классу — и при переименовании класса, и при создании нового класса «копи-пастом» (по крайней мере в IDEA). Что же до расшифровки логов — если я вдруг не сохранил файлы для расшифровки, то ведь всегда есть система контроля версий и теги к ней: откатываемся до нужной ревизии, заново генерируем подписанный apk-файл и файл соответствия (mapping) для логов, и дальше уже работаем с ним.
Давать одно имя экземплярам разных классов — это какой-то моветон. Обычно просто проверка идет на null, если макеты для разных конфигураций различаются, как, например, в документации: http://developer.android.com/training/multiscreen/adaptui.html.
Полгода как переехал на IDEA, но Eclipse еще не удалил. Порылся в настройках нашел несколько однострочников.

1. Создание тега для логов:
private static final String TAG = ${enclosing_type}.class.getSimpleName();

2. Запись в лог с именем метода для удобства (у меня было 4 версии этого шаблона для разных уровней логирования):
${:import(android.util.Log)}
Log.d(TAG, "${enclosing_method}: ${cursor}");

3. Поиск виджета:
${type} ${new_name} = (${type}) findViewById(R.id.${cursor});
Есть библиотека ListViewAnimations для анимации элементов списка в Андроиде, ей как раз очень не хватает отключения анимации при быстрой прокрутке, нужно автору предложить добавить такую возможность. А вообще, хотел предложить заменить System.currentTimeMillis() на SystemClock.elapsedRealtime()документации разница подробно писана). Конечно ошибка связанная со сменой часового пояса или переходом на летнее/зимнее время очень маловероятна, но почему бы не исправить, раз всего одну строчку нужно поменять. За статью спасибо, да и как-то именно этот ролик с Google IO я проглядел, будем смотреть.
Там должен быть вызов getApplicationVersionCode, который очень похож на предложенную вами реализацию. Еще одно моё упущение.
Да, вы верно подметили, спасибо. Исправил.
А можно поинтересоваться, что именно вы этим примером иллюстрируете? Меня больше всего смущает то, что lock у потоков не общий, т.е. хоть j и будет в итоге равно сто миллионов (или сто миллионов и один при некоторых таймингах), но общее количество итараций все равно будет больше ста миллионов.
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH)

Здесь, по-моему, должно быть «больше или равно». Метод ведь доступен с 14-й версии API.

А за статью спасибо, приятно что и на русском толковые статьи по Андроиду есть.
Так и это не панацея: что, если у вас два разных макета для различной ориентации экрана? И даже, если один, то появляется проблема с ActionBar'ом. Например, Activity была создана в ландшафтом режиме и у вас влезло 5 значков на ActionBar, а потом пользователь сменил ориентацию и у него уже портретный режим, а значков-то по прежнему 5, хотя должно быть 3, заголовок съелся. Ну, или наоборот, когда в ландшафтном режиме их становится меньше, чем должно было быть.
Можно уточнить: на странице с подробным описанием нововведений появилась запись «Support for Lint API checks». В то же время здесь говорится, что будет добавлено в 13-й версии. Чему верить?
чужеродный для BlackBerry UI и, как следствие, негативный user experience (приложение и особенно навигация в нем выглядят хуже по сравнению с нативными приложениями BlackBerry).

А то что версия для Андроида у вас игнорирует рекомендации к UI от Google вас не смущает? У вас же от интерфейса так и прёт iOS-ом: переключатели, скругленные границы таблицы, иконка в ActionBar'е, стрелочки «вправо».
Сейчас в сумме 53,7%, а через год будет 20-30%, по-моему такая доля еще стоит поддержки.
За все не скажу, но Android Support Library и ActionBarSherlock точно можно.
Вот информация по распределению версий годичной давности: http://phandroid.com/2012/02/02/ice-cream-sandwich-now-on-1-of-android-devices-gingerbread-still-growing/, сравните с текущими данными. Доля Андроида 2.3.3 за год упала с 58,6% до 45,4%. Что-то мне подсказывает, что еще минимум года два (а то и больше) придется эту версию поддерживать.
Очень обширный вопрос. На странице по ссылке, которую я вам привел, слева есть меню с кодовыми названиями версий Андроида, начиная с 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). Так что жить можно :)
Статистику по распределению версий можно всегда посмотреть вот здесь. Если ориентироваться на версию 2.2, то покроете больше 97% устройств.
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity