我对包含这三个文件的unity classes.jar感到困惑:UnityPlayerActivity,UnityPlayerNativeActivity,UnityPlayerProxyActivity。
你能帮我理解它们是如何工作的吗?他们有什么功能?
如果我通过统一编辑器在清单上将活动设置为UnityPlayerActivity,为什么Android可以找到我的插件?
答案 0 :(得分:3)
活动,就像main()函数一样 - 它是一个入口点。它代表一个带有用户界面的屏幕,就像用户与应用程序交互的窗口或框架一样。
检查一下: https://www.tutorialspoint.com/android/android_acitivities.htm https://developer.android.com/reference/android/app/Activity.html
原生活动是纯粹在本机代码中实现的活动。 Android NativeActivity https://developer.android.com/reference/android/app/NativeActivity.html
UnityPlayerActivity - 扩展Android的活动。
(已弃用)UnityPlayerNativeActivity - 扩展了NativeActivity。
(不建议使用)UnityPlayerProxyActivity - 用作在NativeActivity和Activity之间自动切换的代理层。并选择了其中一个。
从Unity 5开始, UnityPlayerActivity 是默认的调用类。
调用UnityPlayerActivity时,会启动UnityPlayer活动which is nothing more than a FrameLayout that holds the SurfaceView where-with the help of OpenGL the actual game or app created in Unity will be drawn later on.
https://android.jlelse.eu/unity-and-android-connecting-the-dots-6368b31e86c5 - 强烈推荐这篇文章,了解Unity如何连接到Android。
UnityPlayerNativeActivity 是Unity 4.5和4.6中的默认活动。但是实施问题很严重,所以再次切换到Activity。
要检查Activity和NativeActivity之间的差异,请检查Android文档中的差异。接下来有趣的文章:
http://answers.unity3d.com/questions/853012/regarding-unitys-main-android-activity.html
Native Activity vs SDK Activity in terms of U.I
UnityPlayerProxyActivity - 是一个代理,在Unity 3.x中用于根据设备功能在NativeActivity和Activity之间切换。 但现在,它已不再使用了。
https://forum.unity.com/threads/androidmanifest-com-unity3d-player-unityplayerproxyactivity.285973/