Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Как я боролся с Android NDK и NetBeans 6.8

Разработка под Android *
image
В этом посте я хочу немного поделиться сыном ошибок трудных — опытом. По другому и не скажешь, потому что некоторые ошибки компиляции, сборки и т.п. съели очень много времени. Я не всякий раз докапывался до причин, хотелось побыстрее получить работающую математику. Но так или иначе мне удавалось находить или вычитывать правильное решение. Поэтому я просто хочу обратить внимание тех, кто будет идти тем же путем, на некоторые нюансы. Возможно это сэкономит вам какое-то время. В конце я приведу пример приложения, ради которого это все было нужно. Картинка из заголовка — это скрин приложения.
И так, задача у меня была следующая. Я написал приложение под андроид, которое оказалось очень требовательным к ресурсам. На «математику» (я имею в виду работу с контейнерами, вычисления и т.п.) уходило очень много времени. Для сравнения, консольное приложение на чистом С++, считало задачу в пределах 3 секунд. Тогда как Android-приложение на java, запущенное на эмуляторе, то же самое считало 2.5 минуты. Поэтому я решил алгоритмическую часть вынести на C++. Также хочу отметить что мне совсем не хотелось ставить Eclipse поэтому я боролся в том что было — NetBeans 6.8. Так что предположим, что у вас уже стоит SDK, NDK и NetBeans и пойдем дальше.
Читать дальше →
Всего голосов 44: ↑40 и ↓4 +36
Просмотры 7K
Комментарии 13

Cocos2d-x: Сборка проекта под Android

Разработка игр *
В предыдущей статье мы узнали, как легко начать писать свою игру, используя кроссплатформенный движок cocos2d-x и научились запускать наше приложение на платформе Win32. Но этого не достаточно, ведь основная цель, разработка для мобильных устройств. В этой статье мы соберем проект под операционную систему Android.
Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Просмотры 30K
Комментарии 10

Как я писал Pacman'a, и что из этого получилось. Часть 1

Разработка игр *Разработка под Android *
Здравствуйте, уважаемые хабралюди!
Последние несколько месяцев, в свободное время, я занимался разработкой клона знаменитой игры Pacman для ОС Android. Как это было, и что из этого вышло я хочу рассказать.

Читать дальше →
Всего голосов 32: ↑26 и ↓6 +20
Просмотры 58K
Комментарии 20

Как я писал Pacman’a и что из этого получилось. Часть 2

Разработка игр *Разработка под Android *

Здравствуй, хабр! Во второй части статьи я продолжу рассказ о том, как я писал клон игры Pacman. Первую часть можно почитать здесь.
С момента, когда я последний раз работал над пакманом прошло порядка трех недель. Прошла большая часть сессии, стало немного больше времени и я решил продолжить. В этот момент появилось желание доделать игру до состояния, когда ее можно будет выложить в Google Play Market, хотя в самом начале разработки я об этом даже не помышлял. Кроме того, доделывание до играбельного состояния – неплохая тренировка. Где-то я слышал, что игры (да и вообще приложения) стоит доделывать.
Напомню, что разработка игры велась с использованием Android NDK (С++) и OpenGL ES 2.0.

Читать дальше →
Всего голосов 98: ↑95 и ↓3 +92
Просмотры 43K
Комментарии 19

Форсирование режима автомобильного дока (с помощью root)

Разработка под Android *

Введение


Не так давно вышедший Galaxy S3, помимо прочих нововведений в области аксессуаров, получил новый, ужасно скучный автомобильный док. В отличие от предыдущих аппаратов линейки (S, S2, Note), этот был сделан «универсальным», и потому не имел специального резистора, заставляющего телефон переключаться в автомобильный режим. А я, как человек, пользовавшийся в своё время полноценной док-станцией для первого SGS, уже привык, что при установке в док у меня включается режим громкой связи и появляется альбомная ориентация в TouchWiz. Но в новом доке такого достичь было нельзя…

Однако, решение было найдено, и потребовало лишь одной NFC-метки, рута, а также нескольких часов поисков и программирования.
Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Просмотры 13K
Комментарии 14

Использование NDK в Android Studio

Разработка под Android *
Из песочницы
Tutorial
В настоящее время среди Android-девелоперов большую популярность имеет среда разработки Android Studio, основанная на IntelliJ IDEA от JetBrains. Однако, при использовании данной IDE, могут возникнуть проблемы при разработке приложений, использующих нативный код, так как Android NDK рассчитан преимущественно на использование IDE Eclipse и ADT.

