1. 程式人生 > >Xamarin 跨移動端開發系列(01) -- 搭建環境、編譯、除錯、部署、執行

Xamarin 跨移動端開發系列(01) -- 搭建環境、編譯、除錯、部署、執行

   (本文是基於老版本的VS和Xamarin,而VS2017已經集成了Xamarin,所以,本文已經過時,最新的Xamarin開發介紹請參見 使用 Xamarin開發手機聊天程式 。)

   如果是.NET開發人員,想學習手機應用開發(Android和iOS),Xamarin 無疑是最好的選擇,編寫一次,即可釋出到Android和iOS平臺,真是利器中的利器啊!好了,廢話不多說,就開始吧,本文將描述基礎環境的搭建,以及將應用在android環境中除錯、釋出、執行,iOS部分將在後面的文章中專門講解。

一.搭建環境

1. 安裝 VS2015。

2. 安裝 Xamarin。我安裝的是目前的最新版本:Xamarin.VisualStudio_4.2.0.703.msi。

3. 安裝JDK:我安裝的是目前的最新版本:jdk1.7.0_71。

4. 下載 Android SDK。

(1)下載完成後, Android SDK 目錄下有兩個exe:AVD Manager.exe 和 SDK Manager.exe。

(2)SDK Manager 用於管理不同版本的SDK,在其管理介面中可以下載新版本的SDK或升級舊版本的SDK。

    

    我下載了版本號的5.1.1,6.0,7.0的SDK(其檔案目錄在子資料夾platforms下)。這些版本的SDK會在專案編譯時用到,以及安卓模擬器也會用到它們。

(3)AVD Manager.exe 用於管理安卓模擬器。

   

    與SDK的版本號對應,我建立了三個安卓模擬器,供除錯時使用。

5. 在VS中配置Xamarin選項。

     

  由於我暫時沒有用到原生的安卓開發,所以,我沒有配置NDK。

二. 新建Xamarin.Forms專案、編譯、部署、除錯

  Xamarin.Forms 是Xamarin提供的一個套件,用於跨移動平臺的Form應用開發,所以,如果是使用Xamarin開發App,那麼,Xamarin.Forms 將是很好的選擇。

1.新建一個Cross-Platform跨平臺專案,選擇Xaml App(Portable)。

  

   Xaml App 與 普通的App的區別在於, Xaml App是使用Xaml檔案來控制Form上的控制元件的佈局的。

2.專案新建成功後,會在解決方案管理器中,生成三個專案。

   

   ESFramework.XamarinDemo 是可移植的類庫,App的絕大部分邏輯和UI都是在其中完成。

   ESFramework.XamarinDemo.Droid 對應了安卓版本,ESFramework.XamarinDemo.iOS 對應了iOS版本,它們都引用了 ESFramework.XamarinDemo 專案。

   對於一般簡單的應用而言,只需要在ESFramework.XamarinDemo中編寫程式碼就可以了,ESFramework.XamarinDemo.Droid 和 ESFramework.XamarinDemo.iOS中的程式碼幾乎不用動。

3.編譯 ESFramework.XamarinDemo.Droid 專案

   

  在專案屬性面板中,要選擇編譯所使用的安卓SDK的版本號,我選擇的是6.0。

4.部署、除錯

  編譯成功後,就可以嘗試部署到虛擬機器,並執行除錯了。

(1)啟動安卓虛擬機器。

  執行上述的AVD Manager.exe ,我選擇了自己建立的and6虛擬機器,點選介面右側的Start按鈕,啟動一個虛擬機器例項。

  

(2)部署並執行

  在VS上的工具欄,選擇剛才啟動的虛擬機器例項and6,點選除錯按鈕(綠色的三角形),即可開始部署、執行的流程。(注意,要選擇Debug模式)

   

(3)除錯

  部署執行成功後,模擬器就會顯示demo App 的UI介面:

    

  此時,可以在原始碼中加入斷點開始除錯程式了。

三. 釋出 apk

1.將專案切換到Release。

2.設定清單資訊Manifest

  

  包括:應用的名稱、apk包的名稱、圖示、版本號、許可權等。

3.設定Linker

  

  Linking 設定為none,意味著要將所有的SDK打包到apk中,這樣,一個apk至少是40多M。

  Linking 一般設定為 SDK Assemblies Only,表示 apk 使用手機中自帶的SDK。

4.Archive - 存檔apk

  

  在釋出apk之前,先要Archive得到apk。注意:Archive得到的apk不能直接部署到手機真機,執行會閃退。還需要經過最後的Distribute正式釋出。

