• Android sdk工程搭建(aar)


    Android sdk工程搭建(aar)

    Unity 和 Android 交互流程

    AndroidJavaClass:

    • public AndroidJavaClass(string className); // className:指定类名
    • java.lang.Class的通用实例的统一表示,是java里的类。

    AndroidJavaObject:

    • 生成一个对象,通过对象去调用里面的方法和属性
    // 加载 com.unity3d.player.UnityPlayer 类 
    AndroidJavaClass ajc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    // 调用 com.unity3d.player.UnityPlayer 类中的 静态方法
    ajc.CallStatic("Test");
    ajc.CallStatic("Test","Hello"); // 带参数的静态方法
    int sum = ajc.CallStatic("Sum", 1, 2); // 带参数和返回值的静态方法
    
    // 实例化 com.unity3d.player.UnityPlayer 对象
    AndroidJavaObject ajo = new AndroidJavaObject("com.unity3d.player.UnityPlayer");
    // 调用 com.unity3d.player.UnityPlayer 类中的 实例方法
    ajo.Call("Test");
    ajo.Call("Test","Hello");
    int sum = ajo.Call("Sum", 1, 2);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    classes.jar

    Unity发布AndroidAPK时,会使用AndroidSDK构建,发布出来的APK只包含一个Activity,俗称MainActivity。在发布过程中,Unity会引入内置的Jar库(classes.jar),里面包含了Unity需要的库类,关键类UnityPlayerActivity就是Android程序的主要入口类,也就是MainActivity

    aar 和 jar的区别

    • jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件
    • aar:包含所有资源,class以及res资源文件。

    AndroidManifest

    Unity发布Android的APK时,如果在Plugins/Android目录下不存在AndroidManifest文件,会使用Unity默认的AndroidManifest文件。

    默认的AndroidManifest文件目录:Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Apk

    如果存在AndroidManifest文件,Unity会使用它代替默认的AndroidManifest文件,这个AndroidManifest文件必须带有活动以及标签

    <meta-data android:name="unityplayer.UnityActivity" android:value="true"/>
    
    • 1

    发布APK的两种方式

    • Internal:不需要签名,仅需Android SDK支持,不能导出工程。
    • Gradle:需要签名,需要Android SDKGradle 支持,可以导出Android Studio工程,使用与需要与Android功能交互的项目。

    Unity接入SDK两种方法

    • Unity在安卓平台选中Gradle打包出来,然后在Android Studio导入需要的SDK进行操作。
    • Unityclasses.jar包和需要的SDK导入Android Studio新建的Library中,然后导出jar或者aar放到Unity中调用。

    具体操作流程

    • 创建一个Android Studio项目,视图切换到Project

    • 首先修改 app - build.gradle 文件。

    • 将第一行,application 改为 library,这样就可以发布aar

    • 删掉 applicationId 那一行

    // apply plugin: 'com.android.application'
    apply plugin: 'com.android.library'	// 不生成apk,生成aar包。
    
    android {
       
        compileSdkVersion 28	// sdk版本
        buildToolsVersion "30.0.3"
        defaultConfig 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    Linux——Xshell、Xftp实现Linux远程登录与应用
    SBT20100VDC-ASEMI超低压降、低功耗肖特基SBT20100VDC
    基于springboot的图书管理系统设计与实现
    MMEdu离线版的使用:实现石头剪刀布图像分类的检测
    JavaScript学习笔记
    【POJ No. 1019】数字序列 Number Sequence
    【初阶C语言】操作符2---表达式求值
    Web3 世界的名片
    短期内从一个外行变成了解行业的人
    主存储器的基本组成
  • 原文地址:https://blog.csdn.net/wang_lvril/article/details/126419881