Цель данной статьи — подробное описание процесса создания Android-приложения, использующего NDK в Android Studio, в частности — предложение достаточно простой и эффективной конфигурации gradle (системы сборки пакетов, используемая в Android Studio), гарантирующей включение нативных библиотек в APK-файл. Также статья включает краткую инструкцию работы с NDK в IDE Eclipse и введение в нативную разработку, достаточное для написания первого приложения.
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Просмотры 66K
Комментарии 8

Введение в Android NDK

Java *C++ *Разработка под Android *
Из песочницы
Для разработки приложений под ОС Android, Google предоставляет два пакета разработки: SDK и NDK. Про SDK существует много статей, книжек, а так же хорошие guidelines от Google. Но про NDK даже сам Google мало что пишет. А из стоящих книг я бы выделил только одну, Cinar O. — Pro Android C++ with the NDK – 2012.

Эта статья ориентирована на тех, кто ещё не знаком (или мало знаком) с Android NDK и хотел бы укрепить свои знания. Внимание я уделю JNI, так как мне кажется начинать нужно именно с этого интерфейса. Так же, в конце рассмотрим небольшой пример с двумя функциями записи и чтения файла. Кто не любит много текста, тот может посмотреть видео версию.
Читать дальше →
Всего голосов 64: ↑60 и ↓4 +56
Просмотры 216K
Комментарии 28

Отладка native-кода под Android: ручное и автоматизированное тестирование

Блог компании Intel Тестирование IT-систем *
Tutorial
С развитием и ростом популярности ОС Android количество и разнообразие устройств под её управлением неуклонно растёт. Из-за различий в архитектуре, предназначении и оптимизации скорость и стабильность работы исполняемого кода может значительно изменяться. Поэтому, для обеспечения стабильности и оптимизации работы приложений и ОС, особенно использующих особенности конкретной архитектуры, платформы, или кода, портированного с других платформ, стоит особо внимание уделить процессу отладки кода под Андроид. В этой статье пойдёт речь о ключевых моментах и особенностях работы с native-кодом под Android. Всем, кому интересен этот мануал, прошу под кат.

image


Читать дальше →
Всего голосов 41: ↑36 и ↓5 +31
Просмотры 16K
Комментарии 3

Запуск физического движка Bullet Physics на Android х86

Блог компании Intel Разработка игр *
Tutorial

Источник фото
Постоянный рост вычислительной мощности мобильных устройств способствует развитию мобильных игр. В мобильном сегменте появился целый класс игр, который славится реалистичной графикой и правдоподобной физикой. Такие эффекты как взрыв гранаты в шутере, занос машины в гонке ложатся на плечи физического движка. В основе физического движка заложены математические модели, которые просчитываются в процессе игры. Как правило это вычислительные задачи и от того насколько быстро и качественно физический движок справляется с ними зависит привлекательность игры.
В этой статье показано, как собрать и портировать физический движок Bullet Physics на платформу Android на базе процессора Intel Atom.
Читать дальше →
Всего голосов 30: ↑25 и ↓5 +20
Просмотры 15K
Комментарии 20

MWC 2014. App Planet. Intel Software

Блог компании Intel Разработка веб-сайтов *Разработка под Android *

В обычное время такая расслабленная и неспешно услужливая Барселона сейчас встречает меня высокомерной занятостью и сосредоточенным игнорированием. Это значит, что настало время Mobile World Congress – те пять дней в году, когда за месяц до поездки самый дешевый отель доступен по цене не менее 700 Евро за ночь, а чтобы заселиться в апартаменты где-то в живописной подворотне Готического квартала, нужно предупредить управляющего за час, и еще столько же подождать его у входа.
В этой публикации я поделюсь своими впечатлениями о первых днях конференции и расскажу, что интересного вы не увидели в павильоне Intel, потому, что вас не было среди 67 тысяч зарегистрированных и приехавших участников этого грандиозного события. Хотя, возможно, вы поехали на Embedded World в Нюрнберг, где сейчас тоже находится много моих коллег, и от которых мы ожидаем интересных отчетов. Позже я сделаю небольшой обзор того, что меня впечатлило на стендах других компаний, которых тут столько, что, кажется, все производители устройств и оборудования взяли и бросили свой основной бизнес, занявшись мобильными приложениями.
Читать дальше →
Всего голосов 25: ↑24 и ↓1 +23
Просмотры 7.1K
Комментарии 7

Android SDK vs NDK — сравнение производительности однотипных участков кода

Разработка под Android *
Из песочницы
В целях улучшения производительности приложения на Андроид начал постепенно переписывать критические участки кода с Java (SDK) на С++ (NDK). Результат оказался сравнимым с тем, что я получил пару десятков лет назад, делая ассемблерные вставки в код турбопаскаля.
Читать дальше →
Всего голосов 61: ↑54 и ↓7 +47
Просмотры 51K
Комментарии 42

ZeptoLab и Codeforces объединяют усилия

Блог компании ZeptoLab Разработка под iOS *Разработка под Android *
Ох и давненько мы не радовали хабражителей чем-нибудь свеженьким — за это время накопилось много того, чем делиться хочется. И мы не будем себя в этом сдерживать!

Эта статья будет интересна скорее разработчикам, ну а также всем тем, кто неравнодушен к прекрасному, происходящему по ту сторону игр.

У нас много новостей: мы серьезно выросли за этот период и перешагнули отметку в 80 человек, захватили практически весь этаж в БЦ и по традиции дали нашим художникам возможность оформить новое пространство с присущим им вкусом:

image

Выпустили Cut The Rope “Time Travel” и Cut The Rope 2 c уже всемирно полюбившимися персонажами:

image

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

Сейчас у нас ведется разработка никак не связанных с Cut The Rope игр, которые свет увидит чуть позже (пока сохраним интригу). Ну и, разумеется, любителей резать веревки и монстрика Ам-Няма нам еще есть, чем удивить.

За прошедший год мы существенно доработали и обкатали внутренний фреймворк, позволяющий писать весь игровой код на С++ и собирать билды сразу под iOS и Android. Также за прошедший год мы стали активно использовать возможности C++11, и, несмотря на очевидное количество legacy-кода в самом фреймворке, использование возможностей C++11 в проектном коде новых тайтлов становится нашим стандартом. Параллельно мы рассматриваем прочие средства разработки, например Unity. Однако, в нашем фреймворке есть ряд преимуществ, отказываться от которых так просто не хочется.
Читать дальше →
Всего голосов 64: ↑51 и ↓13 +38
Просмотры 24K
Комментарии 42

Android JNI + Intelij Idea + Gradle. Полная автоматизация процесса

Разработка под Android *
Из песочницы
Доброго времени суток!
Данный пост является небольшим руководством, по автоматизации компиляции нативного кода в среде Intellij Idea с использованием Gradle. Gradle предоставляет достаточно большой функционал для автоамтизации сборки проектов. Но даже подключение нативных библиотек к Android проекту требует дополнительных усилий со стороны разработчика.

Предыстория


Недавно я сменил место работы и устроился работать в компанию, занимающуюся разработкой собственного мобильного программного обеспечения. Мы с моими новыми коллегами по работе решили перейти с Eclipse (на котором до этого велась вся разработка) на Intellij Idea, и в добавок с Ant на Gradle. У нас достаточно большой проект, с приличным количеством кода, в том числе с использованием нативного C и C++ кода, как самописного так и уже готовых библиотек.

Тех, кто занимается разработкой Android проектов с использованием Android NDK в среде Intellij Idea + Gradle прошу под кат.
Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 12K
Комментарии 6

Android Studio для NDK под Windows

Программирование *C++ *Разработка под Android *
Из песочницы


На днях я обнаружил, что версия Android Studio неуклонно стремится к единице, в связи с чем задумался об изучении этого инструмента. Чтобы не было скучно, я решил поделиться своим опытом и собранными граблями в виде статьи-туториала.

Сразу хочу оговориться, что я не являюсь гуру Android-разработки, поэтому каких-либо откровений в тексте вы не найдете. Зато тут есть пошаговая инструкция по установке и настройке Android Studio под Windows и созданию простейшего проекта с использованием Android NDK.

Также заранее предупреждаю: статья получилась большой и очень подробной (честно, сам не ожидал), даже несмотря на то, что я почти все скриншоты и некоторые листинги кода спрятал под спойлеры.
Читать дальше →
Всего голосов 49: ↑43 и ↓6 +37
Просмотры 212K
Комментарии 18

В эмулятор Android добавлена поддержка Intel х64

Блог компании Intel Программирование *Разработка под Android *
Разработчики приложений под Android получили возможность тестировать свои программы на 64-битной платформе Intel.

На прошлой неделе Google добавил 64-битные образы для эмулятора Android под Windows, Linux и Mac OS. Образы доступны для скачивания на сайте Android для разработчиков. 64-битные Android приложения могут адресовать более 3 Гб оперативной памяти, кроме того, им доступны дополнительные процессорные регистры.

Добавим, что не менее ожидаемого эмулятора новой архитектуры ARMv8 пока выпущено не было.
Всего голосов 14: ↑9 и ↓5 +4
Просмотры 5.1K
Комментарии 0

Релиз CrystaX NDK 10.1

C++ *Разработка под Android *
Приветствую всех читателей!

