C# Xamarin移動開發基礎進修篇

1、課程介紹

英文原文:C# is the best language for mobile app development. Anything you can do in Objective-C, Swift or Java, you can do in C#。css

中文譯意:C#是移動應用程序開發的最佳語言。 在Objective-C,Swift或Java中你能夠作的任何事情,你均可以在C#中完成。html

1)、本次分享課程適合人羣以下:java

一、 熱愛Xamarin跨平臺移動開發。android

二、進一步瞭解和學習Xamarin For Android移動開發知識。git

Xamarin主要有這麼幾項技術,Xamarin.Android、Xamarin.iOS和Xamarin.Forms,此外還有Xamarin.UWP、Xamarin.Windows、Xamarin.WinPhone等。本次阿笨的分享課程是 Xamarin.Android系列,但願你們要看清楚課程教學重點和覆蓋內容。程序員

2)、本次分享課程包含如下乾貨知識點:github

一、BIOS如何開啓Virtual Technology虛擬化技術shell

二、Android手機(魅藍NOTE 3)如何開啓開發者調試數據庫

三、如何快速上手經過Xamarin 建立移動Android App應用程序。小程序

四、Android介紹以及SDK、版本。

五、Android ADB經常使用命令介紹

六、Android經常使用幾種權限(Permission)

七、Android生命週期

八、Android四大組件

九、Android六大布局(Layout)

十、Android五大存儲(Storage)

十一、Android文件操做(File)

十二、Android學習之Intent使用

1三、Android頁面跳轉以及傳值(Activity)

1四、Android學習之廣播使用(Broadcast)

3)、本次分享課程最終目標:

但願學完本次分享課程後可以對Xamarin For Android開發有必定的瞭解和掌握,從而減小你們的學習成本!

若是您一樣對本次分享課程 《C# Xamarin移動開發基礎進修篇》感興趣的話,那麼請跟着阿笨一塊兒學習吧!

廢話很少說,直接上乾貨,咱們不生產乾貨,咱們只是乾貨的搬運工。

2、概念名稱含義解釋

2.一、Mono介紹

Mono是一個由Xamarin公司(先前是Novell,最先爲Ximian)所主持的自由開放源代碼項目。與微軟的.NET Framework(共通語言運行平臺)不一樣,Mono項目不只能夠運行於Windows系統上,還能夠運行於Linux,FreeBSD,Unix,OS X和Solaris,甚至一些遊戲平臺。

一句話:Mono一個致力於開創.NET在Linux上使用的開源工程。它包含了一個C#語言的編譯器,可以使得開發人員在Linux用C#開發程序。

2.二、Xamarin 簡介和工做原理

1)、Xamarin 簡介

考慮如何生成 iOS 和 Android 應用程序時,許多用戶都認爲本機語言、Objective-C、Swift 和 Java 是惟一的選擇。Xamarin 它的目標是用C#開發iOS、Android和Windows Phone原生應用程序。

Xamarin.Android 爲 .NET 開發人員提供了完整的 Android SDK。 在 Visual Studio 中使用 C# 或 F# 生成徹底本機的 Android 應用。

Xamarin.iOS 爲 .NET 開發人員提供了完整的 iOS SDK。 在 Visual Studio 中使用 C# 或 F# 生成徹底本機的 iOS 應用。

Xamarin.Mac 爲 .NET 開發人員提供了完整的 macOS SDK。 在 Visual Studio for Mac 中生成徹底的本機應用。

Xamarin.Forms 是一個跨平臺 UI 工具包,容許開發人員有效建立可跨 iOS、Android、Windows Phone、通用 Windows 平臺應用共享的本機用戶界面佈局。

2)、Xamarin工做原理

Android應用程序會被編譯爲IL代碼,啓動時再進行JIT編譯(動態編譯),發佈程序的時候會包含一個mono runtime。

而iOS則是直接經過AOT編譯(靜態編譯)爲ARM彙編代碼。具體見:http://xamarin.com/how-it-works

2.三、Xamarin Studio介紹

Xamarin Studio是一個用C#語言開發跨平臺應用的集成開發環境,它和iOS以及AndroidSDK緊密整合。開發者可使用Xamarin Studio在模擬器和真機上對移動應用進行測試和bug調試。Xamarin Studio可以完美支持Windows和Mac!

