- Анекдоты об Android
- Методы лечения различных ошибок в Android Studio при разработке проекта
- Android Tips and Tricks
- Android Studio
- Не забывайте использовать шорткаты
- Используйте плагины для повышения эффективности
- Используйте Live Templates при разработке в Android Studio
- Постфиксное автодополнение кода в Android Studio
- Используйте тему Darcula в Android Studio
- Не используйте неудобный/мелкий шрифт
- Используйте codestyle
- Используйте Встроенный терминал в Android Studio
- Используйте Memory/Network/CPU мониторинги в Android Studio для профилирования вашего приложения
- Эмулятор
- Vysor
- DeskDock
- Выбирайте лучшие инструменты при написании кода
- Полезные советы по UI/UX
- Движение
- Шрифты, отступы
- Иконки
- Ripple
- Остальные пункты
- Другие ресурсы
- Cделайте закладки в своём браузере на различные популярные ресурсы
- Используйте бесплатные mock API для тестирования
Анекдоты об Android
Здесь мы просто собрали различные шутки и анекдоты об Android. Юмор — это хорошо.
Потерять Android-смартфон невозможно, ведь он всегда около розетки!
Пользователя Android легко узнать по рюкзаку с аккумулятором за спиной.
Среднестатический пользователь Android тратит по 18 минут в неделю, объясняя почему он купил не iPhone.
Только купив телефон на Android с большим сенсорным экраном, я понял, что у меня всегда жирные пальцы и грязные уши.
В Android-подразделении компании Samsung всего два дизайнера: один держит iPhone, другой обводит.
iPhone — очень скучный девайс: ничего не глючит, всё работает. Зря я продал свой Android.
Человек — это такая скотина, которая ко всему привыкает. Даже к андроиду.
Философия OS. iOS: смотрите как всё легко! Android: смотрите какой большой экран! WP7: у нас тоже есть Angry Birds! Symbian: мегапиксели!
— Почему на телефон не отвечал?
Пользователи Android всегда в хорошей форме – они делают зарядку утром, днём и вечером.
Он был из такой бедной семьи, что в Instagram ему приходилось добавлять фотографии со своего вечно разряженного Андроид-смартфона.
Батхёрт — то, что испытывают владельцы Android-смартфонов при упоминании срока работы от батареи. Происходит от battery и hurt.
Если зайти далеко-далеко в лес и приложить андроидофон к уху, то можно услышать, как он жрет батарейку.
Его называли Хатико, потому что он приходил на почту каждый день, даже когда стало понятно, что посылку с Galaxy Nexus спёрли на таможне.
Россия похожа на постапокалиптический мир. У всех планшеты, ноутбуки, смартфоны и прочие гаджеты, а вокруг говно и плохие дороги.
— Пользователи Android, какой ваш любимый аксессуар для смартфона?
Бабушки в метро как Android — быстро садятся.
Samsung Galaxy S III оказался настолько крут, что разрядился еще во время презентации.
Android — скоро все исправят; WP7 — скоро все появится; iOS — нам ничего не надо; Symbian — у нас все было.
— У меня Samsung с 4G!
У главного дизайнера Samsung в папке «Мои рисунки» не его рисунки.
Samsung развивается по спирали. Поспирали в основном у Apple.
Мы живем в эпоху умных телефонов и тупых людей.
— Корейская фирма Samsung вскоре лишится буквы «А» в своём названии, потому что эта буква уже используется в названии фирмы Apple.
До анонса iPhone 5 осталось несколько часов. Дизайнерский отдел Samsung уже точит карандаши и подготовил кальку.
Android — это ОС будущего, для которой ещё не разработали достойного процессора и аккумулятора.
Продвинутые гопники по foursquare начали определять где можно отработать iPhone.
Расизм — это когда белый айфон стоит дороже черного.
Apple: Think different! Samsung: Same shit!
Народный лайфхак. Если на стене дома написать розетка, то выстроится очередь из 30 людей с Android.
Каждый разговор по телефону на Android начинается со слов: «быстрее, у меня телефон садится».
iPhone — он как солнце, вечером садится.
С Android ты чувствуешь себя настоящим Джейсоном Стетхемом. Бегаешь по городу от розетки до розетки.
Заходит Android в бар, садится и спрашивает:
Доктор, я много жру, постоянно туплю, меня никто не хочет, все мной пользуются. Что со мной не так?
Время от времени Google вызывает из своего гарема нового производителя и заставляет делать ему Nexus.
Купил телефон на Android, гуляю с зарядкой.
Каждую секунду в мире происходит 2800 половых актов. Причем треть из них с Android!
Android — это свобода. Свобода продать Android и купить iPhone.
Китайские дети утром делают зарядку, а вечером относят её в Евросеть.
Загадка: два мальчика застряли в сугробе. У одного был 5й iPhone, а у другого Galaxy Note III. Отгадайте — кто быстрее откопается?
Старые модели сумок для ноутбуков отлично подходят к новым моделям смартфонов Samsung.
Android-смартфоны покупают только те, у кого хватает средств на оплату электричества. Шах и мат, эппловоды!
Вес и габариты iРhоnе 6 Рlus созданы с учётом того, чтобы идеально подходить для накрывания крышки вашего Доширака, пока он заваривается.
Андроид хорош тем, что когда напиваешься, не звонишь бывшим, потому что он уже разрядился.
Андроид — это когда собираешься в гости и первым делом берешь с собой зарядное устройство.
— Как назвали новую версию андроид?
Моя бабушка считает, что с самсунга на самсунг звонить дешевле, чем с самсунга на нокиа.
Узнав про популярность Айфона, Айпада и Айпода, Айгуль стала гордиться своим именем.
Сегодня подошли гопники, хотели отжать iPhone X. Сказал, что еще не купил. Сделали предзаказ.
Айфон нужно класть в правый нагрудный карман. Тогда, если вам будут стрелять в сердце, он останется целым.
Тогда можно поддержать её лайком в соцсетях. На новости сайта вы ведь уже подписались? 😉
Или закинуть денег на зарплату авторам.
Или хотя бы оставить довольный комментарий, чтобы мы знали, какие темы наиболее интересны читателям. Кроме того, нас это вдохновляет. Форма комментариев ниже.
Что с ней так? Своё негодование вы можете высказать на zelebb@gmail.com или в комментариях. Мы постараемся учесть ваше пожелание в будущем, чтобы улучшить качество материалов сайта. А сейчас проведём воспитательную работу с автором.
Если вам интересны новости мира ИТ также сильно, как нам, подписывайтесь на наш Telegram-канал. Там все материалы появляются максимально оперативно. Или, может быть, вам удобнее «Вконтакте» или Twitter? Мы есть также в Facebook.
Источник
Методы лечения различных ошибок в Android Studio при разработке проекта
Сегодня хотел бы поделиться своим анализом и способами лечением разных ошибок при разработке своего продукта в Android Studio. Лично я, не раз сталкивался с различными проблемами и ошибками при компиляции и/или тестировании мобильного приложения. Данный процесс, всегда однообразный и в 99% случаев и всегда нужно тратить n-колличество времени на его устранение. Даже, когда ты уже сталкивался с данной проблемой, ты все равно идешь в поисковик и вспоминаешь, как же решить ту или иную ситуацию.
Я для себя завел файлик, в котором отметил самые частые ошибки — потратив на это несколько часов и перечислил самые популярные ошибки (в дальнейшем планирую просто их запомнить), чтоб сократить свое время в дальнейшем.
Итак, начну по порядку с самой распространенной проблемы и дальше буду перечислять их по мере появления:
1) Если подчеркивает красным код, где используются ресурсы: R. — попробовать (но вероятно не поможет): Build -> Clean Project.
В принципе на Build -> Clean Project можно не терять времени, а лучше всего — слева переключиться на Project, открыть каталог .idea, затем каталог libraries и из него удалить все содержимое. Затем нажать кнопку Sync Project. А затем (если все еще красное, но скорее всего уже будет все ок ) Build -> Clean Project.
2) После внезапного выключения компьютера, после перезапуска может быть во всех проектах весь код красным. Перед этим может быть ошибка: Unable to create Debug Bridge: Unable to start adb server: Unable to obtain result of ‘adb version’. Есть три решения — первое помогло, второе нет (но может быть для другого случая), а третье — не пробовал:
а) File — Invalidate Caches/Restart — Invalidate and Restart
б) Закрыть студию. В корне папки проекта удалить файл(ы) .iml и папку .idea. Вновь запустить студию и импортировать проект.
в) Нажать Ctrl-Alt-O и запустить оптимизацию импорта.
Кстати, adb сервер можно проверить на версию (и работоспособность) и затем перезапустить:
3) Если Android Studio выдает приблизительно такую ошибку: Error:Execution failed for task ‘:app:dexDebug’.
Надо слева переключиться на опцию Project, найти и удалить папку build которая лежит в папке app, т.е. по пути app/build. Затем перестроить весь проект заново: Build -> Rebuild Project.
Такое же решение если ошибка типа: «не могу удалить (создать) папку или файл» и указан путь, который в ведет в app/build. Тоже удаляем папку build и ребилдим проект.
4) В сообщении об ошибке упоминается heap — виртуальная память. А ошибка обычно вызвана ее нехваткой, т.е. невозможностью получить запрашиваемый объем. Поэтому этот запрашиваемый объем надо уменьшить, т.е. переписать дефолтное значение (обычно 2048 MB которое можно изменить в настройках), на меньшее 1024 MB.
В файле проекта gradle.properties пишем:
5) Android Studio пришет примерно такую ошибку: Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to «83648b99316049d63656d7276cb19cc7e95d70a5»
Возможные причины (кроме необходимости регулярного обновления SDK):
а) Загруженный проект был скомпилирован с помощью уже несовместимого старого gradle плагина. В этом случае надо найти и подключить в своем build.gradle проекта этот более старый плагин. т.е. попробовать более старые версии, например: 1.1.3 (часто именно 1.1.x и подходит).
Найти все версии можно здесь.
б) Если в build.gradle проекта используется beta-версия плагина — это означает, что срок ее истек. Посмотреть последние релизы (продакшн и бета) можно также здесь:
6) Иногда при подключении сторонних библиотек могут дублироваться некоторые файлы (обычно связанные с лицензированием). В сообщении будет что-то содержащее слова: duplicate files. Решение — надо посмотреть в сообщении об ошибке или в документации подключенной сторонней библиотеки — какие именно файлы стали избыточными, и перечислить их в build.gradle модуля для исключения (exclude) из билда.
Это делается в директиве packagingOptions (которая, в свою очередь, находится в директиве android).
Источник
Android Tips and Tricks
Android Studio
Не забывайте использовать шорткаты
Описание | Mac | Linux/Win |
Быстрый поиск по настройкам, действиям в IDE | Cmd+Shift+A | Ctrl+Shift+A |
Переопределить метод родительского класса | Cmd+O | Ctrl+O |
Поиск файла по имени | Cmd+Shift+O | Ctrl+Shift+N |
Список недавно редактируемых файлов | Cmd+Shift+E | Ctrl+Shift+E |
Список недавно открытых файлов | Cmd+E | Ctrl+E |
Последний редактируемый файл | Cmd+Shift+Backspace | Ctrl+Shift+Backspace |
Найти все места, где используется метод / переменная | Opt+F7 | Alt+F7 |
Как предыдущий пункт, только во всплывающем окне | Cmd+Opt+F7 | Ctrl+Alt+F7 |
Приведение кода в соответствие code style | Cmd+Opt+L | Ctrl+Alt+L |
Окружить блок кода конструкцией(if, else, try) | Opt+Cmd+T | Alt+Ctrl+T |
Открыть терминал | Opt+F12 | Alt+F12 |
Сгенерировать Setter/Getters/ | Cmd+N | Alt+Ins |
Поиска класса по имени | CMD+O | Ctrl+N |
Рефакторинг имени | Shift+F6 | Shift+F6 |
Быстрое исправление | Opt+Enter | Alt+Enter |
Перейти к объявлению переменной, класса, метода | Cmd+B | Ctrl+B |
Показать список параметров для метода | Cmd+P | Ctrl+P |
Меню рефакторинга | Ctrl+T | Ctrl+Alt+Shift+T |
Убить процесс | Cmd+F2 | Ctrl+F2 |
Поиск по всему проекту | Shift+Shift | Shift+Shift |
Удалить строку | Cmd+Backspace | Ctrl+Y |
Продублировать строку | Cmd+D | Ctrl+D |
Расширить/Уменьшить выделенное | Opt+Up/Down Arrow key | Shift +Ctrl+W |
Многострочное выделение | Ctrl+G | Alt+J |
Полный список шорткатов | MacOSX | Linux/Win |
Используйте плагины для повышения эффективности
- KeyPromoter
Этот плагин заставит вас страдать, показывая большой уродливый попап с комбинацией клавиш, которую следовало бы использовать вместо нажатия на кнопку в IDE. Через какое-то время вы уже на автомате будете использовать шорткаты, лишь бы не видеть этот ужасный попап.
String Manipulation
Упрощает работу со строками, позволяет cортировать, переводить в другие кодировки, убирать дубликаты, триммить текст и ещё многое другое.
Lines Sorter
Добавляет иконку в меню для сортировки выбранных строк или целого файла, если ничего не выбрано.
Findbugs
Статический анализатор байткода для поиска багов в Java коде c помощью Android Studio.
Sonar Lint
Плагин, который в рантайме показывает информацию о новых багах и нарушениях качества кода на Java, JavaScript и PHP.
Checkstyle
Плагин, который сканирует Java файлы с помощью Android Studio и проверяет их на соответствие настройкам. Может быть интегрирован в вашу систему сборки, чтобы запрещать сборки с нарушениями.
Плагин, который добавляет ADB команды (установка и удаление приложения, перезапуск приложения и тд.) в Android Studio и Intellij.
Используйте Live Templates при разработке в Android Studio
Template | Описание |
newInstance | Генерирует статический метод `newInstance` внутри Фрагмента |
Toast | Генерирует Toast.makeText(context, «», Toast.LENGTH_SHORT).show(); |
fbc | findViewById с кастом к нужном типу View |
const | Определить константу типа int |
logd | Генерирует Log.d(TAG, «»); |
logm | Вынести в лог текущее имя метода и его аргументы. |
logr | Вынести в лог результат текущего метода |
logt | Статическая строка TAG для лога, с текущим именем класса |
psf | public static final |
sout | Печатает строку в System.out |
soutm | Печатает имя класса и имя метода в System.out |
soutp | Печатает аргументы и значения метода в System.out |
visible | Установить видимость View к VISIBLE |
gone | Установить видимость View GONE |
noInstance | Приватный конструктор без аргументов, чтобы запретить создание сущностей |
→ Полный список Live Templates в Android Studio
Постфиксное автодополнение кода в Android Studio
В Android Studio/IntelliJ есть специальный механизм дополнения кода, который позволяет применить конструкцию к определённой переменной.
Template | Описание |
Полный список доступных постфиксных дополнений кода вы можете найти в Settings → Editor → Postfix Templates
Используйте тему Darcula в Android Studio
Да, я осознаю, что это больше вопрос предпочтений. Однако поверьте мне, что использование тёмной темы сократит нагрузка на ваши глаза.
Не используйте неудобный/мелкий шрифт
По возможности старайтесь использовать такой шрифт, который удобно читать и не доставляет дискомфорта для ваших глаз. Я использую Menlo font.
Используйте codestyle
Вам следует использовать стандартный codestyle. Для примера посмотрите на AOSP Codestyle или Square IntelliJ Codestyle
Используйте Встроенный терминал в Android Studio
Используйте Memory/Network/CPU мониторинги в Android Studio для профилирования вашего приложения
Эмулятор
Кроме использования реальных девайсов, вы также должны использовать эмуляторы ввиду простоты их настройки и использования. Также вы можете легко настраивать на них разрешение и версию API для тестирования. Genymotion, Intel эмулятора поставляемый вместе с SDK
Vysor
Это очень полезный инструмент, достойный отдельного упоминания. По сути, он позволяет стримить содержимое физического Android устройства на экран ноутбука. Очень удобно, когда вам нужно продемонстрировать демо вашего приложения на презентации. Мы можем взаимодействовать с реальным устройством, и всё это будет представлено прямо на экране ноутбука. Есть бесплатная и платная версии, и платная определённо стоит того, чтобы её купить.
DeskDock
Если вам необходимо манипулировать физическим Android устройством (используя клавиатуру и мышь), то это приложение замечательно с этим справится. Позволяет вам управлять вашим Android устройством, как если бы это была часть рабочего стола компьютера. Бесплатная версия позволяет использовать мышь, Платная версия позволяет использовать клавиатуру и другие возможности. С этим приложением можно тестировать приложение, не отрывая рук от клавиатуры ноутбука.
Выбирайте лучшие инструменты при написании кода
- Используйте OkHttp вместо HttpUrlConnect.
HttpUrlConnect содержит определённое число багов. Okhttp довольно красиво решили их. Анонс Okhttp.
Ссылайтесь на локальные `aar` файлы следующим образом.
Специальная программа для Android разработчиков, с помощью которой позволяет анализировать файлы типа .apk, .jar, .class, .dex, .aar, .so. Может показать информацию о полях и методах класса, зависимостях .apk, количество методов, используемых приложением и тд.
Позволяет дебажить ваши приложения используя Chrome Dev Tools. Включает в себя мониторинг сети (Network Monitor), отображение Shared Preferences.
Программа для анализа расхода батареи
Избегайте использования ‘+’ для указания версий используемых библиотек.
Это позволит вам избежать неожиданных багов или проблем со сборкой, если в новой версии изменится API. А также не придётся при сборке каждый раз открывать интернет-соединение для проверки последней актуальной версии зависимой библиотеки.
Если у вас всё-таки есть png, сожмите их. Изучите [TinyPNG](https://tinypng.com) для этого.
Разделяйте ваш .apk с помощью gradle, когда вы используете нативный код. Не смешивайте всё вместе, потому что потом будете страдать, разбираясь в исходниках.
Исключить gradle таску при сборке. Предположим вы хотите исключить задачу ‘javaDoc’, в таком случае используйте ‘-x’ опцию и имя таски, в данном примере ‘javaDoc’
Учитывая скорость разработки android библиотек и их обновлений, в какой-то момент вы встретитесь с конфликтом зависимостей в вашем приложении. Gradle позволяет решать эти проблемы официальная документация
Android использует Gradle как систему сборок, что позволяет упростить множество вещей и написать свои таски для автоматизации. Пост на reddit, который содержит множество полезных gradle скриптов.
— Перейдите на gradle версии 3.1.
Выполните следующую команду в директории вашего проекта для обновления gradle wrapper.
— Установите опции сборки в глобальном в `gradle.properties` файле
Остановить процесс сборки приложения с помощью gradle
Настройте gradle для автоматической загрузки отсутствующих компонентов android sdk.
Установить следующую опцию в глобальном gradle.properties файле.
Это экспериментальная опция, и она загружает только build tools и platforms, но не обновляет Google или Support Repository
JCenter включает в себя MavenCentral.
Перейдите в директорию
/.gradle/caches/ и удалите всё содержимое в папке cache.
Откройте SDK Manager и заново синхронизируйте все саппортные библиотеки и google play services.
Далее обновите gradle зависимости в проекте.
Теперь всё должно находиться в нормальном состоянии и работать корректно.
Настройте удобные `adb` алиасы для вашего терминала.
Добавьте следующие команды к вашему
/.zshrc файлу, сохраните и перезапустите терминал. После этого можете использовать как показано в столбце Использование.
Алиас | Использование |
Настройте Android Studio падать при сборке, если код содержит //STOPSHIP.
Чтобы включить в lint проверку на //STOPSHIP , добавьте в ваш `build.gradle`
Если у вас есть //STOPSHIP комментарий в коде, релизная сборка не соберётся. Кроме этого, вы также можете включить в Android Studio подсветку таких комментариев (по умолчанию выключено). Preferences → Editor → Code Style → Inspections . Ищите в поиске STOPSHIP и устанавливайте флажок для подсветки.
Скопируйте нужную библиотеку. Вставьте в ваш build.gradle.
Используйте Dryrun, чтобы быстро и удобно протестировать библиотеку или пример приложения.
Отображайте результаты юнит тестов напрямую в консоль.
—offline флаг говорит gradle, чтобы при сборке были использованы зависимости из кэша. Если запускать сборку с этим флагом, gradle никогда не попробует выкачать зависимости по сети. Если необходимые модули отсутствуют в кэше — приложение не соберётся
Прогоняйте юнит тесты как можно быстрее:
Полезные советы по UI/UX
Движение
Material Design использует физику реального мира как основу. Объекты в реальном мире не двигаются линейно, они двигаются по искривлённым траекториям а также с ускорением и замедлением в зависимости от ситуации.
Таким образом, вы должны манипулировать свойствами и анимировать объекты так, чтобы это выглядело натурально и естественно. Например машина, выезжающая за экран начинает движение медленно, постепенно ускоряясь по приближению к краю экрана. Аналогично ui элементы должны перемещаться используя такие классы как AccelerateInterpolator, FastOutSlowInInterpolator и другие.
Шрифты, отступы
В принципе, нестандартные шрифты можно использовать как часть брэндинга, однако лучше всё-таки остановиться на стандартных Roboto и Noto, если это возможно, в особенности для основного текста из-за их узнаваемости и частого использования.
Roboto покрывает Латинские, Греческие и Кириллические символы, Noto покрывает остальные языки.
Балансировка яркости шрифта — это один из наиболее важных параметров современной стилистики. Основная идея заключается в том, что чем меньше шрифт, тем более ярким он должен быть, и наоборот.
Сам текст должен быть выровнен по сетке с ячейкой 4dp.
Идеальная длина текста для больших блоков от 40 до 60 символов в строке.
Иконки
Иконки должны быть размером 48dp c краями 1dp, что эквивалентно:
48px x 48px — mdpi
72px x 72px — hdpi
96px x 96px — xhdpi
144px x 144px — xxhdpi
192px x 192px — xxxhdpi
Дополнительная иконка с размером 512px x 512px должна быть предоставлена для Google Play.
То же касается иконки с размером 1024px x 500px, которая будет отображаться в шапке на странице вашего приложения.
Ripple
Когда реализуете Ripple эффект, используйте ?attr/selectableItemBackground вместо ?android:attr , подробнее. Когда реализуете Ripple эффект на элементе как Button используйте:
Когда реализуете Ripple, который выходит за края View, как например у ImageView, используйте:
Остальные пункты
Элементы в соответствии с Material Design Views должны быть расположены на сетке с ячейкой размерами 8dp, если это возможно. Благодаря этому подходу UI выглядит структурированным и приятным.
Если вам нужна ссылка на какой-нибудь элемент ViewGroup (LinearLayout, FrameLayout, RelativeLayout, etc.) и вам не нужны никакие специфичные методы именно для этого типа ViewGroup, то не храните конкретный тип, используйте просто ViewGroup.
Другие ресурсы
Cделайте закладки в своём браузере на различные популярные ресурсы
Используйте бесплатные mock API для тестирования
Все примеры, перечисленные ниже, тем или иным образом позволяют тестировать ваше приложение без бэкенда. Если понадобится воспользоваться, пробегитесь по списку и посмотрите, какой из пунктов максимально удовлетворяет вашим запросам и потребностям по функционалу.
Источник