Ulua热更新提高 <二> 发布到安卓真机开始更新

来源:互联网 发布:access数据库恢复软件 编辑:程序博客网 时间:2024/05/16 09:12

原创

说实话我看了那么多热更新的文章,感觉说透的真的不多,这个东西出来都好几年了,真的遇到问题,还是得靠这自己去看代码研究,上一篇已经可以做出资源并且打包成游戏了,接下来就是更新了,我建议是自己先搞搞看,搞不出来再去看别人写的文章,会加深你的印象,那我们开始研究吧。

建议一定要在例子的基础上去测试更新,修改弄弄看,不要一上来就自己写,很容易出问题,一大堆问题等着你,按照框架的更新修改测试一下就成功了。例外,我发现unity5.3打包成APK有问题,会报错,但是用5.0就没事,不知道是不是我U3D安装的有问题。


先转载一篇写更新流程的博客,很不错    http://www.xionggf.com/articles/graphic/u3d/ulua_simpleframework_res_download_flow.html


研究了一下,游戏更新是这样的,以PC端为例子,读取文件列表不同以后,会将最新的资源  拷贝一份到 C:\项目名称的文件夹 中,拷贝一份到  缓存 中,好像PC端的更新有问题,它一直读取的都是一开始的缓存,更新下来了以后只更新了C盘的文件夹,并没有更新缓存,造成一直在读取老的缓存,资源也是老的,而且它读取是缓存和本身游戏的StreamingAssets包(游戏里没有就去缓存找,都没有就报错),但是更新只更新C盘的包。有待继续研究。


读取资源的方式是www.LoadFromCacheOrDownload(先去看缓存有没有,没有再下载)这个缓存地址找了我半天,按照网上说的地址也没找到,找了半天终于找到了, 我的电脑是WIN7 64位,它的缓存地址是    C:\Users\Administrator\AppData\LocalLow\Unity\WebPlayer\Cache\DefaultCompany_SimpleFramework


如果在编辑器里并且调试模式,会直接读取工程里的文件。不是调试,会把文件拷贝一份到持久化硬盘里,因为在编辑器里,其实读取的还是工程里的。


一.使用IIS网站更新

测试我就不用服务器了(ULUA框架里自带了Server服务器也可以做更新,具体自己找教程吧),我们要做的就是手机访问工作的电脑上的网站,因为以前做过aspx.net网站,使用的是IIS管理器,搭建就不说了,不难。唯一需要注意就是 MIME类型,添加了下面这几种格式才有下载权限,如果添加了还下载不下来就要去看网站的读写权限,网站搭建好了以后把StreamingAssets文件夹拖到网站目录下面。

添加:扩展名 .assetbundle    类型application/octet-stream  (类型为字节流)

添加:扩展名 .txt                   类型application/octet-stream

添加:扩展名 .manifest          类型application/octet-stream

添加:扩展名 .(空格)        类型application/octet-stream

添加:扩展名 .lua                   类型application/octet-stream


二.使用官方自带的服务端更新(二选一)

以前是下载的框架里边有个Server文件夹,现在独立出来了一个项目。下载地址:https://github.com/jarjin/ServerFramework

本来不打算用的,后来发现要测试通信还是要个服务端,我蠢了,还是用服务端来做更新吧。

1.客户端修改GameManager.lua里的IP和端口  AppConst.SocketPort = 6688;   AppConst.SocketAddress = "192.168.1.188";

2.服务端修改HttpService.cs的HttpService,写入更新资源服务器地址和端口,重新生成。

3.修改SuperSocket.SocketService.exe.config 配置文件里的Socket地址和端口,serverTypeName="GameManagerService" ip="192.168.1.2" port="6677"

4然后管理员身份打开Server\Server\bin\Debug\SuperSocket.SocketService.exe  ,输入 r 启动服务器

5.Server文件夹Assets同级,把要更新的资源放到Server\Assets\StreamingAssets文件夹



三.AppConst.cs代码开启下载

1.在U3D里,AppConst.CS里修改 WebUrl = "http://192.168.1.188/StreamingAssets/"  (如果用服务端:"http://192.168.1.188:6688/";)         切记一定要有最后一个/

   修改DebugMode = false    保持ExampleMode = true(这个地方还有待研究,先不要改容易出问题)

2.切换到安卓项目,打包安卓资源,工程设置:脚本定义符号Scripting Define Symbols----填入 ASYNC_MODE(非必须,看名字是异步模式,具体代码还没看)

代码里使用 ,会根据你不同定义符号编译不同的代码块,没有填写编译符号,就不会编译。  #预编译指令,在编译之前进行

