Mono for Android, C# for Android,Monodroid初嘗鮮-[Hello, MonoAndroid]

來源:互聯網
上載者:User
    首先瞭解一下什麼是Mono:Mono是一個由Novell公司(由Ximian發起,並由Miguel de lcaza領導的,一個致力於開創.NET在Linux上使用的開源工程。它包含了一個C#語言的編譯器,一個CLR的運行時,和一組類庫,並實現了 ADO NET和ASP NET。能夠使得開發人員在Linux用C#開發程式。)
    Mono現由Novell持有雙重許可,Qt和這和Mozilla應用程式套件的情況相似。Mono的 C#編譯器及其相關工具發佈於GNU General Public License (GPL)之下,其執行階段程式庫發佈於GNU Lesser General Public License (LGPL)之下,其類庫發佈於MIT License之下。這些均是開源協議因此Mono是一個開源軟體。如果你打算向Mono貢獻你的源碼,則你須簽署一個著作權指派給Novell以允許它將這些代碼在其它協議下再申請許可, 從而允許Novell保留其雙重許可的能力來持有Mono的商業協議.
    Mono虛擬機器包含一個Just-In-Time 編譯引擎,該引擎可用於如下處理器: x86, SPARC, PowerPC, ARM, S390 (32位元模式和64位元模式), x86-x64, IA64和64位元模式的SPARC.該虛擬機器可以將代碼Just-In-Time 編譯或者預先編譯到原生代碼。對於那些沒有列出來的系統,則使用的是代碼解譯器。
    更多介紹。

    然後看到Mono for Android,MFA是一款於Android的Mono虛擬機器,讓開發人員可 以用C#開發Android應用程式。另外,Dalvik API已經被綁定至C#,你可以用C#方便地調用Android內建的很多類庫。OpenTK類庫也被移值過來,你可以在Windows, Linux與iPhone三個不同的平台上共用同樣的OpenGL代碼。值得注意得是,與Mono的開源不同的同Mono for Android的使用是需要購買授權的,最便宜的For Student也要99刀,除非你單單是在模擬器上開發。 


    本來今晚想嘗試一下Mono for Android,用C#來寫個Android小程式,可是這悲劇的校園網怎麼也連不上monodevelop.com,先把工具下載下來,再記錄下自己搭配環境的過程,以及對Mono for Android的個人的看法。
    首先記錄下Mono for android SDK的安裝過程,有兩種方式可以安裝MFA,第一種是直接在MonoDevelop上更新外掛程式的形式,還有一種是以Visual Studio外掛程式形式來安裝,本來想在MonoDevelop上直接安裝,避免弄得本來就那麼臃腫的Visual Studio更大,結果發現校園網環境裡串連不到Mono的補救伺服器,只能通過Visual Studio外掛程式的形式來試下開發的過程。

    安裝很簡單,只要下面簡單的四步:
  •     1、Install the Java SDK
  •     2、Install the Android SDK
  •     3、Configure your simulator
  •     4、Install the Mono for Android Visual Studio 2010 Plugin

    Java SDK應該都會裝有吧,沒有的話點擊下載安裝。接著安裝Android SDK,安裝Android SDK是件讓人頭疼的事,特別是在校園網,通過installer來線上安裝,速度是很慢的,幸虧之前有直接在同學電腦裡拷了下載好的SDK過來,點擊下載安裝。
    接著就是配置Android模擬器,開啟下載好的SDK檔案夾裡SDK Manager,New一個新的Visual Device.    

    最後安裝MonoDroid For Visual Studio就可以,點擊下載。注意在安裝的時候記得要關閉所有開啟的Visual Studio視窗。到這裡基本的環境已經配置好,開啟Visual Studio就可以看開有建立Mono For Android的選項了。


    接下來就是我的"Hello,MonoAndroid"示範了。
    開啟Visual Studio建立項目,可以看到,我們選擇一個"Mono for Android Application"。
   

    輸入項目名,OK。

    這時看到自動產生的程式碼:
  

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace HelloMonoAndroid
{
[Activity(Label = "HelloMonoAndroid", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : Activity
{
int count = 1; protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource

SetContentView(Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it

Button button = FindViewById<Button>(Resource.Id.MyButton);
button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
}
}
}


    是不是又熟悉又陌生呢。這就要瞭解Android一些相關的背景知識,雖然說我們是用C#來開發Android應用程式,但也要知道Android程式的構成以及程式架構,Android應用程式由4個模組構造而成:Activity,Intent,Content Provider,Service。其中Activity是最基本的模組,一個Activity通常是一個單獨的螢幕,更詳細的知識請查看相關書籍,該代碼產生了一個按鈕,通過點擊按鈕顯示出累積的點擊次數。
    我們再看看資源管理員:
   
    可以看到引用裡有Mono.Android命名空間,這是Mono For Android得以實現的基礎,還有幾個檔案夾,之前如果有接觸過Android開發的人一定會感覺非常的熟悉,Drawable是放置圖片資源,像背景圖片,表徵圖等,Layout是放置布局檔案,Values裡有個string.xml,可以定義字串。
    這樣就是一個基本可啟動並執行Mono For Android程式了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.