您好,登錄后才能下訂單哦!
英文原文:C# is the best language for mobile app development.?Anything you can do in Objective-C, Swift or Java, you can do in C#。
中文譯意:C#是移動(dòng)應(yīng)用程序開發(fā)的最佳語言。 在Objective-C,Swift或Java中你可以做的任何事情,你都可以在C#中完成。
1)、本次分享課程適合人群如下:
1、?熱愛Xamarin跨平臺(tái)移動(dòng)開發(fā)。
2、進(jìn)一步了解和學(xué)習(xí)Xamarin For Android移動(dòng)開發(fā)知識(shí)。
Xamarin主要有這么幾項(xiàng)技術(shù),Xamarin.Android、Xamarin.iOS和Xamarin.Forms,此外還有Xamarin.UWP、Xamarin.Windows、Xamarin.WinPhone等。本次阿笨的分享課程是?Xamarin.Android系列,希望大家要看清楚課程教學(xué)重點(diǎn)和覆蓋內(nèi)容。
2)、本次分享課程包含以下干貨知識(shí)點(diǎn):
1、BIOS如何開啟Virtual Technology虛擬化技術(shù)
2、Android手機(jī)(魅藍(lán)NOTE 3)如何開啟開發(fā)者調(diào)試
3、如何快速上手通過Xamarin 創(chuàng)建移動(dòng)Android App應(yīng)用程序。
4、Android介紹以及SDK、版本。
5、Android ADB常用命令介紹
6、Android常用幾種權(quán)限(Permission)
7、Android生命周期
8、Android四大組件
9、Android六大布局(Layout)
10、Android五大存儲(chǔ)(Storage)
11、Android文件操作(File)
12、Android學(xué)習(xí)之Intent使用
13、Android頁面跳轉(zhuǎn)以及傳值(Activity)
14、Android學(xué)習(xí)之廣播使用(Broadcast)
3)、本次分享課程最終目標(biāo):
希望學(xué)完本次分享課程后能夠?qū)amarin For Android開發(fā)有一定的了解和掌握,從而減少大家的學(xué)習(xí)成本!
如果您同樣對(duì)本次分享課程?《C# Xamarin移動(dòng)開發(fā)基礎(chǔ)進(jìn)修篇》感興趣的話,那么請(qǐng)跟著阿笨一起學(xué)習(xí)吧!
廢話不多說,直接上干貨,我們不生產(chǎn)干貨,我們只是干貨的搬運(yùn)工。
2.1、Mono介紹
Mono是一個(gè)由Xamarin公司(先前是Novell,最早為Ximian)所主持的自由開放源代碼項(xiàng)目。與微軟的.NET Framework(共通語言運(yùn)行平臺(tái))不同,Mono項(xiàng)目不僅可以運(yùn)行于Windows系統(tǒng)上,還可以運(yùn)行于Linux,F(xiàn)reeBSD,Unix,OS X和Solaris,甚至一些游戲平臺(tái)。
一句話:Mono一個(gè)致力于開創(chuàng).NET在Linux上使用的開源工程。它包含了一個(gè)C#語言的編譯器,能夠使得開發(fā)人員在Linux用C#開發(fā)程序。
2.2、Xamarin 簡(jiǎn)介和工作原理
1)、Xamarin 簡(jiǎn)介
考慮如何生成 iOS 和 Android 應(yīng)用程序時(shí),許多用戶都認(rèn)為本機(jī)語言、Objective-C、Swift 和 Java 是唯一的選擇。Xamarin?它的目標(biāo)是用C#開發(fā)iOS、Android和Windows Phone原生應(yīng)用程序。
Xamarin.Android?為 .NET 開發(fā)人員提供了完整的 Android SDK。 在 Visual Studio 中使用 C# 或 F# 生成完全本機(jī)的 Android 應(yīng)用。
Xamarin.iOS?為 .NET 開發(fā)人員提供了完整的 iOS SDK。 在 Visual Studio 中使用 C# 或 F# 生成完全本機(jī)的 iOS 應(yīng)用。
Xamarin.Mac?為 .NET 開發(fā)人員提供了完整的 macOS SDK。 在 Visual Studio for Mac 中生成完全的本機(jī)應(yīng)用。
Xamarin.Forms?是一個(gè)跨平臺(tái) UI 工具包,允許開發(fā)人員有效創(chuàng)建可跨 iOS、Android、Windows Phone、通用 Windows 平臺(tái)應(yīng)用共享的本機(jī)用戶界面布局。
2)、Xamarin工作原理
Android應(yīng)用程序會(huì)被編譯為IL代碼,啟動(dòng)時(shí)再進(jìn)行JIT編譯(動(dòng)態(tài)編譯),發(fā)布程序的時(shí)候會(huì)包含一個(gè)mono runtime。
而iOS則是直接通過AOT編譯(靜態(tài)編譯)為ARM匯編代碼。具體見:http://xamarin.com/how-it-works
2.3、Xamarin Studio介紹
Xamarin Studio是一個(gè)用C#語言開發(fā)跨平臺(tái)應(yīng)用的集成開發(fā)環(huán)境,它和iOS以及AndroidSDK緊密整合。開發(fā)者可以使用Xamarin Studio在模擬器和真機(jī)上對(duì)移動(dòng)應(yīng)用進(jìn)行測(cè)試和bug調(diào)試。Xamarin Studio能夠完美支持Windows和Mac!
2.4、Visual Studio Tools for Xamarin介紹
自從微軟收購(gòu)了 Xamarin 團(tuán)隊(duì)后,將Xamarin Studio整合到了Visual Studio中了,可以說是給我們C#開發(fā)者帶來了極大的福利。微軟終于收購(gòu)了跨平臺(tái)移動(dòng)開發(fā)公司Xamarin。至于收購(gòu)金額并未得到公布。微軟云端與企業(yè)部門執(zhí)行副總裁Scot Guthrie在博客中指出,Xamarin將聯(lián)合Visual Studio為客戶提供豐富的移動(dòng)開發(fā)產(chǎn)品,開發(fā)者將能使用C#開發(fā)移動(dòng)軟件并向所有主要移動(dòng)平臺(tái)推送全原生態(tài)的移動(dòng)軟件。
由于微軟2016年2月正式收購(gòu)了Xamarin,并將Xamarin內(nèi)置到了VS2015 Update2中(Xamarin被微軟收購(gòu)后,從2016年5月開始,Xamarin for VS已經(jīng)變?yōu)槿棵赓M(fèi)并開源了),因此2016年6月發(fā)布的Xamarin for VS 4.1.0.530不再需要破解,也不再需要單獨(dú)的賬號(hào),直接安裝或者升級(jí)就是企業(yè)版了。
3.1工欲善其事,必先利其器
工欲善其事,必先利其器是說:工匠想要使他的工作做好,一定要先讓工具鋒利。比喻要做好一件事,準(zhǔn)備工作非常重要。我們不使用vs2015,我們不使用VS自帶微軟提供給我們的移動(dòng)設(shè)備模擬器,我們不使用第三方移動(dòng)設(shè)備模擬器比如:genymotion等等。大家時(shí)間都是寶貴的,把有限的時(shí)間投入到無限的工作中上。這里阿笨不陪大家折騰了,我們直接上真機(jī)真環(huán)境上開啟我們的Xamarin For Android移動(dòng)開發(fā)之旅。
早期VS2015+Xamarin Studio環(huán)境配置教程:
C#移動(dòng)跨平臺(tái)開發(fā)(1)環(huán)境準(zhǔn)備
Xamarin.Android 入門之:Xamarin+vs2015 環(huán)境搭建
vs2017安裝xamarin
3.2、為什么選擇Visual Studio 2017 宇宙第一IDE工具?
Visual Studio 2017 可是號(hào)稱宇宙第一個(gè)IDE,而且自從微軟收購(gòu)xamarin公司后,VS已經(jīng)集成了Xamarin Studio工具,我們可以在Visual studio 2015上開發(fā)移動(dòng)應(yīng)用項(xiàng)目了,現(xiàn)在升級(jí)到Visual Studio 2017 后移動(dòng)開發(fā)項(xiàng)目得到了很大的升級(jí)和完善,直接做到了安裝vs后就可以開發(fā)移動(dòng)應(yīng)用了,免去早期了很多繁瑣的java 、android sdk環(huán)境的安裝和配置工作。
可以這么說Visual Studio 2017 +是.NET程序員開發(fā)Xamarin App移動(dòng)應(yīng)用程序的最佳選擇工具!
3.3、為什么要一臺(tái)Android設(shè)備的手機(jī)?
提供的移動(dòng)模擬器啟動(dòng)速度很慢,畢竟和真機(jī)環(huán)境還是有一些出入的,所以我們應(yīng)用程序還是在部署在我們實(shí)際中的手機(jī)設(shè)備中去,真實(shí)的還原第一“現(xiàn)場(chǎng)”體驗(yàn)。
3.4、為什么需要安裝虛擬鏡像手機(jī)軟件?
小蘿貝控機(jī)大師:是一款免費(fèi)的用電腦控制手機(jī)的工具,能夠幫助你通過USB或WIFI用電腦實(shí)時(shí)控制手機(jī);可以用一臺(tái)電腦同時(shí)控制操作多臺(tái)手機(jī);可以錄制控制腳本等等。一句話說白了就是可以在電腦上實(shí)時(shí)的監(jiān)控我們的手機(jī)屏幕。
Android官網(wǎng):https://developer.android.com/guide/
Xamarin官網(wǎng):https://www.xamarin.com/? ? ??https://developer.xamarin.com/zh-cn/
專注Xamarin開源社區(qū):?https://github.com/CSharpCross?page=2
Xamarin MSDN中文文檔:?https://docs.microsoft.com/zh-cn/xamarin/
Xamarin GitHub?:https://github.com/xamarin
Xamarin Components:https://github.com/xamarin/XamarinComponents
Xamarin Components
學(xué)習(xí)Xamarin For Android移動(dòng)開發(fā),阿笨總結(jié)了兩點(diǎn):
1、具備一定的C#語言基礎(chǔ)開發(fā)知識(shí)。
只要你有一定的C#語言基礎(chǔ),那么上手Xamarin開發(fā)將毫無壓力。
2、掌握一定的Android基礎(chǔ)原理和知識(shí)。
Android界面布局(Layout)和常用的控件的使用以及Android原理知識(shí)這幾點(diǎn)必須要有一定的掌握,可以學(xué)習(xí)從java android 方面的視頻課程,因?yàn)檫@塊的android知識(shí)都是一樣的,跟開發(fā)語言并沒有什么太大的關(guān)系。
?? 小竅門:很多人覺得寫布局很煩,寫起來太困難,屬性太多,其實(shí)布局文件理解起來很簡(jiǎn)單,就把它當(dāng)做在做css+div布局就行,這樣理解起來會(huì)對(duì)我們寫布局有很大的幫助。
6.1、BIOS如何開啟Virtual Technology虛擬化技術(shù)
Virtualization Technology(VT),虛擬化技術(shù),對(duì)于安卓模擬器而言,開啟VT能夠顯著提高運(yùn)行性能和效率。
核心步驟就是:進(jìn)入BIOS,選擇Configuration選項(xiàng),選擇Intel Virtual Technology并回車并選擇Enabled。具體方法可以百度自行搜索。http://www.udaxia.com/upqd/5254.html
6.2、Android手機(jī)(魅藍(lán)NOTE 3)如何開啟開發(fā)者調(diào)試
魅藍(lán)note3怎么進(jìn)入開發(fā)者選項(xiàng)步驟:
1、點(diǎn)擊設(shè)置按鈕,先進(jìn)入設(shè)置界面,切換到全部設(shè)置界面;
2、下滑界面,進(jìn)入“關(guān)于手機(jī)”選項(xiàng),下滑界面,找到“版本號(hào)”,在“版本號(hào)”的項(xiàng)目欄里,連續(xù)點(diǎn)擊7次,就會(huì)提示開啟開發(fā)人員選項(xiàng);
3、回到設(shè)置界面,下滑到最后,就可以看到“開發(fā)人員選項(xiàng)”,進(jìn)入“開發(fā)人員選項(xiàng)”就可以打開“USB調(diào)試”了。
6.3、如何快速上手通過Xamarin?創(chuàng)建移動(dòng)Android?App應(yīng)用程序。
阿笨將帶來xamarin for android小白快速的上手一個(gè)Hello World的應(yīng)用程序示例。
初步認(rèn)識(shí)一下android移動(dòng)開發(fā),了解一下android布局文件,android資源文件,android項(xiàng)目結(jié)構(gòu)等等基礎(chǔ)知識(shí)。初步到達(dá)感受體驗(yàn)對(duì)android開發(fā)的有一個(gè)比較基本的了解和認(rèn)識(shí)吧。
6.4、Android介紹以及SDK、版本。
Android介紹是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。同時(shí)也是Google于2007年11月5日Android logo相關(guān)圖片(36張)?宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。
Android SDK:? SDK(?software development kit)軟件開發(fā)工具包,被軟件開發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。Android SDK給你提供開發(fā)測(cè)試所必須的Android API類庫(kù),開發(fā)工具。
備注:Android SDK采用了Java語言,所以需要先安裝JDK 。
參考文章:
最新Android系統(tǒng)版本與API等級(jí)對(duì)應(yīng)關(guān)系表
Android各個(gè)版本的名稱和更新
SKD版本
SKD版本
6.5、Android ADB常用命令介紹
Android 調(diào)試橋 (adb) 是一個(gè)通用命令行工具,其允許您與模擬器實(shí)例或連接的 Android 設(shè)備進(jìn)行通信。說到 ADB 大家應(yīng)該都不陌生,即 Android Debug Bridge,Android調(diào)試橋,身為 Android 開發(fā)的我們,熟練使用 ADB 命令將會(huì)大大提升我們的開發(fā)效率, ADB 的命令有很多,今天就來總結(jié)下我在開發(fā)常用到的一些 ADB 命令。
1)、Android模擬設(shè)備啟動(dòng)完成后查看連接到本地計(jì)算機(jī)上的Android設(shè)備列表:? adb devices (重點(diǎn))
2)、查看Android?版本??:adb?version
3)、啟動(dòng)?adb?server?:adb?start-server
4)、停止?adb?server?:adb?kill-server
5)、列出手機(jī)裝的所有app的包名:adb?shell?pm?list?packages
6)、列出系統(tǒng)應(yīng)用的所有包名:adb?shell?pm?list?packages?-s
7)、列出除了系統(tǒng)應(yīng)用的第三方應(yīng)用包名:adb?shell?pm?list?packages?-3
8)、安裝一個(gè)apk,執(zhí)行以下命令:adb install ?直接卸載:adb uninstall
9)、查看ADB幫助:adb?help
10)、參考文章:常用ADB命令
思考:風(fēng)靡一時(shí)的微信跳一跳小程序C#開掛程序,實(shí)現(xiàn)就是通過模擬adb發(fā)送指令給手機(jī)從而達(dá)到控制的目的。
6.6、Android常用幾種權(quán)限(Permission)
訪問網(wǎng)絡(luò)android.permission.INTERNET,訪問網(wǎng)絡(luò)連接,可能產(chǎn)生GPRS流量
獲取網(wǎng)絡(luò)狀態(tài)android.permission.ACCESS_NETWORK_STATE,獲取網(wǎng)絡(luò)信息狀態(tài),如當(dāng)前的網(wǎng)絡(luò)連接是否有效
獲取WiFi狀態(tài)android.permission.ACCESS_WIFI_STATE,獲取當(dāng)前WiFi接入的狀態(tài)以及WLAN熱點(diǎn)的信息
寫入外部存儲(chǔ)android.permission.WRITE_EXTERNAL_STORAGE,允許程序?qū)懭胪獠看鎯?chǔ),如SD卡上寫文件
更新詳細(xì)的android權(quán)限可以參考:android權(quán)限大全
6.7、Android生命周期
Android系統(tǒng)是一個(gè)多任務(wù)(Multi-Task)的操作系統(tǒng),可以在用手機(jī)聽音樂的同時(shí),也執(zhí)行其他多個(gè)程序。每多執(zhí)行一個(gè)應(yīng)用程序,就會(huì)多耗費(fèi)一些系統(tǒng)內(nèi)存,當(dāng)同時(shí)執(zhí)行的程序過多,或是關(guān)閉的程序沒有正確釋放掉內(nèi)存,系統(tǒng)就會(huì)覺得越來越慢,甚至不穩(wěn)定。為了解決這個(gè)問題,Android引入了一個(gè)新的機(jī)制,即生命周期(Life Cycle)。
6.8、Android四大組件
Android四大組件分別為activity、service、content provider、broadcast receive
6.9、Android六大布局(Layout)
六大界面布局方式包括:?線性布局(LinearLayout)、框架布局(FrameLayout)、表格布局(TableLayout)、相對(duì)布局(RelativeLayout)、絕對(duì)布局(AbsoluteLayout)和網(wǎng)格布局(GridLayout)?
6.10、Android五大存儲(chǔ)(Storage)
1、 使用SharedPreferences存儲(chǔ)數(shù)據(jù)
2、 文件存儲(chǔ)數(shù)據(jù)? ? ?
3 、SQLite數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)(重點(diǎn)學(xué)習(xí))
4 、使用ContentProvider存儲(chǔ)數(shù)據(jù)
5 、網(wǎng)絡(luò)存儲(chǔ)數(shù)據(jù)
6.11、Android文件操作(File)
Android 中資源分為兩種,一種是res下可編譯的資源文件, 這種資源文件系統(tǒng)會(huì)在R.java里面自動(dòng)生成該資源文件的ID,訪問也很簡(jiǎn)單,只需要調(diào)用R.XXX.id即可;第二種就是放在assets文件夾下面的原生資源文件,放在這個(gè)文件夾下面的文件不會(huì)被R文件編譯,所以不能像第一種那樣直接使用.Android提供了一個(gè)工具類,方便我們操作獲取assets文件下的文件:AssetManager
6.12、Android學(xué)習(xí)之Intent使用
Xamarin Android中Activity之間傳遞一個(gè)簡(jiǎn)單的數(shù)值
//傳入 ? ? ?
Intent?it?=new?Intent(this,typeof(OtherActivity)); ?
it.PutExtra("name","科比")??
StartActivity(it);??
//接收 ?
string?Name?=?Intent.GetStringExtra("name"); ?
Xamarin Android中Activity之間傳遞多個(gè)數(shù)值傳遞多個(gè)值可以使用Bundle對(duì)象作為容器,通過調(diào)用Bundle的Put**** 先將數(shù)據(jù)存儲(chǔ)到Bundle中,然后調(diào)用Intent的PutExtras方法將Bundle存入Intent中,調(diào)用的時(shí)候也是一樣的道理。這種鍵值的形式傳遞數(shù)據(jù),區(qū)分大小寫,注意!?
//傳入??
Intent?it?=?new?Intent(this,typeof(OtherActivity));?
?Bundle?bd?=?new?Bundle();??
bd.PutBoolean("isNiubi",true);??
bd.PutInt("Id",123456);??
?bd.PutString("name","詹姆斯");?
?it.PutExtras(bd);?
?StartActivity(it);?
?//接收
Bundle?bd?=?Intent.Extras; ?
int?Id?=?bd.GetInt("Id");
string?Name?=?bd.GetString("name");?
bool?niubi?=?bd.GetBoolean("niubi");??
6.13、Android頁面跳轉(zhuǎn)以及傳值(Activity)
開啟一個(gè)新的Activity有兩種方法:StartActivity()和StartActivityForResult()。
?startActivity好理解,startActivityForResult()就麻煩一點(diǎn),下面這張圖方便我們的理解:
requestCode,請(qǐng)求碼,自己隨意設(shè)置,但必須是非負(fù)數(shù)。只有是非負(fù)數(shù)時(shí),Activity退出時(shí),這個(gè)碼會(huì)返回到onActivityResult()。
resultCode,結(jié)果碼,用于標(biāo)識(shí)返回?cái)?shù)據(jù)來自于哪個(gè)新Activity,它的值一般是RESULT_CANCELED, RESULT_OK, RESULT_FIRST_USER。
startActivityForResult圖解
6.14、Android學(xué)習(xí)之廣播使用(Broadcast)
廣播是Android中一種很重要的傳遞消息的方式。
廣播可以靜態(tài)的注冊(cè),也可以動(dòng)態(tài)的注冊(cè) 。
靜態(tài)注冊(cè)就是在AndroidManfiest.xml文件夾中注冊(cè)。(靜態(tài)注冊(cè)就是在AndroidManfiest.xml文件夾中注冊(cè))
動(dòng)態(tài)注冊(cè)就是在代碼中實(shí)現(xiàn)。
1、我們應(yīng)該具有網(wǎng)管的精神-重啟!。我們必須承認(rèn)事物沒有完美的,況且Xamarin還在進(jìn)化階段,有bug是很正常的,不穩(wěn)定也可以理解。我之前經(jīng)常遇到VS掛掉、連接模擬器失敗,怎么都解決不了、代碼不按照正常思維執(zhí)行、VS自己閃退、視圖編輯器打開失敗、編譯總是失敗等等一些問題,經(jīng)過重啟環(huán)境更甚至于重啟電腦后,一切正常!
2、阿笨計(jì)劃后續(xù)將給大家?guī)韺?shí)際項(xiàng)目中開發(fā)的一個(gè)Xamarin For Adroid App應(yīng)用程序。到時(shí)候在《C# Xamarin移動(dòng)開發(fā)項(xiàng)目實(shí)戰(zhàn)篇》課程中,阿笨將自己的實(shí)際項(xiàng)目經(jīng)驗(yàn)毫無保留的分享給大家。快速通過Xamarin打造一個(gè)Android適合于后端管理系統(tǒng)App應(yīng)用程序。如果您繼續(xù)感興趣的話可以跟著阿笨一起學(xué)習(xí)吧。欲知后事如何,且看下回分解!
俗話說的好:師父領(lǐng)進(jìn)門修行在個(gè)人,希望大家在學(xué)習(xí)的道路上一直堅(jiān)持下去!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。