2.四、Visual Studio Tools for Xamarin介紹

自從微軟收購了 Xamarin 團隊後,將Xamarin Studio整合到了Visual Studio中了,能夠說是給咱們C#開發者帶來了極大的福利。微軟終於收購了跨平臺移動開發公司Xamarin。至於收購金額並未獲得公佈。微軟雲端與企業部門執行副總裁Scot Guthrie在博客中指出,Xamarin將聯合Visual Studio爲客戶提供豐富的移動開發產品,開發者將能使用C#開發移動軟件並向全部主要移動平臺推送全原生態的移動軟件。

因爲微軟2016年2月正式收購了Xamarin,並將Xamarin內置到了VS2015 Update2中(Xamarin被微軟收購後,從2016年5月開始,Xamarin for VS已經變爲所有免費並開源了),所以2016年6月發佈的Xamarin for VS 4.1.0.530再也不須要破解,也再也不須要單獨的帳號,直接安裝或者升級就是企業版了。

3、Xamarin  App移動開發環境和工具

3.1工欲善其事必先利其器

工欲善其事,必先利其器是說:工匠想要使他的工做作好,必定要先讓工具鋒利。比喻要作好一件事,準備工做很是重要。咱們不使用vs2015,咱們不使用VS自帶微軟提供給咱們的移動設備模擬器,咱們不使用第三方移動設備模擬器好比:genymotion等等。你們時間都是寶貴的,把有限的時間投入到無限的工做中上。這裏阿笨不陪你們折騰了,咱們直接上真機真環境上開啓咱們的Xamarin For Android移動開發之旅。

早期VS2015+Xamarin Studio環境配置教程:

C#移動跨平臺開發(1)環境準備

Xamarin.Android 入門之:Xamarin+vs2015 環境搭建

 

 
vs2017安裝xamarin

3.二、爲何選擇Visual Studio 2017 宇宙第一IDE工具?

Visual Studio 2017 但是號稱宇宙第一個IDE,並且自從微軟收購xamarin公司後,VS已經集成了Xamarin Studio工具,咱們能夠在Visual studio 2015上開發移動應用項目了,如今升級到Visual Studio 2017 後移動開發項目獲得了很大的升級和完善,直接作到了安裝vs後就能夠開發移動應用了,免去早期了不少繁瑣的java 、android sdk環境的安裝和配置工做。

能夠這麼說Visual Studio 2017 +是.NET程序員開發Xamarin App移動應用程序的最佳選擇工具!

3.三、爲何要一臺Android設備的手機?

提供的移動模擬器啓動速度很慢,畢竟和真機環境仍是有一些出入的,因此咱們應用程序仍是在部署在咱們實際中的手機設備中去,真實的還原第一「現場」體驗。

3.四、爲何須要安裝虛擬鏡像手機軟件?

小蘿貝控機大師:是一款免費的用電腦控制手機的工具,可以幫助你經過USB或WIFI用電腦實時控制手機;能夠用一臺電腦同時控制操做多臺手機;能夠錄製控制腳本等等。一句話說白了就是能夠在電腦上實時的監控咱們的手機屏幕。

4、Xamarin開發資源分享

Android官網:https://developer.android.com/guide/

Xamarin官網:https://www.xamarin.com/      https://developer.xamarin.com/zh-cn/

專一Xamarin開源社區: 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

5、如何快速的學習和掌握Xamarin For Android移動開發

學習Xamarin For Android移動開發,阿笨總結了兩點:

一、具有必定的C#語言基礎開發知識。

只要你有必定的C#語言基礎,那麼上手Xamarin開發將毫無壓力。

二、掌握必定的Android基礎原理和知識。

Android界面佈局(Layout)和經常使用的控件的使用以及Android原理知識這幾點必需要有必定的掌握,能夠學習從java android 方面的視頻課程,由於這塊的android知識都是同樣的,跟開發語言並無什麼太大的關係。

   小竅門:不少人以爲寫佈局很煩,寫起來太困難,屬性太多,其實佈局文件理解起來很簡單,就把它當作在作css+div佈局就行,這樣理解起來會對咱們寫佈局有很大的幫助。

6、Xamarin For Android實戰實例分享