#if   ASYNC_MODE          //if定义了ASYNC_MODE 

(代码块)                          

#elif                                 //其它if

#else                               //其它

(代码块)    

#endif                              //结束if



三.手机访问电脑网站

1,首先手机不能使用127.0.0.1 访问电脑本地的网站,关闭防火墙,就算开启,要开放响应端口,网站是80   

2,得到电脑的局域网IP:Win+R  --- 打开CMD  ---  ipconfig /all  --- 可以查看本机局域网IP地址 比如192.168.1.88

3,(不是必须)可以固定局域网IP,修改IPv4协议

      IP地址  192.168.1.188   子网掩码  255.255.255.0  默认网关192.168.1.1   首选DNS  192.168.1.1(路由器DNS)  备选DNS 114.114.114.114(国内较快)8.8.8.8(谷歌,国外较快)

     


四.手机真机调试

1.可以导出到AndroidStudio,去调试分析

2.查看Debug信息,装有AndroidSdk,里面有adb.exe,安卓的调试工具,直接是打不开的。手机连接电脑 ---- CMD ----   adb logcat -s Unity

如果说adb不是内部或外部命令 也不是可运行程序,要去Path里配置一下环境变量。

3.性能分析,在U3D里生成的时候选择生成选项:Autoconnect profiler,ADB调试方式,自动连接分析器,开启U3D性能分析工具的功能,前期要打开手机开发者选项---USB调试。还可以WIFI调试,Active profiler里选择手机(点击了Build And Run以后会自动打开分析器)

发现错误:Installation failed with the following output:pkg: /data/local/tmp/Package.apk  (手机上已经安卓过一次该应用了,手机上删除就行)

发现错误:Error building Player: UnityException: Unable to install APK! (手机黑屏,锁屏,生成的时候要解锁)


安卓解压资源包的文件目录在Android/data/com.xxx.xxxxx/files/xxxxx  里面。


五.Lua脚本加密

AppConst类  public const bool LuaEncode = true;                        //使用LUA编码

工程外面的LuaEncoder文件夹应该就加密的东西,具体还没研究到这里。


研究有待继续,感觉还没有研究透更新机制,我现在有点脑子晕,有的时候感觉框架细节还有问题,不知道是我的问题,还是框架问题。


六.注意!切记!

工程设置里面的stripping level 剥离等级,就默认关闭,选择其他会下载的时候写入不到手机里,这个问题改了整整2天,不知道哪里出问题,就是下载不下来,后来发现就是这个选项的问题!


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 老婆晚上回家内裤是湿的尿味怎么办 怀孕五个月下身痒内裤湿怎么办 哺乳期奶水太多经常弄湿衣服怎么办 麻料裙子一坐下就皱怎么办 不小心把答题卡弄皱了怎么办 嘴巴又干又黏又臭怎么办 不小心把红枣核吞了怎么办 小天才电话手表被偷了怎么办 18k金被火烧黑了怎么办 衣服掉色染到别的衣服上怎么办 夏天太阳太毒刚发芽的花种子怎么办 长斑了怎么办 喝玫瑰花茶能祛斑吗 烧纸火纸迷信纸利润太低怎么办 刚买的绣球花花有点蔫怎么办 ZF葡7正常佩戴动能太满怎么办 怀孕初期老婆婆做的菜不好吃怎么办 调节协议已签字不签收调解书怎么办 给晋中苗圃拉了树苗没拿上钱怎么办 多肉旁边长出好多小株怎么办 烤瓷牙制备时颌关系不够怎么办 对门放石头正对我家大门怎么办 合租的室友关门开门特别大声怎么办 三周岁的宝宝小阴唇再次粘连怎么办 小阴唇内侧长了毛囊炎很大疼怎么办 小阴唇上一个黄豆大的硬疙瘩怎么办 梦幻西游手游金币兑换上限了怎么办 手机放裤子口袋里易拔出怎么办 两个月宝宝拉肚子怎么办吃纯母乳 花王泡沫染停留时间太久怎么办 ps右下角的图层图标隐藏了怎么办 压缩包文件太大微信无法传送怎么办 一寸照片的尺寸在ps中怎么办 遇到尖酸刻薄爱数落人的领导怎么办 初中一年级的学生就不想读书怎么办 电脑上所有文件都变得很大怎么办 小孩子手被门缝夹肿了怎么办 阳台挂衣服的单杆掉下来了怎么办 九个月婴儿受凉声音变沙哑怎么办 以汉字为主题的手抄报怎么办 用惯了笔画打字打不来拼音怎么办 老条石头给淤泥弄黑怎么办