Как кроссплатформенные мобильные C ++ SDK обычно работают под капотом? - PullRequest
5 голосов
/ 25 декабря 2011

Я нашел соответствующий ответ здесь: Как работают кроссплатформенные среды разработки мобильных приложений?

, но я больше думал о работе кроссплатформенных SDK для c ++ (например, Corona, Marmalade, EdgeLib и т. Д.).Они предоставляют возможность экспортировать двоичные файлы для iOS и Android, позволяя разработчику использовать код C ++.Мое предположение приведено ниже, но, пожалуйста, исправьте его, если я где-то ошибаюсь:

  1. Пользователь пишет код на C ++.
  2. SDK имеет интерфейсный уровень с функциями C ++, вызываемыми в запросе кода пользователяспецифическая функциональность мобильной ОС.Этот интерфейсный слой построен из кода, необходимого для реализации этого вызова функции SDK в конкретной мобильной ОС (написано на Java для Android и Obj-C для iOS).
  3. Часть, в которой я больше всего смущен, потому что я неу меня много опыта работы с мобильными разработчиками: есть ли в iOS и Android кросс-компиляторы C ++, которые могут компилировать общий логический код, написанный на C ++, в приложении пользователя?

Ответы [ 2 ]

5 голосов
/ 10 января 2012

MoSync является примером кроссплатформенного мобильного инструментария на основе C ++ - этот начинается с использования компилятора GCC с открытым исходным кодом для компиляции кода C ++ вашего приложения в формате, подобном сборке.Затем пользовательский инструмент MoSync (называемый «PipeTool») объединяет этот формат сборки со своими предварительно скомпилированными библиотеками в различные целевые форматы, включая байт-код Java (для Android) или источник Objective-C (для iOS).Подробнее об этом процессе здесь .

Окончательная компиляция на целевой платформе (Android или iOS) предоставляется вам с использованием встроенной среды IDE (Xcode для iOS и Eclipse IDE с Android SDK).для Android).Поэтому для создания приложения для iOS вам все равно нужно быть участником программы Apple iOS для разработчиков (например, 99 долларов США в год), тогда как Eclipse IDE и Android SDK бесплатны.

Ваш пример CoronaSDK не совсем уместен, так как Corona встраивается в собственный двоичный формат с использованием своих пользовательских серверов сборки в облаке - что там происходит, не полностью документировано, как его набор инструментов с закрытым исходным кодом.Вы платите подписку в год на Corona, чтобы иметь возможность создавать приложения.Я не уверен насчет других, которые вы упомянули (Marmalade, EdgeLib и т. Д.), Но предположил бы, что они похожи на MoSync.

4 голосов
/ 20 октября 2012

Проверьте codenameone.com - они используют Java, но в конечном итоге компилируются в C ++ для iOS и Java для Android.

Разница в том, что их среда включает в себя всю графику, и они сами создают элементы управления, так что вы получаете настоящее собственное приложение с одной базой кода.

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