You've already forked taptap2024_GJ_chidouren
init
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
using UnityEditor.Android;
|
||||
|
||||
namespace Editor.AndroidBuildSetting
|
||||
{
|
||||
public class AD_BuildAndroidProcess : IPostGenerateGradleAndroidProject
|
||||
{
|
||||
private static readonly XNamespace AndroidNamespace = "http://schemas.android.com/apk/res/android";
|
||||
private static readonly XNamespace ToolsNamespace = "http://schemas.android.com/tools";
|
||||
|
||||
|
||||
public void OnPostGenerateGradleAndroidProject (string path)
|
||||
{
|
||||
ProcessAndroidManifest (path);
|
||||
}
|
||||
|
||||
|
||||
public static void ProcessAndroidManifest (string path)
|
||||
{
|
||||
#if UNITY_2019_3_OR_NEWER
|
||||
var manifestPath = Path.Combine (path, "src/main/AndroidManifest.xml");
|
||||
var launcherManifestPath = Path.Combine (path, "../launcher/src/main/AndroidManifest.xml");
|
||||
#else
|
||||
var manifestPath = Path.Combine(path, "unityLibrary/src/main/AndroidManifest.xml");
|
||||
#endif
|
||||
// var manifestPath = Path.Combine(path, "src/main/AndroidManifest.xml");
|
||||
XDocument manifest;
|
||||
XDocument launcherManifest;
|
||||
try
|
||||
{
|
||||
manifest = XDocument.Load (manifestPath);
|
||||
launcherManifest = XDocument.Load (launcherManifestPath);
|
||||
}
|
||||
#pragma warning disable 0168
|
||||
catch (IOException exception)
|
||||
#pragma warning restore 0168
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Get the `manifest` element.
|
||||
var elementManifest = manifest.Element ("manifest");
|
||||
if (elementManifest == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var elementApplication = elementManifest.Element ("application");
|
||||
if (elementApplication == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// elementApplication.
|
||||
|
||||
|
||||
var elementlauncherManifest = launcherManifest.Element ("manifest");
|
||||
var elementlauncherApplication = elementlauncherManifest.Element ("application");
|
||||
var xManifestElements = elementManifest.Descendants ();
|
||||
var xApplicationElements = elementApplication.Descendants ();
|
||||
|
||||
var useQueries = xApplicationElements.Where (element => element.Name.LocalName.Equals ("activity"));
|
||||
|
||||
var elementByName = GetElementByName (useQueries , "com.unity3d.player.UnityPlayerActivity");
|
||||
|
||||
//开启硬件加速 android:hardwareAccelerated="true"
|
||||
XName name = AndroidNamespace + "hardwareAccelerated";
|
||||
elementByName.SetAttributeValue (name , "true");
|
||||
|
||||
// Save the updated manifest file.
|
||||
manifest.Save (manifestPath);
|
||||
launcherManifest.Save (launcherManifestPath);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static XElement CreateQueries ()
|
||||
{
|
||||
var metaData = new XElement ("queries");
|
||||
var packageData = new XElement ("package");
|
||||
packageData.Add (new XAttribute (AndroidNamespace + "name", "com.tencent.mm"));
|
||||
metaData.Add (packageData);
|
||||
return metaData;
|
||||
}
|
||||
|
||||
private static XElement GetElementByName (IEnumerable<XElement> elements, string name)
|
||||
{
|
||||
foreach (var element in elements)
|
||||
{
|
||||
var attributes = element.Attributes ();
|
||||
if (attributes.Any (attribute => attribute.Name.Namespace.Equals (AndroidNamespace)
|
||||
&& attribute.Name.LocalName.Equals ("name")
|
||||
&& attribute.Value.Equals (name)))
|
||||
{
|
||||
return element;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public int callbackOrder { get; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c12a7f508bd64fa4ba9c01883f737a5e
|
||||
timeCreated: 1709917572
|
||||
Reference in New Issue
Block a user