📜  超过50个Xamarin面试问题

📅  最后修改于: 2021-01-11 16:21:51             🧑  作者: Mango

Xamarin面试问题

下面列出了Xamarin面试常见问题解答。

1)什么是Xamarin?

Xamarin是一家开发软件的公司。 Xamarin的主要操作是构建可在跨平台上运行的移动应用程序。它用于为Android,iOS和Windows操作系统构建UI。 Xamarin应用程序共享代码库。 Xamarin的功能类似于本机应用程序。开发人员可以在Visual Studio中下载Xamarin工具。

2)Xamarin开发的优势是什么?

Xamarin开发的好处是:

  • 用户界面简单而原生。
  • 开发人员可以使用Xamarin来制作跨平台应用程序。
  • 错误的机会更少。
  • 我们可以使用相同的代码库为iOS,Android和Windows创建一个应用程序。
  • Xamarin具有强大的社区支持。

3)Xamarin开发的缺点是什么?

Xamarin应用程序开发的缺点是:

  • Xamarin中用户界面的开发是耗时的。
  • 在Xamarin中创建的应用具有较大的文件大小。这些应用在商店中的大小通常在3 MB到15 MB之间。
  • 甚至应用程序都在整个平台上共享代码,但是开发人员也需要在OS中创建链接,这对用户来说很困难。

4)Xamarin的开发方法是什么?

Xamarin有两种用于应用程序开发的方法。这些是

  • Xamarin.Forms:表单是想要为所有单独的移动平台( Windows,iOS和Android)创建一个应用程序的开发人员的选择。
  • Xamarin Native:当我们要为不同的平台创建同一应用程序的单独版本时,可以在这种情况下使用此方法。开发人员可以使用Xamarin.iOS,Xamarin.Android和Xamarin.Windows库为每个特定平台创建应用程序。

5)Xamarin和Xamarin.Forms有什么区别?

Xamarin和Xamarin.Forms之间的区别是:

Xamarin Xamarin.Forms
Xamarin is an app development tool to create cross-platform mobile applications. Xamarin.Forms is a UI toolkit to develop the application.
Developers can use Xamarin.iOS, Xamarin.Android and Xamarin.Windows to create the application which is based on the particular platform for which the apps are created. Developers can use Xamarin. Forms to create the one native version of the App which can run the entire mobile platform.

6)什么是Xamarin Profiler?

Xamarin Profiler是开发人员用来监视Visual Studio中特定应用程序信息的工具。借助Xamarin Profiler,开发人员可以轻松分析该应用程序的行为。我们可以使用探查器来跟踪应用程序的内存信息并可以对其统计信息进行采样。

7)什么是Xamarin Insights?

Xamarin洞察力是使开发人员能够实时识别和跟踪应用程序问题的工具。我们也可以将其用于监视系统以报告问题。 Xamarin于2014年10月推出了Xamarin Insight。但是,它于2016年3月31日关闭。在当今时代,开发人员可以相信Visual Studio App Center具有与Xamarin Insights提供的功能相同的功能。

8)什么是Xamarin.Forms?

Xamarin.Forms是一个框架,用于在移动应用程序中构建用户界面。在同一代码库中,开发人员必须为每个平台分别编写UI。这是耗时且困难的过程。 Xamarin.Forms允许开发人员仅创建一个UI,该UI可在所有平台(如Android,iOS和Windows)上使用。

9)哪种编程语言支持Xamarin?

Xamarin在移动应用程序开发中支持三种语言:

  • C#
  • F#
  • Visual Basic.NET

10)XAML在Xamarin中的作用是什么?

XAML或可扩展标记语言是一种特殊的工具,允许开发人员在Xamarin应用程序开发中定义用户界面。 XAML在Xamarin中起着至关重要的作用,但是Xamarin.Forms中的应用程序开发不是必需的。 Xaml可与应用程序的ModelView-ViewModel或MVVM体系结构一起使用。

11)什么是Xamarin Studio?

Xamarin Studio是一个独立的IDE,用于开发基于开源项目Monodevelop的跨平台移动应用程序。

12)Xamarin Studio和Visual Studio有什么区别?

Xamarin Studio和Visual Studio都是IDE,用于开发Android,iOS,类库,控制台,PCL和Windows Phone应用程序。 Xamarin Studio和Visual Studio都支持F#。

Xamarin Studio Visual Studio
Xamarin Studio works on both Windows OS X environments. Visual Studio is available only for the windows environment.
On Windows, Xamarin Studio doesn’t support windows phone and iOS project. In Visual Studio, we can create any app.
Xamarin Studio on Windows supports only Xamarin.Android project. Visual Studio supports Xamarin.Android, Xamarin.iOS, and Xamarin.Windows project.

13)Xamarin.Forms应用程序的生命周期是什么?

Xamarin.Forms是一个平台,用于通过将XAML用于前端并将C#用于应用程序后端来开发跨平台移动应用程序。在Xamarin.Forms应用程序中,我们可以共享所有代码。 Xamarin.Forms还提供了Android和iOS本机API的100%API覆盖率。因此,我们可以开发本机Android,iOS和Windows应用程序。

有关Xamarin.Forms生命周期的更多信息,请单击此链接: Xamarin LifeCycle

当我们创建Xamarin.Forms应用程序时,我们将看到四个项目:

  • 可移植项目:这是我们将编写95%的应用程序代码的项目,并且在所有三个平台中共享此代码。
  • Android:这是我们设置Android应用程序图标和启动屏幕的项目,所有其他代码均来自可移植项目。
  • iOS:在此项目中,我们设置了iOS应用程序体系结构和图标。
  • 通用Windows:通用Windows平台是应用程序平台

14)Xamarin中的数据绑定模式有哪些类型?

数据绑定模式的不同类型是:

  • 默认
  • 一种方式:源的变化影响目标
  • 两种方式:源和目标的更改相互影响

15)Xamarin和Mono有什么区别?

Xamarin Mono
Xamarin is a powerful solution for building awesome apps. Mono is used in those cases when we want to build an app for a single platform. In that case, there is a need for a Native platform.
With the help of Xamarin, we can create Native apps for multiple platforms via the same IDE, APIs, and Language. Native mobile apps are built on Android, iOS.Java, and Windows.
Using Xamarin, we can skip the extra development time for each platform. Using Mono, we cannot skip the extra development time for each platform.
Xamarin apps are accessible for more comprehensive ranges at a lower cost. Mono apps are accessible for the broader ranges at a higher cost.

16)Xamarin.Forms中使用了哪些不同的方案?

以下是Xamarin.Forms中使用的不同类型的方案:

  • 查看绑定
  • 向后装订
  • 与模型绑定
  • 与集合绑定

17)Xamarin中的数据绑定是什么?

数据绑定是一种用于将数据源与用户界面同步的技术。完成数据绑定并且数据或我们的业务模型发生更改时,它会自动向UI元素显示更改,反之亦然。

18)什么是Xamarin测试云?

Xamarin测试云使我们能够在各种设备上测试移动应用程序。测试云还用于同时在许多实际设备中进行自动化测试。

19)如何设置Xamarin?

对于Xamarin设置,有四个步骤:

  • 下载Xamarin安装程序
  • 运行安装程序
  • 配置它
  • Xamarin的激活

有关更多信息,请单击此处: Xamarin的安装

20)Xamarin.Forms中的布局控件有哪些类型?

Xamarin.Forms中不同类型的布局控件为:

  • 堆叠布局
  • 内容查看
  • 滚动视图
  • 模板视图
  • 绝对布局
  • 相对布局

有关布局的更多信息,请单击以下链接: XamarinLayout

21)Xamarin.Forms中存在哪些不同类型的页面?

Xamarin.Forms中存在的不同类型的页面是:

  • 内容页面-这种类型的页面显示单个视图,通常是一个容器,例如堆栈布局或滚动视图。
  • MasterDetail页面-MasterDetailPage是管理两个相关页面之间的信息的页面。
  • 导航页面-导航页面管理页面的导航。
  • 选项卡式页面-选项卡式页面可帮助使用选项卡导航子页面。
  • 模板页面-模板页面有助于显示带有控件模板的整个页面的内容。
  • Carousal页面-此页面允许在子页面(例如图库)之间滑动手势。

有关Xamarin页面的更多信息,请单击以下链接: Xamarin.Forms

22)Xamarin的优点是什么?

Xamarin的优点是:

  • 我们可以使用现有技能和代码( C#,XAML )交付本机iOSAndroidWindows应用程序。
  • 我们可以利用Xamarin技术充分利用本机API。
  • Xamarin组件存储使我们可以直接从IDE将高质量的组件添加到我们的应用程序中,包括控件,Web服务API等。
  • PCL /共享项目使开发人员可以轻松地在不同项目之间共享相同的代码库。

23)Xamarin.Forms中的代码共享技术是什么?

