Pull to refresh
13
0
Михаил @Mikhail_dev

User

Send message

О производительности Android-приложений

Reading time5 min
Views38K

Введение


Первое, что я хочу сказать: статья не претендует на сильно глубокий уровень, скорее я хочу рассказать о том, что производительность это не только «быстрее с NDK на С++» и «экономьте память, а то сборка мусора будет часто запускаться», а это целый комплекс мер, потому что проблемы с производительностью возникают не когда одна функция медленно работает, а в комплексе.
Не было ли у вас ощущения, что приложение тормозит, а вы уже не знаете что делать — и память вроде не жрет, и профайлером уже посмотрели, а решения все нет. Если да, то эти заметки для вас.
Понятия и термины я переводить не буду, так как я думаю что почти все разработчики их не переводят.
Читать дальше →

История для позвоночника: обзор корректора осанки Lumo Lift, софта из Google Play и российского «Мастера осанки»

Reading time13 min
Views46K
Наконец-то я могу ответить на вопрос «куда мне с грыжей», и сегодня я подготовил для вас большой материал о корректорах осанки и проблемах, которые они решают. Под катом Lumo Lift, отечественный «Мастер осанки» и американский Iposture, подозрительно на него похожий, а также обзор бесплатного софта для Androida, в том числе и «прямые конкуренты» нагрудных датчиков.



Далее много слов и картинок.

Читать дальше →

Исследование андроид-вируса

Reading time13 min
Views106K
Всем привет. Недавно мне valdikss рассказал об андроид-вирусе, который может немало навредить пользователю, если он недостаточно внимателен. Мне захотелось узнать его внутренности, т.к. более или менее в последнее время занимаюсь ресерчем андроид приложений, но вирусы никогда еще не исследовал. До его рассмотрения, мне сразу бросилось в глаза название файла — android_update-1.apk. Первым делом делаю то, что делает каждый андроид ресерчер — распаковывает его dex2jar-ом (ну и параллельно можно посмотреть WinRAR-ом список файлов).

dex2jar


Когда я распаковал файл dex2jar-ом у меня получился красивый jar. Я обрадовался и кинулся смотреть его в JD-GUI.

image

Но, к сожалению, JD-GUI не смог полностью декомпильнуть получившийся файл, зато в самом конце файла были интересные строки.
Читать дальше →

Вы неправильно пишете животных

Reading time5 min
Views388K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде.

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →

10 вещей, которых вы не знали о Java

Reading time8 min
Views106K
Итак, вы работаете на Java с самого её появления? Вы помните те дни, когда она называлась «Oak», когда про ООП говорили на каждом углу, когда сиплюсплюсники думали, что у Java нет шансов, а апплеты считались крутой штукой?

Держу пари, что вы не знали как минимум половину из того, что я собираюсь вам рассказать. Давайте откроем для себя несколько удивительных фактов о внутренних особенностях Java.
Читать дальше →

Эра фаблетов: Проектирование для крупных экранов

Reading time10 min
Views20K


«С тех самых пор, как Samsung создала свою линию Galaxy Note, тем самым открыв рынок «больших телефонов», подобные девайсы называются фаблетами. Такое название они получили в силу своего размера, который находится где-то между размерами традиционного телефона и небольшого планшета»

За последнее время я успел прочитать много статей о том, что новая серия iPhone 6 заставит нас всех изменить подход к проектированию пользовательского интерфейса для мобильных телефонов. Возможно, это справедливо для тех дизайнеров, которые до сих пор фокусируются только на iOS и делают вид, что остальной мир не существует.
Читать дальше →

Эволюция мобильных приложений

Reading time8 min
Views27K


Идеей экрана, заполненного иконками для запуска приложений, смартфоны обязаны «классическому» десктопному рабочему столу. Но несмотря на большой путь, пройденный смартфонами за последние годы, концепция иконок, являющихся ссылками на некие независимые приложения не претерпела каких-либо изменений. Может быть, пришло время пересмотреть этот подход?
Читать дальше →

Простое объяснение движения денег в банковской системе

Reading time10 min
Views261K
От переводчика: В последние месяцы в жизнь многих людей прочно вошли новости сферы финансов. Одна из недавних тем — возможное отключение России от системы SWIFT. Угроза выглядит очень серьезно, но что на самом деле грозит стране, если события будут развиваться по этому сценарию? Наш сегодняшний материал призван помочь разобраться с тем, как все устроено в глобальном мире финансов.

На прошлой неделе [статья опубликована в ноябре 2013] Twitter сошел с ума из-за того, что кто-то перевел почти 150 миллионов долларов за одну транзакцию в криптовалюте. Появление такого твита было в порядке вещей:



Транзакция 194 993 биткоинов стоимостью в 147 миллионов долларов порождает много тайн и спекуляций

Было много комментариев о том, насколько дорого и сложно было бы это реализовать в обычной банковской системе, и, вполне возможно, что так оно и есть. Но при этом я обратил внимание вот на что: по своему опыту знаю, что почти никто не понимает, как на самом деле работают платежные системы. То есть: когда вы «перечисляете» денежные средства поставщику или «производите платеж» на чей-либо счет, как деньги переходят с вашего счета на счета других?

