Рубрика «Ndk»

Всем привет! В процессе учебы заинтересовался Android разработкой, в рамках одного из заданий необходимо провести исследование. Выбрал тему, которая давно разжигает мое любопытство, а именно производительность кода на Kotlin  в сравнении с С++.

Поиск в русскоязычном интернете не дал почти ничего, всё, так или иначе сводится к перемешиванию, примитивных типов в цикле – пузырьковая сортировка и другие классические алгоритмы. В целом такие эксперименты приводят к выводу о том, что использование JNI имеет слишком высокую стоимость и Java работает быстрее.

Читать полностью »

image

Найдется наверное не мало приложений, которые почти невозможно сделать на Java, в силу большой исходной кодовой базы C++ или требований к производительности. И так вышло, что я разрабатывал одно из таких приложений, а именно эмулятор игровой консоли 3DO – Real3DOPlayer. В моем случае роль играла как кодовая база, так и требования к производительности. Код базировался на моем десктопном проекте «Феникс», и он тормозил даже на средних десктопах, не то, что на встраиваемых процессорах. Сколько проклятий вырывалось в адрес корпорации Gooogle я уже и не помню, но опыт я получил бесценный, которым и хочу здесь поделиться.
Читать полностью »

FreeType – это бесплатная низкоуровневая библиотека для работы со шрифтами. Она написана на ANSI C и используется в огромном количестве известных проектов. В Android, например. Но у прикладных Android-приложений нет прямого доступа к этой библиотеке. Поэтому, если вы хотите воспользоваться ей в собственном проекте, FreeType надо будет собрать для интересующей вас платформы. Мы будем собирать её для платформы x86, используя средства NDK.

Сборка библиотеки FreeType для Android x86 с использованием NDK - 1

Читать полностью »

Эта публикация о том, как можно в Windows скомпилировать библиотеку для обработки видео и аудио FFmpeg под Android в Eclipse с помощью NDK. Вы узнаете, как связать FFmpeg с библиотекой для обработки изображений OpenCV и как это всё можно использовать в Java-коде Android приложения. Всё это будет рассказано в контексте процесса создания Android приложения, основной функционал которого как раз и завязан на использовании этих библиотек и их взаимодействии. Итак, заинтересованных прошу под кат.
Читать полностью »

Итак, мы запустили регулярное регрессионное тестирование библиотек Boost на Android. С результатами все желающие могут ознакомиться на официальной страничке Boost (develop branch) или на нашем сайте (Android-only): master, develop.

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

Читать полностью »

SELECT * WHERE LOWER_FNC(name) like '%" + filterText + "%'"

При разработке Android приложения столкнулся с проблемой в запросе SQLite фильтра с русскими буквами. Для английской локализации проблем нет. Для других интернациональных раскладок некорректно обрабатывались заглавные буквы в запросе.
Немного разобравшись я наткнулся на следующее описание:

(18) Case-insensitive matching of Unicode characters does not work.

The default configuration of SQLite only supports case-insensitive comparisons of ASCII characters. The reason for this is that doing full Unicode case-insensitive comparisons and case conversions requires tables and logic that would nearly double the size of the SQLite library. The SQLite developers reason that any application that needs full Unicode case support probably already has the necessary tables and functions and so SQLite should not take up space to duplicate this ability.

Instead of providing full Unicode case support by default, SQLite provides the ability to link against external Unicode comparison and conversion routines.

Вероятно текущая реализация SQLite Android и есть

only supports case-insensitive comparisons of ASCII characters

Видел решение через CursorWrapper но решил все таки собрать свою версию SQLite и использовать addCustomFunction

Что из этого получилось читайте под катом
Читать полностью »

Google releases 64-bit Android L developer preview emulator image

Корпорация Google сегодня анонсировала выпуск специальной версии эмулятора Android OS. Речь идет о x86 64-bit Android L, предназначенном для разработчиков, которые собираются выпускать приложения с поддержкой 64-битных чипов. По словам разработчиков, 64-битные приложения для Android позволяют разработчикам использовать более число регистров и новые наборы инструкций.

Читать полностью »

В данной статье речь пойдет об отладке кода под Android.
За последнее время произошло много подвижек в этом направление. Появился Android Studio, google добавило поддержку отладки нативного кода в eclipse.
Если необходимо отладить только Java, то Android Studio покроет ваши потребности полностью.
Если необходима отладка с++ или Java кода то ADT Bundle со встроенным Eclipse опять же поможет решить вашу проблему.
Если вкратце

  • Дать понять Eclipse что проект содержит нативную часть(Add native support)
  • Убедиться что в команде сборки стоит NDK_DEBUG=1
  • Нажать Debug as Android Native Application

на некоторых девайсах реобходимо еще и поставить в манифесте debuggable в true
Но если необходимо отлаживать jni код, где попеременно работают c++ и Java функции, то вам этот способ не подойдет, потому-что в зависимости от выбранного способа отладки(Android Native Application, Android Application) работает отладка либо с++ либо java кода.
О том как отлаживать смешанный код пойдет речь далее в статье.
Читать полностью »

Android NDK, Revision 10 поддерживает архитектуру Intel 64 bitХорошая новость для разработчиков приложений под Android: новая, десятая версия Android NDK, вышедшая в июле, содержит целых три новых 64-битных ABI: arm64-v8a, x86_64 и mips64, что благоприятным образом скажется на производительности программ. Нам особенно приятно отметить появившуюся поддержку x86_64Читать полностью »

В свете недавних изменений (начиная с релиза 0.7.3 от 27 декабря 2013) новая система сборки под Android становится очень интересной в том числе и для тех, кто использует NDK. Теперь стало действительно просто интегрировать нативные библиотеки в вашу сборку и генерировать APK для различных архитектур, корректно обращаясь с кодами версий.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js