使用mono框架开发android程序,第一步固然是构建开发环境,严格意义上说是使用 mono for android开发android程序。html
参考Mono for Android安装配置破解 mono for android官网上有一个一键安装包,可是安装不是很方便。node
整个环境涉及到不少组件,像搭建lamp环境同样,这些均可以本身安装完成。由于刚开始都涉及到破解版本问题,因此建议你们单个安装。 组件的功能须要搞清楚,有些仍是很容易混淆的。android
mono是一个开源项目,而mono for android是一个运行时和开发堆栈。web
主要是JDK,AndroidSDK相关,若是不熟悉 能够参考这篇文章 体验phonegap3.0windows
windows下使用mono环境 须要一个MONO 在windows下的运行时架构
针对vs的mono开发工具是做为一个插件添加到vs的工具。app
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
编译部署提示架构不支持相关的错误,能够尝试从如下几个方面解决
Android 工程设置 支持多个平台
为何会出现架构支持的问题,由于android须要匹配不一样架构的cpu,在新建虚拟设备时,以下图 你能够观察到每一个虚拟设备所支持的平台。
其实AndroidSdk 中提供了专门针对平台的包,能够按需求下载。
问题:没有显示系统默认的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 (); }; }
参考