繁体   English   中英

如何使用Android应用程序的源代码(Java)使用xamarin制作跨平台程序

[英]How to use an android app's source code (in Java) to make a cross-platform program with xamarin

我创建了一个Android应用,希望将其移植到iOS和Windows平台。 我知道我可以在Xamarin中使用C#创建此类程序,因为我之前已经尝试过这种方法。 但是,我不希望不必将所有代码都转换为C#,因为那样会很费时,最终也不会很好地利用我的时间。 从我在Xamarin文档中阅读的描述来看,这似乎是可行的,只是我不确定如何做到。 为了澄清起见,我希望Xamarin使用Java代码(Android应用程序源代码)来创建相同的应用程序,但是要在iOS和通用Windows平台上使用。 提前致谢。

我的意思示例:从此Java代码生成一个应在所有平台上执行完全相同的操作的应用程序:

AlertDialog.Builder uselessAlert=new AlertDialog.Builder(this);
uselessAlert.setMessage("Pointless Button v");
uselessAlert.setPositiveButton("Ok",new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {}});
uselessAlert.create().show();

当然,这是一个非常无用的程序,可以轻松地转换为C#,但是我要处理的是一个相当复杂的程序。

基本上,你不能。 Xamarin是一个工具集,为iOS和Android提供C#和F#编译器,以及本机iOS和Android SDK的包装。 您可以通过绑定库来调用Java代码,因此可以调用现有的Android Java库,但是只能从Android应用程序而不是iOS应用程序调用,因为运行Java代码所需的API特定于Android。 在上面的代码段中,引用AlertDialog。 这是一个Android API,您可以从Xamarin Android应用程序以C#调用此方法,但是无法从iOS或UWP应用程序调用此方法-该API根本不存在。 您将需要针对每个平台重新编写此代码。

Xamarin跨平台的方式是因为您可以编写您的业务逻辑-因此,不需要直接与操作系统进行交互的所有内容(即,无需UI代码)一次,然后从iOS,Android和UWP应用程序中进行引用。

您首先需要做的是重组您的核心业务逻辑,并用C#或F#重写它。 然后,您需要考虑UI以及与OS交互的任何事物。

对于您的UI,您有两种选择-使用Xamarin.iOS,Xamarin.Android和UWP编写(因此请使用本机SDK来构建您的应用程序),或使用Xamarin.Forms来为您提供跨本机API的抽象,从而使您能够一次编写您的UI(妥协是获得最低的公分母方法,如果您想做一些花哨的东西,则需要直接与本机API交互)。

TL; DR-您不仅可以使用Xamarin神奇地移植您的Android应用,还需要重新编写它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM