C# 比JAVA弱嗎?用C#一份源碼同時生成安卓和iOS APP(c反應蛋白高說明什么)
Visual Studio 2019調試 安卓和IOS開發的app
上圖為C# 同一份源碼在紅米note 1S 的真機上運行安卓app,和iphone 13 模擬器運行iOS版app。 (因為iOS要在iphone真機中調試,還需要其它操作開發環境配置,會在后續文中詳解。)
寫在最前:
本文將以最簡單明了闡述 C#一份源碼同時開發出iOS和Android的app, 為讓不懂技術小白和初學者都一看就懂,故會跳過其它博主已經發布的xamarin建項目每步步驟,要學習可以參考他們。
1、在VS2019中項目解決方案結構:
在Visual Studio 2019中項目模板選擇 移動應用(Xamarin.Forms)創建項目,會獲得上圖中的解決方案結構。
解決方案結構有三個項目組成,它們是
- StockDiffEanrs,源碼項目,所有的C#源碼,和UI設計在這里面開發
- StockDiffEarns.Android,安卓項目
- StockDiffEarns.IOS, iOS項目
重點在這里,不需要同時編寫Android項目和iOS項目的源碼,只需要在第一個源碼項目中完成,即一份c#代碼同時完成Android和iOS app開發。
2、展開第一個項目開發UI,如下圖
1) 新建Views文件夾,
2) 在該文件夾下,添加新項,選擇內容頁,取名“CalcT.xaml”
3) 在CalcT.xaml中編寫代碼如上圖,該部分代碼就是app的UI 部分
至此 Android app和iOS app 的UI 界面就同時完成了!
3、編寫C# 代碼完成實際功能
- 該app只有一個按鈕功能就是計算差價
如上圖,點開CalcT.xaml在它對應的 CalcT.xaml.cs文件中編寫C#代碼
代碼原理:計算差價,差價是負數,顯示金額并以綠色顯示,否則紅色顯示,并保留2數小數。
4、運行調試安卓app
1) 如上圖選擇 “Android設備管理器”
2) 在打開窗口中,新建一個安卓仿真器。 (過程中會連網下載安卓調試缺失的環境,會因為國內連接GOOGLE服務器不暢問題導致創建失敗。根據對應錯誤網上查找解決辦法)
3) 將第二個安卓項目設為啟動項目
4) 從創建的安卓仿真器運行 app
5) 運行過程VS2019會自動編譯,并啟動仿真器,將app部署進安卓仿真器中,顯示運行結果:
5、安卓app放到安卓手機中安裝運行
1) 當完成上述過程,仿真器運行后在安卓項目文件夾下已經生成了apk安裝包,那能直接拿去用呢?
答案是可以,但是需要改變VS2019編譯方式從Debug模式改Release模式,再重新編譯一次。要問為什么,原因就是本人親測不這樣做直接在安卓手機中可以安裝,但運行會閃退!
右擊第二個安卓項目,點擊屬性。顯示上圖。 取消兩處勾選,將改為Release模式
2) 更改安卓app最低支持的安卓版本
如果最低版本選擇安卓5.0,這樣安卓4以下都無法安裝此安裝包。博主要在老手機安卓4.4.4紅米note1s 的MIUI中運行,所以這里選擇了4.3。 另外有小米MIX4 miui12 同樣可以運行
6、生成iOS app并運行調試
安卓的C#代碼 開發的app可直接生成iOS app并調試,但因為蘋果設備特殊限制,Winddows電腦需要無線連著蘋果電腦, 同時蘋果電腦已經安裝相應的XCODE 版本。
為了實現這個調試,VS2019需要 XCODE 12以上 蘋果電腦進行協同工作,不同的XCODE 版本有最低限度支持的macOS版本。所以,本人的蘋果電腦macOS版本不支持運行XCODE 12,不得不將蘋果電腦系統升級為了macOS 11.7, 這樣就能運行 XCODE 13.1 比 XCODE12 高肯定支持。 經過一番折騰終于讓蘋果電腦系統和開發環境達到要求。
1)連接蘋果電腦,右擊第三個項目,設置為啟動設備,點擊VS2019調試按鈕,VS2019提示遠程連接蘋果電腦的步驟后進入狀態,
VS2019遠程連接MAC xcode
VS2019會自動檢測蘋果電腦的Mono版本
檢查Xamarin SDK版本,如果版本不一致或缺失會自動安裝
最后會檢查XCODE版本,這個不一致,則需要我們開發者手動在蘋果電腦上安裝!~
一切通過后,則顯示蘋果iOS設備仿真器
在iphone 13仿真器中運行APP
在iphone真機中調試后在后續文章,喜歡的朋友可以收藏或關注
7、生成iOS app在iPhone和iPad中部署
?在蘋果設備真機中部署iOS app則需要在MAC電腦中USB連接iPhone并啟動XCODE遠程和Windows連接才能調試,會在后續文章闡述。
寫在最后:
本文開宗明義,以最簡單直白的圖文大家能快速了解C#的強大和跨平臺特性,一份代碼同時生成Android和iOS app。在開發中遇到的情況和避坑文中已盡量做到詳細。
針對軟件產品經理和軟件公司老板,或者有意外包的客戶。請不要因為如此覺得程序員的工作量得到的降低。應該看到是一個開發團隊同時完成了兩個開發團隊的工作量。 這樣的好處是讓app開發效率提高,不是工作量的降低,讓app程序在后續中的維護和二次開發、版本管理,相應的統一。這樣的好處不是針對程序員本身,恰恰這優點是針對軟件公司老板,和產品源碼交付給客戶后的管理和二次開發。
如今.NET開源, 并在跨平臺上得到很全面的發展,C#做為.NET頂流開發語言,它的優點,跨平臺性、類庫豐富性從PC到移動端開發,可以說是一枝獨秀。值得初學者明白和學習,開發者在真實的工作中多了一個強有力的移動平臺開發語言和工具!