6.一、BIOS如何開啓Virtual Technology虛擬化技術

Virtualization Technology(VT),虛擬化技術,對於安卓模擬器而言,開啓VT可以顯著提升運行性能和效率。

核心步驟就是:進入BIOS,選擇Configuration選項,選擇Intel Virtual Technology並回車並選擇Enabled。具體方法能夠百度自行搜索。http://www.udaxia.com/upqd/5254.html

6.二、Android手機(魅藍NOTE 3)如何開啓開發者調試

魅藍note3怎麼進入開發者選項步驟:

一、點擊設置按鈕,先進入設置界面,切換到所有設置界面;

二、下滑界面,進入「關於手機」選項,下滑界面,找到「版本號」,在「版本號」的項目欄裏,連續點擊7次,就會提示開啓開發人員選項;

三、回到設置界面,下滑到最後,就能夠看到「開發人員選項」,進入「開發人員選項」就能夠打開「USB調試」了。

6.三、如何快速上手經過Xamarin 建立移動Android App應用程序。

阿笨將帶來xamarin for android小白快速的上手一個Hello World的應用程序示例。

初步認識一下android移動開發,瞭解一下android佈局文件,android資源文件,android項目結構等等基礎知識。初步到達感覺體驗對android開發的有一個比較基本的瞭解和認識吧。

6.四、Android介紹以及SDK、版本。

Android介紹是一種基於Linux的自由及開放源代碼的操做系統,主要使用於移動設備,如智能手機平板電腦,由Google公司和開放手機聯盟領導及開發。同時也是Google於2007年11月5日Android logo相關圖片(36張) 宣佈的基於Linux平臺的開源手機操做系統的名稱,該平臺由操做系統、中間件、用戶界面和應用軟件組成。

Android SDK:  SDK( software development kit)軟件開發工具包,被軟件開發工程師用於爲特定的軟件包、軟件框架、硬件平臺、操做系統等創建應用軟件的開發工具的集合。Android SDK給你提供開發測試所必須的Android API類庫,開發工具。

備註:Android SDK採用了Java語言,因此須要先安裝JDK 。

參考文章:

最新Android系統版本與API等級對應關係表

Android各個版本的名稱和更新

 

 
SKD版本
 
SKD版本

6.五、Android ADB經常使用命令介紹

Android 調試橋 (adb) 是一個通用命令行工具,其容許您與模擬器實例或鏈接的 Android 設備進行通訊。說到 ADB 你們應該都不陌生,即 Android Debug Bridge,Android調試橋,身爲 Android 開發的咱們,熟練使用 ADB 命令將會大大提高咱們的開發效率, ADB 的命令有不少,今天就來總結下我在開發經常使用到的一些 ADB 命令。

1)、Android模擬設備啓動完成後查看鏈接到本地計算機上的Android設備列表:  adb devices (重點)

2)、查看Android 版本  :adb version

3)、啓動 adb server :adb start-server

4)、中止 adb server :adb kill-server

5)、列出手機裝的全部app的包名:adb shell pm list packages

6)、列出系統應用的全部包名:adb shell pm list packages -s

7)、列出除了系統應用的第三方應用包名:adb shell pm list packages -3

8)、安裝一個apk,執行如下命令:adb install  直接卸載:adb uninstall

9)、查看ADB幫助:adb help

10)、參考文章:經常使用ADB命令

思考:風靡一時的微信跳一跳小程序C#開掛程序,實現就是經過模擬adb發送指令給手機從而達到控制的目的。

6.六、Android經常使用幾種權限(Permission)

訪問網絡android.permission.INTERNET,訪問網絡鏈接,可能產生GPRS流量

獲取網絡狀態android.permission.ACCESS_NETWORK_STATE,獲取網絡信息狀態,如當前的網絡鏈接是否有效

獲取WiFi狀態android.permission.ACCESS_WIFI_STATE,獲取當前WiFi接入的狀態以及WLAN熱點的信息

寫入外部存儲android.permission.WRITE_EXTERNAL_STORAGE,容許程序寫入外部存儲,如SD卡上寫文件

更新詳細的android權限能夠參考:android權限大全

6.七、Android生命週期

