開始mono開發


使用mono框架開發android程序,第一步當然是構建開發環境,嚴格意義上說是使用 mono for android開發android程序。

參考Mono for Android安裝配置破解  mono for android官網上有一個一鍵安裝包,但是安裝不是很方便。

整個環境涉及到很多組件,像搭建lamp環境一樣,這些都可以自己安裝完成。因為剛開始都涉及到破解版本問題,所以建議大家單個安裝。 組件的功能需要搞清楚,有些還是很容易混淆的。

mono是一個開源項目,而mono for android是一個運行時和開發堆棧。

Android環境

主要是JDK,AndroidSDK相關,如果不熟悉 可以參考這篇文章 體驗phonegap3.0

Mono Windows運行時 

windows下使用mono環境 需要一個MONO 在windows下的運行時

針對vs的mono開發工具是作為一個插件添加到vs的工具。

Xamarin IDE

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

 

 Mono架構支持設置

編譯部署提示架構不支持相關的錯誤,可以嘗試從以下幾個方面解決

 Android 工程設置 支持多個平台

 

 為什么會出現架構支持的問題,因為android需要匹配不同架構的cpu,在新建虛擬設備時,如下圖 你可以觀察到每個虛擬設備所支持的平台。

其實AndroidSdk 中提供了專門針對平台的包,可以按需求下載。

 ListView 內置視圖不出現

問題:沒有顯示系統默認的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 ();
            
            };
        }

 

 

參考

Mono for Android 4.2.5

http://www.51mono.com/

mono環境官方網站下載地址

MVVM開發模式

ADB命令詳解

Xamarin Mono For Android 4.10.01068

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM