此种方法适用于:比如你要让Android做一些事情,这些事用不到任何资源,在Android下用纯代码就能实现它,这样就可以在Android下写好,将它封装成一个方法,打成包按照下面的方式丢给Unity,在Unity下调用这个封装好的方法就行了。

前面的操作都一样,新建工程,新建模块,导入Unity的包。这里导入Unity的包,如果仅仅是Unity调用Android的东西,也可以不导入。

(1)新建一个Java类,给Unity使用

(2)打包,把Jar包复制到Unity的Android目录下,我们这里没有像第一次送Jar包那样送了3个东西过去,也不像第二次送Arr包那样送了2个东西过去,这里就只是把Jar包复制过去。

(3)Unity调用这个方法

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; public class Test : MonoBehaviour { public Text text; void Start () {
// 这里直接调用Android下类的方法,"com.lmx.lmx.simplelibrary.Test"是Android
// 下定义的类的包名+类名,如果这个类有构造方法且需要传参,也写在后面
AndroidJavaObject jo = new AndroidJavaObject("com.lmx.lmx.simplelibrary.Test"); // 调用Android提供的Android方法
// 使用Call调用,<>表示有返回值,没有返回值则不需要这个
text.text = jo.Call<int>("add", 2, 3).ToString();
} public void ChangeColor()
{
text.color = Color.red;
}
}

(4)打包,成功

第二种用法,在Android下方法为static的,那么我们可以不生成类的对象,直接通过这个类来调用

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; public class Test : MonoBehaviour { public Text text; void Start () {
// 通过类直接调用Android的静态方法
AndroidJavaClass jc = new AndroidJavaClass("com.lmx.lmx.simplelibrary.Test"); // 调用Android提供的Android方法
// 使用CallStatic调用,<>表示有返回值,没有返回值则不需要这个
text.text = jc.CallStatic<int>("add", 2, 3).ToString();
} public void ChangeColor()
{
text.color = Color.red;
}
}

Android开发 互相调用模式之提供扩展类的更多相关文章

  1. Android开发 互相调用模式之导出Jar包、扩展MainActivity、Java主导

    首先讲导出Jar包,在以前都是用这种方法,但是现在官方不推荐使用此方法,官方推荐导出Aar包 (1)首先创建一个Android空工程 注意:这里选择API 16,因为Unity支持的最低是API 16 ...

  2. Android开发 互相调用模式之导出Aar包、扩展MainActivity、Java主导

    现在官方推荐使用这种方式 在讲导出Aar之前,先讲一下怎么设置图标,先把原xml中图标设置这句话复制过来 刚刚复制过来的时候这句话是红色报错的,这个时候我们把原res下的mipmap复制过来,也可以自 ...

  3. Android开发 互相调用模式之C#主导

    首先明确一个概念,当我们不使用Android Studio提供的那些包,仅仅是Unity打包apk,打包出来的apk里面也包含了SDK (1)首先删除Unity下我们创建的Plugins文件夹,因为这 ...

  4. 在Android开发中调用Rest web服务(转)

    首先从维基百科上拷贝一点Rest的基本概念给大家看看,然后我们再开始详解在Android中如何调用Rest服务.表象化状态转变(英文:Representational State Transfer,简 ...

  5. android 开发设计模式---Builder模式

    我们通过一个例子来引出Builder模式.假设有一个Person类,我们通过该Person类来构建一大批人,这个Person类里有很多属性,最常见的比如name,age,weight,height等等 ...

  6. android开发中调用python代码(带参数)

    android开发主要用到的是java代码,但是当开发涉及到一些算法时,往往用python可以提高软件的运行速度,也更加便捷,这里分享自己项目调用python代码的方式,主要有以下几个步骤(个人方法, ...

  7. Android 开发--CMakeList调用本地so文件

    这里写代码片Android开发常常遇到Java调用so文件的情况,本文介绍一下Google最近新推出的应用在android studio中的方法–cmakelist.txt格式调用. so文件分为jn ...

  8. Android开发之模板模式初探

    模板模式我认为在Android的开发中是最长用到的,基本是随处可见的,认识该模式,有助于我们对Android的源代码及框架有一个更深层次的认识.那什么是模板模式呢,模板模式就是定义一个基本框架,将当中 ...

  9. ArcGIS Runtime SDK for Android开发之调用GP服务(异步调用)

    一.背景说明 通过调用GP服务,Android客户端也能实现专业的.复杂的GIS分析处理功能,从而增加应用的实用价值. ArcGIS Server发布的GP服务,分为同步和异步两种类型,一般执行步骤较 ...

随机推荐

  1. ios 打包 异常

    1. 问题:Xcode9升级到Xcode10后运行App报错: 2. 原因分析: Xcode10中libstdc++.6.0.9和libstdc++被移除,Frameworks中libstdc++.6 ...

  2. linux 下 svn 重新定位 url

    linux下重新定位SVN URL方法:   如果更换了SVN服务器,就需要重新定位,指向新的SVN URL. 重新定位命令:svn switch --relocate 原svn地址 新svn地址   ...

  3. JDK8日期处理API(转)

    转载地址:http://www.cnblogs.com/comeboo/p/5378922.html 转载地址:http://blog.csdn.net/hspingcc/article/detail ...

  4. PHP基础之如何调试PHP程序(HBuilder)

    先到这里下载HBuilder(HBuilder是最棒的PHPIDE,可以参考PHP是世界上最棒的编程语言),运行后界面如下: 打开WAMP的调试选项(XDebug):,每开启一个Xdebug选项,WA ...

  5. 51nod 1172 Partial Sums V2

    题目 给出一个数组A,经过一次处理,生成一个数组S,数组S中的每个值相当于数组A的累加,比如:A = {1 3 5 6} => S = {1 4 9 15}.如果对生成的数组S再进行一次累加操作 ...

  6. 解决微信小程序textarea 里输入的文字或者是placeholder里的值,飘到弹出view上

    在uniapp微信小程序开发中使用textarea,结果发现输入框的问题浮动起来,view无法把他覆盖,设法设置index的值也不生效,所以只能是通过条件v-if或者v-show使其隐藏就可以了

  7. mysql 导出导入数据库(Mysqldump)备份

    使用mysql不熟练啊!!! mysqldump导出数据库,必须以cmd命令行的形式,在Navicat中以新建查询形式使用Mysqldump不好使的.(本来使用Navicat转储SQL,再导入SQL, ...

  8. App自动化测试介绍

  9. JavaScript复制内容到剪贴板

    移动端 需要复制内容到剪贴板时, clipborad.js 不支持ios微信版浏览器,可配合使用 execCommand 使其兼容, 完成一键复制淘口令的功能. 注意使用clipborad.js时,i ...

  10. TensorFlow使用记录 (九): 模型保存与恢复

    模型文件 tensorflow 训练保存的模型注意包含两个部分:网络结构和参数值. .meta .meta 文件以 “protocol buffer”格式保存了整个模型的结构图,模型上定义的操作等信息 ...