Unity Android DLL熱更 原

和 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

 

 

 

TODO

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章