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

发布于:2025-08-14 ⋅ 阅读:(17) ⋅ 点赞:(0)

基础介绍

.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 保护最佳实践


网站公告

今日签到

点亮在社区的每一天
去签到