Xamarin 學習筆記 - 配置環境(Windows & iOS)

本文翻譯自CodeProject文章:https://www.codeproject.com/Articles/1223980/Xamarin-Notes-Set-up-the-environment-Windows-and-Ihtml

轉載請註明出處:葡萄城官網,葡萄城爲開發者提供專業的開發工具、解決方案和服務,賦能開發者。前端

背景介紹

一直以來,作爲一名Web以及桌面開發人員,我一直在使用.NET框架和C#語言,而在某些項目中,Angular會在前端佔有主導地位。 最近,咱們老是談論移動應用程序開發的將來,但我自己實在沒有天賦轉向另外一種語言。最近幾年,針對個人社交項目,我嘗試使用Hybrid框架和AngularJS以及Ionic,Cordova一塊兒構建一個示例……但一切並不像我想象得那樣容易。此後微軟於2016年2月份收購了Xamarin並在以後不久宣佈了將Xamarin開源。自此微軟生成用C#開發的軟件將不只僅可以運行在Windows上,而是能夠在任何設備上運行。繼微軟收購Xamarin以後,對能夠將C#開發與全功能的跨平臺移動開發工具相結合,使用開發工具共享業務邏輯代碼,以提供徹底原生的應用程序的專業人士的需求日益增長,這一點自從2011年以後就一發不可收拾。java

所以,Xamarin是開始開發跨平臺應用程序的解決方案,它爲你提供了本機代碼輸出的iOS,Android甚至是UWP的流暢用戶界面。android

經過使用Xamarin.Forms,用戶UI界面經過一個統一的框架,也就是XAML,能夠同時用於三種不一樣的平臺。能夠想象,若是咱們可以針對三種大相徑庭的平臺能夠對發佈的應用程序進行最大程度的代碼共享,這將是一件很是酷的事情。安全

本課程的目標將以個人學習方式介紹Xamarin多平臺開發框架。oracle

