egret可以用php做后端吗,Egret打包App Android热更新(4.1.0)

详细可看官网教程,我这里只是记录下实际操作过程,留个记录...

主要流程:

1 设置app加载模式

2 设置php文件

3 每次打新包,只需要上传服务器后,再修改php的game_code版本号,当app本地和php的game_code名称不一致时,就能实现热更新。

1 设置加载模式

默认为0。设置为1,表示启动app时,回去请求php,对比“ game_code.zip ”名称是否一致,不一致,就进行更新。

egret可以用php做后端吗,Egret打包App Android热更新(4.1.0)_第1张图片

修改case 1处为自己的php地址。

8ac3d7c369922c9775963245f9688baf.png

关于game_code.zip名字

app本地是设置在主文件中

6b1d55db7d5b95880a27cba2f7dcef7e.png

服务器设置在php里,具体见2 php文件部分。

2 php文件

修改$ip为自己php地址,我php访问链接是 “http://www.biliking.com/demo/hotupdate/hotupdate.php”,所以设置应该是”http://www.biliking.com/demo/hotupdate/”,不要忘了最后的斜杠。

再次每次发布新包后,修改 define('CASE_NAME','666')的版本号,我这里是666。

define('CASE_NAME', '666');

function startsWith($string, $pattern) {

return $pattern === "" || strrpos($string, $pattern, -strlen($string)) !== FALSE;

}

$json = array(); //不存在就false;

if (!startsWith(CASE_NAME, 'http://')) {

$ip = "http://www.biliking.com/demo/hotupdate/";

$root = $ip . CASE_NAME ."/game_code_".CASE_NAME. ".zip";

$update = $ip . CASE_NAME;

$json["code_url"] = $root;

$json["update_url"] = $update;

} else {

$json["code_url"] = CASE_NAME;

$json["update_url"] = dirname(CASE_NAME);

}

echo(json_encode($json));

?>

可以在浏览器中直接输入php访问地址,查看返回信息是否正确。如果格式不正确,是没法热更的。

7ca495775c06e615088a5cf3b8c09007.png

注意发布的新包,需要新建一个版本号一致的文件夹,放在该文件夹内。而不是直接放在php同级目录下。

egret可以用php做后端吗,Egret打包App Android热更新(4.1.0)_第2张图片

egret可以用php做后端吗,Egret打包App Android热更新(4.1.0)_第3张图片

3 关于热更新的屎黄色界面

有热更的时候,会有一个存在一小段时间的屎黄色界面,初步推断,那是个填满界面的进度条。

这个可以不管,因为之前为了防止加载黑屏,会在顶层放一张图片,这张图片也会盖住这个屎黄色界面。

4 一些测试

4.1  game_code后缀不变情况下,修改代码是否会热更新?  不会。

4.1 game_code后缀不变情况下,修改图片是否会热更新?  不会。

4.2 game_code后缀变化情况下,修改图片,图片名称和大小不变,图片是否会更新? 会。

【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

Android热更新开源项目Tinker集成实践总结

前言 最近项目集成了Tinker,开始认为集成会比较简单,但是在实际操作的过程中还是遇到了一些问题,本文就会介绍在集成过程大家基本会遇到的主要问题. 考虑一:后台的选取 目前后台功能可以通过三种方式实 ...

【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

[原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

android 热更新 tinker 从零开始到使用

这几天项目完结了,闲来无事,想起来了以前研究的热更新,那个开源的只有nvwa.recoo,等,不是很好用,最近听说tinker开源一段时间了,用的人还挺多,决定研究一下! 首先进入了官方文档 http ...

ionic2新手入门整理,搭建环境,创建demo,打包apk,热更新,优化启动慢等避坑详解

onic官方文档链接:http://ionicframework.com/docs/ 如果是新的环境会有很多坑,主要是有墙,请仔细阅读每个步骤 文档包含以下内容: l  环境搭建 l  创建demo并 ...

webpack 配置 (支持 React SCSS ES6 编译打包 和 模块热更新 / 生成SourceMap)

1.首先是目录结构 |-node_modules/ #包文件 |-build/ #静态资源生成目录 |-src/ #开发目录 |-js/ |-index.js #入口文件 |-app.js #Reac ...

Android热更新实现原理

最近Android社区的氛围很不错嘛,连续放出一系列的android动态加载插件和热更新库,这篇文章就来介绍一下Android中实现热更新的原理. ClassLoader 我们知道Java在运行时加载 ...

H5 App实现热更新,不需要重新安装app

直接上代码吧,你竟然搜到了我的文章就应该知道了,为什么要热更新 //app热更新下载 //假定字符串的每节数都在5位以下 function toNum(a) { //也可以这样写 var c=a.sp ...

随机推荐

MongoDB学习笔记~大叔分享批量添加—批量更新—批量删除

回到目录 说它是批量操作,就是说将集合对象一次提交到服务器,并对数据进行持久化,如果您的代码是一次一次的提交,那不算是批量操作!在之前的mongodb仓储中并没有对批量更新和批量删除进行实现,而今天在 ...

22-React JSX语法

React JSX语法 JSX只是一个语法糖,每一个XML标签都会被JSX转换工具转换成纯Javascript代码,当然你想直接使用纯Javascript代码写也是可以的,只是利用JSX,组件的结构和 ...

Mysql的float类型造成的困扰总结

因为换了工作正在学习使用MySQL,今天领导提出了一个问题,如下: X列是累加值,A列是每日新增值,那么X2应该是X1+A2,而且存储过程里也是这样计算的.可是奇怪的是X2的值却总是和正确值(2396 ...

UVA1151

//感觉刘汝佳老师的思维真的太厉害了orz /*摘录书上的一段话: 只需一个小小的优化即可降低时间复杂度:先求一次原图(不购买任何套餐)的最小生 成树,得到n-1条边,然后每次枚举完套餐后只考虑套餐中 ...

Cramfs、JFFS2、YAFFS2的全面对比

Cramfs.JFFS2.YAFFS2的全面对比http://blog.csdn.net/daofengdeba/article/details/7721340 由于嵌入式系统自身存在一些特殊要求,使 ...

hdu4151(二分)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4151 题意:找出比n小的没有重复数字的总个数,例如12以内11不符合,1~10都符合. 分析:直接利用 ...

由自动装箱和拆箱引发我看Integer源码

背景和问题 在看别人整理的资料时,看到如下一段代码: package com.sitech.test; /** * 自动装箱和拆箱 jdk1.6 * @author liaowp * */ publi ...

Cisco 的基本配置实例之四----vlan的规划及配置(接入交换机)

4.2 接入交换机的相关配置 ## 在此例中,我们联入的是一台接入交换机,此交换机的gi0/1口上联至核心交换机.也就意味着我们需要配置gi0/1为trunk口.具体的配置如下: D-2960-3(c ...

Java Web自定义MVC框架详解 (转)

转自:http://blog.csdn.net/jackfrued/article/details/42774459 最近给学生讲Java Web,希望他们能够在学完这部分内容后自己实现一个MVC框架 ...

Mybatis系列(四):Mybatis缓存

一.MyBatis缓存介绍 MyBatis 提供了一级缓存和二级缓存的支持        1. 一级缓存: 默认开启,基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Se ...

你可能感兴趣的:(egret可以用php做后端吗)