为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第5天 AppBundle拆分注意事项

标签:
Android

程名称:移动端架构师


课程章节:新一代组件化动态化方案App Bundle


课程讲师:CrazyCodeBoy LovelyChubby


课程内容:

AppBundle拆分的注意事项

App Bundles 方案在减少APK大小方面,就有很大的优势。但是App Bundles方案依托与Google Play才能做到业务模块的按需加载。但是目前爱奇艺开源了Qigsaw框架,自己实现了一套类型Google Play的方案,同时保持API的使用与Google Play保持一致,这样就可以做到国内外场景的自由切换。

  1. dynamic-feature-moudle引用base moudle资源时,不能直接使用R.drawdble 需要使用 [base moudle packagename].R.drawdble的方式

  2. dynamic-feature-module 项目名称不能以数字开头

  3. java.io.IOException: Cannot find PROCESSED_RES output for Main{type=MAIN, fullName=flavor1Debug, filters=[], versionCode=-1, versionName=null}异常 需要注释掉build.gradle的splite {abi{}}

  4. base moudle不可以访问dynamic-feature-module中的id
    dynamic-feature-module中arssc文件中资源索引id的值为0x7e
    base moudle中arssc文件中资源索引id的值为0x7f
    因为feature与baseMoude都有各自的arsc文件,虽然属性名称一直但是id值是不一致的,所以basemoude中涉及访问feature moudle的id值都需要修改

  5. 动态模块配置模块名title 必须通过如下方式dist:title="@string/title_dynamic_feature"不能直接编写字符串,并且该字符串必须写在base moudle

  6. dynamic-feature moudlebase moudlemanifest文件最终会合并成一个manifest文件,所以要保障manifest的资源引用均在base moudle中。

  7. 当打开新建dynamic-feature moudle并启用了on-demand(按需加载)能力时,必须开启Fusing(熔断操作)才能正常的让Api21以下的设备正常使用module

  8. 一般情况下,动态模块下发之后需要重启App才能加载成功,但是如果你使用SplitCompat 加载唤起动态模块,就可以立即生效

  9. 如果下载的模块太大,需要用户确认,GP要求大于10MB需要用户确认

  10. dynamic-feature moudle中的AndroidManifest中定义的Activity不能有exported:true因为别的app不知道你何时安装好模块从而会引发问题


课程收获:

谢谢老师,老师讲解细致,通俗易懂,这一节学习的是AppBundle拆分注意事项,通过注意事项,可以避免使用AppBundle拆分时遇到的各种问题,能够更快速更好的掌握AppBundle,给以后的继续学习打下了良好的基础。

期待后边的继续学习。


https://img1.sycdn.imooc.com//63e89cb50001f0a411350883.jpg




点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
0
获赞与收藏
4

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消