Xamarin擁有豐富的免費和付費資源,對我來講最好的入門課程就是Xamarin官方開發社區。(https://developer.xamarin.com/)在這裏你能夠沒有限制的獲取所需的知識。app

當咱們開始學習使用Xamarin,咱們能夠注意到有兩種方式能夠進行開發,其中第一種是使用Xamarin。你能夠在一個Portable工程裏面經過XAML加上C#或者使用Xamarin.Android或Xamarin.iOS構建表單,在這種狀況下,咱們須要用到特定的本地環境,好比說經過C#代碼操縱iOS的Storyboard。框架

這是關於Xamarin的一個概要描述:ide

「Xamarin不是一個單一的事物,而是許多事物的集合。」工具

這是與Xamarin有關的一個簡短的描述,你能夠找到更多的文檔進一步闡述其優勢和缺點。

Xamarin使得你可使用C#建立原生的應用。

在文章的另外一部分,我將從定義硬件和軟件需求開始入手,即使是你沒有任何的移動端開發經驗,也可以開始瞭解如何開始構建一個移動應用。

背景

須要具備C#和移動端開發的基礎知識。

設置開發環境(Windows以及iOS)

重要的是要注意,這些工具的發展速度很是快,根據你閱讀這篇文章的狀況,這些工具可能不是頗有用。

若是你但願構建一個Android應用,在Windows上進行開發的話你須要Visual Studio 2017或者在Mac上進行開發的話你須要 Visual Studio for Mac版本。可是若是你但願構建一個iOS應用,你仍舊能夠在Windows上使用Visual Studio 2017可是你必須經過另一個Mac機器進行編譯,或者你能夠直接使用Visual Studio for Mac版本,這是蘋果開發模型硬性的要求。

1. 系統要求

a. Windows

· Windows 10。

· Core i7, 16 GB 的內存(以便確保你可以很舒服的進行開發,實際上最低的硬件需求能夠是Core i5加上4GB的內存)。

· Visual Studio 2017(在當前的開發目的下,具體版本到底是Enterprise仍是Community並不重要)。

a. Mac

· Mac OS 11(直至寫這個文檔時的版本,實際上咱們老是使用最新的版本)。

· Core i7, 16 GB 內存,以及 256GB的SSD固態硬盤。

· Visual Studio for Mac。

· XCode 9(或者最新版本)。

UWP

它僅適用於Windows,其安裝過程很是簡單,僅需選中「使用Windows通用平臺進行開發」的選項做爲安裝UWP開發環境和SDK的選擇:用於Windows 10的IntelliTrace以及SDK。

設置環境

你能夠在如下文檔中找到Windows或iOS所需的所有要求:

https://developer.xamarin.com/guides/cross-platform/getting_started/requirements/

針對所有這兩個平臺的設置,咱們都須要安裝Visual Studio的最新版本,直至我寫下這篇博文,咱們可以使用的最新版本是Visual Stuido 2017(Windows平臺以及MAC平臺): https://www.visualstudio.com/

Windows

咱們能夠安裝任意版本,Community或者Professional再或者Enterprise。安裝時,須要選擇使用.NET的移動開發。

IOS

安裝Visual Studio for Mac的過程和在Windows下安裝Windows的過程很是類似。你能夠在安裝時選擇須要的組件,或許你會選擇不安裝Android SDK,由於你已經在Windows平臺下安裝過了。然而若是你從不使用Windows,那麼你必須安裝Android SDK,這一過程將在如下章節作進一步的闡述,在Mac上安裝Android SDK,你將不會遇到任何麻煩。

若是你是在MAC上進行安裝,那麼站點將識別你的環境並顯示Community或者其它版本的下載連接部分:

仿真器(Emulator)而不是模擬器(Simulator)

iOS仿真器不是一個簡單的模擬器。兩者有着至關大的區別。有一些功能僅在物理設備上可以正常工做。

仿真器和XCode一塊兒安裝。默認狀況下,在安裝IDE時,其中一些已經安裝,若是你但願添加更多的仿真器,找到Preference->Downloads->Components並選中你但願安裝的仿真器。當你安裝或者更新XCode或者運行仿真器時,一般會顯示一個窗口提示使用條款的內容。若是你不接受條款,那麼 Visual Studio for Mac版將不會識別該仿真器。

更多信息請參見: https://www.visualstudio.com/pt-br/vs/visual-studio-mac/

使用Android的先決條件

Android版本開發的基本需求是如下組件:

-          Java 64位 SDK (JDK)

-          Android SDK

-          Android NDK爲可選組件,可是不管如何我每次都裝。

當你經過Visual Studio安裝Xamarin時,以上所有的三個組件都已經安裝。可是有一個問題,直至最新的版本,安裝程序都會下載32位的JDK,該版本是不相容的。

另一點須要指出的是,安裝程序將它們安裝在「C:/Program Files/RepositoryName」路徑下,這並非安全的方式,由於你有可能會收到一個關於文件路徑的字符數超出256個字符限制的錯誤,同時在這個路徑中包含了一個空格,這一點可能會給你帶來諸多的麻煩。

所以,爲了防止以上狀況發生,建議你手動的在C盤根目錄下安裝這些組件,並在Windows環境變量中手動添加這些組件的路徑。

C:/java

C:/android-sdk

C:/android-ndk

將這些組件註冊在環境變量裏,以確保當我須要使用其它開發工具平臺時,若是這些開發工具剛好也依賴這三個組件,那麼它們就已經在那裏了,不須要從新安裝。

安裝JDK

能夠從如下連接下載: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

安裝程序就在這裏。請確保你點開的是最新的版本。

當安裝完成以後,添加如下系統變量:

JAVA_HOME,值爲 C:/java/jdk {安裝版本號}

CLASSPATH,值爲 ;% JAVA_HOME% \ lib;% JAVA_HOME% \ jre \ lib

編輯Path變量,並添加如下值:% JAVA_HOME% \ bin

如今打開命令行窗口,並輸入 java -version。若是一切正常沒有什麼錯誤,該命令將顯示Java的版本。

安裝 Android NDK

從這裏下載壓縮包,(https://developer.android.com/ndk/downloads/index.html)並解壓縮至C:/android-ndk。添加變量ANDROID_NDK_HOME,其值爲C:/android-ndk。解壓縮其內容,確保內容中沒有文件夾。

Android SDK

按照站點上的說明,Android SDK將與Android Studio一塊兒安裝,可是在Visual Studio 2017中,Android SDK將集成在一塊兒,所以不須要手動添加。可是你也能夠添加Xamarin Android SDK Manager,如如下連接所示: https://marketplace.visualstudio.com/items?itemName=Xamarin.XamarinAndroidSDKManager

建立一個跨平臺的Xamarin工程

你能夠經過找到 文件-> 新建 -> Visual C# -> 跨平臺 -> 跨平臺應用程序開始一個新的 Xamarin.Forms 應用程序。該模板容許你選擇起始的工程類型,準備支持的平臺,以及你的代碼共享方式。

在過去,咱們看到的界面長這個樣子:

Portable 類庫容許你書寫代碼並生成能夠在不一樣平臺下共享的類庫,包括Xamarin.iOSXamarin.Android,以及Windows Phone

https://developer.xamarin.com/guides/cross-platform/application_fundamentals/pcl/

可是如今,Portable 類庫被 .NET Standard所取代:

.NET Standard是.NET API的一個正式規範,旨在適用於全部.NET運行時(如.NET Framework,Mono和.NET Core)。(https://docs.microsoft.com/en-us/dotnet/standard/net-standard

https://blog.xamarin.com/building-xamarin-forms-apps-net-standard/

並且你能夠包含Azure移動應用程序,做爲後臺支持的工程。

建立新項目後,咱們將擁有如下結構:

接下來的步驟就是選擇經過仿真器仍是你的物理設備進行編譯,可是最近,微軟有宣佈了一個新的、更快的Xamarin以及Visual Studio for Mac的工具,用於編譯並呈現你的應用程序,也就是安裝在你iOS或者Android設備上的Xamarin Live Player應用程序。

Emulator仿真器

當我開始個人工做室時,我遇到了和仿真器相關的許多麻煩,Windows 10 Mobile仿真器使用Hyper-v。而咱們嘗試安裝GenyMotion做爲Android的仿真器,可是它依賴的是Visual Box。Hyper-v和Virtual Box沒法工做在同一臺機器上。甚至有可能有某種方式讓它們一塊兒工做,GenyMotion容許你獲取更多的設備(針對許多我的用途),可是正如我以前提到過的那樣,它須要特殊的配置(更多細節請參見:https://docs.genymotion.com/pdf/PDF_User_Guide/Genymotion-2.11-User-Guide.pdf),可是在培訓教室裏用到的機器不具有這項特性。

以後,爲了儘量的減小機器內存的消耗,咱們使用咱們本身的手機(三星,華爲……),咱們安裝了相應的USB驅動,以後開始編譯並查看運行結果,可是在特定機型上咱們始終會碰到一些問題。

Xamarin Live Player

Visual Studio有一個強大的窗體預覽工具,它應該在運行時顯示視圖,正如每一個人都在抱怨的那樣,它壓根不工做。因此Visual Studio發佈了另外一個工具:Xamarin Live Player。

它爲開發人員提供實時反饋,同時適應他們現有的移動開發體驗。經過將你的設備與IDE配對,咱們能夠在設備上直接部署,測試和調試應用程序。

那麼,咱們如何使用它?

這很簡單,咱們能夠從你的設備中選擇一個新的目標開始使用這一功能。

Visual Studio App Center(在Xamarin Test Cloud以前)

在建立新的應用程序和開發以後,開發人員在測試過程當中面臨許多挑戰,甚至他們必須經過持續集成交付,此時你須要一個容許你在許多設備中進行測試的環境。

在移動應用開發的生命週期中,一個應用程序,將由一個設計和開發開始,以後咱們將開始測試和監控,可是若是測試不像咱們當初所預期的那樣,咱們會從新回退到設計和開發階段,因此咱們嘗試迭代的開發和維護。

Microsoft提供了許多服務,例如:HockeyApp(https://hockeyapp.net/),Xamarin Test Cloud(https://www.xamarin.com/test-cloud ),Xamarin Insights(https://insights.xamarin.com/)(但它後來加入了HockeyApp),Azure移動訂閱,Azure應用服務和CodePush。

鏈接到: https://appcenter.ms/ 可是在Microsoft建立了Visual Studio App Center後,它能夠在一個地方收集全部內容。他們採起了全部這些不一樣的解決方案,並將它們集中在一箇中央應用程序中。

要開始構建功能,你須要從VSTS或GitHub或BitBucket鏈接到雲中的現有代碼存儲庫,以及一個構建過程,還有一個設備實驗室,擁有超過300種Android和IOS設備配置,你能夠運行自動化腳本,它支持各類框架,如Appium,Espresso,XCUITest和Xamarin.UITest。

一旦完成了構建任務流程,你就能夠發佈給用戶,你能夠建立組,既能夠用於公司內部的測試組,也能夠建立測試人員,並將應用直接發送給他們, 應用更新。 你也有能力。 準備好將應用發佈到Google Play或iTunes後,鏈接到應用中心。

一旦發佈並使用了應用程序,開發人員就想知道發生了什麼而且在發生崩潰時易於維護,你能夠從應用程序的字段中獲取崩潰報告中的實時堆棧跟蹤。

 

伴隨着崩潰,咱們須要瞭解一些分析以瞭解更多客戶,所以,從應用中心,咱們能夠記錄自定義事件。 最後,它是推送通知的單一來源。

相關文章
相關標籤/搜索