2013-04-02 2 views
6

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

2) В случае наличия библиотеки C++ можно ли использовать эту библиотеку для разработки кросс-платформенного приложения?

Заранее благодарен!

(просто новичок в Xamarin, поэтому отговорки, если вопрос кажется неуместным)

ответ

2
  1. родной IOS и библиотеки Android, как правило, совершенно разные (библиотеки IOS обычно написаны в Objective-C библиотеки и Android в Java), и из-за этого привязки для каждого будут отличаться. Даже если API был идентичен, разницы между Objective-C и Java достаточно, чтобы привязки также отличались друг от друга.

  2. Да, в проектах iOS и Android можно использовать C++, но механизм отличается. Есть несколько вариантов здесь:

    • Используйте инструмент, как SWIG для создания управляемых привязок для библиотеки C++. This - также интересное чтение.

    • Создайте библиотеку C, которая обертывает библиотеку C++, а затем используйте стандартный механизм P/Invoke, доступный в управляемом коде, для взаимодействия с библиотекой C.

+0

Спасибо! Библиотека, которую я использую, не содержит кодов конкретной платформы и используется только для подключения устройства к удаленному серверу. Эта библиотека доступна на Objective-C, Java и C++. Мне нужна привязка к нему для доступа к библиотеке классов C#. Итак, если я свяжу любую из этих библиотек, смогу ли я использовать ее для разных проектов Xamarin? Например: если я привяжу доступную библиотеку java к C#, могу ли я также использовать эту библиотеку с привязкой в ​​моем проекте Xamarin.iOS? –

+0

Нет, вы не сможете использовать привязки Java (а также сама библиотека Java) на iOS, поскольку Java работает только на Android. Тем не менее, вы должны иметь возможность использовать версию C++ как на iOS, так и на Android (и в этом случае также будет доступно совместное использование привязки). –

+0

Итак, теперь я решаю использовать версию библиотеки на C++ в своем кросс-платформенном приложении. Большое спасибо. –

Смежные вопросы