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