使用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[]{ "", "", "", "" };
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

开始mono开发的更多相关文章

  1. 基于Centos搭建 Mono 开发环境

    系统要求: CentOS 7.2 64 位操作系统 安装 Mono 安装前的准备 yum install yum-utils 执行命令添加安装包仓库 rpm --import "http:/ ...

  2. Mono开发环境搭建(Windows)

    一.下载 1.登录http://www.mono-project.com/下载 2.开发工具Xamarin Studio(好像是免费) http://www.monodevelop.com/downl ...

  3. ubuntu16.04 下 C# mono开发环境搭建

    本文转自:https://www.cnblogs.com/2186009311CFF/p/9204031.html 前记 之前我一直不看好C#的前景,因为我认为它只能在windows下运行,不兼容,对 ...

  4. mono 开发

    引用 segmentfault.com/a/1190000002449629 配置 ASP.NET Linux( CentOS 6.5 ) 运行环境 MONO + Jexus me15000 179 ...

  5. 十分钟内在Ubuntu系统上搭建Mono开发环境(Mono软件Ubuntu系统国内镜像源、Mono国内镜像源)

    Mono软件Ubuntu系统国内镜像源.Mono国内镜像源 http://download.githall.cn/repo 替换为国内源(非官方)有利于加快mono的安装速度,一般情况下,完成mono ...

  6. mono中发送邮件并保存本次收件人的地址

    在ios端mono开发中,发送邮件可以选择调用ios原生email程序.有两种方式实现这种功能,一是程序跳转到ipad中email程序,另外一种是将发送邮件的界面在自己应用里弹出. 首先第一种方式的代 ...

  7. 谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)

    在上篇文章里(http://www.cnblogs.com/ms0017/archive/2011/07/26/2117676.html),列举了国内外用ASP.NET开发的大型网站有哪些.最后提到了 ...

  8. Ubuntu上安装mono并进行C#代码测试

    微软的.NET框架与Linux开发和管理,是Buider AU和一个更广泛行业的两个最流行的主题. 大多数时候,这两个主题往往会产生冲突,很少有开发者需要同时了解这两个工具.但是,许多人都没意识到, ...

  9. mono for andorid 引用外部的dll问题

    这几天玩mono for android 心想,咱c#终于可以开发移动应用了,心里那个美啊------------ 先开发个什么呢,想起来前几天看到微博里一个用姓名笔画来算两个人关系的小测试,开发个这 ...

随机推荐

  1. Unity3d学习 预设体(prefab)的一些理解

    之前一直在想如果要在Unity3d上创建很多个具有相同结构的对象,是如何做的,后来查了相关资料发现预设体可以解决这个问题! 预设体的概念: 组件的集合体 , 预制物体可以实例化成游戏对象. 创建预设体 ...

  2. 札记:android手势识别,MotionEvent

    摘要 本文是手势识别输入事件处理的完整学习记录.内容包括输入事件InputEvent响应方式,触摸事件MotionEvent的概念和使用,触摸事件的动作分类.多点触摸.根据案例和API分析了触摸手势T ...

  3. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  4. ASP.NET Core中如影随形的”依赖注入”[下]: 历数依赖注入的N种玩法

    在对ASP.NET Core管道中关于依赖注入的两个核心对象(ServiceCollection和ServiceProvider)有了足够的认识之后,我们将关注的目光转移到编程层面.在ASP.NET ...

  5. 算法与数据结构(十四) 堆排序 (Swift 3.0版)

    上篇博客主要讲了冒泡排序.插入排序.希尔排序以及选择排序.本篇博客就来讲一下堆排序(Heap Sort).看到堆排序这个名字我们就应该知道这种排序方式的特点,就是利用堆来讲我们的序列进行排序.&quo ...

  6. CSS知识总结(七)

    CSS常用样式 5.背景样式 1)背景颜色 background-color : transparent | color 常用值:①英文单词,②十六进制,③RGB或RGBA 另外,还有一种是 渐变色彩 ...

  7. iOS之App Store上架被拒Legal - 5.1.5问题

    今天在看到App Store 上架过程中,苹果公司反馈的拒绝原因发现了这么一个问题: Legal - 5.1.5 Your app uses background location services ...

  8. MyEclipse对Maven的安装

    好记性不如烂笔头,记录一下. 操作系统:windows 7 MyEclipse2015 JDK1.7 maven的下载链接,点这里下载apache-maven-3.0.4-bin.tar.gz. 下载 ...

  9. 技术笔记:XMPP之openfire+spark+smack

    在即时通信这个领域目前只找到一个XMPP协议,在其协议基础上还是有许多成熟的产品,而且是开源的.所以还是想在这个领域多多了解一下. XMPP协议:具体的概念我就不写了,毕竟这东西网上到处是.简单的说就 ...

  10. 技术笔记:Indy控件发送邮件

    工作中有个需求需要发送邮件,因为使用的delphi6,所以自然就选择了indy组件,想想这事挺简单的.实现的过程倒是简单,看着Indy的demo很快就完了,毕竟也不是很复杂的功能. 功能要求: 1.压 ...