【Xamarin.Forms 2】App基础知识与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.AndroidAndroid项目的入口,用来生成Apk文件的项目工程。HelloXamarinApp.iOSiOS项目的入口,用来生成iOS App文件的项目工程。

二、Android项目的目录结构
AndroidManifest.xml:Android清单,用于描述功能和需求Resource:Android资源文件夹,用于存放图片,布局,样式,颜色,等等内容;MainActivity.cs:主活动界面,Xamarin.Forms公共库中写的页面等都在这个界面上显示;

三、AndroidManifest.xml
AndroidManifest.xml功能非常强大,用于描述App的功能和需求,如支持的sdk最低版本,目标版本、App安装后显示的名称、App使用的相关手机权限等。- 在IDE中,可以通过在
Android项目属性中的Android清单选项中可以图形化进行维护。 - 一般情况我们只需了解
Android清单选项中的内容即可。

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

四、Resource
1、drawable和mipmap
drawable:推荐用于存放图片、xml等资源文件;mipmap:推荐存放App图标文件,mdpihdpixhdpixxhdpixxxhdpi:分别存放不同分辨率的图片,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
项目启动时一些初始化工作都可以在此文件中。

- 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。

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

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

【说明:】
- 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
【Xamarin.Forms 2】App基础知识与App启动的更多相关文章
- APP测试入门篇之APP基础知识(001)
前言 最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...
- Appium自动化测试教程-自学网-app基础知识
Instrumentation的缺点是不支持跨应用,比如我想要先调起通讯录,在操作其他的app,则不支持. 第一步,应该确定系统哪些模块适合自动化.哪些不适合做自动化,明确做自动化给我们带来的好处是什 ...
- C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码
前言 什么是Xamarin? Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单. Xamarin的产品简化了针对多种平台的应用开发,包括iOS.Android.Windows P ...
- 使用Xamarin.Forms跨平台开发入门 Hello,Xamarin.Forms 第一部分 快速入门
本文介绍了如何使用VisualStudio开发Xamarin.Forms 应用程序和使用Xamarin.Forms开发应用的基础知识,包括了构建和发布Xamarin.Forms应用的工具,概念和步骤. ...
- 【Xamarin.Forms 3】页面类型
系列目录 微信 1.[Xamarin.Forms 1]App的创建与运行 2.[Xamarin.Forms 2]App基础知识与App启动 知乎 1.[Xamarin.Forms 1]App的创建与运 ...
- 使用MvvmCross框架实现Xamarin.Forms的汉堡菜单布局
注:本文是英文写的,偷懒自动翻译过来了,原文地址:Implementing MasterDetail layout in Xamarin.Forms by MvvmCross 欢迎大家关注我的公众号: ...
- Xamarin.Forms教程开发的Xcode的下载安装
Xamarin.Forms教程开发的Xcode的下载安装 Xamarin.Forms教程开发的Xcode的下载安装,Xcode是开发iOS应用程序的图形化开发工具.本节将讲解Xamarin.Forms ...
- Xamarin.Forms跨平台开发入门-第二部分:深入解析
英文原文: https://developer.xamarin.com/guides/xamarin-forms/getting-started/hello-xamarin-forms/deepdiv ...
- Xamarin.Forms教程开发Xamarin.Forms应用程序需要的工具
开发Xamarin.Forms应用程序需要的工具 Xamarin.Forms教程开发Xamarin.Forms应用程序需要的工具,2014年5月8日在发布的Xamrin 3中引进了Xamarin.Fo ...
随机推荐
- Ftrace的部分使用方法
ftrace主要是用于调试linux kernel调度相关的一个工具,也可用于分析部分kernel性能问题. 相关ftrace的介绍可以参考:kernel/msm-4.9/Documentation/ ...
- Java实现 LeetCode 722 删除注释(暴力筛选)
722. 删除注释 给一个 C++ 程序,删除程序中的注释.这个程序source是一个数组,其中source[i]表示第i行源码. 这表示每行源码由\n分隔. 在 C++ 中有两种注释风格,行内注释和 ...
- Java实现 蓝桥杯VIP 算法训练 开心的金明
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱 ...
- java实现第四届蓝桥杯逆波兰表达式
逆波兰表达式 正常的表达式称为中缀表达式,运算符在中间,主要是给人阅读的,机器求解并不方便. 例如:3 + 5 * (2 + 6) - 1 而且,常常需要用括号来改变运算次序. 相反,如果使用逆波兰表 ...
- iOS-地图定位 && 解码与反解码
前段时间,公司开发的App用到了地图和定位,所以记录一下,作为回顾总结. 对于地图和定位,苹果公司提供给了两个框架: MapKit:用于地图展示 Core Location ...
- Python 在线免费批量美颜,妈妈再也不用担心我 P 图两小时啦
引言 首先我承认自己标题党了,我就想提升点阅读量我容易么我,前几天的篇纯技术文阅读量都扯着蛋了. 毕竟阅读量太低实在是没有写下去的动力,我只能用点小手段偶尔提升下阅读量. 这篇文章我转换下套路,先放结 ...
- pytest 多个PY文件执行共享变量及用fixture和conftest
------------恢复内容开始------------ 1.pytest需要测试多个py文件,这些文件有一定的依赖关系,同时执行的时候,需要只执行一次初始化setup,结束再执行一次teardo ...
- Spting:基于注解的组件化管理
@Component,@Controller(控制层),@Service(业务层),@Repository(持久层) 以上四个注解的功能完全相同,不过在实际开发中,要在不同功能的类上加上响应的注解 1 ...
- [CQOI2007]矩形
题目 点这里看题目. 分析 插头 DP ,考虑枚举一下两块之间的分割线,本质上就是两个端点都在边界上的路径. DP 过程中,我们将没有端点在边界上面的路径称为 1 路径,反之叫 2 路径 ...
- Windows安装多个python解释器
Windows安装多个python解释器 在windows10系统下安装两个不同版本的的python解释器,在通常情况下编译执行文件都是没问题的,但是加载或下载包的时候pip的使用就会出现问题,无 ...