5.Distribute

  在Archive成功後,會出現如下介面:

  

    點選Distribute按鈕,進入釋出apk的流程。首先,要對apk進行簽名:

  

  如果是第一次走這個流程,先要點選綠色的“+”,建立一個金鑰檔案,然後選擇它,再點選“Save As”按鈕,即可儲存簽名後的apk。  

6.拷貝到真機

  將上述得到的ESFramework.XamarinDemo.apk,拷貝到真機,就可以安裝了。晚裝完畢,點選圖示,即可執行我們的demo App了。

四.結語

  以上的整個流程是我們在為ESFramework通訊框架的Xamrain版本實現一個入門Demo時,完整的記錄,希望對剛剛開始研究Xamrain開發的朋友有所幫助。

  後續的文章,我們將介紹這個Demo的後續開發過程,基於Xamarin實現手機與PC互通的的IM 聊天小程式。

相關推薦

Xamarin 移動開發系列01 -- 搭建環境編譯除錯部署執行

   (本文是基於老版本的VS和Xamarin,而VS2017已經集成了Xamarin,所以,本文已經過時,最新的Xamarin開發介紹請參見 使用 Xamarin開發手機聊天程式 。)    如果是.NET開發人員,想學習手機應用開發(Android和iOS),Xamarin 無疑是最好的選擇,編寫一次,

H5移動開發基礎多指操作案例-相簿

多指操作、案例-相簿 多指操作 旋轉 縮放 實現安卓多指事件 案例-相簿 多指操作 // gesturestart:手指觸碰元素,螢幕上有兩個或兩個以上的手指 oBox.addEventListener

H5移動開發基礎自定義滾動條實戰-音悅臺

自定義滾動條、實戰-音悅臺 自定義滾動條 js封裝 transform.js tween.js scrollBar.js 音悅臺 適配 樣式 html

H5移動開發基礎適配3Danimation

適配、3D、animation 適配 rem適配 getBoundingClientRect viewport適配 橫豎屏適配 方法一 方法二 3D

H5移動開發基礎事件基礎

事件基礎 移動端基礎事件 滑屏原理 transform 與 transition 無縫滑屏自動播放幻燈片 移動端基礎事件 手指按下:touchstart <==> mousedown 手指擡起:touchend <

ABP開發框架前後開發系列---1框架的總體介紹

ABP是ASP.NET Boilerplate的簡稱,ABP是一個開源且文件友好的應用程式框架。ABP不僅僅是一個框架,它還提供了一個最徍實踐的基於領域驅動設計(DDD)的體系結構模型。學習使用ABP框架也有一段時間了,一直想全面瞭解下這個框架的整個來龍去脈,並把想把它使用歷程整理成一個系列出來,不過一直沒有

ABP開發框架前後開發系列---3框架的分層和檔案組織

在前面隨筆《ABP開發框架前後端開發系列---(2)框架的初步介紹》中,我介紹了ABP應用框架的專案組織情況,以及專案中領域層各個類程式碼組織,以便基於資料庫應用的簡化處理。本篇隨筆進一步對ABP框架原有基礎專案進行一定的改進,減少領域業務層的處理,同時抽離領域物件的AutoMapper標記並使用配置檔案代替

ABP開發框架前後開發系列---4Web API呼叫類的封裝和使用

在前面隨筆介紹ABP應用框架的專案組織情況,以及專案中領域層各個類程式碼組織,以及簡化了ABP框架的各個層的內容,使得我們專案結構更加清晰。上篇隨筆已經介紹了字典模組中應用服務層介面的實現情況,並且通過執行Web API的宿主程式,可以在介面上進行介面測試了,本篇隨筆基於前面介紹的基礎上,介紹Web API呼

ABP開發框架前後開發系列---5Web API呼叫類在Winform專案中的使用

在前面幾篇隨筆介紹了我對ABP框架的改造,包括對ABP總體的介紹,以及對各個業務分層的簡化,Web API 客戶端封裝層的設計,使得我們基於ABP框架的整體方案越來越清晰化, 也越來越接近實際的專案開發需求,一旦整個模式比較成熟,並以一種比較固化的模式來指導開發,那麼就可以很方便的應用在實際專案開發當中了。本

ABP開發框架前後開發系列---6ABP基礎介面處理和省份城市行政區管理模組的開發

最近沒有更新ABP框架的相關文章,一直在研究和封裝相關的介面,總算告一段落,開始繼續整理下開發心得。上次我在隨筆《ABP開發框架前後端開發系列---(5)Web API呼叫類在Winform專案中的使用》中介紹了字典模組的管理,以及實現了常規的獲取所有記錄,獲取條件查詢記錄,建立、更新、刪除這些介面。本篇繼續

