На самом деле, данная статья является продолжением данного топика: Анализ памяти для Android приложений. Всем, кто хочет изучить вопрос детально, будут рады под катом.
Виталий @radvsem
User
In-app purchasing или внутренние платежи в приложениях для Android
7 min
57KО чем это вообще?
С версией приложения Android Market 2.3.0 для разработчиков приложений для платформы Android открылась возможность предоставлять пользователям платежи внутри самих приложений. Теперь можно продавать уровни и артефакты, видео, музыку, плагины и прочее, пользуясь лишь встроенными средствами платформы. Давайте увидим, как это можно сделать.
Что нам понадобится?
Как обычно, любимая IDE, Android SDK и пример приложения.
Так же будет полезным представлять себе, что такое Service, BroadcastReceiver и, конечно, Activity.
Так же нам понадобится разрешение в файле манифеста —
<uses-permission android:name="com.android.vending.BILLING"/>
, без него ничего не заработает.Как это в принципе работает?
+36
Интегрируем Twitter в ваше Android приложение
7 min
16KИнтегрируем Twitter в ваше Android приложение
Начав писать свою небольшую игрушку для гуглофона, захотелось отправлять рекорды в твиттер. Как оказалось на просторах интернета есть множество статей по поводу подключения к вашему аккаунту в твиттере, но рабочих примеров крайне мало. Немного усилий и я нашел нужный мне код, который оказался вполне работоспособен. Что ж, приступим к интеграции.
+33
Реверс-инжиниринг android приложений
9 min
111K+79
Стандарт разработки приложений под Android
3 min
17KРазработчик Андроида сталкивается с большим количеством файлов и ресурсов предназначенных для разных частей программы. Даже он сам через месяц не может вспомнить, какой файл или ресурс к чему относится.
Предлагаемый ниже материал основан на моем опыте разработок многих проектов для Андроида и опробован уже в нескольких проектах. В результате простых правил нагромождение файлов и ресурсов превращается в удобочитаемый проект, экономит время и нервы. Особенно оказалось удобным при работе в команде, когда к проекту могут присоединяться новые программисты. В Eclipse вы легко находите любые ресурсы, поскольку они становятся уникальными, легко находимыми и сортируются в понятном порядке в любых списках. Общие удобные правила позволяют легко читать чужой код и находить нужные ресурсы.
Большинство из указанного является моими личным мнением.
Предлагаемый ниже материал основан на моем опыте разработок многих проектов для Андроида и опробован уже в нескольких проектах. В результате простых правил нагромождение файлов и ресурсов превращается в удобочитаемый проект, экономит время и нервы. Особенно оказалось удобным при работе в команде, когда к проекту могут присоединяться новые программисты. В Eclipse вы легко находите любые ресурсы, поскольку они становятся уникальными, легко находимыми и сортируются в понятном порядке в любых списках. Общие удобные правила позволяют легко читать чужой код и находить нужные ресурсы.
Большинство из указанного является моими личным мнением.
+29
Рекомендации к стилю кода
9 min
171KTranslation
Правила языка Java
Мы следуем стандартным соглашениям по оформлению кода на Java. Мы добавили к ним некоторые правила:
- Исключения: никогда не перехватывайте и не игнорируйте их без объяснения.
- Исключения: не используйте обобщенные исключения, кроме кода в библиотеках, в корне стека.
- Финализаторы: не используйте их.
- Импорты: полностью уточняйте импорты.
+28
Защита Android приложений от реверс-инжиниринга — ProGuard
2 min
44KProGuard — это утилита для сокращения, оптимизации и обфускации кода. На выходе вы получаете *.apk меньшего размера, который намного сложнее реинжинирить. На developer.android.com написано, что ProGuard внедрен в систему сборки Android приложений. Однако, я заметил, что эта утилита появилась в моей папке с SDK только после обновления до r9.
+45
Изменение размера виджета в Android 4.1 Jelly Bean
3 min
16KКак стало известно — в новой версии Android Jelly Bean (API v16) появилась возможность изменения размера виджета, да не просто изменения, а автоматического, который теперь подстраивается под свободное место на экране.
Функция удобная и полезная, но в официальной документации про это почти ничего нету, что довольно странно.
![](https://habrastorage.org/storage2/9df/887/a62/9df887a621520e4286f32795d5458075.png)
Так как я разрабатываю несколько виджетов, то решил добавить данный функционал.
Функция удобная и полезная, но в официальной документации про это почти ничего нету, что довольно странно.
![](https://habrastorage.org/storage2/9df/887/a62/9df887a621520e4286f32795d5458075.png)
Так как я разрабатываю несколько виджетов, то решил добавить данный функционал.
+31
GCM – новый сервис Push-уведомлений от Google
3 min
25K![image](https://habrastorage.org/getpro/habr/post_images/a77/808/f37/a77808f377cfde949305804118c5de6f.png)
Ранее в Android использовался C2DM (Cloud to Device Messaging), как сервис доставки Push-уведомлений на устройство. Но 26 июня он был официально отменен гуглом. На его место пришел новый GCM (Google Cloud Messaging).
+38
Некоторые “подводные камни” разработки под Android
9 min
69KНедавно наша команда завершила разработку приложения под Android. В процессе разработки и затем поддержки мы столкнулись с некоторыми проблемами технического характера. Часть из них — это наши баги, которых мы могли бы избежать, другая часть — это совсем неочевидные особенности Android, которые либо плохо описаны в документации, либо не описаны вообще.
В этой статье я бы хотел рассмотреть несколько реальных багов, которые возникли у наших пользователей и рассказать о путях их решения.
Статья не претендует на подробный анализ потенциальных проблем, это просто рассказ из жизни одно реального Android приложения.
В этой статье я бы хотел рассмотреть несколько реальных багов, которые возникли у наших пользователей и рассказать о путях их решения.
Статья не претендует на подробный анализ потенциальных проблем, это просто рассказ из жизни одно реального Android приложения.
+31
Android UI конструктор в IntelliJ IDEA 12
1 min
12KTranslation
Случилось то, чего долго ждали Android-разработчики, работающие в IntelliJ IDEA. C 12 Версии появится полноценный конструктор интерфейсов.
Вот что принесет нам обновление ветки Community Edition:
Вот что принесет нам обновление ветки Community Edition:
- Добавление нового элемента в один клик.
- Перемещение, удаление, копирование и вставка элементов на лэйауте.
- Мощный редактор позволит редактировать свойства любого количества выбранных компонентов. Можно также скрыть ненужные свойства.
- Компонент Дерево, которое показывает иерархию элементов.
- Палитра всех элементов, которые поддерживаются Android SDK.
- Поддержка всех возможных макетов пользовательского интерфейса, FrameLayout, LinearLayout, GridLayout и т.д.
- Поддержка ресурсов в редакторе свойств.
- Мгновенное переключение между несколькими профилями устройств.
+54
Разработка черного списка sms для Android
10 min
20KЗдравствуй, уважаемое хабрасообщество!
Основываясь на ответах на мой вопрос, публикую данный топик. «Антиспам» — несколько громкое название для сделанного приложения, так как на данном этапе оно представляет собой лишь черный список отправителей. Однако в будущем я планирую сделать действительно антиспам с автоматической фильтрацией. Материал, расположенный ниже, рассчитан на тех, кто хоть чуточку знаком с разработкой под Android и делал хоть какие-то шаги для разработки своего собственного приложения, так как я не буду рассказывать про создание всего приложения с нуля, а расскажу только о наиболее интересных и важных моментах. Кому интересно, добро пожаловать под кат.
Основываясь на ответах на мой вопрос, публикую данный топик. «Антиспам» — несколько громкое название для сделанного приложения, так как на данном этапе оно представляет собой лишь черный список отправителей. Однако в будущем я планирую сделать действительно антиспам с автоматической фильтрацией. Материал, расположенный ниже, рассчитан на тех, кто хоть чуточку знаком с разработкой под Android и делал хоть какие-то шаги для разработки своего собственного приложения, так как я не буду рассказывать про создание всего приложения с нуля, а расскажу только о наиболее интересных и важных моментах. Кому интересно, добро пожаловать под кат.
+15
10 шагов до top paid 25 overall в App Store
5 min
5.3KПривет, хабровчане! Недавно мы выпустили игру Gemibears для айфона и айпада (специально никаких ссылок на игру, пост не про саморекламу) и за несколько дней добрались до топ-25 в платном чарте по Америке.
Это было непросто, но интересно, и мы многому научились. Я хочу поделиться с вами шагами, которые привели нас к такому результату.
Это было непросто, но интересно, и мы многому научились. Я хочу поделиться с вами шагами, которые привели нас к такому результату.
+48
Минимакс на примере игры в зайца и волков
11 min
90K![image](https://habrastorage.org/getpro/habr/post_images/3a3/6e6/b1b/3a36e6b1b12214f156e7c645a932633a.jpg)
+73
Как разогнать эмулятор Android
3 min
142K![Intel HAXM](https://habrastorage.org/getpro/habr/post_images/2f9/b34/f13/2f9b34f132db3221f6a5cab8dbb7113b.png)
Каждый, кто хоть раз работал с эмулятором для разработки приложений под Android, знает, что даже на современном железе эмулятор тормозит так, что для его использования нужно нечеловеческое терпение. То есть, наверное, надо самому стать андроидом-киборгом.
Но есть и еще один метод – попроще.
Intel Hardware Accelerated Execution Manager (Intel HAXM) — это решение, использующее аппаратные возможности виртуализации (Intel VT) и позволяющее значительно ускорить работу эмулятора Android.
Данное решение работает в паре с эмулятором Android для х86 устройств. При этом, эмулятор будет работать со скоростью, приближенной к скорости работы реального устройства, что поможет сократить время на запуск и отладку приложения.
+78
Практические задания с сайта unity3dstudent.com
4 min
18KTutorial
Из постов DisaDisa — переводов уроков с сайта unity3dstudent — я узнал об этом интересном сайте. Помимо уроков (вполне вменяемых, хотя и не совсем логичных — местами повествование переходит на очевидные моменты языков программирования (javascript, в случае этих уроков), такие как циклы или булевые выражения) там оказались ещё и так называемые “Challenges” — практические задания на применение материала из уроков. Задания сопровождаются видео-примером результата решения.
![](https://habrastorage.org/storage2/792/1b4/c10/7921b4c1024a7a72f041b079c463e909.png)
Пока таких заданий всего три, но, будем надеяться, появятся ещё. Но даже эти задания позволяют на практике ощутить простоту и удобство Unity. Разумеется, они подразумевают самостоятельное решение (ссылки на задания будут перед их решением), но если что-то вдруг не получается, можно заглянуть сюда. Ещё одна цель поста (помимо разбора конкретных заданий) — показать на примере, что можно сделать с помощью Unity с приложением минимальных усилий.
/* Для понимания статьи желательно иметь хотя бы небольшой опыт работы с Unity (особенно с пользовательским интерфейсом) — можно посмотреть пару постов от DisaDisa или первые уроки на unity3dstudent.com */
В этой статье – только про первое из заданий. Остальные — в самое ближайшее время.
UPD: Вторая задача
UPD 2: Третья
Да, замечу ещё, что под формулировкой задания (видео + небольшой текст) на сайте даны ссылки на уроки, необходимые для выполнения задания.
Challenge accepted?
![](https://habrastorage.org/storage2/792/1b4/c10/7921b4c1024a7a72f041b079c463e909.png)
Пока таких заданий всего три, но, будем надеяться, появятся ещё. Но даже эти задания позволяют на практике ощутить простоту и удобство Unity. Разумеется, они подразумевают самостоятельное решение (ссылки на задания будут перед их решением), но если что-то вдруг не получается, можно заглянуть сюда. Ещё одна цель поста (помимо разбора конкретных заданий) — показать на примере, что можно сделать с помощью Unity с приложением минимальных усилий.
/* Для понимания статьи желательно иметь хотя бы небольшой опыт работы с Unity (особенно с пользовательским интерфейсом) — можно посмотреть пару постов от DisaDisa или первые уроки на unity3dstudent.com */
В этой статье – только про первое из заданий. Остальные — в самое ближайшее время.
UPD: Вторая задача
UPD 2: Третья
Да, замечу ещё, что под формулировкой задания (видео + небольшой текст) на сайте даны ссылки на уроки, необходимые для выполнения задания.
Challenge accepted?
+18
Второе практическое задание с сайта unity3dstudent.com
7 min
7.1KTutorial
Продолжая разбор задачек с unity3dstudent.com, рассмотрим вторую из них. Вот разбор первой задачи.
![image](https://habrastorage.org/storage2/792/1b4/c10/7921b4c1024a7a72f041b079c463e909.png)
Ссылка на оригинальное задание: www.unity3dstudent.com/2010/07/challenge-c02-beginner
Суть: нужно создать сцену, в которой по нажатию пробела в поле зрения игрока начнёт падать ящик, в итоге запуская другой ящик в сторону мишени. После попадания мишень должна исчезнуть с каким-нибудь звуком. Запуск ящика – на основе рычага: один ящик уже лежит с одной стороны, ещё один падает на другую сторону рычага.
UPD: третья задача
![image](https://habrastorage.org/storage2/792/1b4/c10/7921b4c1024a7a72f041b079c463e909.png)
Ссылка на оригинальное задание: www.unity3dstudent.com/2010/07/challenge-c02-beginner
Суть: нужно создать сцену, в которой по нажатию пробела в поле зрения игрока начнёт падать ящик, в итоге запуская другой ящик в сторону мишени. После попадания мишень должна исчезнуть с каким-нибудь звуком. Запуск ящика – на основе рычага: один ящик уже лежит с одной стороны, ещё один падает на другую сторону рычага.
UPD: третья задача
+4
Третье практическое задание с сайта unity3dstudent.com
9 min
10KTutorial
Продолжим разбирать практические задания с unity3dstudent.com. На очереди последняя на данный момент задачка. Статья слегка задержалась, но, надеюсь, будет кому-то полезна.
Вот ссылка на оригинальное задание: www.unity3dstudent.com/2010/07/challenge-c03-beginner
![](https://habrastorage.org/storage2/792/1b4/c10/7921b4c1024a7a72f041b079c463e909.png)
Суть: игрок должен уметь перемещаться вправо/влево и стрелять по трём мишеням. Мишени при попадании должны падать, а игроку за каждую сбитую мишень начисляется очко. По достижении трёх очков показывается экран окончания игры.
Первая задача.
Вторая задача.
Вот ссылка на оригинальное задание: www.unity3dstudent.com/2010/07/challenge-c03-beginner
![](https://habrastorage.org/storage2/792/1b4/c10/7921b4c1024a7a72f041b079c463e909.png)
Суть: игрок должен уметь перемещаться вправо/влево и стрелять по трём мишеням. Мишени при попадании должны падать, а игроку за каждую сбитую мишень начисляется очко. По достижении трёх очков показывается экран окончания игры.
Первая задача.
Вторая задача.
+19
Организация архитектуры взаимодействия Activity и Service
7 min
34KПриветствую!
Сегодня я решил поведать Вам мой способ организации activity-service interaction в Android приложениях. Мотивирован топик тем, что достаточно часто можно встретить приложения, в которых, скажем, поход на сервер организовывается внутри активити в AsyncTask. При этом часто встречается верная мысль, что это надо делать в сервисах, но нигде в оф. документации нет ни слова об организации правильной архитектуры двустороннего взаимодействия между ними.
Поэтому я методом проб и ошибок пришел к архитектуре, лично для меня покрывающей все необходимые вопросы.
Об этом методе я буду рассказывать далее.
Сегодня я решил поведать Вам мой способ организации activity-service interaction в Android приложениях. Мотивирован топик тем, что достаточно часто можно встретить приложения, в которых, скажем, поход на сервер организовывается внутри активити в AsyncTask. При этом часто встречается верная мысль, что это надо делать в сервисах, но нигде в оф. документации нет ни слова об организации правильной архитектуры двустороннего взаимодействия между ними.
Поэтому я методом проб и ошибок пришел к архитектуре, лично для меня покрывающей все необходимые вопросы.
Об этом методе я буду рассказывать далее.
+27
Публикация приложения в Android маркеты
7 min
141KХорошо это или плохо, но для Android-приложений существует большое количество различных рынков продаж. С одной стороны приходится публиковать в нескольких, с другой — охват обеспечивается более широкий. Когда я задумался о том, что пора бы задействовать альтернативные маркеты для своего приложения, то толковой информации не нашёл. Сразу хочу предупредить, что программа предназначена для узкой русскоязычной аудитории, абсолютно ничем не примечательна, является по сути обычным rss-ридером для моего сайта халявы. Т.е. для многих этот опыт не будет показателен. Также я не использовал никаких средств для раскрутки своего приложения(реклама, обзоры, накрутка).
+41
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity