Android 热更新集成文档
<p>[TOC]</p>
<h2>文档记录</h2>
<table>
<thead>
<tr>
<th>版本号</th>
<th>时间</th>
<th>修改内容</th>
<th>责任人</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>v1.0</td>
<td>2019/04/18</td>
<td>首次编写</td>
<td>wesley</td>
<td>无</td>
</tr>
</tbody>
</table>
<h2>文档简介</h2>
<ul>
<li>该文档描述了接入 乐变热更功能的步骤和注意事项。</li>
<li>该文档中用到的文件,请下载相关文件 <a href="https://github.com/veryitman/MSSDKResource/blob/mark-feature/Android/Files/%E9%9B%86%E6%88%90%E4%B9%90%E5%8F%98.zip?raw=true" title="集成乐变">集成乐变</a>。</li>
</ul>
<h2>接入步骤</h2>
<h3>AndroidManifest配置</h3>
<p>1、将“lb-AndroidManifest.xml”文件中的组件部分添加到项目AndroidManifest.xml中(注意,组件要放在application标签的里面)。</p>
<p>2、将项目工程的 AndroidManifest.xml 中所有的 “lb_target_pkgname” 替换为您的包名。</p>
<p>3、修改横竖屏:将 AndroidManifest 中 NextChapter 的android:screenOrientation改为您应用的横竖屏属性,横屏:landscape,竖屏:portrait</p>
<p>4、AndroidManifest 中,修改application标签的android:name属性为“com.excelliance.open.LBApplication”, 如果您的application原来没有android:name,也就是说没有自定义的Application类,那么请添加自己的Application类。修改"LBApplication.java",让"LBApplication" extends 项目自己的Application类。</p>
<p>5、如果项目的 targetSdkVersion>= 28 需要添加以下配置,小于28可跳过该步:
如果项目中的AndroidManifest.xml中 <application> 标签下没有配置 android:networkSecurityConfig 属性,
请拷贝“lebian_network_security_config.xml”文件至您的项目res/xml下,并配置
“android:networkSecurityConfig="@xml/lebian_network_security_config"。</p>
<p>6、 “ClientChId”的值可以为任意英文字母, 比如给百度的渠道包可以配置为“baidu”,给360的配置为”qihoo”。后台上传的时候,不同的渠道ClientChId不能相同,同一个渠道ClientChId必须相同。
“MainChId” 和 “LEBIAN_SECID”的value值,需要去乐变管理后台获取。</p>
<h3>multidex 配置</h3>
<p>1、如果您的APP使用了multidex,请将“lb-main-dex-list.txt”文件中的内容加入到配置到主的DEX 文件中。</p>
<h3>Proguard 混淆配置</h3>
<p>1、如果您的项目使用了Proguard混淆打包,请将“lb-proguard.txt”中的内容添加到您项目的proguard-project.txt中。</p>
<h2>注意事项</h2>
<p>1、您的Application代码中不要有static代码块和构造函数,如果有,请看下能否放到您的Application的“attachBaseContext”开头去执行(注意:不是放到LBApplication的attachBaseContext)。</p>
<p>2、每次更新版本时,请提升“versionCode”(不是versionName)。每次提升"整数值"即可。</p>
<p>3、热更新不能替新版本增加权限:比如在分发的版本里没有蓝牙权限,后来游戏增加了蓝牙对战功能,这种情况下相关代码执行会有异常,因此建议在早期版本考虑增加必要权限, 另外记得新增权限时注意捕获异常,这样即使热更新到新版本,也只是局部的新功能无效。</p>
<p>4、特别注意,不要在我们开源的代码中添加任何您的APP相关的逻辑。 比如某些SDK要求在Application中添加一些初始化代码,千万不要加在“LBApplication”中,而应该添加在您自己的Application类中。</p>
<p>5、哪些内容不能热更新?</p>
<p>a、系统看到的信息不能更新,比如设置中看到的版本号,icon,权限等静态的信息,即使热更新到新版本,看到的也还是老的。但APP实际运行时获取到的版本号等信息都还是新版本的信息,因此不会影响统计等功能。</p>
<p>b、供外部使用的接口不能更新。比如版本1没有ActivityA,版本2有ActivityA,如果新版本暴露startActivity接口让别的APP调用A,那么从版本1热更到版本2后,当前应用的ActivityA并未更新。(自己内部可以新增任何组件)</p>
<p>e、乐变管理后台的使用,请联系乐变商务或者<a href="https://www.showdoc.cc/mssdk?page_id=2615409307929897">联系我们</a></p>