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

來源:互聯網
上載者:User

標籤:framework   課程   地址   object   微軟雲   logs   c#   enabled   AC   

一、課程介紹

英文原文: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#是行動裝置 App程式開發的最佳語言。 在Objective-C,Swift或Java中你可以做的任何事情,你都可以在C#中完成。

1)、本次分享課程適合人群如下:

1、 熱愛Xamarin跨平台移動開發。

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

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

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

1、BIOS如何開啟Virtual Technology虛擬化技術

2、Android手機(魅藍NOTE 3)如何開啟開發人員調試

3、如何快速上手通過Xamarin 建立移動Android App應用程式。

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

5、Android ADB常用命令介紹

6、Android常用幾種許可權(Permission)

7、Android生命週期

8、Android四大組件

9、Android六大布局(Layout)

10、Android五大儲存(Storage)

11、Android檔案操作(File)

12、Android學習之Intent使用

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

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

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

希望學完本次分享課程後能夠對Xamarin For Android開發有一定的瞭解和掌握,從而減少大家的學習成本!

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

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

二、概念名稱含義解釋

2.1、Mono介紹

Mono是一個由Xamarin公司(先前是Novell,最早為Ximian)所主持的自由開放原始碼項目。與微軟的.NET Framework(共通語言運行平台)不同,Mono項目不僅可以運行於Windows系統上,還可以運行於Linux,FreeBSD,Unix,OS X和Solaris,甚至一些遊戲平台。

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

2.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.3、Xamarin Studio介紹

Xamarin Studio是一個用C#語言開發跨平台應用的整合式開發環境,它和iOS以及AndroidSDK緊密整合。開發人員可以使用Xamarin Studio在模擬器和真機上對行動裝置 App進行測試和bug調試。Xamarin Studio能夠完美支援Windows和Mac!

2.4、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不再需要破解,也不再需要單獨的帳號,直接安裝或者升級就是企業版了。

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

3.1工欲善其事必先利其器

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

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

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

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

 

 vs2017安裝xamarin

3.2、為什麼選擇Visual Studio 2017 宇宙第一IDE工具?

Visual Studio 2017 可是號稱宇宙第一個IDE,而且自從微軟收購xamarin公司後,VS已經整合了Xamarin Studio工具,我們可以在Visual studio 2015上開發行動裝置 App項目了,現在升級到Visual Studio 2017 後移動開發項目得到了很大的升級和完善,直接做到了安裝vs後就可以開發行動裝置 App了,免去早期了很多繁瑣的java 、android sdk環境的安裝和配置工作。

可以這麼說Visual Studio 2017 +是.NET程式員開發Xamarin App行動裝置 App程式的最佳選擇工具!

3.3、為什麼要一台Android裝置的手機?

提供的移動模擬器啟動速度很慢,畢竟和真機環境還是有一些出入的,所以我們應用程式還是在部署在我們實際中的手機裝置中去,真實的還原第一“現場”體驗。

3.4、為什麼需要安裝虛擬鏡像手機軟體?

小蘿貝控機大師:是一款免費的用電腦控制手機的工具,能夠協助你通過USB或WIFI用電腦即時控制手機;可以用一台電腦同時控制操作多台手機;可以錄製控制指令碼等等。一句話說白了就是可以在電腦上即時的監控我們的手機螢幕。

四、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五、如何快速的學習和掌握Xamarin For Android移動開發

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

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

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

2、掌握一定的Android基礎原理和知識。

Android介面布局(Layout)和常用的控制項的使用以及Android原理知識這幾點必須要有一定的掌握,可以學習從java android 方面的視頻課程,因為這塊的android知識都是一樣的,跟開發語言並沒有什麼太大的關係。

   小竅門:很多人覺得寫布局很煩,寫起來太困難,屬性太多,其實布局檔案理解起來很簡單,就把它當做在做css+div布局就行,這樣理解起來會對我們寫布局有很大的協助。

六、Xamarin For Android實戰執行個體分享

6.1、BIOS如何開啟Virtual Technology虛擬化技術

