• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Xamarin.Forms跨平台开发入门-第二部分:深入解析,

Xamarin.Forms跨平台开发入门-第二部分:深入解析,

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了xamarin.forms,xamarin.forms教程,xamarin,xamarin教程,xamarin下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Xamarin.Forms跨平台开发入门-第二部分:深入解析,


 

英文原文:

https://developer.xamarin.com/guides/xamarin-forms/getting-started/hello-xamarin-forms/deepdive/#

 

本文的第一部分内容建立了Phoneword应用。本文是第二部分,回顾了构建的内容以了解Xamarin.Forms 应用程序的基本工作原理。

 

我们要讨论下面一些问题:

  •  Visual Studio简介,建立一个新的Xamarin.Forms应用的简介。
  •  剖析Xamarin.Forms 应用,介绍应用的基本组成部分。
  •  架构和应用程序基础-每个平台是怎么启动应用的。
  •  在Xamarin.Forms应用中建立用户界面。
  •  Phoneword中涉及到的一些额外的概念。
  •  测试和发布-测试,发布,生成作品的一些建议。

 

Visual Studio简介

Visual Studio 是微软公司的一个强大的IDE。它完整地集成了可视化设计器,文本编辑器,优化重构工具,包管理器,源代码集成等。本文介绍Xamarin 插件相关的一些基本特征。

 Visual Studio 将代码组织成解决方案和项目。一个解决方案是一个容器,他可以容纳一个或多个工程。可以是一个应用工程,支持库工程,测试工程或其他工程。Phoneword应用包含一个解决方案,里面有六个工程,如下图。

  

 

这些项目是:

Phoneword-本项目是可移植的类库项目,所有的共享的代码和共享UI都在里面。

Phoneword.Droid - 专门针对Android系统的代码,和Android应用的入口。

Phoneword.IOS -专门针对IOS系统的代码,和IOS应用的入口

Phoneword.UWP-专门针对Windows通用平台(UWP)系统的代码,和该平台应用的入口

Phoneword.WinPhone- 包含专门针与Windows Phone平台的代码,和Windows Phone 8.0 应用的入口。

Phoneword.WinPhone81- 包含专门针与Windows Phone8.1平台的代码,和Windows Phone 8.1 应用的入口。

 

Xamarin.Forms应用的剖析。

下图显示了Visual Studio中Phoneword PCL工程所包含的内容。

 

 

 

 

这一工程包含两个文件夹:

Reference - 包含本应用必需的构建和运行时所需要的库文件。

Properties-包含AssemblyInfo.cs,他是一个.NET库的元文件,在它里面放一些关于应用程序的基本信息,这是一个好习惯,关于此文件的更多信息,请参见MSDN 上的AssemblyInfo 类。

 

工程中还包含一些文件:

App.xaml - XAML App 类对应的标记文件,为应用程序定义了资源字典。

App.xaml.cs - App类的代码文件,包含了初始化并显示第一个页面,还要控制着应用程序生命周期事件。

IDialer.cs - IDialer接口,指明了实现类中必须实现的Dial方法。

MainPage.xaml - MainPage 类的XAML标记文件。定义了本应用启动时的页面的界面元素(UI)。

MainPage.xaml.cs- MainPagel类的代码。包含了用户与界面交互的业务逻辑。

Packages.config-一个XML文件,包含了关于NuGet包的一些信息,用来跟踪必须的包文件和相应的版本。Xamarin Studio 和Visual Studio都可以配置成自动恢复缺失的Nuget包,当你与其他程序员共享代码时,这个文件里包含的内容有NuGet管理器所控制。

PhoneTranslator.cs - 将电话单词转换成电话号码的业务逻辑,被MainPage.xaml.cs所使用。

 

更多的Xamarin.IOS应用的剖析内容,请参见https://developer.xamarin.com/guides/ios/getting_started/hello,_ios/hello,_ios_deepdive#Anatomy_of_a_Xamarin.iOS_Application/

更多的Xamarin.Android应用的剖析内容,请参见

https://developer.xamarin.com/guides/android/getting_started/hello,android/hello,android_deepdive#Anatomy_of_a_Xamarin.Android_Application/

 

体系结构和应用程序基础构成

和传统的跨平台应用类似,Xamarin.Forms 应用将共享的代码放入可移植类库(PCL)内,平台相关的应用消费这些共享的代码,下图展示说明了Phoneword应用的各个部分的关系:

 

 

关于PCL的更多的信息,请参考

https://developer.xamarin.com/guides/cross-platform/application_fundamentals/pcl/introduction_to_portable_class_libraries/

为了最大化重用启动代码,Xamarin.Forms应用有一个单独的类,叫做App,负责每一个平台的第一个页面的初始化工作,如下代码所示:

 

using Xamarin.Forms;
using Xamarin.Forms.Xaml;
 
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
namespace Phoneword
{
    public partial class App : Application
    {
        public App()
        {
            InitializeComponent();
            MainPage = new MainPage();
        }
        ...
    }
}

 

 

这段代码将一个一个新的Mainpage实例赋值给App的MainPage属性。XamlCompilation 属性打开了XAML 编译器,以使XAML被编译成中间语言。更多的关于XAML的内容,请参见

https://developer.xamarin.com/guides/xamarin-forms/xaml/xamlc/

 

在各个平台上启动应用

IOS

要在IOS上执行Xamarin.Forms 页面,Phoneword.IOS工程包含了继承自FormsApplicationDelegate 的AppDelegate类,如下代码所示:

 

namespace Phoneword.iOS
{
    [Register ("AppDelegate")]
    public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
    {
        public override bool FinishedLaunching (UIApplication app, NSDictionary options)
        {
            global::Xamarin.Forms.Forms.Init ();
            LoadApplication (new App ());
            return base.FinishedLaunching (app, options);
        }
    }
}

 

 

通过调用Init方法,FinishedLaunching方法覆盖了初始化Xamarin.Forms框架的过程。这使得IOS平台上实现了通过调用LoadApplication方法让Xamarin.Forms在根View Controller被设置之前被调用。

 

Android

为了在Android系统上启动Xamarin.forms页面,Phoneword.Droid工程包含了创建一个带有MainLauncher 属性的 Activity代码,这个Activity集成自formsApplicationActivity类。如下所示:

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Xamarin.Forms+Prism(2)—— 基本使用 NavigationService,xamarin.forms
  • Xamarin.Forms跨平台开发入门-第二部分:深入解析,

相关文章

  • 2017-05-227.1.1 Android网络编程要学的东西与Http协议学习
  • 2017-05-26Android 用Canvas画textview、bitmap、矩形(裁剪)、椭圆、线、点、弧
  • 2017-05-26Android 6.0 Permission权限与安全机制,androidpermission
  • 2017-05-26Android点击跳转到淘宝的某一商品详情页或者某一店铺页面,android商品详情
  • 2017-05-26Touch事件分发
  • 2017-05-26linux编程之socket
  • 2017-05-26Android开发艺术探索学习笔记(三),android艺术探索
  • 2017-05-26cobbler系统使用之二高级篇的补充篇---关于kickstart文件内容的配置说明
  • 2017-05-26关于eclipse android 在manifest改app应用包名注意事项,androidmanifest
  • 2017-05-26安卓6.0(棉花糖)新特性汇总,安卓6.0

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • android实现文字渐变效果和歌词进度的效果
    • 转载:android MVC设计模式,androidmvc
    • Kotlin的属性委托:无上下文情况下Android的赋值(KAD 15),kotlinandroid
    • Android开发学习—— Broadcast广播接收者,androidbroadcast
    • Android:广播接收器(BroadCastReceiver)要点随笔。,
    • android开发时间和日期的代码实现工具类(一),android工具类
    • Android自定义实现循环滚轮控件WheelView
    • android 之 启动画面的两种方法,android两种方法
    • Android 隐藏状态栏 标题栏
    • 安卓多线程间通信和多进程之间通信有什么不同?分别怎么实现?,安卓多线程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有