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架構的系統鏡像
d) 下載後需要手動安裝,如果雙擊安裝無效,使用管理員許可權運行CMD,執行安裝目錄下的那個Bat文件;如果提示不支持Intel虛擬化技術,但是我們確認是打開了的,可能是因為操作系統裝了Hyper的原因,卸載Hyper重啟再試一次
e) 進AVD創建基於X86的虛擬機
3.安卓引用的文件結構
文件夾 |
作用 |
Components |
登錄Xamarin賬戶可下載它官方提供的一些組件直接使用 |
Assets |
存放字體、本地資料庫、配置文件等一系列本地資源 |
Properties |
除了常規的程式集版本號等信息,含包括Android程式的許可權描述文件AndroidManifest.xml |
Resources |
包好Strings,images, layout等資源的文件夾,註意程式的視圖界面也在該文件夾下,還包括一個AboutResources.txt資源描述文件 |
4. 安卓應用的邏輯結構
安卓應用跟傳統應用不一樣,沒有單點入口,應用和安卓操作系統緊密聯繫,操作系統可以隨時將應用進程載入記憶體激活應用。因此應用中有一個Activity的概念,一個應用由很多Activity組成。
Activity的特性:
Label:告訴操作系統這個類屬於哪個程式,它會去AndroidManifest.xml里去匹配。
MainLauncher:告訴操作系統打開程式後激活哪個頁面。
Activity的生命周期:
created, started and paused, resumed and destroyed, and so on。
通過重寫基類的生命周期方法來實現自己的邏輯,如:OnCreate(應用程式被裝載到記憶體中時調一次),OnResume(設備執行別的任務後,該Activity返回設備界面時觸發),OnPause(設備將執行其他任務,該Activity離開設備界面時觸發)
5. Xamarin.Forms相關
1) 簡介
可以跨平臺的構建用戶交互相關的東西,簡而言之就是寫一套代碼三個平臺通用,在此基礎上也能夠結合各平臺特有的Xamarin本地代碼混合一起。
Forms除了跨平臺的好處意外,還支持Xaml編寫用戶界面,不用藉助Goft.Mvvm.light等第三方框架原生支持數據綁定等。
2) 使用前置條件
Android4.0以上;
IOS6.1以上;
開發環境VS2013;
解決方案必須是.Net4.5以上,PCL模板,Vs2013update2可使用SharedProject。
3) 適用程式
Xamarin.Forms |
Xamarin.iOS & Xamarin.Android |
以單純數據展示為主 |
程式會用到特殊的交互 |
快速原型、概念類程式 |
界面UI經過精心設計的程式 |
只會用到很少的平臺特殊功能(API) |
會用到很多的平臺特殊功能(API) |
共用代碼比用戶UI更加重要 |
用戶UI比共用代碼更加重要 |
4) Xaml相關
Forms要針對各個平臺做界面微調時OnPlatForm
5) FormsFQA
第一次運行Forms程式會提示“無法鏈接到遠程伺服器”,詳細看這裡
Verify the project is selected to be deployed in the Solution Configuration Manager.詳細看這裡
6. Mvvm相關
三套框架:MvvmCross、MvvmLight、XamarinFormsLab
MvvmLight For Android要求Android版本在2.3(API10)以上
7. FQA
1) 一個糾纏很久的問題,Android設計界面中Layout無法載入,報什麼網路錯誤,原因為Android SDK升級了最新的Tools到24.3,最新版的SDK會引起Xamarin出現這個錯誤,如果使用最新的Xamarin則已修複這個錯誤,如果不想更新Xamarin則需要進行SDK降級操作
2) 限制屏幕旋轉功能,指定程式只能使用豎屏或橫屏,參考《Xamarin Forms Preview Edition 2》第五章,88(PDF 101)頁。
8. 其他資源
安裝、破解:http://www.jianshu.com/p/c67c14b3110c