Xamarin入門淺析

来源:http://www.cnblogs.com/qinjin/archive/2016/01/13/XamarinIntroduction.html
-Advertisement-
Play Games

Xamarin入門:包括了安裝相關,環境部署,以及一些常見的問題和一些資源。


1. 安裝

1) 使用標準安裝流程(JDK1.6 -> Android SDK -> NDK -> Xamarin Studio -> Xamarin Visual Studio)

2) Android SDK Manager更改源,可時刻保持最新,一個鏡像源地址:mirrors.neusoft.edu.cn;ubuntu.buct.cn;Port: 80,Android SDK的目錄結構介紹,Android的一些相關資源 (http://ubuntu.buct.edu.cn/android/repository/)。

3) Windows端破解流程兩步:替換IDE的Dll,兩個位置,一個是VS的Common下,一個Xamarin Studio的bin下;替換對應版本的mandroid.exe和mtouch.exe

4) Mac端破解流程,Mac端只負責IOS相關的東西,不考慮在Mac端開發Android,首先要安裝的東西包括:MonoFramework-MDK-3.12.1.3.macos10.xamarin.x86.pkg; monotouch-8.8.2.4.pkg ;XamarinStudio-5.8.2.7-0.dmg;(版本號註意要匹配,現在這一系列的版本號匹配的是Windows端的3.9.525)

裝完之後主要要替換三個東西:/Developer/MonoTouch/usr/bin/mtouch-64;

Mtouch-64替換完畢後需要在終端執行命令:chmod a+x /Developer/MonoTouch/usr/bin/mtouch-64

然後替換/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/AddIns/Xamarin.Ide/Xamarin.Components.Ide.dll

最後替換

/Applications/Xamarin.iOS Build Host.app/Contents/MonoBundle/Xamarin.Components.Ide.dll

2. 模擬器

1) 可以不使用android的標準模擬器,使用Xamarin Android Player,據說性能要好一些,但是版權原因還沒測試。

2) 如果使用標準模擬器,可配置硬體加速

a) 首先,你的CPU必須支持Intel虛擬化技術,如果支持進BISO打開

b) 使用 Android SDK 下載對應的 x86架構的系統鏡像

image

c) 上Intel官網下載最新的HAXM虛擬引擎,或者直接用SDK下載

image

d) 下載後需要手動安裝,如果雙擊安裝無效,使用管理員許可權運行CMD,執行安裝目錄下的那個Bat文件;如果提示不支持Intel虛擬化技術,但是我們確認是打開了的,可能是因為操作系統裝了Hyper的原因,卸載Hyper重啟再試一次

e) 進AVD創建基於X86的虛擬機

3.安卓引用的文件結構

image

文件夾

作用

Components

登錄Xamarin賬戶可下載它官方提供的一些組件直接使用

Assets

存放字體、本地資料庫、配置文件等一系列本地資源

Properties

除了常規的程式集版本號等信息,含包括Android程式的許可權描述文件AndroidManifest.xml

Resources

包好Strings,images, layout等資源的文件夾,註意程式的視圖界面也在該文件夾下,還包括一個AboutResources.txt資源描述文件

4. 安卓應用的邏輯結構

    安卓應用跟傳統應用不一樣,沒有單點入口,應用和安卓操作系統緊密聯繫,操作系統可以隨時將應用進程載入記憶體激活應用。因此應用中有一個Activity的概念,一個應用由很多Activity組成。
image
 
    Activity的特性:
         image
 
    Label:告訴操作系統這個類屬於哪個程式,它會去AndroidManifest.xml里去匹配。
    MainLauncher:告訴操作系統打開程式後激活哪個頁面。
 
    Activity的生命周期
     created, started and paused, resumed and destroyed, and so on。
     通過重寫基類的生命周期方法來實現自己的邏輯,如:OnCreate(應用程式被裝載到記憶體中時調一次),OnResume(設備執行別的任務後,該Activity返回設備界面時觸發),OnPause(設備將執行其他任務,該Activity離開設備界面時觸發)
      image 
image
 

5. Xamarin.Forms相關

1) 簡介

可以跨平臺的構建用戶交互相關的東西,簡而言之就是寫一套代碼三個平臺通用,在此基礎上也能夠結合各平臺特有的Xamarin本地代碼混合一起。