ABP開發框架前後開發系列---7系統審計日誌和登入日誌的管理

我們瞭解ABP框架內部自動記錄審計日誌和登入日誌的,但是這些資訊只是在相關的內部接口裡面進行記錄,並沒有一個管理介面供我們瞭解,但是其系統資料庫記錄了這些資料資訊,我們可以為它們設計一個檢視和匯出這些審計日誌和登入日誌的管理介面。本篇隨筆繼續ABP框架的系列介紹,一步步深入瞭解ABP框架的應用開發,介紹審計日

ABP開發框架前後開發系列---8ABP框架之Winform介面的開發過程

在前面隨筆介紹的《ABP開發框架前後端開發系列---(7)系統審計日誌和登入日誌的管理》裡面,介紹瞭如何改進和完善審計日誌和登入日誌的應用服務端和Winform客戶端,由於篇幅限制,沒有進一步詳細介紹Winform介面的開發過程,本篇隨筆介紹這部分內容,並進一步擴充套件Winform介面的各種情況處理,力求讓

ABP開發框架前後開發系列---9ABP框架的許可權控制管理

在前面兩篇隨筆《ABP開發框架前後端開發系列---(7)系統審計日誌和登入日誌的管理》和《ABP開發框架前後端開發系列---(8)ABP框架之Winform介面的開發過程》開始介紹了許可權管理的內容,其中只是列出了內部的許可權系統的審計和登陸資訊,以及對Winform介面的整合,本篇隨筆繼續介紹ABP開發框架

ABP開發框架前後開發系列---10Web API呼叫類的簡化處理

在較早期的隨筆《ABP開發框架前後端開發系列---(5)Web API呼叫類在Winform專案中的使用》已經介紹了Web API呼叫類的封裝處理,雖然這些呼叫類我們可以使用程式碼生成工具快速生成,不過自定義介面,還是需要我們對這些介面進行實現,以便發起對Web API的呼叫,並獲得相應的資料返回。本篇隨筆介

ABP開發框架前後開發系列---12配置模組的管理

一般來說,一個系統或多或少都會涉及到一些系統引數或者使用者資訊的配置,而ABP框架也提供了一套配置資訊的管理模組,ABP框架的配置資訊,必須提前定義好配置的各項內容,然後才能在系統中初始化或者通過介面查詢來使用,本篇隨筆引入了另外一種配置資訊的定義,實現更加簡化的處理,本篇隨筆著重介紹兩者之間的差異和不同的地

ABP開發框架前後開發系列---13高階查詢功能及介面的處理

在一般的檢索介面中,基於介面易用和美觀方便的考慮,我們往往只提供一些常用的條件查詢進行列表資料的查詢,但是有時候一些業務表字段很多,一些不常見的條件可能在某些場景下也需要用到。因此我們在通用的查詢條件之外,一般可以考慮增加 一個高階查詢的模組來管理這些不常見條件的查詢處理。本篇隨筆基於這個需求,綜合ABP框架

ABP開發框架前後開發系列---15ABP框架的服務和客戶快取的使用

快取在一個大型一點的系統裡面是必然會涉及到的,合理的使用快取能夠給我們的系統帶來更高的響應速度。由於資料提供服務涉及到資料庫的相關操作,如果客戶端的併發數量超過一定的數量,那麼資料庫的請求處理則以爆發式增長,如果資料庫伺服器無法快速處理這些併發請求,那麼將會增加客戶端的請求時間,嚴重者可能導致資料庫服務或者應

ABP開發框架前後開發系列---16ABP框架升級最新版本的經驗總結

有一小段時間沒有持續升級ABP框架了,最近就因應客戶的需要,把ABP框架進行全面的更新,由於我們應用的ABP框架,基礎部分還是會使用官方的內容,因此升級的時候需要把官方基礎ABP的DLL進行全面的更新,以及對應的引用DLL也同步更新才行。不過在升級過程中還是很多奇奇怪怪的問題,本篇隨筆針對出現的情況進行一系列

移動自動化測試appium環境搭建

mouseover 小試牛刀 ble web自動化 過程 bucket 搭建 node 服務 自動化測試有主要有兩個分類,接口自動化和ui自動化,ui自動化呢又分移動端的和web端的,當然還有c/s架構的,這種桌面程序應用的自動化,使用QTP,只不過現在沒人做了。 we

android 敏捷開發系列——《環境部署

書接上文,上次我們瞭解了敏捷開發的架構,但是利用我們普通的開發工具Eclipse的Ant構建是無法完成專案依賴等工作的,所以在開發之前我們需要準備好以下開發環境  maven + nexus + hudson + git 注:本文基本環境 服務端系統為ubuntu13.0