2013-04-02 18 views
6

1) W przypadku dostępności bibliotek natywnych iOS i Android, jaki będzie właściwy, skuteczny i łatwiejszy krok do podjęcia, aby korzystać z biblioteki do tworzenia aplikacji wieloplatformowej? Powiązanie biblioteki Androida lub systemu iOS? Jeśli powiązamy bibliotekę natywną Androida, czy będziemy mogli korzystać z tej biblioteki powiązanej w aplikacji Xamarin.iOS i na odwrót?Xamarin: Korzystanie z biblioteki Native

2) Czy w przypadku dostępności biblioteki C++ można skorzystać z tej biblioteki, aby utworzyć aplikację wieloplatformową?

Z góry dziękuję!

(tylko początkujący w Xamarin, więc wymówek jeśli pytanie wydaje się być nieodpowiednie)

Odpowiedz

2
  1. Native iOS i biblioteki Android są zazwyczaj dość różne (biblioteki iOS są powszechnie napisany w bibliotekach Objective-C i Android w Javie) iz tego powodu powiązania dla każdego będą się różnić. Nawet jeśli interfejs API był identyczny, różnica pomiędzy Objective-C i Javą wystarczy, aby powiązania również musiały być inne.

  2. Tak, można używać C++ w projektach iOS i Android, ale mechanizm jest inny. Istnieje kilka opcji tutaj:

    • pomocą narzędzia takiego jak SWIG tworzenia zarządzanych powiązań dla biblioteki C++. This to także interesująca lektura.

    • Utwórz bibliotekę C, która otacza bibliotekę C++, a następnie użyj standardowego mechanizmu P/Invoke dostępnego w zarządzanym kodzie w celu interakcji z biblioteką C.

+0

Dzięki! Używana biblioteka nie zawiera żadnych kodów specyficznych dla platformy i służy tylko do połączenia urządzenia ze zdalnym serwerem. Ta biblioteka jest dostępna na Objectve-C, Java i C++. Potrzebuję powiązania z nim, aby uzyskać dostęp jako biblioteka klasy C#. Więc jeśli wiążę którąkolwiek z tych bibliotek, czy będę mógł korzystać z różnych projektów Xamarin? Na przykład: Jeśli wiążę dostępną bibliotekę Java do C#, czy mogę również użyć tej biblioteki powiązanej w moim projekcie Xamarin.iOS? –

+0

Nie, nie będzie można używać powiązań Java (ani samej biblioteki Java) w systemie iOS, ponieważ Java działa tylko w systemie Android. Powinieneś jednak móc korzystać z wersji C++ zarówno w systemie iOS, jak i Android (w tym przypadku zarządzalne powiązanie byłoby również możliwe). –

+0

Tak więc, teraz postanawiam użyć wersji C++ biblioteki na mojej aplikacji crossowej. Wielkie dzięki. –

Powiązane problemy