亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【備戰春招】第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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消