1. 安装

1) 使用标准安装流程(JDK1.6 -> Android SDK -> NDK -> Xamarin Studio -> Xamarin Visual Studio)

2) Android SDK Manager更改源,可时刻保持最新,一个镜像源地址:mirrors.neusoft.edu.cn;ubuntu.buct.cn;Port: 80,Android SDK的目录结构介绍,Android的一些相关资源 (http://ubuntu.buct.edu.cn/android/repository/)。

3) Windows端破解流程两步:替换IDE的Dll,两个位置,一个是VS的Common下,一个Xamarin Studio的bin下;替换对应版本的mandroid.exe和mtouch.exe

4) Mac端破解流程,Mac端只负责IOS相关的东西,不考虑在Mac端开发Android,首先要安装的东西包括:MonoFramework-MDK-3.12.1.3.macos10.xamarin.x86.pkg; monotouch-8.8.2.4.pkg ;XamarinStudio-5.8.2.7-0.dmg;(版本号注意要匹配,现在这一系列的版本号匹配的是Windows端的3.9.525)

装完之后主要要替换三个东西:/Developer/MonoTouch/usr/bin/mtouch-64;

Mtouch-64替换完毕后需要在终端执行命令:chmod a+x /Developer/MonoTouch/usr/bin/mtouch-64

然后替换/Applications/Xamarin Studio.app/Contents/Resources/lib/monodevelop/AddIns/Xamarin.Ide/Xamarin.Components.Ide.dll

最后替换

/Applications/Xamarin.iOS Build Host.app/Contents/MonoBundle/Xamarin.Components.Ide.dll

2. 模拟器

1) 可以不使用android的标准模拟器,使用Xamarin Android Player,据说性能要好一些,但是版权原因还没测试。

2) 如果使用标准模拟器,可配置硬件加速

a) 首先,你的CPU必须支持Intel虚拟化技术,如果支持进BISO打开

b) 使用 Android SDK 下载对应的 x86架构的系统镜像

c) 上Intel官网下载最新的HAXM虚拟引擎,或者直接用SDK下载

d) 下载后需要手动安装,如果双击安装无效,使用管理员权限运行CMD,执行安装目录下的那个Bat文件;如果提示不支持Intel虚拟化技术,但是我们确认是打开了的,可能是因为操作系统装了Hyper的原因,卸载Hyper重启再试一次

e) 进AVD创建基于X86的虚拟机

3.安卓引用的文件结构

文件夹

作用

Components

登录Xamarin账户可下载它官方提供的一些组件直接使用

Assets

存放字体、本地数据库、配置文件等一系列本地资源

Properties

除了常规的程序集版本号等信息,含包括Android程序的权限描述文件AndroidManifest.xml

Resources

包好Strings,images, layout等资源的文件夹,注意程序的视图界面也在该文件夹下,还包括一个AboutResources.txt资源描述文件

4. 安卓应用的逻辑结构

    安卓应用跟传统应用不一样,没有单点入口,应用和安卓操作系统紧密联系,操作系统可以随时将应用进程载入内存激活应用。因此应用中有一个Activity的概念,一个应用由很多Activity组成。

    Activity的特性:
         
    Label:告诉操作系统这个类属于哪个程序,它会去AndroidManifest.xml里去匹配。
    MainLauncher:告诉操作系统打开程序后激活哪个页面。
 
    Activity的生命周期
     created, started and paused, resumed and destroyed, and so on。
     通过重写基类的生命周期方法来实现自己的逻辑,如:OnCreate(应用程序被装载到内存中时调一次),OnResume(设备执行别的任务后,该Activity返回设备界面时触发),OnPause(设备将执行其他任务,该Activity离开设备界面时触发)
      

5. Xamarin.Forms相关

1) 简介

可以跨平台的构建用户交互相关的东西,简而言之就是写一套代码三个平台通用,在此基础上也能够结合各平台特有的Xamarin本地代码混合一起。

Forms除了跨平台的好处意外,还支持Xaml编写用户界面,不用借助Goft.Mvvm.light等第三方框架原生支持数据绑定等。

2) 使用前置条件

Android4.0以上;

IOS6.1以上;

开发环境VS2013;

解决方案必须是.Net4.5以上,PCL模板,Vs2013update2可使用SharedProject。

3) 适用程序

Xamarin.Forms

Xamarin.iOS & Xamarin.Android

以单纯数据展示为主

程序会用到特殊的交互

快速原型、概念类程序

界面UI经过精心设计的程序

只会用到很少的平台特殊功能(API)

会用到很多的平台特殊功能(API)

共享代码比用户UI更加重要

用户UI比共享代码更加重要

4) Xaml相关

Forms要针对各个平台做界面微调时OnPlatForm

5) FormsFQA

第一次运行Forms程序会提示“无法链接到远程服务器”,详细看这里

Verify the project is selected to be deployed in the Solution Configuration Manager.详细看这里

6. Mvvm相关

三套框架:MvvmCross、MvvmLight、XamarinFormsLab

http://blog.galasoft.ch/posts/2014/05/mvvm-light-v4-4-with-xamarin-android-support/?utm_source=tuicool

MvvmLight For Android要求Android版本在2.3(API10)以上

7. FQA

1) 一个纠缠很久的问题,Android设计界面中Layout无法加载,报什么网络错误,原因为Android SDK升级了最新的Tools到24.3,最新版的SDK会引起Xamarin出现这个错误,如果使用最新的Xamarin则已修复这个错误,如果不想更新Xamarin则需要进行SDK降级操作

2) 限制屏幕旋转功能,指定程序只能使用竖屏或横屏,参考《Xamarin Forms Preview Edition 2》第五章,88(PDF 101)页。

8. 其他资源

安装、破解:http://www.jianshu.com/p/c67c14b3110c

Xamarin入门浅析的更多相关文章

  1. Xamarin入门,开发一个简单的练手APP

    之前周末用Xamarin练手做了个简单APP,没有啥逻辑基本就是个界面架子,MVVM的简单使用,还有Binding,Command的简单使用,还有一个稍微复杂点两个界面交互处理(子页面新增后关闭,父页 ...

  2. gulp的入门浅析

    阅读目录 介绍gulp 安装gulp gulpfile.js 运行gulp 介绍gulp的api 介绍gulp gulp是基于Nodejs的自动任务运行器, 她能自动化地完成 javascript/c ...

  3. DLL入门浅析(5)——使用DLL在进程间共享数据

    转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/21/90734.html 在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的 ...

  4. DLL入门浅析(4)——从DLL中导出类

    转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/20/90663.html 前面介绍了怎么从DLL中导出函数和变量,实际上导出类的方法也是大同小 ...

  5. DLL入门浅析(3)——从DLL中导出变量

    转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/20/90643.html 前面介绍了怎么从DLL中导出函数,下面我们来看一下如何从DLL中导出 ...

  6. DLL入门浅析(2)——如何使用DLL

    转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/20/90621.html 上文我简单的介绍了如何建立一个简单DLL,下面再我简单的介绍一下如何 ...

  7. DLL入门浅析(1)——如何建立DLL

    转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/20/90619.html 初学DLL,结合教程,总结一下自己的所得,希望对DLL初学者们有所帮 ...

  8. Android Dragger2快速入门浅析

    定Dagger2的基本介绍:dagger2是一个依赖注入框架,在编译期间自动生成代码,负责依赖对象的创建. 使用Dagger2的好处:为了进一步解耦和方便测试,我们会使用依赖注入的方式构建对象 (不使 ...

  9. DLL入门浅析【转】

     1.建立DLL动态库 动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的.所有的C语言标准库函数都存放在某一函数库中.在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数 ...

随机推荐

  1. Thunder团队第五周 - Scrum会议1

    Scrum会议1 小组名称:Thunder 项目名称:i阅app Scrum Master:杨梓瑞 工作照片: 邹双黛在照相,所以图片中没有该同学. 参会成员: 王航:http://www.cnblo ...

  2. 20145214 《Java程序设计》第2周学习总结

    20145214 <Java程序设计>第2周学习总结 教材学习内容总结 基本类型 整数:可分为short整数.int整数.long整数. 字节:即byte类型,可表示-128~127的整数 ...

  3. c# dllimport

    DllImport会按照顺序自动去寻找的地方:1.exe所在目录 2.System32目录 3.环境变量目录.所以只需要你把引用的DLL 拷贝到这三个目录下 就可以不用写路径了 或者可以这样serve ...

  4. IntelliJ IDEA Maven引入

  5. leetcode 整理

    1.Two Sum 构造Comparator,KSum 这一类的问题最基本的一题, 解法: 先sort,然后双指针,头尾各一个.进行加逼找值. 对于其余的KSum最终是降次到2次. 如3Sum固定一个 ...

  6. [计算机网络] TCP的拥塞控制

    引言 计算机网络中的带宽.交换结点中的缓存和处理机等,都是网络的资源.在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏.这种情况就叫做拥塞. 拥塞控制就是防止过多 ...

  7. Delphi中正常窗口的实现

    摘要: 在Delphi的VCL库中,为了使用以及实现的方便,应用对象Application创建了一个用来处理消息响应的隐藏窗口.而正是这个窗口,使得用VCL开发出来的程序存在着与其他窗口不能正常排列平 ...

  8. Java接口成员变量

    定义接口    使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,当中接口体由常量定义和方法定义两部分组成.定义接口的基本格式例如以下: [修饰符] inter ...

  9. BZOJ 1082 栅栏(二分+DFS剪枝)

    首先,长度短的木板一定比长度长的木板容易得到,因此若要得到最多的木板,它们必定是所有木板中最短的——可以对木板排序后二分答案(用k表示). 判断是否合法就用搜索,但数据有点大,要用到两个剪枝.一个是若 ...

  10. 计蒜客 17417 Highest Tower(思维+图论)

    题解: 实际上一个可行解即选取长和宽的一个,使得最后每一组选第一维的数值都不同 在此基础上,使得另一维的和最大. 然后建立图论模型 对于每一个方块,在a和b之间连边. 对于选择的方案,如果选择a-&g ...