【Xamarin.Forms 2】App基础知识与App启动

1、【Xamarin.Forms 1】App的创建与运行

引言

本篇文章将介绍Xamarin.Forms中 App 基础知识和 App的启动。

开发环境

Visual Studio 2019 16.6.2

Xamarin.Forms 4.6.0.726

Android 5.0 (API 级别21 - Lollipop)以上

本文主要内容 一、项目总的结构组成

在我们创建了HelloXamarinApp项目时,IDE会默认创建3个项目:HelloXamarinApp、HelloXamarinApp.Android与HelloXamarinApp.iOS。

HelloXamarinApp 为功能的项目,主要包括界面的布局、信息等公共的内容。

HelloXamarinApp.Android Android项目的入口,用来生成Apk文件的项目工程。

HelloXamarinApp.iOS iOS项目的入口,用来生成iOS App文件的项目工程。

【Xamarin.Forms 2】App基础知识与App启动

二、Android项目的目录结构

AndroidManifest.xml:Android清单,用于描述功能和需求

Resource:Android资源文件夹,用于存放图片,布局,样式,颜色,等等内容;

MainActivity.cs:主活动界面,Xamarin.Forms公共库中写的页面等都在这个界面上显示;

【Xamarin.Forms 2】App基础知识与App启动

三、AndroidManifest.xml

AndroidManifest.xml功能非常强大,用于描述App的功能和需求,如支持的sdk最低版本,目标版本、App安装后显示的名称、App使用的相关手机权限等。

在IDE中,可以通过在Android项目属性中的Android清单选项中可以图形化进行维护。

一般情况我们只需了解Android清单选项中的内容即可。

【Xamarin.Forms 2】App基础知识与App启动

选择Android项目,右键->属性:可以看到清单内容

【Xamarin.Forms 2】App基础知识与App启动

四、Resource

1、drawable和mipmap

drawable:推荐用于存放图片、xml等资源文件;

mipmap:推荐存放App图标文件,

mdpi hdpi xhdpi xxhdpi xxxhdpi:分别存放不同分辨率的图片,Android系统会根据手机分辨率去选择不同分辨率文件夹下的图片。

mdpi:HVGA(320*480)

hdpi:WVGA(480800),FWVGA(480854)

xhdpi:720P(1280*720)

xxhdpi:1080P(1920*1080)

xxxhdpi:4K(3840-2160)

2、layout
用于描述用户界面布局,在Android原生开发中,所有的界面都是放在这里的。

3、values

values包含用于存储简单值的xml文件,如:

style.xml:存放样式列表,App中的样式都可以放在此文件中。确保App的全局样式保持一致

colors.xml:存放颜色列表,App各种颜色,包括项目的主题颜色等,都可以在此文件中进行定义

strings.xml:存放字符串列表(默认是未创建此文件),需要时可以自行添加

五、MainActivity.cs

项目启动时一些初始化工作都可以在此文件中。

【Xamarin.Forms 2】App基础知识与App启动

MainActivity继承自FormsAppCompatActivity,它是XF在Android平台下提供的基类,封装了框架初始化等方法;

通过base.OnCreate、Forms.Init、LoadApplication三个步骤,将XF框架初始化,并加载App类;

App类主要有以下功能:

MainPage:指定App启动页面;

Properties:跨生命周期的属性字典;

Current:一个代表当前应用的静态属性。

六、iOS项目

iOS项目的入口文件在Main.cs中,并在此文件中的Main函数中调用AppDelegate类。
在AppDelegate类中的函数FinishedLaunching中会进行一些初始化并启动App。

【Xamarin.Forms 2】App基础知识与App启动

七、HelloXamarinApp

如果你使用wpf开发过项目,一定会很熟悉这种项目结构目录。

【Xamarin.Forms 2】App基础知识与App启动

看一下App.xaml.cs文件的内容:

【Xamarin.Forms 2】App基础知识与App启动


【说明:】

MainPage用于指定启动界面,这里指定的是MainPage.xaml界面;

Properties属性字典用于存储数据,可以在程序中任意位置赋值,任意位置取值;

Current代表当前App,它是一个静态变量,可以在程序任意位置调用;

在程序其他位置获取当前App的方式:Application.Current。

生命周期

App的生命周期在这里看的很清楚:

OnStart:App启动时调用;
OnSleep:App转到后台时调用;
OnResume:App从后台恢复时调用。

参考文章:
1、https://www.jianshu.com/p/306a6616fdd5
2、https://www.jianshu.com/p/85e3f0a41e57

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyspx.html