2013-04-02 13 views
6

1) In caso di disponibilità di librerie native iOS e Android, quale sarà la procedura appropriata, più efficiente e più facile da eseguire, per utilizzare la libreria per lo sviluppo di un'applicazione multipiattaforma? Binding libreria Android o iOS? Se leghiamo la libreria nativa di Android, saremo in grado di utilizzare questa libreria associata nell'applicazione Xamarin.iOS e viceversa?Xamarin: utilizzo della libreria nativa

2) In caso di disponibilità di una libreria C++, è possibile utilizzare questa libreria per sviluppare un'applicazione multipiattaforma?

Grazie in anticipo!

(solo un principiante in Xamarin, così scuse se la domanda sembra essere inadeguato)

risposta

2
  1. iOS native e librerie Android sono di solito molto diversa (librerie iOS sono comunemente scritto in Objective-C e Android librerie in Java), e per questo motivo i collegamenti per ciascuno saranno diversi. Anche se l'API era identica, la differenza tra Objective-C e Java è sufficiente anche per i binding.

  2. Sì, è possibile utilizzare C++ nei progetti iOS e Android, ma il meccanismo è diverso. Ci sono un paio di opzioni qui:

    • Utilizzare uno strumento come SWIG per creare attacchi gestite per la libreria C++. This è anche una lettura interessante.

    • Creare una libreria C che avvolge la libreria C++ e quindi utilizzare il meccanismo P/Invoke standard disponibile nel codice gestito per interagire con la libreria C.

+0

Grazie! La libreria che sto utilizzando non contiene codici specifici per piattaforma e viene utilizzata solo per collegare un dispositivo a un server remoto. Questa libreria è disponibile su Objectve-C, Java e C++. Ho bisogno di un legame per accedere come libreria di classi C#. Quindi, se legherò una di queste librerie, sarò in grado di utilizzare diversi progetti Xamarin? Ad esempio: Se lego la libreria java disponibile a C#, posso usare questa libreria associata nel mio progetto Xamarin.iOS? –

+0

No, non sarà possibile utilizzare i binding Java (né la libreria Java stessa) su iOS, poiché Java funziona solo su Android. Dovresti comunque essere in grado di utilizzare la versione C++ su iOS e Android (e anche in questo caso l'associazione gestita potrebbe essere condivisa). –

+0

Quindi, ora decido di utilizzare la versione C++ della libreria sulla mia applicazione multipiattaforma. Molte grazie. –

Problemi correlati