近期Google发布了关于Google Play应用商店的重要调整,这些调整将会对Android的开发者产生重要影响。

100907uaoogrxztezaoahx.jpg

Google Play 重要调整

1、2018年8月开始,所有向Google Play商店新提交的应用需要满足目标API级别为26即Android 8.0 Oreo或者更高。

2、2018年11月开始,所有Google Play商店已有应用的更新提交也必须符合上述要求。

3、从2019年8月开始,所有Android的应用都必须提供64位支持。Google Play应用商店对32位应用程序的支持不会消失,但是应用必须包含64位版本。

针对这些要求,Unity将帮助你为这些调整作好准备,并提供我们的解决方案以满足新的要求。

目标API级别

建议你在Player Settings中将Target API Level属性设置为“Automatic”。这样构建过程就会将清单中的targetSdkVersion设置为在Android SDK中安装的最新SDK平台。

要是你已经安装好SDK Platform 26 (Android 8.0 Oreo),你将能满足Google Play的新要求。如果还没有更新SDK的话,Unity编辑器将显示SDK更新提示,Unity可以为你更新Android SDK。

如果你想要自行控制目标API等级,可以在Target API Level属性下拉列表里进行选择。近期我们会在所有当前支持的Unity版本中,加入最新API级别到该列表中。请记得在更新目标API级别后,务必对应用做一次全面测试。

64位的支持

Unity对本地64位Android支持已经到了最后开发阶段,并且已经进行内部测试。Unity 2018.2中将推出对64位Android支持的预览版,并计划在2018年第四季度推出的Unity 2018.3中提供正式版,这样在Google规定的时间之前,我们就做好了充分的准备。

Unity的Android ARM 64位支持一开始只在IL2CPP脚本后端得到支持。IL2CPP技术会为脚本提供C++类的性能支持,这能让应用启动速度时间加快一倍。如果你是Google Play上的游戏开发者,并且仍然使用Mono脚本后端,我们强烈建议你考虑转而使用IL2CPP。

为什么要使用IL2CPP而不是Mono呢?Mono 在Android中是基于Just In Time (JIT)编译,这意味着代在Android设备上从.NET IL转换为机器码,而IL2CPP则基于 AOT前期编译,所有代在开发者的机器上转换为机器码(以C++代码为中介来转换)。AOT编译能带来更快的启动时间和更好的总体性能,因为它的大部分重要优化都在桌面端机器完成,而不是移动端设备。

如果你正在使用自定义本地插件,请更新你的构建脚本以支持ARM64架构。如果你正使用第三方本地插件,请联系你的插件提供商以获取ARM64架构支持。

参考信息

Google Play的重要调整 https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html


IL2CPP信息 https://docs.unity3d.com/Manual/IL2CPP.html


更多技术信息与文章请访问Unity官方论坛(unitychina.cn)! Unity, Google, Play锐亚教育

锐亚教育 锐亚科技 unity unity教程