Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Giena
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 8
#1

Разбор примера teapot из NDK - Программирование Android

23.11.2015, 16:10. Просмотров 198. Ответов 1
Метки нет (Все метки)

Здравствуйте.

Разбирая пример Teapot из примеров NDK столкнулся с непониманием определенных вещей. Информации тоже не могу толком найти. Помогите советом или хотя бы направьте, где копать.

Суть в следующем:

Класс JNIhelper представляет из себя синглтон и предлагает доступ к функциям из Java класса (NDKHelper в примере), при этом используется лок/анлок мьютекса перед использованием attachcurrentthread. Здесь вроде все ясно. Нативщина запускается в отдельном потоке (судя по докам гугла), и что бы приконнектиться к другому потоку, надо встать в очередь, а как она придет заблокировать ресурс пока им пользуешься.

В Классе же TeapotNativeActivity на с++ стороне, имеются 2 функции ShowUI и UpdateFPS, реализованные в классе TeapotNativeActivity.java, при этом никакого мьютекса не используется. Отсюда вопрос

1) Почему в одном случае ресурс лочится для потокобезопасного доступа перед attachcurrentthread, а в другом нет?

И второй вопрос.

2) Во многих классах из NDKHelper.h используется #include "JNIHelper.h", однако функции данного класса не использованы. Вопрос, зачем он туда включен?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2015, 16:10     Разбор примера teapot из NDK
Посмотрите здесь:
AS и Ndk Android
NDK C vs C++ и примеры Android
Android SDK or NDK
Подключить NDK Android
Android Android NDK
Android NDK и SDK
Android Android NDK
Использование NDK Android
Android TCP клиент в NDK
Android Где скачать NDK?
Работа с камерой и NDK Android
Android Чтение файла из ndk

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
EVP
321 / 243 / 43
Регистрация: 14.12.2010
Сообщений: 464
23.11.2015, 22:36     Разбор примера teapot из NDK #2
Цитата Сообщение от Giena Посмотреть сообщение
1) Почему в одном случае ресурс лочится для потокобезопасного доступа перед attachcurrentthread, а в другом нет?
Скорее всего, мьютекс позволяет гарантировать отсутствие изменений в полях класса ndk_helper::JNIHelper во время операций.
Цитата Сообщение от Giena Посмотреть сообщение
2) Во многих классах из NDKHelper.h используется #include "JNIHelper.h", однако функции данного класса не использованы. Вопрос, зачем он туда включен?
JNIHelper.h сам включает некторые заголовки, которые им нужны: это jni.h,vector,string.

Я посоветую поизучать пример san-angeles. Он более удобен для взаимодействия java и C++ кода.
+ Android NDK. Разработка приложений под Android на С/С++.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru