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

来源:https://www.cnblogs.com/powertoolsteam/archive/2018/07/11/9293415.html
-Advertisement-
Play Games

本文翻譯自CodeProject文章:https://www.codeproject.com/Articles/1223980/Xamarin-Notes-Set-up-the-environment-Windows-and-I 轉載請註明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案 ...


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

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

背景介紹

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

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

通過使用Xamarin.Forms,用戶UI界面通過一個統一的框架,也就是XAML,可以同時用於三種不同的平臺。可以想象,如果我們能夠針對三種截然不同的平臺可以對發佈的應用程式進行最大程度的代碼共用,這將是一件非常酷的事情。

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

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

當我們開始學習使用Xamarin,我們可以註意到有兩種方式可以進行開發,其中第一種是使用Xamarin。你可以在一個Portable工程裡面通過XAML加上C#或者使用Xamarin.Android或Xamarin.iOS構建表單,在這種情況下,我們需要用到特定的本地環境,比如說通過C#代碼操縱iOS的Storyboard。

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

“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後,連接到應用中心。

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

 

伴隨著崩潰,我們需要瞭解一些分析以瞭解更多客戶,因此,從應用中心,我們可以記錄自定義事件。 最後,它是推送通知的單一來源。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Hadoop簡介 Hadoop是Apache軟體基金會旗下的一個開源分散式計算平臺,為用戶提供了系統底層細節透明的分散式基礎架構。 Hadoop是基於Java語言開發的,具有很好的跨平臺特性,並且可以部署在廉價的電腦集群中。 Hadoop的核心是分散式文件系統(Hadoop Distributed ...
  • 最近在做NBU ORACLE備份的恢複測試,執行恢復時報錯ORA-27211: Failed to load Media Management Library,具體處理過程如下:一、錯誤信息 執行命令: 報錯信息: 二、錯誤原因 由於資料庫的Lib庫不包含NBU的庫文件,所以執行rman恢復時報錯 ...
  • [TOC] HBase集群建立在Hadoop集群基礎之上,而且依賴於ZooKeeper,所以在搭建HBase集群之前需要把Hadoop集群搭建起來,並且搭建好ZooKeeper集群。Hadoop與ZooKeeper集群的搭建在前面章節已講解過,在此不再贅述。 9.1 集群環境搭建 HBase集群搭建 ...
  • SQL數據類型 JDBC類型代碼 標準的Java類型 Oracle擴展的Java類型 1.0標準的JDBC類型: CHAR java.sql.Types.CHAR java.lang.String oracle.sql.CHAR VARCHAR2 java.sql.Types.VARCHAR jav ...
  • 從開源網站下載的源碼,需要自己編譯c源碼成so類庫。當時用Android studio 運行總是報錯”finished with non-zero exit value 2"報錯定位到build.gradle文件里負責編譯 task ndkBuild(type: Exec, description:... ...
  • 隨著視頻行業的發展,很多用戶對於觀看體驗也有了更高的要求,以前的習慣是下載好了在觀看,而現在是希望1分鐘都不要等,ZUI好一邊看著一邊下載,等把這個視頻看完也下載完了,也就是我們常說的“視頻邊下載邊播放”,之前分享過在安卓手機下利用BT實現視頻的邊下在邊播放問題,那麼在IOS下視頻邊下載邊播放是否可 ...
  • 這個問題也是我在android開發群裡面解決的一個問題。 如果有什麼想法或者想法可以在下麵進行評論,我們可以一起交流一下! 我們在eclipse中開發完一個程式之後,需要將其打包為APK的安裝包,我們需要進行以下操作: 但是進行打包的時候出現了以下的錯誤: 我也是找了一些方法進行解決,找到了一個有效 ...
  • 第一次寫博客,有什麼問題或者想法的希望各位可以進行評論交流,望大家多多包涵! 遇到的問題是在新建的項目都出錯了,出現support_v7下麵出現紅線及解決方法及為什麼eclipse中項目繼承ActionBarActivity: 主要是在前面開發的時候遇到了這個問題,昨天有一個android群裡面的人 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...