在vs2012中用C#开发Android应用Xamarin环境搭建
Xamarin是Mono创始人Miguel de Icaza创建的公司,旨在让开发者可以用C#编写iOS, Android, Mac应用程序,也就是跨平台移动开发。
简介
Xamarin是基于Mono的平台,目前主要有以下产品(更具体请见:http://xamarin.com/products):
- Xamarin Studio:IDE,是从原来的MonoDevelop改名而来。现在从MonoDevelop官方网站下载的其实也是Xamarin Studio:http://monodevelop.com/。 (话说MonoDevelop也是SharpDevelop的一个分支发展而来)
- Xamarin.iOS:原名MonoTouch,用于开发iOS应用程序,并且可以发布到app store上。
- Xamarin.Mac:用于开发mac os x应用程序,类似于windows 桌面应用。
- Xamarin.Android:原名MonoDroid/Mono for Android,用于开发Android应用程序。
- Xamarin for Visual Studio:Visual Studio的插件,包括iOS和Android,不过目前只支持vs2010/vs2012。
- Xamarin Test Cloud:测试云,可以把你的应用程序发布到Xamarin的云上面测试,它可以自动帮你在数百种设备上测试你的应用程序。
- Component Store:组件商店,上面有各种收费/免费的控件提供下载。
话说还有windows phone不知道跑哪去了…
界面设计器
对于Android,不管是Xamarin Studio还是Xamarin for Visual Studio,都有提供一个设计器,方便直接对界面进行设计,具体见:http://docs.xamarin.com/guides/android/user_interface/designer_overview/。
而iOS则没有这么好运了,Xamarin for Visual Studio没有设计器。而Xamarin Studio虽然有设计器提供,不过目前也只提供在iOS上的Xamarin Studio alpha版本,估计目前稳定性还不够,具体见:http://docs.xamarin.com/guides/ios/user_interface/designer/,只好期待未来能够提供。
已经安装了Xamarin Studio或者Visual Studio的可以直接通过切换通道来更新:http://docs.xamarin.com/recipes/cross-platform/ide/change_updates_channel/,目前主要有Stable稳定版、Beta测试版、以及alpha版。
工作方式
Android应用程序会被编译为IL代码,启动时再进行JIT编译(动态编译),发布程序的时候会包含一个mono runtime。
而iOS则是直接通过AOT编译(静态编译)为ARM汇编代码。
具体见:http://xamarin.com/how-it-works
API文档
Xamarin提供了API文档:
- Android:http://androidapi.xamarin.com/?link=root%3a%2fMonoAndroid-lib
- iOS:http://iosapi.xamarin.com/?link=root%3a%2fMonoTouch-lib
安装
Xamarin Studio
Xamarin Studio可以直接从http://monodevelop.com/Download下载,目前最新的稳定版为4.0.13。
- Windows版依赖于.NET Framework 4.0和GTK# for .NET 2.12.22,安装好两个依赖之后可以直接安装Xamarin Studio即可。
- Mac OSX版依赖于Mono + GTK#,需要先从http://www.go-mono.com/mono-downloads/download.html下载MRE(Mono Runtime)或者MDK(Mono DevelopmentKit)安装。MRE和MDK都包含GTK#和MONO。
Android
android依赖JDK6以及android SDK,所以需要先下载:
- JDK6:http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html
- android SDK及NDK:http://developer.android.com/sdk,其中NDK不是必须的。
- Xamarin.Android:http://xamarin.com/download
安装好JDK及androidSDK之后,再安装Xamarin.Android,会让你选择是否安装Visual Studio插件。
安装好Visual Studio插件之后,在菜单Tools->Options->Xamarin->Android Settings设置好Android SDK和NDK的路径。
额外说一句,eclipse实在是太差劲,跟intellij IDEA没法比,如果用java开发的话Android Studio是最佳选择,ADT就不用考虑了。
Android模拟器及调试
由于android SDK提供的模拟器是在是巨慢无比,太差劲了,所以不得不找一个替代品。
基于Virtual Box的GenyMotion绝对是最佳选择,运行速度非常流畅,不过目前只支持Android4.1.1、4.2.2。
在官网:http://www.genymotion.com/注册好账号,并下载安装GenyMotion,目前最新版本为1.3.0。
安装之前需要你的电脑上已经安装Virtual Box(目前最新版为4.3.2),不过我发现我安装了Virtual Box 4.3.2的情况下GenyMotion无法启动,所以后来又换成官方推荐的4.2.12,从https://www.virtualbox.org/wiki/Download_Old_Builds_4_2下载。
安装完成之后:
- 通过”Settings”按钮:设置好Android SDK路径,并勾选”When a virtual devices starts, connect it automatically to ADB”,”ADB from Android Developer Tools successfully found”。
- 通过“Add”按钮
- 添加设备,然后需要登录
- 如果所选的设备镜像没有下载,则需要在线下载某个设备的vbox镜像,一般镜像大小为200M。
- 通过向导提示添加虚拟机,输入名称如“lwme Nexus S - 4.2.2 - with Google Apps - API 17 - 480x800”,再等待虚拟机创建好
- 通过“Play”按钮运行虚拟机
虚拟机启动之后,VS的Xamarin.Android工具栏会列出设备的名称,选择这个设备就可以在GenyMotion模拟器上调试Android应用程序了。
iOS on mac
在mac os x要使用Xamarin Studio必须先安装XCode。假设已经安装好Xamarin Studio,那么也一样直接安装Xamarin.iOS即可,然后就可以直接通过Xamarin Studio直接开发调试iOS应用程序了。
iOS on windows
windows下的Xamarin.iOS直接安装即可,由于没有windows下的模拟器,所以需要连接到mac的模拟器进行调试。
前提条件是(具体见:http://docs.xamarin.com/guides/ios/getting_started/installation/mac/):
- 在mac下安装并激活Xamarin Studio及Xamarin.iOS
- 在Network->Proxies启用Web Proxy(HTTP)
- 关闭防火墙
还有一个最重要的前提是,你必须有有个iPhone Developer Program(IDP)证书,否则没办法调试,没有的话需要到:https://developer.apple.com/programs/ios/申请(个人开发者$99每年)。
做好以上操作之后:
- 在Visual Studio的Tools->Options->Xamarin->iOS Settings->Mac build host->Configure->Configure Host Manually
- 输入mac的ip地址,等待mac设备显示Ready
- 再点Connect按钮连接设备
- 连接成功
- 连接成功之后可能会提示SDK更新,选择更新即可,否则会提示版本不匹配无法连上mac
- 更新成功需要重新开启vs
Xamarin.iOS的Visual Studio插件调试有两种模式:
- 真机(iPhone):默认,需要把iPhone真机通过usb连到mac上
- 模拟器(iPhoneSimulator):模拟器调试
默认情况下是iPhone,可以在Build->Configuration Manager的Platform进行更改,否则没有连接iPhone会显示”No Devices Attached”。
具体的配置请见:http://docs.xamarin.com/guides/ios/getting_started/introduction_to_Xamarin_iOS_for_visual_studio/。
然后就可以调试了,某些情况可能mtouch没有运行权限,还需要通过chmod +x /Developer/MonoTouch/usr/bin/mtouch来赋予运行权限。
Visual Studio 2012/2013
Xamarin的Visual Studio插件目前还不支持VS 2013,所以需要在安装Xamarin的VS插件时把2010和2012全选上 (由于我的电脑里只剩2013,而安装VS2013的时候还会安装部分VS2010的Shell,所以VS插件会被安装到VS2010的目录下)。
接下来需要手动复制一些文件(假如VS2013安装在C盘的话):
- 把C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/Extensions/Xamarin 复制到 C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/Extensions/Xamarin
- 把C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/ProjectTemplates/CSharp目录下的Android目录和iOS目录复制到C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/ProjectTemplates/CSharp
- 把C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/ItemTemplates/CSharp目录下的Xamarin.Android目录和iOS墓道复制到C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/ItemTemplates/CSharp
- 运行"c:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/devenv.exe" /setup /nosetupvstemplates生成项目及文件模板缓存
上面的方法来自:http://blog.fire-development.com/2013/07/01/install-xamarin-in-vs-2013-preview-1/,再由囧月改造。
现在就可以在VS2013上开发Android及iOS应用了。
附:软件下载地址:
Android Components: 1. JDK 1.6: http://download.xamarin.com/Installer/MonoForAndroid/jdk-6u39-windows-i586.exe 2. Android SDK: http://dl.google.com/android/installer_r21-windows.exe 3. GTK#: http://download.xamarin.com/Installer/gtk-sharp-2.12.20.msi 4. Xamarin Studio: http://download.xamarin.com/studio/Windows/XamarinStudio-4.0.1.msi 5. Xamarin.Android for Visual Studio and Xamarin Studio: http://download.xamarin.com/MonoforAndroid/Windows/mono-android-4.6.00049.msi
本地离线版安装说明:
1、下载并解压吾乐吧提供的“Mono for Android 离线包”,然后依次“手动”运行安装以下几个软件: 1)jdk-6u45-windows-i586.exe (就算你是64位系统,也要安装i586版) 2)installer_r22.0.1-windows.exe (例如安装到 D:\Program Files\Android\android-sdk)
2、下载并解压吾乐吧提供的“Android SDK 本地离线完整版”,把压缩包里的 android-sdk 解压到上面那个安装路径(路径不要含有中文): D:\Program Files\Android\android-sdk
3、设置系统环境变量:右键我的电脑——属性——高级系统设置——高级——环境变量——系统变量里,找到 Path,双击进行修改,在最前面增加: D:\Program Files\Android\android-sdk\platform-tools; (注意末尾必须有 ; 英文分号)
4、依次“手动”运行安装以下几个软件: 1)gtk-sharp-2.12.21.msi //这个是用xamarinstudio时需要安装 2)XamarinStudio-4.0.8.msi //使用vs201不用安装 3)mono-android-4.6.07004.msi 4)mtvs-1.0.897.0.msi //(如果不开发iOS,这个不需要安装,这个需要用 MFx Patcher.exe 破解)
5、安装mono-aundroid的破解补丁
破解补丁在http://down.51cto.com/data/514411地址将 压缩包/mandroid文件夹里面的mandroid.exe 放到C:\Program Files\MSBuild\Xamarin\Android目录覆盖源文件即可。
在vs2012中用C#开发Android应用Xamarin环境搭建的更多相关文章
- Android开发:Eclipse+OpenCV环境搭建
一.OpenCV预备: OpenCV是一个跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它由一系列 C 函数和少量 C++ 类构成,同时提供了Pyt ...
- Android入门之环境搭建
欢迎访问我的新博客:http://www.milkcu.com/blog/ 原文地址:http://www.milkcu.com/blog/archives/1376935560.html 原创:An ...
- Android自动化测试之环境搭建
Android自动化测试之环境搭建 一.Android-sdk介绍 SDK(Software development kit)软件开发工具包.被软件开发工程师用于为特定的软件包.软件框架.硬件平台. ...
- iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)
iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController) 前面我们介绍了StoryBoard这个新技术,和纯技术 ...
- iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)
iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController) 这里我们就直接上实例: 一:新建一个项目singleV ...
- [置顶] Django 微信开发(一)——环境搭建
Django 微信开发(一)——环境搭建 随着移动互联网时代的到来,微信——一个改变着我们生活的产品悄悄走近了我们的生活.我们不得不觉得自己很幸运,自己能在这个世界上遇到像QQ.微博.微信这样优秀的产 ...
- Android自动化测试-UiAutomator2环境搭建
Android自动化测试-UiAutomator环境搭建(QQ交流群:490451176) 一.环境准备 1. 安装android sdk,并配置环境变量 2. 安装android studio,国内 ...
- 手把手教你君正X2000开发板的OpenHarmony环境搭建
摘要:本文主要介绍基于君正X2000开发板的OpenHarmony环境搭建以及简单介绍网络配置情况 本文分享自华为云社区<君正X2000开发板的OpenHarmony环境搭建>,作者: 星 ...
- Android开发之基于AndroidStudio环境搭建和工程创建
断断续续的学习安卓也有一段时间了.因为之前是搞iOS开发的, 之前有关iOS的博客请看<我的iOS开发系列博文>.<我的Objective-C系列文章>和<窥探Swift ...
随机推荐
- uwp 图片切换动画
最近在学习安卓,LOL自定义战绩项目近乎停工,而且腾旭把界面全改了,好烦.刚好学习到安卓中的图片切换动画,我就想在LOL项目中实现一个.首先上百度查看一下,妈的,资料少的可怜. 还是自己来吧.自定义控 ...
- 前端MVVM框架设计及实现(二)
在前端MVVM框架设计及实现(一)中有一个博友提出一个看法: “html中使用mvvm徒增开发成本” 我想这位朋友要表达的意思应该是HTML定义了大量的语法标记,HTML中放入了太多的逻辑,从而增加了 ...
- JavaScript Prototype
function Obj () { } Obj.a=0; Obj.fn=function(){ } console.log(Obj.a); console.log(typeof Obj.fn);//f ...
- Java基础之类Class使用
大家都知道Java是一门面向对象编程语言,在Java世界里,万事万物皆对象,那个Java中怎么表示对象呢?Class 我们知道Java中的对象都是Object类的子类,那么今天我们就一起来研究一下Ja ...
- [c++] Callable Objects
Five kinds of callable objects: Functions Pointers to functions Objects of a class that overloads () ...
- 用PHP抓取页面并分析
在做抓取前,记得把php.ini中的max_execution_time设置的大点,不然会报错的.
- JavaMail发送邮件的笔记及Demo
最近碰到一个需求,就是注册用户时候需要向用户发送激活邮箱,于是照着网上搜来的demo自己试着运行了一下,发件时我用的是网易163邮箱,收件时用QQ邮箱,运行后报了一个错误: 网络上搜索解决方式,多次尝 ...
- (六)WebGIS中地图瓦片在Canvas上的拼接显示原理
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 在之前的五个章节中,我们在第一章节里介绍了WebGIS的基本 ...
- Access数据库多表连接查询
第一次在Access中写多表查询,就按照MS数据库中的写法,结果报语法错,原来Access的多表连接查询是不一样的 表A.B.C,A关联B,B关联C,均用ID键关联 一般写法:select * fro ...
- 1.羽翼sqlmap学习笔记之Access注入
使用sqlmap工具进行Acces注入:1.判断一个url是否存在注入点,根据返回数据判断数据库类型: .sqlmap.py -u "http://abcd****efg.asp?id=7& ...