С помощью этой статьи я попытаюсь изменить ситуацию и проведу простой, но, надеюсь, не слишком упрощенный, анализ в этой области.
Читать дальше →

Смысл — это иллюзия

Reading time8 min
Views46K
Это перевод статьи, которая очень странно на меня повлияла. Оригинал

checkerboard

Поля Α и B — одного и того же цвета

Скорее всего это самое важное, что я когда-либо писал, т.к. я считаю, что нашёл не что иное, как смысл жизни, или его отсутствие. Если вы умны/образованны, начало этого эссе может показаться вам достаточно стандартным. Тем не менее следите за мыслью.

Основной аргумент


Смысл << Эмоция << Химия << Физика

"Смысл" жизни исходит исключительно из эмоционального опыта, который базируется на химии. Мы знаем, что эмоция, и даже духовный опыт, по своей природе химические события. В наше время с помощью науки возможно, используя препараты и/или прямые манипуляции с мозгом индуцировать "духовный" опыт.
Читать дальше →

Android. Пару слов об MVP + rxJava

Reading time5 min
Views75K


Работая с Android часто можно видеть, как весь функциональный код помещается в методы жизненного цикла activity/fragment. В общем-то такой подход имеет некоторое обоснование — «методы жизненного цикла» всего лишь хэндлеры, обрабатывающие этапы создания компонента системой и специально предназначенные для наполнения их кодом. Добавив сюда то, что каркас UI описывается через xml файлы, мы уже получаем базовое разделение логики и интерфейса. Однако из-за не совсем «изящной» структуры жизненного цикла, его зависимости от множества флагов запуска, и различной (хоть и похожей) структуры для разных компонентов, эффективно воспользоваться подобным разделением не всегда бывает возможно, что в итоге выливается в написании всего кода в onCreate().
Читать дальше →

Material Design. А был ли мальчик?

Reading time8 min
Views34K
Недавно мой коллега (Константин Волков) посетил мастер-класс по Material Design и поделился впечатлениями. Далее рассказ пойдет от его имени.

Введение


О Material Design [1] сегодня слышали многие, его принципы обсуждают во многих новостных и профессиональных блогах, посвященных Android. Но так ли понятна эта концепция разработчикам мобильного программного обеспечения? Можно ли использовать Material Design в реальном бою, и станут ли приложения эффективнее? На эти вопросы должен был ответить мастер-класс по Material Design, который прошел в середине февраля в технополисе “Москва”.
Читать дальше →

Material Design: на Луну и обратно

Reading time11 min
Views391K
“Это унылое диалоговое окно действительно нужно?”



В этой статье я изложил главные принципы Material Design и дал советы по их воплощению. Текст написан по следам мастер-класса для разработчиков, который мы, Роботы, устраивали совместно с российским офисом Google (Think Mobile).


Когда-то все продукты Google выглядели по-разному плохо. Даже один продукт на разных платформах выглядел неконсистентно.

Все стало меняться в 2011 году, когда в Google начали усиленно работать над унификацией визуальной части экосистемы своих продуктов и назвали все это Project Kennedy.

При чем тут Кеннеди?
Легенда такова: президент Кеннеди инициировал программу полёта человека на Луну (если верить, что этот полёт когда-либо был). А большой начальник в Google Ларри Пейдж исповедует принцип, что продукты нет смысла улучшать на 10% — они должны быть в 10 раз лучше, чем у конкурентов. Если уж запускать продукт, то сразу на Луну. Вот и здесь было решено круто всё переделать.

Читать дальше →

Трансокеанические подводные кабели связи

Reading time7 min
Views246K
И вновь привет, хабр.

Вчера мной был опубликован материал касательно прокладки компанией Google собственного оптоволоконного кабеля связи по дну Тихого океана, который свяжет дата-центры компании в штате Орегон, США, с Японией. Казалось бы, это огромный проект стоимостью $ 300 млн и длинной в 10 000 км. Однако, если копнуть немного глубже станет ясно, что данный проект является выдающимся только потому, что это будет делать один медийный гигант для личного использования. Вся планета уже плотно опутана кабелями связи и под водой их намного больше, чем кажется на первый взгляд. Заинтересовавшись этой темой я подготовил общеобразовательный материал для любопытствующих.


Читать дальше →

Локализация Android приложения средствами Google Sheets

Reading time4 min
Views8.8K
Добрый день!

В данной статье хотелось бы поделиться своим небольшим опытом использования Google Таблиц при локализации Android приложения. Изначально требовалось перевести разрабатываемое приложение только на язык заказчика, т.е. норвежский. В это время в IntelliJ Idea не существовало Translations Editor'a, а Android Studio готовилось к выходу из беты.

Основным требованием заказчика, не подлежащим обсуждению, был тот факт, чтобы переводчик тратил как можно меньше времени на перевод. Так, переводчику нужно предоставить таблицу со строками для перевода, он переводит все необходимое, а дальше делайте с ней что хотите. Никакого дополнительного софта ему ставить было нельзя, не говоря уже о SCM.

