Mono for Android, C# for Android,Monodroid初尝鲜-[Hello, MonoAndroid]
首先了解一下什么是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虚拟机包含一个实时编译引擎,该引擎可用于如下处理器: x86, SPARC, PowerPC, ARM, S390 (32位模式和64位模式), x86-x64, IA64和64位模式的SPARC.该虚拟机可以将代码实时编译或者预先编译到原生代码。对于那些没有列出来的系统,则使用的是代码解释器。
更多介绍。
然后看到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插件的形式来试下开发的过程。
安装很简单,只要下面简单的四步:
接着就是配置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。
这时看到自动生成的代码:
是不是又熟悉又陌生呢。这就要了解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程序了。
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虚拟机包含一个实时编译引擎,该引擎可用于如下处理器: x86, SPARC, PowerPC, ARM, S390 (32位模式和64位模式), x86-x64, IA64和64位模式的SPARC.该虚拟机可以将代码实时编译或者预先编译到原生代码。对于那些没有列出来的系统,则使用的是代码解释器。
更多介绍。
然后看到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
接着就是配置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++); };
}
}
}
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程序了。
@:卿之 → http://www.cnblogs.com/wpdev
©:博文是本人当时的学习笔记及知识整理,由于自身局限错误在所难免,敬请斧正.
©:本文版权属于博客园和本人,版权基于署名 2.5 中国大陆许可协议发布,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接和署名卿之(包含链接),不得删节,否则保留追究法律责任的权利。