首页 文章

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

提问于
浏览
0

我创建了一个Android应用程序,我想移植到iOS和Windows平台 . 我知道我可以使用C#和Xamarin创建这种程序,因为我之前已经尝试过这种事情;但是,我宁愿不必将所有代码转换为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#,但我正在处理一个相当复杂的程序 .

1 回答

  • 0

    基本上,你不能 . 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以及与操作系统交互的任何内容 .

    对于您的UI,您有两个选择 - 使用Xamarin.iOS,Xamarin.Android和UWP编写它(因此使用本机SDK构建您的应用程序),或使用Xamarin.Forms,它为您提供跨本机API的抽象,允许您编写你的用户界面一次(妥协是你得到一个最低的公分母方法,如果你想做一些花哨的东西,你需要直接与本机API交互) .

    TL; DR - 您不能只使用Xamarin神奇地移植您的Android应用程序,您需要重新编写它 .

相关问题