Android + cUrl кто-нибудь пробовал?

passion10

Возникла необходимость вшить в андроид приложение кусок кода на C/C++, который будет кидать HTTP-запросы и ловить ответы. Насколько я понял, для работы с http лучше всего подходит либа cUrl. Нашел более-менее норм мануал , но в силу своей криворукости никак не могу его собрать
У кого-нибудь есть успешный релевантный опыт?

agaaaa

кусок кода на C/C++
Этот кусок кода вызывается из другого куска кода на C++? Если нет, то почему именно C++, а не Java? Если да, то как ты остальной C++ собираешь и в чём проблема с этим?

passion10

Суть в том, что нужно создать модуль для нескольких партнеров, который позволит использовать им нашу систему. Модуль хочется сделать максимально закрытым, поэтому вся логика будет в нативном коде.
С cUrl я, к счастью, разобрался, теперь интересует следующее:
Андроидные библиотеки(по крайней мере те, которые я видел) распространяются прямо в виде проекта. Как правильно оформить проект, чтобы партнерам не достались исходники кода на C? На выходе ndk-build я получаю libcurl.a(собственно библиотека cUrl) и libcurltest.so(примера, использования cUrl). Можно ли удалить все остальные C исходники и оставить в проекте только эти два файла? (и вообще, что это за файлы такие? :) )
Я в этой теме пока нуб, так что буду рад любым исправлениям и подсказкам
Спасибо!

Werdna

Возникла необходимость вшить в андроид приложение кусок кода на C/C++
Андроидовские приложения как бы поздразумеваются байткодовые, чтобы не зависеть от платформы.
Ты чего-то не того хочешь. Явно.

bav46

На выходе ndk-build я получаю libcurl.a(собственно библиотека cUrl) и libcurltest.so(примера, использования cUrl). Можно ли удалить все остальные C исходники и оставить в проекте только эти два файла? (и вообще, что это за файлы такие? )
тока учти что тебе нужно научить собирать и собрать под арм5 арм7 и x86 на чем там еще андройд работает. посмотри лицензии на эти библиотеки, если они разрешают билдить себя в код тогда делай одну либину и не сношай моск, если нет то делай шаред, и под все архитектуры. при чем тут код не понял сотри его и дай апи из жавы и будет счастье тебе.
если программа не публичная положи шуй на лицензирование собери под арм7 и скажи что работает только на девайсах с 7 армом.

passion10

Спасибо за ответ, но не совсем понял варианты.
Поясню, как я себе это сейчас представляю. Модуль будет встраиваться в публичные приложения, как android library project. Т.е. желательно поддерживать все основные архитектуры.
Лицензия, вроде бы, позволяет делать что угодно
Curl and libcurl are true Open Source/Free Software and meet all definitions as such. It means that you are free to modify and redistribute all contents of the curl distributed archives. You may also freely use curl and libcurl in your commercial projects.

Опиши,плз, подробнее своё решение для такого варианта, а то я запутался и вообще не понимаю, где проявляется зависимость от архитектуры

bav46

пиши,плз, подробнее своё решение для такого варианта, а то я запутался и вообще не понимаю, где проявляется зависимость от архитектуры
жавовый код будет общий для всех.
у тебя под каждую архитектуру будет сборка arm5/libtestcurl.so, arm7/libtestcurl.so, etc
эти бинарники ты отдаешь продаешь даришь не важно. с твоей стороны нужно максимально уметь поддерживать и чинить баги под разными архитектурами, чем больше будешь поддерживать тем больше охват рынка, как показывает практика в андройде не все одинаково.
у меня только опыта под графику, вот там очень сильно зависит от производителя даже, то что работает одним образом на тегре3 будет работать по другому или вообще не работать на гнусмасовских чипах, но у нас в тестировании около 10 разных девайсов с разными версиями разными чипами + еще знакомых просим смотреть, но все равно раз в месяц находится какой-нить хрен у которого что-нить не работает
если нейтив не будет юзать специфичные платформенные штуки то проблем меньше, если будет то полезут еще версии андройдов, что добавит тоже не мало гемороя
разработка под нативный андройд эта та еще песня :grin:

passion10

Спасибо, теперь понятно :)

serega1604

Суть в том, что нужно создать модуль для нескольких партнеров, который позволит использовать им нашу систему. Модуль хочется сделать максимально закрытым, поэтому вся логика будет в нативном коде.
не думали перенести всю сверхсекретную логику на серверную часть, а партнерам предоставить описание взаимодействия с сервером?
Оставить комментарий
Имя или ник:
Комментарий: