最近由于想在Scene的腳本組件中,調(diào)用Android的Activity的相關(guān)接口,就需要弄明白Scene和Activity的實(shí)際對(duì)應(yīng)關(guān)系,并對(duì)Unity調(diào)用Android的部分原理進(jìn)行了研究。

本文主要探討Scene和Activity之間的關(guān)系,以及Unity打包apk和Android studio打包apk的差別在什么地方?找到這種差別之后,可以怎么運(yùn)用起來(lái)?

本文需要用到的工具:

  • Android反編譯工具——apktool

  • Android studio自帶的反編譯功能

一、將Unity的Scene編譯成apk,apk的程序入口會(huì)是什么?

  1. 新建一個(gè)Unity項(xiàng)目,創(chuàng)建一個(gè)Scene,將Unity工程編譯打包成apk。

  2. 對(duì)編譯出來(lái)的apk,利用apktool進(jìn)行反編譯:apktool d unityTest.apk

  3. 得到的AndroidManifest文件如下:

<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal" package="com.xfiction.p1" platformBuildVersionCode="25" platformBuildVersionName="7.1.1">    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:xlargeScreens="true"/>    <application android:banner="@drawable/app_banner" android:debuggable="false" android:icon="@drawable/app_icon" android:isGame="true" android:label="@string/app_name" android:theme="@style/UnityThemeSelector">        <activity android:configChanges="locale|fontScale|keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:label="@string/app_name" android:launchMode="singleTask" android:name="com.unity3d.player.UnityPlayerActivity" android:screenOrientation="fullSensor">    &