Android资产交付在Dotnet毛伊岛



我有一个。net MAUI项目,其中ResourcesImages目录中有许多资产(图像),将部署到Google Play Store。这意味着生成的aab包的大小远远超过了Google Play Store 150MB的限制。(消息:Your App Bundle contains the following configurations where the initial install would exceed the maximum size of 150 MB…)

我当前的解决方案将图像大小调整为<= 150MB。我现在看到有可能为资产生成单独的文件,这被称为Play Feature Delivery。

从这个示例项目中,我得到以下gradle文件来创建一个安装时间包:

apply plugin: 'com.android.asset-pack'
assetPack {
packName = "install_time_asset_pack" // Directory name for the asset pack
dynamicDelivery {
deliveryType = "install-time" // delivery mode
}
}

我的问题是:这可以用。net MAUI完成吗?是否可以在csproject -文件中添加一些元素来实现这一点,就像在keystore中一样:

<PropertyGroup Condition="$(TargetFramework.Contains('-android')) and '$(Configuration)' == 'Release'">
<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>..myapp.keystore</AndroidSigningKeyStore>
<AndroidSigningKeyAlias>key</AndroidSigningKeyAlias>
<AndroidSigningKeyPass>SuperSecretPassword!</AndroidSigningKeyPass>
<AndroidSigningStorePass></AndroidSigningStorePass>
</PropertyGroup>

应用程序和用户的特性使得不可能在运行时加载图像,例如通过https。

br此时我没有找到毛伊岛的答案。
最好的起点看起来像XamarinComponent/Android/GoogleAndroidVending。
然而,它包装了一个java库,并且似乎使用了gradle,所以TBD需要什么知识才能构建它,然后将其适应Maui。


对应的Xamarin.Forms文件为APK Expansion Files.

Xamarin.Forms内核源代码和文档在github XamarinComponents/Android/GoogleAndroidVending.


那里有一个Nuget链接,但在.Net Maui中不起作用。

在出现Maui Nuget之前,有必要下载源代码并修改它。(如果有人这样做,最好上传到github。TBD。)

App Startup在.Net Maui中有点不同,我没有调查可能需要改变的地方。

此外,可能存在对Xamarin名称空间的引用,这些引用应该更改为等效的Maui名称空间。

重要:这个c#代码是来自Google的java库的包装器。该项目包括gradle引用。尚不清楚构建这个的要求是什么。

如果你的APK超过150Mb,那么我怀疑Google和Apple(如果你正在制作iOS应用)会希望你将图像数据托管在云中,并根据需要将其拉到设备上,这样你就不会不必要地阻塞用户的设备存储空间。这种类型的静态图像应该存储在缓存中,而不是备份(所以你需要检查它是否存在,并在必要时重新下载)。

最新更新