Forms除了跨平臺的好處意外,還支持Xaml編寫用戶界面,不用藉助Goft.Mvvm.light等第三方框架原生支持數據綁定等。

2) 使用前置條件

Android4.0以上;

IOS6.1以上;

開發環境VS2013;

解決方案必須是.Net4.5以上,PCL模板,Vs2013update2可使用SharedProject

3) 適用程式

image

 

Xamarin.Forms

Xamarin.iOS & Xamarin.Android

以單純數據展示為主

程式會用到特殊的交互

快速原型、概念類程式

界面UI經過精心設計的程式

只會用到很少的平臺特殊功能(API)

會用到很多的平臺特殊功能(API)

共用代碼比用戶UI更加重要

用戶UI比共用代碼更加重要

4) Xaml相關

Forms要針對各個平臺做界面微調時OnPlatForm

image

5) FormsFQA

第一次運行Forms程式會提示“無法鏈接到遠程伺服器”,詳細看這裡

Verify the project is selected to be deployed in the Solution Configuration Manager.詳細看這裡

6. Mvvm相關

三套框架:MvvmCross、MvvmLight、XamarinFormsLab

http://blog.galasoft.ch/posts/2014/05/mvvm-light-v4-4-with-xamarin-android-support/?utm_source=tuicool

MvvmLight For Android要求Android版本在2.3(API10)以上

7. FQA

1) 一個糾纏很久的問題,Android設計界面中Layout無法載入,報什麼網路錯誤,原因為Android SDK升級了最新的Tools到24.3,最新版的SDK會引起Xamarin出現這個錯誤,如果使用最新的Xamarin則已修複這個錯誤,如果不想更新Xamarin則需要進行SDK降級操作

image

2) 限制屏幕旋轉功能,指定程式只能使用豎屏或橫屏,參考《Xamarin Forms Preview Edition 2》第五章,88(PDF 101)頁。

8. 其他資源

安裝、破解:http://www.jianshu.com/p/c67c14b3110c


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

-Advertisement-
Play Games
更多相關文章
  • Jquery方法$("img").one("error", function(e){ $(this).attr("src", "default.gif");});
  • public class CommonAuthorize : AuthorizeAttribute { protected override bool AuthorizeCore(HttpContextBase httpContext) { ...
  • 作者:[美]Adam Freeman 來源:《精通ASP.NET MVC 4》ASP.NET MVC 是微軟的一個 Web開發框架,它整合了“模型—視圖—控制器(MVC)”架構的高效與整潔、敏捷開發的最新的思想與技術以及當前ASP.NET 平臺的精華部分。ASP.NET MVC 可以完全替代傳統的....
  • 一. DescriptionAttribute的普通使用方式1.1 使用示例 DescriptionAttribute特性可以用到很多地方,比較常見的就是枚舉,通過獲取枚舉上定義的描述信息在UI上顯示,一個簡單的枚舉定義:public enum EnumGender { ...
  • 一:文件查找1:文件檢索有時候我們因為改bug的需要,必須要知道這個MD5函數在哪些文件中用到了,然而不像cs中我們可以用shift+f12來查找下函數引用,這時候我們就可以用 “文件查找” 解決這個問題。我們可以在 “查找結果” 中清楚的看到哪些文件和哪些行使用到了這個md5函數,然後我們繼續順藤...
  • 首先、導入命名空間:using System.Net.Mail;定義發送電子郵件的方法[網上很多不同的,可以對比著看一下,WinForm的也適用]:/// /// 發送電子郵件/// /// 發件人郵箱地址/// 收件人郵箱地址/// 郵件主題/// 郵件內容/// public bool Send...
  • 1、查找空節點//*[not(text())] 表示內容為空的節點//*[count(*)=0] 表示沒有子節點的節點"//*[count(*)=0 and not(text())]" 空節點,表示既沒有內容,也沒有子節點,但未排除包含屬性的節點
  • 一:Helios是什麼 Helios是一套高性能的Socket通信中間件,使用C#編寫。Helios的開發受到Netty的啟發,使用非阻塞的事件驅動模型架構來實現高併發高吞吐量。Helios為我們大大的簡化了Socket編程,它已經為我們處理好了高併發情況下的解包,粘包,buffer管理等等。 .....
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...