Android系統是一個多任務(Multi-Task)的操做系統,能夠在用手機聽音樂的同時,也執行其餘多個程序。每多執行一個應用程序,就會多耗費一些系統內存,當同時執行的程序過多,或是關閉的程序沒有正確釋放掉內存,系統就會以爲愈來愈慢,甚至不穩定。爲了解決這個問題,Android引入了一個新的機制,即生命週期(Life Cycle)。

6.八、Android四大組件

Android四大組件分別爲activity、service、content provider、broadcast receive

6.九、Android六大布局(Layout)

六大界面佈局方式包括: 線性佈局(LinearLayout)、框架佈局(FrameLayout)、表格佈局(TableLayout)、相對佈局(RelativeLayout)、絕對佈局(AbsoluteLayout)和網格佈局(GridLayout) 

6.十、Android五大存儲(Storage)

一、 使用SharedPreferences存儲數據

二、 文件存儲數據     

3 、SQLite數據庫存儲數據(重點學習)

4 、使用ContentProvider存儲數據

5 、網絡存儲數據

6.十一、Android文件操做(File)

Android 中資源分爲兩種,一種是res下可編譯的資源文件, 這種資源文件系統會在R.java裏面自動生成該資源文件的ID,訪問也很簡單,只須要調用R.XXX.id便可;第二種就是放在assets文件夾下面的原生資源文件,放在這個文件夾下面的文件不會被R文件編譯,因此不能像第一種那樣直接使用.Android提供了一個工具類,方便咱們操做獲取assets文件下的文件:AssetManager

6.十二、Android學習之Intent使用

Xamarin Android中Activity之間傳遞一個簡單的數值

//傳入      

Intent it =new Intent(this,typeof(OtherActivity));  

it.PutExtra("name","科比")  

StartActivity(it);  

//接收  

string Name = Intent.GetStringExtra("name");  

Xamarin Android中Activity之間傳遞多個數值傳遞多個值可使用Bundle對象做爲容器,經過調用Bundle的Put**** 先將數據存儲到Bundle中,而後調用Intent的PutExtras方法將Bundle存入Intent中,調用的時候也是同樣的道理。這種鍵值的形式傳遞數據,區分大小寫,注意! 

//傳入  

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.1三、Android頁面跳轉以及傳值(Activity)

開啓一個新的Activity有兩種方法:StartActivity()和StartActivityForResult()。

 startActivity好理解,startActivityForResult()就麻煩一點,下面這張圖方便咱們的理解:

requestCode,請求碼,本身隨意設置,但必須是非負數。只有是非負數時,Activity退出時,這個碼會返回到onActivityResult()。

resultCode,結果碼,用於標識返回數據來自於哪一個新Activity,它的值通常是RESULT_CANCELED, RESULT_OK, RESULT_FIRST_USER。

 
startActivityForResult圖解

6.1四、Android學習之廣播使用(Broadcast)

廣播是Android中一種很重要的傳遞消息的方式。

廣播能夠靜態的註冊,也能夠動態的註冊 。

靜態註冊就是在AndroidManfiest.xml文件夾中註冊。(靜態註冊就是在AndroidManfiest.xml文件夾中註冊)

動態註冊就是在代碼中實現。

7、總結

一、咱們應該具備網管的精神-重啓!。咱們必須認可事物沒有完美的,何況Xamarin還在進化階段,有bug是很正常的,不穩定也能夠理解。我以前常常遇到VS掛掉、鏈接模擬器失敗,怎麼都解決不了、代碼不按照正常思惟執行、VS本身閃退、視圖編輯器打開失敗、編譯老是失敗等等一些問題,通過重啓環境更甚至於重啓電腦後,一切正常!

二、阿笨計劃後續將給你們帶來實際項目中開發的一個Xamarin For Adroid App應用程序。到時候在《C# Xamarin移動開發項目實戰篇》課程中,阿笨將本身的實際項目經驗毫無保留的分享給你們。快速經過Xamarin打造一個Android適合於後端管理系統App應用程序。若是您繼續感興趣的話能夠跟着阿笨一塊兒學習吧。欲知後事如何,且看下回分解!

俗話說的好:師父領進門修行在我的,但願你們在學習的道路上一直堅持下去!

8、在線源碼觀看地址

相關文章
相關標籤/搜索