Спешу сообщить о выпуске CrystaX NDK 10.1 — наборе инструментов для разработки на C/C++ (и Objective-C) под Android.

CrystaX NDK разработан как прозрачная замена для Android NDK от Google, но при этом добавляет немало вкусностей, отсутствующих в оригинальном NDK. Прежде всего, это означает, что CrystaX NDK можно использовать вместо Google NDK, и все будет продолжать работать как раньше. Но при этом станут доступными многие вещи, отсутствующие в Google NDK.

В этом релизе мы проделали немалую работу по обеспечению большей совместимости со стандартами ISO C, ISO C++ и IEEE Std 1003.1 (POSIX), благодаря чему портирование существующего кода на Android становится намного легче. Как вы, быть может, знаете, Android libc (Bionic) далека от того, чтоб соответствовать указанным стандартам. Многие части просто не реализованы, другие — реализованы с ошибками, заставляющими провести в отладке долгие часы, тем более что уж от libc этого не ожидаешь (помню до сих пор, как пришлось отлаживатся два дня, прежде чем выяснилось, что strtod() не умеет парсить «0xXXXX» строки). Конечно, со временем ситуация улучшается, и в новых версиях Android libc потихоньку исправляется и дополняется, но а) темпы исправлений и дополнений абсолютно неудовлетворительны и б) что делать разработчикам, программы которых должны работать не только на последних, но и на предыдущих версиях Android?

Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 8.3K
Комментарии 17

Удобоваримый вызов Java методов из нативного кода

C++ *Разработка под Android *
Из песочницы
Существует довольно много приложений под Android, которые совмещают C++ и Java код. Где Java выступает оберткой/прослойкой, а C++ выполняет всю грязную работу. Пожалуй, ярким примером могут служить игры. В связи с этим часто приходится вызывать Java код из нативного для доступа к системным свойствам и плюшкам, которые предоставляет система (переключится на другую активность, послать или скачать что-либо из интернета). Причин много, а проблема одна: каждый раз приходится писать в лучшем случае 5 строчек кода и помнить, какую сигнатуру функции нужно запихнуть в параметр. Потом еще нужно перевести эти параметры в нужный тип. Стандартный пример из туториалов:

long f (int n, String s, float g); 

Строка-сигнатура для данного метода будет (ILjava/lang/String;F)J.

Вам удобно это все запоминать? А переводить С-строки в jstring? Мне — нет. Мне хочется писать:

CallStaticMethod<long>(className, “f”, 1, 1.2f); 

Подробности под катом
Всего голосов 34: ↑33 и ↓1 +32
Просмотры 17K
Комментарии 15

Переписываем с java на C++ на платформе Android

Программирование *Разработка под Android *
Из песочницы
Хочу с вами поделиться опытом переписывания с java на C++ на платформе Android и тем, что в результате получилось.

Для своего маленького домашнего проекта был использован алгоритм поиска лиц Виола-Джонса, java-исходники с моделью были взяты отсюда code.google.com/p/jviolajones с небольшой модификацией — были добавлены два класса: Point и Rectangle. Уточню почему не стал использовать OpenCV под Android — для его работы необходимо поставить отдельно приложение-библиотеку, что в моем случае будет весьма неудобно, и опыты показали его падение без предупреждения, разбираться с этим долго не стал, также и с поиском других библиотек, и решил взять простейшую готовую реализацию.

Быстродействие алгоритма показало плачевные результаты, на фотографии размером 400 на 300 на моем стареньком разбитом GT-I9300I — 54 секунды, на avd (виртуальном устройстве) и то дольше — 250 секунд.
Читать дальше →
Всего голосов 16: ↑12 и ↓4 +8
Просмотры 21K
Комментарии 15

Ускоряем код на Android'е

Программирование *Разработка под Android *
Продолжу начатую в моей предыдущей статье работу по оптимизации алгоритма. Вкратце расскажу, что было сделано. Были взяты готовые java исходники и каскадная модель одной из реализаций алгоритма Виола-Джонса. Данный алгоритм используется для поиска объектов на фотографии, в частности для поиска лиц. Тестирование проводил на своем телефоне, по результатам было получено, что изначальный код на java работал 54 секунды на фотографии размером 300 на 400. Это было слишком медленно, переписанный мною код на C++ показал результат в 14 секунд. В комментариях было предложено догнать java-реализацию до C++ следующим образом: отпрофилировать и найти узкие места, и заменить двумерный массив на одномерный. Также у меня в планах было распараллелить алгоритм на C++. Все было сделано и исследовано, результаты ниже.
Читать дальше →
Всего голосов 14: ↑11 и ↓3 +8
Просмотры 16K
Комментарии 6
1