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