在跨平台应用程序之间共享代码有两种方法:

  • 便携式图书馆(PCL)
  • 共享项目

代码共享策略的目标是支持多个平台可以利用单个代码库的体系结构。

24)可移植类库和共享项目之间有什么区别?

可移植类库

我们在.Net中创建类库以重用我们的代码或使我们的代码仅可用于同一类型的应用程序,但是在某些情况下可能无法使用。在这里,我们假设已经为WPF或任何其他类型的应用程序创建了类库。而且,如果我们要访问Windows 8或Windows Phone应用程序的相同类型的类库,则在这种情况下,我们不能将其称为类库。

我们希望所有平台具有相同的应用程序,以使我们的生活变得轻松。我们希望在多个平台上使用相同的应用程序。微软技术日新月异,涵盖了所有设备。我们可以在Windows,Web,Mobile或Tab的所有类型平台上的一个框架内构建和验证所有类型的应用程序。

PCL解决了这个问题。 .Net 4.5引入了可移植类库(PCL),用于在一个位置开发业务逻辑,并且我们可以在.Net Framework上的所有类型的应用程序或所有平台(Windows,Web或移动)上使用该库进行端到端的使用。

该图显示了可移植类库(PCL)的流程。所有这些应用程序都在.Net Framework上运行。所有这些应用程序都有不同的环境和平台,但是它们都可以轻松使用可移植类库。换句话说,我们可以说我们只需要准备UI并为所有Windows,Web和移动窗口进行应用程序的DataBinding,因为相同的业务逻辑可以使用整个平台。

共享项目

共享项目是包含标准代码并链接到每个特定平台库或App的项目。它被编译为平台特定代码的一部分。为了开发基于共享项目的不错的解决方案,需要对其进行架构设计,使其在共享项目中具有核心功能。在这里,我们可能会使用部分类,抽象类和接口来管理平台特定项目中每个平台特定的对象。当我们处于原型阶段时,这类项目很好,因为对于通用代码而言,实现可共享项目很快。我们可以利用特定于平台的框架的所有优势。

可以使用编译器指令(例如,#if_Android _,#if_iOS _,#if_Windows_Phone_App.etc)在平台上分支共享代码。

  • 无输出组件
  • 重构操作,不会自动更新。

25)XAML的优点是什么?

XAML的优点是:

  • XAML对应用程序及其代码进行了清晰的划分。因此,它可以实现清晰的开发人员设计流程。
  • XAML比类似的代码更清晰,更精确。
  • XAML具有用户界面对象的父子层次结构,具有更高的可视化界面简洁性

26)有哪些意见?

视图称为控件的控件。它们可以是可视对象,例如Label,Button,Entry,BoxView,ListView,TableView等。所有UI元素都是视图的子类。

27)ListView和TableView有什么区别?

ListView和TableView控件相似。我们可以将它们作为一个控件。它们之间的主要区别在于它们如何布置项目。

ListView: ListView控件垂直显示数据堆栈。就像标准的列表框一样。我们使用此控件来显示列表中的数据顺序,特别是长列表,该列表需要滚动,例如电子邮件列表,联系人列表或搜索结果。

TableView: TableView在行中水平显示数据堆栈。当我们需要更多空间来丰富要显示的项目的可视化效果时,可以使用此控件。

28)使用Xamarin的应用程序有哪些类型?

使用Xamarin的不同类型的应用程序包括:

  • OLO-在线订购食物的平台。
  • 世界银行调查应用程序-该应用程序用于全球调查。
  • Storyo-此应用程序有助于从图片创建视频。
  • Freshdirect-此应用是我们友好的食品杂货商。
  • Just Giving-慈善界面。

29)Xamarin.Forms中使用的场景有哪些不同类型?

Xamarin.Forms使用的方案是:

  • 查看以查看绑定
  • 向后绑定
  • 与集合绑定
  • 与模型绑定

30)Xamarin为Android设计的应用程序是什么?

Xamarin为Android设计的应用程序包括:

  • 秘密社会
  • 家长访问
  • 工具清洁剂
  • iLearnForKids
  • 2014年进球足球经理

31)为Xamarin for iOS设计的应用命名吗?

Xamarin为iOS设计的应用程序包括:

  • QuickPLan-项目计划HD
  • 新闻页面
  • 启示录射手:僵尸入侵
  • 撇石机:略读动作游戏

32)Xamarin.Android应用程序如何工作?

Xamarin.Android应用程序依赖于Microsoft的Mono虚拟机Mono是Microsoft .NET Framework的开源实现,该框架基于C#和CLR的开源标准。 Mono于2001年推出。Mono的创建是为了允许.Net应用程序在Linux平台上运行,但后来进行了修改,以支持各种设备(包括嵌入式系统)上的开发。

在Xamarin中,Mono与Android的ART并行工作。在Android上,大多数系统功能(如音频,图形,OpenGL和电话系统)无法直接用于本机应用程序。可以通过Android Runtime Java API来添加它们,这些API在Java。*名称空间或Android。*名称空间之一中可用。然后,本机应用程序与公开的.NET API进行交互。然后,这些API通过Android Binding调用Android运行时Java API。

该架构如下所示:

33)什么是新鲜MVVM?

Fresh MVVM是一个超轻型MVVM框架,仅针对Xamarin.Forms设计。它的设计简单,简单且灵活。这很容易学习,并且在配置上使用约定。

新鲜的MVVM与MVVM有所不同。 FreshMvvm使用Page和PageModel的概念,而不是View和ViewModel。

34)MVVM Cross和MVVM Light有什么区别?

MVVM Cross: MVVM Cross是一个.NET跨平台的MVVM框架。它使我们能够为Xamarin等平台提供跨平台解决方案。表单,Xamarin.Android,Xamarin.iOS,Xamarin.Mac和WPF。这是不活跃的发展状态。

MVVM Cross要求将应用程序分为两部分:核心和用户界面。

核心部分包含视图模型,服务,模型和业务逻辑,而UI部分则包含与核心交互的不同视图和特定于平台的代码。这些视图是“视图”屏幕,其中包含图形内容。除了Core和UI外,该应用程序还可以包含用于各种功能的其他库。

MVVM Cross提供的功能包括:

  • MVVM架构模式
  • 灵活的导航系统
  • 数据绑定允许与源自动绑定到目标。
  • 特定于平台的支持
  • 控制容器倒置
  • 依赖注入引擎

MVVM Cross的后果是:

它的学习曲线过多,并且缺少有关如何开始开发应用程序的Wiki。

MVVM Light: MVVM Light是另一个框架,允许使用Xamarin上的MVVM Architecture模式创建企业级应用程序。 MVVM Light使开发人员能够在Xamarin等各种平台上创建和开发MVVM应用程序。表单,Xamarin.Android,Xamarin.iOS,UWP和WPF。它使我们能够将View与Model分开,从而编写可测试且可扩展的应用程序。它不支持异步。

MVVM Light应用程序分为以下部分:

  • 视图:这是与屏幕关联的特定于平台的用户界面。
  • ViewModel:它公开数据和数据的相关属性。
  • ViewModel定位器:它注册自定义ViewModel。

35)Xamarin中的Model-View-ViewModel(MVVM)模式有什么需求?

Model-View-ViewModel可以在所有平台上使用。它旨在在用户界面控件及其逻辑之间提供清晰的分隔。

好处:

  • 在开发过程中,开发人员和设计人员可以在其组件上独立工作。设计人员可以专注于视图,如果使用的是Expression Blend ,他们可以生成示例数据。另一方面,开发人员可以处理视图模型和模型组件。
  • 开发人员为视图模型创建单元测试,并可以为视图创建模型。
  • 由于视图完全在XAML中实现,因此无需触摸代码即可轻松重新设计应用程序的UI。视图的新版本应与现有视图模型一起使用。
  • 如果模型的任何现有表示形式都绑定了现有业务逻辑,则更改起来可能会很困难或有风险。在这种情况下,视图模型充当模型类的适配器,使我们能够避免对模型的代码进行任何重大更改。

36)什么是NuGet,它在App开发中如何有用?

NuGet是.Net开发中最受欢迎的软件包管理器。它存在于Xamarin Studio 5和Visual Studio中。我们可以使用IDE轻松搜索包/第三方库并将其添加到Xamarin.Forms。

37)什么是HTTP客户端?

HTTPClient使用基于REST的服务帮助开发人员通过Internet与外部世界联系。 HTTPClient类用于发送HTTP请求和从由URI标识的资源接收HTTP响应。 System.Net.HTTP命名空间中存在的HTTPClient类。

38)什么是ResourceDictionary?

ResourceDictionary用于定义XAML资源,可以在整个Xamarin.Forms应用程序中多次重复使用。

  • Xaml资源是可以多次使用的对象的定义。
  • ResourceDictionary允许将所有资源对象声明在一个位置。
  • 我们可以在ResourceDictionary中定义样式,ControlTemplate,DataTemplate,颜色和转换器。
  • 在XAML中,可以在元素级别(在特定元素内部),页面(在页面内部)或应用程序级别(在App.Xaml内部)访问资源。

39)Xamarin有什么区别。表格和Xamarin Native?

Xamarin.Forms:

Xamarin.Forms在以下情况下使用:

  • 在特定于平台的情况下,对代码的要求较少。
  • 代码共享比自定义UI更重要。
  • 用户界面并不复杂。

Xamarin本机:

Xamarin Native在以下情况下使用:

  • 需要很多平台特定的代码。
  • 自定义UI比代码共享更重要。
  • 使用特定于平台的API时。

40)什么是App.cs类?

App.cs是应用程序的主要类,提供以下功能:

MainPage:它可以帮助我们设置应用程序的初始页面。

属性字典:它有助于我们存储生命周期状态中的值。

静态当前属性:提供当前应用程序对象的实例

41)Xamarin.Forms应用程序的生命周期方法是什么?

生命周期方法是在应用程序进入特定状态时执行的一组技术。方法是:

  • OnStart:当应用程序从头开始启动时,此方法将运行。
  • OnSleep:当应用程序进入后台时,将执行此方法。
  • OnResume:当应用程序从休眠状态进入前台时,将执行此方法。

42)XAML编译器(XALC)的用途是什么?

使用XAML编译器,我们可以将XAML直接编译为中间(IL)语言。

好处:

  • 它执行编译时检查以查找XAML中的错误。在编译时,它将通知用户任何错误。
  • 它消除了XAML元素的开销和初始化时间。
  • 它不将XAML文件包含在最终程序集中,因此可以减少程序集时间。

43)什么是XAML名称空间声明?

XAML名称空间是XAML文件顶部的名称空间声明。当我们创建任何新的XAML UI时,根元素中有两个可用的声明。这是不带任何前缀的xmlns的默认声明:

xmlns="http://xamarin.com/schemas/2014/forms"

第二个声明使用x前缀:

xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"

使用前缀的名称空间的所有声明都是非默认声明。

假设我们想将ViewModel与XAML绑定,并且ViewModel在名称空间“ XamSample.ViewModels”中声明。

xmlns:vm="clr-namespace:XamSample.ViewModels; assembly=XamSample.ViewModels"

然后,我们可以使用VM prefix从此名称空间内部访问元素。

44)从一页导航到另一页的方式是什么?

单击第一页的按钮后,我们调用以下方法,通过该方法可以从一页导航到另一页。

await Navigation.PushAsync(new MySecondPageXaml(), true);

我们必须使用ContentPage类下可用的“ Navigation”页面属性。此代码写在MainPage.XAML文件的编码页中。

45)什么是ViewCell?

ViewCell是一个很小的单独元素,代表ListView或Table的单个项目。 ViewCell不是视觉元素,而是对创建视觉外观的模板的描述。

46)内置电池有哪些类型?

内置单元格的类型为:

  • TextCell:它是一个单元格,由标题/主文本和详细信息/辅助文本标签组成。
  • ImageCell:它是一个文本单元格,其中左侧包含图像组件。
  • SwitchCell:此单元格包含Label和切换开关。
  • EntryCell:此单元格包含Label和一行文本框,可用于输入数据。

47)ControlTemplate和DataTemplate有什么区别?

ControlTemplate:此模板决定控件的外观。它定义了控件的表示样式。

例如,一个按钮可以包含图像和文本。

48)触发因素是什么?有几种类型的触发器可用?

触发器允许我们在XAML中声明动作,当针对控件的特定属性满足特定条件时,它会更改控件的外观。

我们可以在资源字典的控件级别,页面级别或应用程序级别添加触发器。这是四种可用的触发器。这些是:

  • 属性触发器:当控件的属性设置特定值时,将执行此触发器。
  • 数据触发器:此触发器类似于属性触发器,但是它使用数据绑定。
  • 事件触发器:当控件上发生事件时,将发生此触发器。
  • 多重触发:此触发可让我们在动作发生之前设置多个触发的条件。

49)什么是曲棍球应用程序?

Hockeyapp提供针对iOS,Android和Windows Phone的测试服务。

50)什么是TestFlight?

苹果是TestFlight的所有者。这是Xamarin.iOS应用程序Beta测试的主要方式。

51)创建Xamarin应用程序的类型是什么?

这里是在Xmarin中构建应用程序的三种方法。

Xamarin.Forms
Xamarin.Android
Xamarin.iOS.