公司的桌面端軟體是 c# 的,安卓端是 java 的,有些功能在 c# 上已經實作了,不想在安卓上用 java 再實作一遍,想著不是說.net core可以跨平臺嗎? 那用最新的 .net core3.1 能否生成在安卓上 java 可以直接呼叫的庫呢?
謝謝指教.
uj5u.com熱心網友回復:
可以啊,你在android里面跑一套ubuntu server虛擬機,在ubuntu server虛擬機里面再跑一套.net core。
uj5u.com熱心網友回復:
顯然不能,.net生成的好像是dll吧 而Java使用的是jar。。。。uj5u.com熱心網友回復:
如果你的目標是面向不同設備的開發,基本使用同一套代碼。Dotnet方向建議你使用Xamarin。【Xamarin 允許你使用 .NET 代碼和特定于平臺的用戶界面生成適用于 Android、iOS 和 macOS 的本機應用。】
https://docs.microsoft.com/zh-cn/xamarin/
如果你的目標是集成Dotnet和Java服務,
最常見 的方式就是進行服務間互動,使用一定的行程間通訊協議。比如Java程式使用微軟的SQL服務就是一種例子。
如果你只是想了解Java和Dotnet可能的呼叫機制,那么要理解:
1、跨平臺是支持在不同平臺下作業,它不等同于支持被任何宿主呼叫。
2、Dotnet編譯出來的程式(程式部分是Dotnet的中間語言),*需要有一個Dotnet的運行器*。該運行器理解Dotnet程式,可以即時編譯dotnet中間語言,可以提供垃圾回收等等宿主服務。
3、同樣的,Java程式也是編譯成中間語言,也需要一個運行器(Java Virtual Machine)來裝入,即時編譯,和垃圾回收服務等。
因此,目前Java是不能直接裝入Dotnet程式的,反之亦然。但是,可以有這么一個宿主,該宿主同時裝入Dotnet運行期和Java運行期,那么是可以在實作在一個行程里,同時運行dotnet和java代碼。但是,dotnet和java還是不能直接互相理解,它們之間的任何呼叫/互動,需要額外的努力,比如需要宿主從中翻譯和調停。
uj5u.com熱心網友回復:
找有點經驗的同事問問uj5u.com熱心網友回復:
不清楚,我沒試過。https://blog.csdn.net/u012878073/article/details/84936396
uj5u.com熱心網友回復:
改成web Api就可以轉載請註明出處,本文鏈接:https://www.uj5u.com/net/29691.html
標籤:C#
