• Xamarin.Forms移动开发系列3:项目剖析


    摘要 本文主要进行Xamarin.Forms应用程序剖析。

    前言

    本文介绍Xamarin.Forms应用程序剖析。

    由于本系列重点研究对象为Xamarin.Forms,所以对Xamarin.Android、Xamarin.iOS项目只是初步剖析。

    开发环境

    1.Visual Studio 2019 16.0.2

    2.Xamarin.Forms 3.6.0.344457

    项目结构

    一个解决方案包含三个项目,如下图所示:

    App1:此项目为.NET Standard库项目,其中包含所有的共享代码和共享UI。

    App1.Android:此项目包含Android特定代码,是Android程序的入口点。

    App1.iOS:此项目包含iOS特定代码,是iOS程序入口点。

    Xamarin.Forms

    此处所说的Xamarin.Forms是指.NET Standard库项目的内容:

    ● App.xaml:XAML标记文件,定义应用程序的资源字典。

    ● App.xaml.cs:App.xaml的Code-Behind文件,负责实例化每个平台的首页,并处理应用程序生命周期。

    ● MainPage.xaml:首页的XAML标记文件,定义首页UI。

    ● MainPage.xaml.cs:首页的Code-Behind文件,控制用户与首页UI交互时执行的业务逻辑。

    Application类

    App类继承自Xamarin.Forms.Application类,是Xamarin.Forms的起始点。

    Application类主要提供以下功能:

    ● MainPage属性:用于设置APP的初始页面。

    ● Properties属性:用于跨生命周期存储简单值的Dictionary<string,object>。

    ● Current属性:对当前Application对象的引用。

    ● OnStart方法:应用程序启动时调用。

    ● OnSleep方法:应用程序转到后台时调用。

    ● OnResume方法:应用程序从后台恢复时调用。

    
    public partial class App : Application
    {
    public App()
    {
    //初始化App.xaml
    InitializeComponent();
    
    //设置初始页面 即:MainPage.xaml
    MainPage = new MainPage();
    }
    
    /// <summary>
    /// 应用程序启动时调用
    /// </summary>
    protected override void OnStart() { }
    
    /// <summary>
    /// 应用程序转到后台时调用
    /// </summary>
    protected override void OnSleep()
    {
    //用Properties字典存储值
    Application.Current.Properties["msg"] = "Hello Properties";
    }
    
    /// <summary>
    /// 应用程序从后台恢复时调用。
    /// </summary>
    protected override void OnResume()
    {
    //从Properties字典读取值
    if (Application.Current.Properties.ContainsKey("msg"))
    {
    var msg = Application.Current.Properties["id"] as string; //msg is "Hello Properties"
    }
    }
    }

    提示:Properties字典只能序列化基元类型用于存储,存储其他类型可能会在无提示的情况下失败。

    Xamarin.Android

    主要包含:

    1.AndroidManifest.xml:Android清单文件,该文件描述了对 Xamarin.Android 应用程序的所有要求(包括名称、版本号和权限)。

    该文件可以手动修改xml文件代码,也可以通过右键Android项目=》属性=》Android清单来修改。

    2.Assets:包含应用程序运行需要的文件(包括字体、本地数据文件和文本文件)。

    3.Resources:包含应用程序资源,例如图片、颜色、样式和布局。

    ● drawable - 存放不同分辨率的图像资源。

    ● mipmap - 存放不同分辨率的启动图标。

    ● layout - 存放Android设计器文件(.axml),再Android原生开发中,用于存放界面。

    ● values - 存放用于存储简单值得xml文件。

    ● Resource.designer.cs - 存放每个资源的唯一ID,它由 Xamarin.Android 工具自动创建,并在必要时重新生成。不应手动编辑此文件,因为 Xamarin.Android 将覆盖对其进行的任何手动更改。

    4.MainActivity.cs

    Android程序入口,好比C#的Program.cs中的Main函数。

    Xamarin.iOS

    主要包含:

    1.Asset Catalogs:资源目录,存放图片、图标等资源。

    2.Resources:存储其他媒体的资源文件夹。

    3.LaunchScreen.storyboard:包含应用程序界面的可视化设计,只能在iOS Designer图形编辑器中打开。

    4.Entitlements.plist:指定应用程序功能。

    5.Info.plist:设置应用程序属性,如程序名称,图标,启动图片等。

    6.Main.cs:应用程序主入口点,传入主应用程序类AppDelegate来启动程序。

    7.AppDeletegate.cs:此文件包含主应用程序类,负责创建窗口、构建用户界面和从操作系统侦听事件。
     

    欢迎添加个人微信号:Like若所思。

    欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!


     

  • 相关阅读:
    定义全局时间过滤器
    vue局部过滤器和全局过滤器
    vue-ref指令
    vue进行代码排序
    vue-通过name进行数据过滤
    将vue文档下载到本地预览
    由于vue的for循环id并不严谨,提高id严谨性
    vue指令v-for报错:Elements in iteration expect to have 'v-bind:key' directives.eslint-plugin-vue
    FlowPortal BPM历史版本升级说明
    102从 Outlook 中将电子邮件、联系人和日历导出到 .pst 文件
  • 原文地址:https://www.cnblogs.com/cool2feel/p/11422932.html
Copyright © 2020-2023  润新知