首页 » 脚本文章 » Avalonia开发(二)项目结构解析(编辑器项目结构开发解析)「os项目编辑器」

Avalonia开发(二)项目结构解析(编辑器项目结构开发解析)「os项目编辑器」

少女玫瑰心 2024-07-23 17:00:54 脚本文章 0

扫一扫用手机浏览

文章目录 [+]

MainActivity继承自AvaloniaMainActivity<TApp>类,并实现虚方法CustomizeAppBuilder
此虚方法主要是执行加载字体,在父类中存在执行了用于加载Android系统相关资源的一些东西,如果想继续研究的话,可以参考Avalonia的源代码,这里不再详细赘述。

MainActivity类上面添加了Activity属性,指定主题、图标、启动页等相关内容。

项目完成编译后,如果不使用模拟器或者真机运行的话不会生成apk文件,只是简单的生成了对应dll文件。

Avalonia开发(二)项目结构解析(编辑器项目结构开发解析) Avalonia开发(二)项目结构解析(编辑器项目结构开发解析) 脚本文章
(图片来自网络侵删)

连接真机,并打开调试功能,可以将apk程序安装到手机上运行。

三、iOS项目结构

FirstAvaloniaApp.iOS 项目内包含的基础文件(夹)比较多,如:Asset CatalogsResourcesAppDelegata.csEntitlements.plistInfo.plistMain.cs
因没有开发过iOS的应用,某些文件(夹)具体作用不得而知。

Avalonia开发(二)项目结构解析(编辑器项目结构开发解析) Avalonia开发(二)项目结构解析(编辑器项目结构开发解析) 脚本文章
(图片来自网络侵删)

Main.cs:入口函数,传入了AppDelegata.cs的类型

AppDelegata.cs继承自AvaloniaAppDelegate<TApp>类,并实现虚方法CustomizeAppBuilder,执行一些平台的相关内容。

Entitlements.plist是权限相关的内容

Info.plist是对程序的一些内容的设置。

是否能运行,未验证。

四、Browser项目结构

「目前还处于早期阶段,尚未准备好用于生产」FirstAvaloniaApp.Browser 项目内包含的PropertiesAppBundleProgram.csruntimeconfig.template.json

Program.cs:定义一个主函数。

看一下BuildAvaloniaApp()函数,使用的是lambda表达式,里面用到了类为AppBuilder,后面的为几个静态方法

Configure<T>AppBuilder中的静态方法,用于生成一个AppBuilder的实例。

可以在浏览器中运行。

五、发布
5.1 Desktop发布

发布选择文件夹,执行到最后,会生成一个Properties\PublishProfiles\FolderProfile.pubxml文件, 经过本人的测试,对于WindowsLinuxoxs三个平台的桌面程序均可以正常发布(使用的单文件发布),Windows平台程序可以正常运行,对于其他两个系统的程序,因没有机器,未进行验证。

Windows发布后的文件列表

Linux发布后的文件列表

oxs发布后的文件列表

5.2 Android发布

选择了文件夹选项,不能正常发布生成apk程序。

5.3 iOS发布

选择了文件夹选项,在Windows平台上不能正常发布程序。

5.4 Browser发布

选择了文件夹选项,在Windows平台上可以发布,但是在publish文件夹中没有文件。

结果分析

五、总结

各个平台的程序都使用了AppBuilder这个类,主要用于构建初始化特定平台的初始化服务工作。

目前,Avalonia的某些内容还不成熟,对于特定平台的需求,选择还是要谨慎一些。

Avalonia系列文章

1、 Avalonia开发(一)环境搭建

标签:

相关文章