MonoForAndroid 第二章 Mono For Android 簡介

來源:互聯網
上載者:User

第一章中簡單瞭解了Mono以及行動裝置的相關知識,回顧下上一章中主要介紹的內容:

對.NET Framework 和 Mono進行了一下簡單的比較

移動開發、Android以及跨平台工具應該注意的事項和一些簡短的介紹

 這一章 我們對Mono For Android做一個簡單的介紹,本章的主要內容有:

1. Mono 和 Mono for Android 簡介

2. 配置開發環境

3. 針對Visual Studio的Mono for Android 工具

4. 調試和部署

----------------------------------------------------------------------我是華麗的分割線----------------------------------------------------------------------------------------------

一、開始開發前的準備工作

Mono的含義:Mono是一個有Xamarin所發起的開源項目,主要用於建立.NET CLI、C#編譯器以及開放的開發堆棧的Ecma標準的實現。

目前Mono的實現主要有三個目標:

(1) 開源的CLI

(2)C#編譯器

(3)公開的開發堆棧

Mono遵循Ecma標準。Ecma國際於1961年成立,主要任務是為資訊和通訊技術的標準提供支援。

Mono for Android 的含義:Mono for Android 是一個運行時和開發堆棧,使.NET開發人員可以充分利用他們現有的Visual Studio 和C#知識為基於Android的裝置開發應用程式。

(1)運行時:Mono for Android 運行時是一個在Android堆棧的Linux核心上啟動並執行應用程式,負責解釋Mono位元組代碼,並與Java VM進行通訊,以便於調用本機Android API

(2)開發堆棧:Mono for Android 也是一個開發堆棧,他提供了建立和打包Android裝置應用程式所需的工具。

為什麼使用Mono for Android:

(1) 熟悉的開發環境

(2)熟悉的API和庫結構,下表顯示了mono  for  android 4.0.1中的部分程式集

程式集 說明
Mono.Android.dll 包含了綁定到Android API 的C#
Mono.CompileServices.SymbolWriter.dll 主要針對編譯器編寫者
Mono.Data.Sqlite.dll 針對SQLite的ADO.NET提供者
Mono.Data.Tds.dll 對TDS協議的支援,主要用於為System.Data內的System.Data.SqlClient提供支援
Mono.Security.dll 加密API
mscorlib.dll Silverlight
OpenTK.dll OpenGL/OpenAL物件導向API,可對其進行擴充以提供Android裝置支援
System.dll

Silverlight,再加上來自下列命名空間中的類型:

System.Collections.Specialized

System。ComponentModel

System.ComponentModel.Design

System.Diagnostics

System.IO.Compression

System.Net

System.Net.Cache

System.Net.Mail

System.Net.Mime

System.Net.NetworkInformation

System.Net.Security

System.Net.Sockets

System.Security.Authentication

System.Security.Cryptography

System.Timers

System.Core.dll Silverlight
System.Data.dll 刪除了部分功能的.NET 3.5
System.Json.dll Silverlight
System.Runtime.Serialization.dll Silverlight
System.ServiceModel.dll Silverlight Alpha 中所呈現的WCF堆棧
System.ServiceModel.Web.dll

Silverlight,再加上來自於下列命名空間:

System

System.ServiceModel.Channels

System.ServiceModel.Description

System.ServiceModel.Web

Alpha 品質

System.Transactions.dll  
System.Web.Services.dll  
System.Xml.dll 。NET 3.5
System.Xml.Linq.dll 。NET 3.5

 

在使用Mono for Android 時需要權衡的事項

1 等待更新,也就是說如果Android SDK中增加了新的功能或增強了效能,必須等待Mono for Android 的下一個相應的版本

2 潛在的效能影響

3 記憶體管理:許多由Mono for Android所分配的對象都是對這些對象所表示的Java對象的封裝,每當分配一個封裝了相應的java類型的類型時,都會建立兩個對象:

   (1) 位於Java堆中的Java對象

   (2)位於Mono堆中的Mono“代理”對象

Mono for Android進行了相應的處理,以確保當某一對象引用另一對象時,這兩個對象都保持活動狀態。

二、利用 Mono for Android 進行開發

裝好針對VS的外掛程式後,在建立項目的時候會看到 Android 的一個選項,但是一般VS是載入不了的 ,破解程式也破解不了VS中的外掛程式,很蛋疼的一個事情,哎。。。

:

所以我直接用的Xamarin Studio來建立:

 

就能看到預設產生的程式碼,我就不多解釋了,因為都能理解。。。

預設產生的是一個按鈕點擊的功能,並且累加點擊次數。如果環境什麼的都配置好了,直接點擊Debug就可以看到效果了。

簡單介紹下按鈕放置的位置,按鈕被放置在Resources檔案夾下的layout檔案夾下的Main.axml檔案中。

日誌記錄:

通過引用Android.Util可以使用Android的日誌記錄功能。

   Log.Info ("","");記錄資訊
   Log.Error ("","");記錄錯誤
   Log.Warn ("", "");記錄警告

測試:

最好的測試自己開發的應用程式的方法莫過於構造單元測試了 ,使用NUnit。

部署:

將HelloAndroid應用程式部署到行動裝置中非常的簡單,分為三個步驟:

(1)通過USB串連手機

(2)將手機設定為開發模式

(3)點擊Debug按鈕,當發現你的裝置後,選擇它,安裝過程會通過USB在所選的裝置上運行。

 

這一章到這裡就結束了,在下一章中我們開始學習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.