TL;DR готовый документ. Чтобы получить файлы strings.xml, жмем Export Files -> Export sheets to strings.xml. Приложение Google Drive, которое должно быть установлено на вашей машине, скачает результат.
Читать дальше →

Интерфейсы в реальном мире (ещё примеры)

Reading time10 min
Views140K
Обычный кран с горячей и холодной водой очень жесток к пользователю. В идеале его интерфейс решает три основные задачи:
  • Позволяет выбрать напор воды.
  • Позволяет выбрать температуру воды.
  • И защищает систему от гидравлического удара.

Вот тут вы можете узнать пару своих знакомых кранов:



А это — очень страшный автомобильный диод, по нему только вперёд:



Итак, если вам интересно продолжение про интерфейсы в реальном мире – заходите в пост. Осторожно, трафик.
Читать дальше →

Невероятные нарко-танки мексиканских картелей

Reading time1 min
Views60K
imageВ Мексике бушует насилие из-за активной борьбы правительства с наркокартелями. Последние придумали весьма радикальное решение для получения преимущества в борьбе на улицах.

Чудо инженерной мысли и просмотр фильма «Безумный Макс» помогли картелям создать собственные, так называемые нарко-танки.
Читать дальше →

Автоматизация процесса разработки под Android: начало

Reading time4 min
Views25K

Две недели назад закончилась Школа Автоматизации Процессов Разработки (ШАПР) в санкт-петербургском Яндексе.
Забегая вперёд, скажу, что преподавателям удалось главное: за неполных три месяца они «испортили» наше восприятие процесса разработки, как и обещали в начале Школы. Ручное тестирование и сборка начали жутко раздражать, вызывая мысли вроде «а ведь сейчас, вместо выполнения рутинных операций, я бы мог писать красивый код ...».

Подробнее о том, как им это удалось, можно прочитать здесь и ещё немного здесь.

В практической части обучения мы реализовали web-блог, на базе перечисленных по ссылке выше технологий.
Меня, как android-разработчика, заинтересовала возможность применения этих технологий и инструментов для организации Continuous Integration для Android.
Вдохновлённый докладом Алексея Коровянского на MBLTDev, и, особенно, результатами Google Test Automation Conference 2014 касательно тестирования Android-приложений, я реализовал упрощенный аналог нашего учебного проекта под другую платформу, перенеся туда всё что смог и успел. На этом предисловие заканчивается и начинается собственно описание автоматизации.
Читать дальше →

Инвестиции и спекуляции на бирже: как устроена торговля фьючерсом на доллар

Reading time4 min
Views40K
image

Всем доброго времени суток!

В этой статье я хочу поделиться своими знаниями на тему «Инвестиции и спекуляции на фондовом рынке», в частности речь будет о деривативах. Не пугайтесь этого страшного слова, так как после ознакомления с этой статьей вы будете разбираться не хуже любого профессионального трейдера. Обратите внимание, что разбираться, это не значит зарабатывать. Статья носит исключительно познавательный характер, и рассматривать будем на примере фьючерса на доллар, так как последнее время я наблюдаю повышенный интерес к этой теме у людей, никак не связанных с этим делом.
Читать дальше →

Как я боролся с adware в Google Play и проиграл

Reading time11 min
Views97K

За последние сутки сотни новостных сайтов (клац и тыц) перепечатывают одну интересную новость, рассказывающую про обнаружение очередных зловредных приложений в Google Play. На этот раз adware показывало назойливую рекламу каждый раз при разблокировке устройства и было установлено на миллиарды миллионы телефонов и планшетов. К счастью, антивирусная компания Avast вовремя обнаружила угрозу и приложения были удалены.

Под катом я расскажу свою версию событий: как я вычислял и искал adware в Google Play, декомпилировал код adware sdk, можно ли дождаться ответа от поддержки Google, почему мобильные антивирусы бесполезны и как им удается на горячем инфоповоде сделать себе хорошую бесплатную рекламу.
Читать дальше →

Каспаров против Deep Blue. Часть II: Филадельфийский эксперимент

Reading time7 min
Views22K

После некоторого перерыва, продолжаю серию статей (а также обещаю в ближайшее время её закончить) про многолетнюю шахматную борьбу двух миров – человеческого и компьютерного. Планировалось, что Rom77 напишет статьи про обе битвы Каспарова с Deep Blue, но, к сожалению, мой соавтор, написавший отличное начало, не выходит на связь. Мне иногда приходят письма от благодарных читателей с вопросом почему же до сих пор нет продолжения, поэтому, вновь берусь за перо сажусь за клавиатуру, дабы продолжить прервавшееся повествование про приключения Гарри и его кремниевых друзей. Помимо разрозненных сведений о событиях тех лет, в статье также решил использовать, оказавшиеся в моём распоряжении, черновые наброски Романа про матч 1996 года.
Название статьи, кстати, тоже придумал он

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity