使用mono框架開發android程序,第一步固然是構建開發環境,嚴格意義上說是使用 mono for android開發android程序。html
參考Mono for Android安裝配置破解 mono for android官網上有一個一鍵安裝包,可是安裝不是很方便。node
整個環境涉及到不少組件,像搭建lamp環境同樣,這些均可以本身安裝完成。由於剛開始都涉及到破解版本問題,因此建議你們單個安裝。 組件的功能須要搞清楚,有些仍是很容易混淆的。android
mono是一個開源項目,而mono for android是一個運行時和開發堆棧。web
主要是JDK,AndroidSDK相關,若是不熟悉 能夠參考這篇文章 體驗phonegap3.0windows
windows下使用mono環境 須要一個MONO 在windows下的運行時架構
針對vs的mono開發工具是做爲一個插件添加到vs的工具。app
mono有單獨的開發工具MonoDevelop 官網,可是Xamarin提供的IDE名字叫XamarinStudio,其實是MonoStudio4.0後改的名字。Xamarin Studio 下載地址
在IDE中開發應用須要藉助設備,設備分模擬設備和真機。使用模擬器調試的整個過程就是把程序安裝到模擬中,運行程序,在運行的過程當中調試。根據個人測試,當那你的程序發生改變時, IDE會自動部署 安裝,app到設備上,若是以前存在的安裝,會先卸載。
在Android環境中, adb.exe 工具用於直接操做管理android模擬器或者真實的andriod設備(手機).全稱Android Debug Bridge
它的主要功能有:
* 運行設備的shell(命令行)
* 管理模擬器或設備的端口映射
* 計算機和設備之間上傳/下載文件
* 將本地apk軟件安裝至模擬器或android設備
須要注意的是Mono環境安裝不順利,好多問題是由於android sdk安裝有問題,好比環境變量設置不正確,版本不一致,安裝不完整等。
而對於adb,最新的SDK內部有一個調整 The adb tool has moved to platform-tools from tools directory
ADB是一個客戶端-服務器端程序, 其中客戶端是你用來操做的電腦, 服務器端是android設備..
先說安裝方法, 電腦上須要安裝客戶端. 客戶端包含在sdk裏. 設備上不須要安裝, 只須要在手機上打開選項設置-應用程序-USB調試(4.0:設備-開發人員選項)
adb 有各個系統的版本的,Liunx,Mac,Windows,根據你本身的操做系統來選擇要下載的Android SDK就可使用adb命令了.
adb工具中比較實用的幾個命令
查看設備 adb devices
在設備管理中創建虛擬設備後,經過 adb devices查看當前鏈接的設備, 鏈接到計算機的android設備或者模擬器將會列出顯示
啓動和關閉 adb
adb start-server
adb kill-server
1 使用編譯器時遇到一個問題,對於模擬器設備,設備列表里老是沒有設備
新建並刷新也不會有。以後我安裝了BlueStacks,顯示有所變化,BlueStacks是一個很好用的模擬器調試工具,稍後我會寫一篇博文專門記錄。
其實設備列表裏有沒有設備無所謂了,點開新建虛擬設備,你新建過的設備都會列在那裏,直接選擇啓動便可
應用安裝到模擬器出現錯誤
Deployment failed. FastDev directory creation failed.
解決方法:
以下圖,關閉fast deloyment
編譯部署提示架構不支持相關的錯誤,能夠嘗試從如下幾個方面解決
Android 工程設置 支持多個平臺
爲何會出現架構支持的問題,由於android須要匹配不一樣架構的cpu,在新建虛擬設備時,以下圖 你能夠觀察到每一個虛擬設備所支持的平臺。
其實AndroidSdk 中提供了專門針對平臺的包,能夠按需求下載。
問題:沒有顯示系統默認的ListView 內置資源視圖
對於繼承ListActivity 的Activity,使用ListView顯示數據,能夠利用默認的Androidn內置資源Android.Resource.Layout.SimpleListItem1佈局視圖,起初我根本找不到這個引用,最後發現是項目的命名空間是 Mono.Android,這會形成Android的命名空間衝突,默認的內置資源都不會出現
string[] items = { }; protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); try { base.OnCreate (bundle); items = new string[]{ "1", "2", "3", "4" }; this.ListAdapter = new ArrayAdapter<string> (this, Android.Resource.Layout.SimpleListItem1, items); } catch (Exception ex) { Toast.MakeText (this, "發生異常:"+ex.Message,ToastLength.Long).Show (); }; }
參考