Virtualization Technology(VT),虛擬化技術,對於安卓模擬器而言,開啟VT能夠顯著提高運行效能和效率。

核心步驟就是:進入BIOS,選擇Configuration選項,選擇Intel Virtual Technology並斷行符號並選擇Enabled。具體方法可以百度自行搜尋。http://www.udaxia.com/upqd/5254.html

6.2、Android手機(魅藍NOTE 3)如何開啟開發人員調試

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

1、點擊設定按鈕,先進入設定介面,切換到全部設定介面;

2、下滑介面,進入“關於手機”選項,下滑介面,找到“版本號碼”,在“版本號碼”的項目欄裡,連續點擊7次,就會提示開啟開發人員選項;

3、回到設定介面,下滑到最後,就可以看到“開發人員選項”,進入“開發人員選項”就可以開啟“USB調試”了。

6.3、如何快速上手通過Xamarin 建立移動Android App應用程式。

阿笨將帶來xamarin for android小白快速的上手一個Hello World的應用程式樣本。

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

6.4、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.5、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.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.7、Android生命週期

Android系統是一個多任務(Multi-Task)的作業系統,可以在用手機聽音樂的同時,也執行其他多個程式。每多執行一個應用程式,就會多耗費一些系統記憶體,當同時執行的程式過多,或是關閉的程式沒有正確釋放掉記憶體,系統就會覺得越來越慢,甚至不穩定。為瞭解決這個問題,Android引入了一個新的機制,即生命週期(Life Cycle)。

6.8、Android四大組件

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

6.9、Android六大布局(Layout)

六大介面布局方式包括: 線性布局(LinearLayout)、架構布局(FrameLayout)、表格版面配置(TableLayout)、相對布局(RelativeLayout)、絕對布局(AbsoluteLayout)和網格布局(GridLayout) 

6.10、Android五大儲存(Storage)

1、 使用SharedPreferences儲存資料

2、 檔案儲存體資料     

3 、SQLite資料庫儲存資料(重點學習)

4 、使用ContentProvider儲存資料

5 、網路儲存資料

6.11、Android檔案操作(File)

Android 中資源分為兩種,一種是res下可編譯的資源檔, 這種資源檔系統會在R.java裡面自動產生該資源檔的ID,訪問也很簡單,只需要調用R.XXX.id即可;第二種就是放在assets檔案夾下面的原生資源檔,放在這個檔案夾下面的檔案不會被R檔案編譯,所以不能像第一種那樣直接使用.Android提供了一個工具類,方便我們操作擷取assets檔案下的檔案:AssetManager

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

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

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

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

resultCode,結果碼,用於標識返回資料來自於哪個新Activity,它的值一般是RESULT_CANCELED, RESULT_OK, RESULT_FIRST_USER。

 startActivityForResult圖解

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

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

廣播可以靜態註冊,也可以動態註冊 。

靜態註冊就是在AndroidManfiest.xml檔案夾中註冊。(靜態註冊就是在AndroidManfiest.xml檔案夾中註冊)

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

七、總結

1、我們應該具有網管的精神-重啟!。我們必須承認事物沒有完美的,況且Xamarin還在進化階段,有bug是很正常的,不穩定也可以理解。我之前經常遇到VS掛掉、串連模擬器失敗,怎麼都解決不了、代碼不按照正常思維執行、VS自己閃退、視圖編輯器開啟失敗、編譯總是失敗等等一些問題,經過重啟環境更甚至於重啟電腦後,一切正常!

2、阿笨計劃後續將給大家帶來實際項目中開發的一個Xamarin For Adroid App應用程式。到時候在《C# Xamarin移動開發項目實戰篇》課程中,阿笨將自己的實際項目經驗毫無保留的分享給大家。快速通過Xamarin打造一個Android適合於後端管理系統App應用程式。如果您繼續感興趣的話可以跟著阿笨一起學習吧。欲知後事如何,且看下回分解!

俗話說的好:師父領進門修行在個人,希望大家在學習的道路上一直堅持下去!

八、線上源碼觀看地址

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.