文档章节

Unity Android DLL热更

梦想游戏人
 梦想游戏人
发布于 2018/11/24 11:17
字数 442
阅读 128
收藏 0

和 Unity Mono DLL加密

有异曲同工之处。

这里是为了能够在Android下热更C#代码

另外一个更高层次的是更新so 实现il2cpp 的热更

 

 

搭建mono编译环境:(参考自:https://blog.csdn.net/huutu/article/details/58184031)

1.下载mono的unity分支 源代码  https://github.com/Unity-Technologies/mono

2.下载ubuntu 14 64  

3.unity 5.6版本的NKD必须是r10e  下载NDK

4.sudo su 切换到root安装    ./android-ndk-r10e-linux-x86.bin

5.安装后在安装目录里面找到 RELEASE.txt ,里面记录着NDK 完整版本号,去掉rc4 ,修改为 r10e

6.设置环境变量 ANDROID_NDK_ROOT     sudo gedit /etc/bashrc    

7.添加一行 export ANDROID_NDK_ROOT=/home/css/android-ndk-r10e;

8.让环境变量立即生效  source /etc/bashrc  ,  测试是否添加成功   echo $ANDROID_NDK_ROOT 

9.修改脚本build_runtime_android.sh,sudo gedit build_runtime_android.sh,

        搜索KRAIT_PATCH_PATH 修改,KRAIT_PATCH_PATH="${CWD}/android_krait_signal_handler/build",

        搜索(cd "$KRAIT_PATCH_PATH" &&修改(cd "$KRAIT_PATCH_PATH" && perl ./build.pl),,    

        android_krait_signal_handler/build.pl 删除第一行注释

10..安装编译环境

    autoconf ,automake,bison,gcc,gettext,glib,make,perl

11.直接在mono目录下执行 ./external/buildscripts/build_runtime_android.sh

        输出目录在 builds/embedruntimes/android/xxxxxx

------------------------------------------------------------------------------------------

采坑

1.修改 build_runtime_android.sh  -fpic -g 去掉-g  添加-O2 优化,其中O3 O4会闪退

2.

    clean_build "$CCFLAGS_ARMv5_CPU" "$LDFLAGS_ARMv5" "$OUTDIR/armv5"
    clean_build "$CCFLAGS_ARMv6_VFP" "$LDFLAGS_ARMv5" "$OUTDIR/armv6_vfp"

    改成

    #clean_build "$CCFLAGS_ARMv5_CPU" "$LDFLAGS_ARMv5" "$OUTDIR/armv5"
    #clean_build "$CCFLAGS_ARMv6_VFP" "$LDFLAGS_ARMv5" "$OUTDIR/armv6_vfp"

3.image.c 代码出 name 要判空一下,否则反射会闪退 Assembly.LoadXXXXX

4.重定向路径的时候要注意路径的正确性,Application.perXXXXXPath

 

2013.3.0 f1 编译方法一样,只需要更新mono相关即可,NDKr10e 一样可用

 

TODO

© 著作权归作者所有

共有 人打赏支持
梦想游戏人
粉丝 36
博文 437
码字总数 124258
作品 0
成都
私信 提问
如何防止Unity3D代码被反编译?

欢迎访问网易云社区,了解更多网易技术产品运营经验。 网易云易盾移动游戏安全技术专家陈士留在2018年Unity技术路演演讲内容中对这个问题有过比较详细的介绍,摘录如下: 防止Unity3D代码被反...

网易云
2018/11/28
0
0
请教,想用C++写一个通信库,用在android的游戏上通过unity3d调用,该怎么做呢?

我还是新手,JAVA、android、网路编程都没接触过。。。 老大给我个任务,让我把现有的jar的通讯库改成用C++写的,提供API给现在的unity3d游戏通信用。 我先大概了解了一些基础知识。现在好像...

哦哈喇
2013/07/26
2.3K
1
unity3d生成安卓apk出错,这个问题已经困扰我2个星期了

本来mac下面也是有同样的问题,后面我在网上找到了解决方法。 现在用同样方法在window不起效果,我的方法是: C:\Users\用户名\.gradle\gradle.properties里添加org.gradle.jvmargs=-Xmx3000...

Richard_x
2018/11/21
28
1
解决JNI在Windows环境下因长路径导致编译失败问题

之前听一个朋友反馈LuaScriptoCore在Windows下编译会报错,今天特意跑到Windows环境下测试了一番,果然是存在问题。得到了下面的编译报错信息: Build command failed. Error while executin...

杰嗒嗒的阿杰
2018/05/04
0
0
Unity 3D与Android Studio安卓交互之-导出jar包

u3d与安卓 jar 包交互 Chinar 教程效果: import android.support.v7.app.AppCompatActivity;import android.os.Bundle; import com.unity3d.player.UnityPlayer;import com.unity3d.player.......

chinar-yunxi
2018/04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊flink的Table API及SQL Programs

序 本文主要研究一下flink的Table API及SQL Programs 实例 // for batch programs use ExecutionEnvironment instead of StreamExecutionEnvironmentStreamExecutionEnvironment env = Stre......

go4it
18分钟前
0
0
mysqldump应用

备份单个库/表数据或库/表结构 命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 备份文件名 1、导出数据库为dbname的表结构(其中用戶名為root,密码为dbpasswd,生成的...

阿dai
26分钟前
0
0
shell脚本与Python的交互

1、Python针对shell获取传入,输出参数 传入:"$num" 例如: $0表示文件名,$1表示shell获取的第一个参数 输出:通过打印shell结果的方式,输出参数给Python。 例如: echo "{$iplist}",Python调...

一口今心
28分钟前
0
0
Euler 今日问世!国内首个工业级的图深度学习开源框架,阿里妈妈造

阿里妹导读:千呼万唤始出来!阿里妈妈正式公布重磅开源项目——图深度学习框架Euler。这是国内首个在核心业务大规模应用后开源的图深度学习框架。此次开源,Euler内置了大量的算法供用户直接...

阿里云官方博客
35分钟前
0
0
TiDB 3.0 Beta Release Notes

2019 年 1 月 19 日,TiDB 发布 3.0 Beta 版,对应 master branch 的 TiDB-Ansible。相比 2.1 版本,该版本对系统稳定性、优化器、统计信息以及执行引擎做了很多改进。 TiDB 新特性 支持 Vi...

TiDB
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部