LINUX.ORG.RU

изучаю android - сборка нативного приложения

 ,


1

3

Решил изучать разработку нативных приложений для android
Читать начал книгу https://www.packtpub.com/books/content/creating-compiling-and-deploying-nativ...
Первый пример «hello-jni» собрался и запустился ок
Второй «san-angeles» както странно собирается - без ошибок создается файл DemoActivity-debug-unaligned.apk, но его размер слишком мал (5971 байт), получается нативный код в либу и не попал.
И в san-angeles/libs пусто, а в ello-jni/libs есть либы.
Чтото пошло не так, не соображу что.

★★★★★

Там Gradle или Android.mk - Makefiles?

Логи сборки. Желательно из консоли, а не из IDE.

EXL ★★★★★
()
Ответ на: комментарий от x905

В 0.sh не вижу шага ndk-build, который собирает SO-шки. Добавь.

export ANDROID_SDK="/home/aaa422/bin/android-sdk-linux"
export ANDROID_NDK="/home/aaa422/bin/android-ndk-r10e/"
export PATH="${ANDROID_SDK}/tools:${ANDROID_SDK}/platform-tools:${ANDROID_NDK}:${PATH}"
export JAVA_HOME="/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0"

#android list targets
#android update project -p ./ --target "android-19" --subprojects
ndk-build clean
ndk-build V=1
ant clean
ant -v debug | tee build_log.txt
EXL ★★★★★
()
Ответ на: комментарий от x905

Вот мой простенький проект-убивалка времени Android NDK / Android SDK / OpenGLES / JNI, в котором не трудно разобратся и может тебе будет интересно:

https://github.com/EXL/Spout

https://github.com/EXL/Spout/releases/download/v1.1/Spout_v1.1_04-FEB-2017.apk

А тут статья-описание первого опыта моего взаимодействия с Android NDK:

http://exlmoto.ru/spout-droid/

EXL ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Склонируй реп, открой файл jni/Spout/projects/Spout.pro с помощью Qt Creator'а, выбери любой десктопный инструментарий при конфигурации проекта и нажми Ctrl + R :)

Из зависимостей только первый SDL и OpenGL

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от andreyu

Не помню уже, с чем это было связано (два года назад игрался), вроде были какие-то траблы на старых GPU типа PowerVR SGX 530 и Vivante GC860. Потому и решил прикрепить дополнительный буфер с корректной текстурой в GL_UNSIGNED_SHORT_5_6_5, так как с ней проблем не было.

Из того, что ещё помню, на всех PowerVR был белый экран, если сгенерированная текстура была NPOT.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Не помню уже, с чем это было связано (два года назад игрался), вроде были какие-то траблы на старых GPU типа PowerVR SGX 530 и Vivante GC860. Потому и решил прикрепить дополнительный буфер с корректной текстурой в GL_UNSIGNED_SHORT_5_6_5, так как с ней проблем не было.

Вместо GL_LUMINANCE/GL_UNSIGNED_BYTE можно использовать GL_RED или GL_ALPHA и соответствующий шейдер (брать r или a канал текстуры).
Я это к тому, что кроме экономии текстурной памяти, экономится время на заполнение буфера и время на аплоад в текстурную память.
А экономия получается в два раза, что весьма существенно.

Из того, что ещё помню, на всех PowerVR был белый экран, если сгенерированная текстура была NPOT.

Если использовать gles1, то текстуры должны быть pot. Если использовать gles2, то поддержка npot должна быть.
При использовании gles1 можно проверять соответствующее расширение. Но лучше просто использовать pot текстуры. В общем случае выборка из pot текстур получается быстрее.

andreyu ★★★★★
()
Последнее исправление: andreyu (всего исправлений: 1)
Ответ на: комментарий от andreyu

Спасибо за советы, учту на будущее.

По идее, надо было на OpenGL|ES 2.0 всё это сразу переписывать. Но побоялся что-то, думал некоторые старые устройства отпадут. А недавно вот посмотрел, даже самые-самые старые девайсы с тем же PowerVR SGX 530, без проблем держат его. Один лишь Adreno 130 и прочие устройства на богом забытом armv6 ограниченны 1.1

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Но побоялся что-то, думал некоторые старые устройства отпадут.

Есть устройства, на которых и gles1 еле шевелится. Но про такие устройства лучше не вспоминать :)

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.