C ++ библиотека для мобильных приложений - PullRequest
0 голосов
/ 11 ноября 2011

У меня есть собственная библиотека C ++ с исходным кодом. Он содержит такие функции, как: CreateDvice, FillDevice, CloseDevice и т. Д. Нет зависимости от каких-либо сторонних библиотек. Требуется создать приложение для мобильной платформы:

  1. Blackberry
  2. iPhone
  3. Android

Приложение должно использовать логику, предоставляемую этой библиотекой. Есть ли шанс использовать существующую библиотеку в мобильном приложении или хотя бы некоторые из них? Или требуется заново реализовать библиотечный код для каждой платформы?

Ответы [ 7 ]

3 голосов
/ 11 ноября 2011

Для iOS (iPhone / iPad) вы можете напрямую скомпилировать свою библиотеку и использовать ее из обычного приложения для iOS, написанного на Objective-C ++ и / или C ++.

Для Android вы можете напрямую скомпилировать свою библиотеку с помощью NDK , затем либо напишите свое приложение на Java и позвоните в свою библиотеку через JNI, либо напишите все приложение на C ++, используя NDK.

Я полагаю, что вам не повезло в Blackberry, дляна этой платформе вам нужно будет переписать свою библиотеку на Java, так как ни приложения, ни библиотеки не могут быть написаны на C ++.

Edit : см. мой другой ответ для совершенно другого подхода, который может работатьдля вас.

1 голос
/ 11 ноября 2011

Blackberry:

Технически возможно иметь ASM на BlackBerry (или Android, iPhone и т. Д.), Но сторонние разработчики часто не допускаются (или не могут в этом случае)BlackBerry).

iPhone:

Абсолютно.Вы можете статически связать библиотеку C ++.Конечно, он должен быть скомпилирован с правильным набором инструкций.Есть множество примеров того, как это сделать.Переведите - вам понадобится код.

Android:

Абсолютно.Есть хорошая книга по этому вопросу Марка Мерфи.Вводный материал здесь: http://www.androidguys.com/2009/10/14/android-beyond-java-part-one/

0 голосов
/ 05 февраля 2013

Для Blackberry вы можете использовать C ++ / Qt Cascades; для iOS вы можете использовать C / C ++ и Objective-C (расширенный набор C), а Android - C ++ NDK. Вы можете использовать Java на всех платформах, если приложения Java автономны, а JRE предварительно упаковано с приложением (iOS). Вы можете взаимодействовать с библиотеками C / C ++, используя JNI

0 голосов
/ 22 ноября 2011

Android изначально не является Java, это изначально C ++.И iOS тоже изначально C ++.Так почему бы просто не оставить код C ++ нетронутым и отбросить текущую платформу RIM (поскольку они переходят на BBX, который также поддерживает C ++).

0 голосов
/ 11 ноября 2011

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

Я не уверен, имеет ли это смысл для вашей библиотеки, но это будет способ сохранить единую версию вашей библиотеки, и вы будете иметь гарантированное поведение на всех устройствах.

Удачи.

0 голосов
/ 11 ноября 2011

Если вы хотите использовать библиотеку Java на всех платформах, это будет работать.

Android и Blackberry изначально являются Java.

Вы можете использовать инструмент под названием XMLVM для кросс-компиляции вашегоБиблиотека Java для Objective C для использования на iOS.

http://xmlvm.org/overview/

Это не на 100% идеально, но чертовски близко.Мы широко используем его для переноса общего кода библиотеки Java на iOS.Перенесите библиотеку C ++ на Java, и все готово.

0 голосов
/ 11 ноября 2011

Ваш вопрос неясен.Вам нужна кроссплатформенная библиотека / движок для создания мобильного приложения?

Если это так, Cocos2D будет лучшим выбором.Изначально это игровой движок, но он подходит и для приложений.И он поддерживает все платформы, написанные выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...