Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Giena
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 8
1

Разбор примера teapot из NDK

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

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

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

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

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

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

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

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

2) Во многих классах из NDKHelper.h используется #include "JNIHelper.h", однако функции данного класса не использованы. Вопрос, зачем он туда включен?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2015, 16:10
Ответы с готовыми решениями:

Подключить стороннюю NDK-библиотеку к своему NDK-проекту
Пытаюсь подключить к своему (на самом деле не совсем своему) NDK-проекту стороннюю библиотеку...

Разбор примера
Paulla does not ussually have breakfast. Почему в предложение have, а не has?

Потоки, разбор примера
C:\\masm32\examples\threads\multidl\multidl.asm и его содержимое include...

Разбор примера рекурсии
Привет никак не могу понять зачем автор книги добавил в пример -1, пробовал без него, так код тогда...

Разбор примера из книги
В книге приведен пример с использованием this. Но не до конца понимаю 3 строку и следовательно 5 и...

1
EVP
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
23.11.2015, 22:36 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 на С/С++.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2015, 22:36

Разбор примера TCP server
Не понимаю почему эта конструкция работает: Имеется код: void GenericTCPServer(void) { BYTE i;...

Разбор примера работы побитового И
Здравствуйте, в процессе моего изучения побитовых операций возникли некоторый вопросы, на которые...

Разбор примера. Вторая производная
В книге при разборе примера: y'=({cos}^{3}x) Получили: y'=-3{cos}^{2}x*sinx - Как это? Ведь...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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