当前位置: 首页 > news >正文

.NET MAUI框架编译Android应用流程

基础介绍

.NET MAUI (Multi-platform App UI) 是微软推出的跨平台应用开发框架,允许开发者使用C#和XAML创建可在Windows、macOS、iOS和Android上运行的原生应用。

本文档将详细介绍如何使用.NET MAUI编译Android应用。

核心优势

  • 跨平台开发:一套代码,多平台运行

  • 原生性能:提供接近原生应用的性能表现

  • 统一开发体验:使用熟悉的C#语言和.NET生态系统

  • 单一代码库:维护一套代码即可支持多个平台

  • 丰富的生态系统:利用.NET生态系统的强大功能

简单使用

环境搭建

以下只介绍.net MAUI的环境配置,关于Android开发环境的配置不再描述;

安装与配置

  1. vs安装时需要选择安装时选择以下工作负载

在这里插入图片描述

  1. 安装.NET MAUI环境,命令如下:
dotnet workload install maui
dotnet workload install maui-android
  1. 验证.NET MAUI是否成功安装,命令如下:
dotnet workload list

创建项目

创建新的MAUI项目
  • 使用命令行创建项目:dotnet new maui -n MyMauiApp

  • 或使用Visual Studio模板:File -> New -> Project -> .NET MAUI App.

配置Android设置
  1. 修改项目文件 (MyMauiApp.csproj)
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><TargetFrameworks>net9.0-android</TargetFrameworks><TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net9.0-windows10.0.19041.0</TargetFrameworks><OutputType>Exe</OutputType><RootNamespace>MyMauiApp</RootNamespace><UseMaui>true</UseMaui><SingleProject>true</SingleProject><ImplicitUsings>enable</ImplicitUsings><!-- Android特定配置 --><SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">21.0</SupportedOSPlatformVersion><SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion><TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion></PropertyGroup>
</Project>
  1. 在Platforms/Android/AndroidManifest.xml目录下配置Android清单文件如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"><application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true"></application><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.INTERNET" />
</manifest>

签名配置

配置签名文件

生成签名文件后,将签名文件、签名别名等信息填入项目配置中,比如MyMauiApp.csproj

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"><AndroidKeyStore>True</AndroidKeyStore><AndroidSigningKeyStore>sense.keystore</AndroidSigningKeyStore><AndroidSigningKeyAlias>sense</AndroidSigningKeyAlias><AndroidSigningKeyPass>sense123</AndroidSigningKeyPass><AndroidSigningStorePass>sense123</AndroidSigningStorePass>
</PropertyGroup>

编译方式

命令行编译

调试版本编译

# 编译Android调试版本
dotnet build -f net9.0-android# 或指定配置
dotnet build -f net9.0-android -c Debug

发布版本编译

# -p指定Android sdk的存在路径
dotnet publish -f net9.0-android -c Release -p:AndroidPackageFormat=apk -p:AndroidSdkDirectory="F:\AndroidBuilding\android-sdk"
VS编译

调试模式

  1. 在Visual Studio中选择"Android Emulator"作为目标设备
  2. 按F5或点击"开始调试"按钮
  3. 应用将在模拟器中启动并附加调试器

发布模式

  1. 右键点击项目 -> Properties
  2. 选择"Android"选项卡
  3. 配置签名信息
  4. Build -> Build Solution (Release配置)

编译输出

程序编译成功后,默认在bin/Release/net9.0-android/目录下生成Android apk和aab文件。

安全防范措施

安全问题

.NET MAUI框架编译的Android应用,编译打包后一些代码逻辑是生成Dex文件存放在APK中,Dex文件包含了类、方法、成员等信息,甚至包含了源文件名,使用jadx/jd-gui等工具可以轻松反编译出源代码,包内的音视频和图片等资源文件也容易被直接窃取使用,严重损害开发者利益,如图所示:

在这里插入图片描述

防范措施

针对Android应用,Virbox Protector工具在对Android程序的保护上有着成熟的方案,可以实现对Android程序的dex文件和资源文件的保护,具体方案参考官网文档安卓 APK/AAB 保护最佳实践。

http://www.dtcms.com/a/327441.html

相关文章:

  • 服务降级方式
  • Python实现Amazon Redshift数据库元数据提取类
  • 分布式事务Seata使用不当引发的全局锁问题
  • 解锁Java线程池:从原理到实战的深度剖析
  • 无人机三维路径规划
  • 前端基础知识NodeJS系列 - 06( Node 中的 Stream 的理解?应用场景?)
  • 如何实现PostgreSQL的高可用性,包括主流的复制方案、负载均衡方法以及故障转移流程?
  • TensorBoard的使用 小土堆pytorch记录
  • 数据类型 list
  • 小白挑战一周上架元服务——ArkUI04
  • 前端最新Vue2+Vue3基础入门到实战项目全套教程,自学前端vue就选黑马程序员,一套全通关!笔记
  • Java面试宝典:G1垃圾收集器上
  • 超详细!VMware12 安装win7操作系统
  • react+vite来优化下每次使用hook函数都要引入的情况
  • Neo4j Cypher
  • 哪个视频播放器好用?视频播放器PotPlayer下载安装与调教教程
  • QGraphicsAnchorLayout测试pyside6和C++
  • 微内核与插件化设计思想及其在前端项目中的应用
  • 怎么写好汉语言文学专业的论文?
  • TongSearch3.0.6.0安装和使用指引(by lqw)
  • Day 38: Dataset类和DataLoader类
  • 三点估算法(Three-Point Estimation)
  • OpenHarmony介绍
  • 知识篇 | Oracle Active Data Guard(ADG)同步机制再学习
  • TCP服务器网络编程设计流程详解
  • 车规级霍尔开关芯片SC25891 | 为汽车安全带扣筑起高可靠性安全防线
  • FileLink:为企业跨网文件传输筑牢安全与效率基石
  • Go 语言中的结构体、切片与映射:构建高效数据模型的基石
  • apache+虚拟主机
  • windows git安装步骤