Xamarin.Android ile Java tümleştirmesi

Java ekosistemi, çeşitli ve muazzam bir bileşen koleksiyonu içerir. Bu bileşenlerin çoğu, Bir Android uygulaması geliştirmek için gereken süreyi azaltmak için kullanılabilir. Bu belge, geliştiricilerin Xamarin.Android uygulama geliştirme deneyimlerini geliştirmek için bu mevcut Java bileşenlerini nasıl kullanabileceğine ilişkin üst düzey bir genel bakış sunar.

Genel bakış

Java ekosisteminin kapsamı göz önünde bulundurulduğunda, Xamarin.Android uygulaması için gerekli olan tüm işlevlerin Java'da kodlanmış olma olasılığı yüksektir. Bu nedenle, bir Xamarin.Android uygulaması oluştururken mevcut kitaplıkları yeniden kullanmayı denemek caziptir.

Xamarin.Android uygulamasında Java kitaplıklarını yeniden kullanmanın üç olası yolu vardır:

  • Java Bağlamaları Kitaplığı Oluşturma – Bu teknikle, Java türlerinin çevresinde C# sarmalayıcıları oluşturmak için bir Xamarin.Android projesi kullanılır. Bir Xamarin.Android uygulaması daha sonra bu proje tarafından oluşturulan C# sarmalayıcılara başvurabilir ve dosyayı kullanabilir .jar .

  • Java Yerel Arabirimi – Java Yerel Arabirimi (JNI), Java dışı kodun (C++ veya C# gibi) bir JVM içinde çalışan Java kodu tarafından çağrılmasına veya çağrılmasına olanak tanıyan bir çerçevedir.

  • Kodu taşıma – Bu yöntem Java kaynak kodunu alıp C# koduna dönüştürmeyi içerir. Bu el ile veya Sharpen gibi otomatik bir araç kullanılarak yapılabilir.

İlk iki tekniğin merkezinde Java Native Interface (JNI) bulunur. JNI, Java'da yazılmayan uygulamaların java sanal makinesinde çalışan Java koduyla etkileşim kurmasına olanak tanıyan bir çerçevedir. Xamarin.Android, C# kodu için bağlamalar oluşturmak için JNI kullanır.

İlk teknik, Java kitaplıklarını bağlamaya yönelik daha otomatik ve bildirim temelli bir yaklaşımdır. Xamarin.Android tarafından sağlanan Mac için Visual Studio veya Visual Studio proje türünü (Java Bağlamaları Kitaplığı) kullanmayı içerir. Bu bağlamaları başarıyla oluşturmak için Java Bağlamaları Kitaplığı hala bazı el ile değişiklikler gerektirebilir, ancak saf bir JNI yaklaşımı kadar gerekli olmayabilir. Java Bağlama kitaplıkları hakkında daha fazla bilgi için bkz . Java Kitaplığı bağlama.

JNI kullanan ikinci teknik çok daha düşük bir düzeyde çalışır, ancak normalde Java Bağlama Kitaplığı aracılığıyla erişilmeyecek Java yöntemlerine daha ayrıntılı denetim ve erişim sağlayabilir.

Üçüncü teknik, önceki iki teknikten büyük ölçüde farklıdır: kodu Java'dan C# 'ye taşıma. Kodu bir dilden diğerine taşıma çok zahmetli bir süreç olabilir, ancak Sharpen adlı bir aracın yardımıyla bu çabayı azaltmak mümkündür. Sharpen, Java-C# dönüştürücüsü olan bir açık kaynak aracıdır.

Özet

Bu belge, Java kitaplıklarının Xamarin.Android uygulamasında yeniden kullanılabilmesinin bazı farklı yollarına üst düzey bir genel bakış sağladı. Bağlamalar ve yönetilen çağrılabilen sarmalayıcılar kavramlarını tanıtmış ve Java kodunu C# diline taşıma seçenekleri ele alınmıştı.