书签 分享 收藏 举报 版权申诉 / 31
上传文档赚钱

类型Flutter 在百度贴吧的落地实践.pptx

  • 上传人(卖家):无敌的果实
  • 文档编号:2527355
  • 上传时间:2022-04-29
  • 格式:PPTX
  • 页数:31
  • 大小:7.06MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Flutter 在百度贴吧的落地实践.pptx》由用户(无敌的果实)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Flutter 在百度贴吧的落地实践 百度 落地 实践
    资源描述:

    1、Flutter在百度贴吧的落地实践n 为何引入Fluttern 实践之旅n 总结目录n 为何引入Fluttern 实践之旅n 总结目录贴吧n 年轻人兴趣社区n 2003年至今n 拥有10亿注册用户n 2000多万贴吧业务方向社区生态 内容运营 商业化n 用户增长 n Pushn 品牌大使n 直播n Bannern 吧主n 垂类n 风控n 话题n 神回复n 个人动态 n 原生广告研发效率用户体验最Flutter的优势跨平台开发123高效的开发体验性能接近Native N倍平台产出 多端逻辑一致效率质量n 为何引入Fluttern 实践之旅 技术全景目录 工程体系接入 业务框架升级 Android

    2、插件化n 总结先看一下全景公司其他产品矩阵产品贴吧贴吧极速版 创新产品测试Bug管理业务模块一键签到吧资料粉丝列表性能工具状态上报模块通信 状态管理UI混合栈 网络 日志构建持续集成多版本生成 For Web基础框架插件全局数据同步公共结构通用图片 视频安卓插件 lib架构管理Lint系统层AndroidiOSFlutterSDK FlutterWeb开发一键集成基础设施性能&稳定性平台高可用获取日志安全接口防刷SDK版本 模板脚手架FPS页面打开速度BuildRunner FlutterBox 可视化工具crash远程调试包大小分析插件平台n 为何引入Fluttern 实践之旅 技术全景目录

    3、 工程体系接入 业务框架升级 Android插件化n 总结第一步工程体系当我跨出第一步n Flutter接入方式n FlutterBoxFlutter接入方式源码双端工程Flutter环境aar独立Flutter仓库编译产物(默认)FrameworkFlutterBoxpubspec开发需求flutter_manifest.yamln 直接引用n 源码开发n 平台差异源码接入一键命令模块化开发merge百度pub servern 基础packagen 业务packagen PluginFlutter源码工程pubspec.yamln 外界资源业务框架升级之旅接下来n 技术需求(背景)n 现有业

    4、务框架n 现有业务框架的问题与挑战n redux到tieba_redux技术需求(背景)定制版本、快速开发新app细粒度模块化中台能力一键配置生成现有业务框架(传统做法 )模块间注册 发消息 监听Mod消息中心拦截/整合网络(长短链接) 自定义现有业务框架的问题与挑战现代数据和UI一致性较差数据本身的变化可控性较差模块内和模块间代码风格不一致Redux的优势与问题n 生态成熟,适用复杂场景n 带有编码规范的框架n 满足拦截类开发需求 网络访问添加通用参数 打印action序列和State,加速问题定位 改变跳转,热修复Redux模块化n 概念上的和与分n 分之后的代码组织与运行n 细粒度模块化

    5、的编码需求组织代码组织思想n 组件:函数式,classn 数据:props,staten 纯函数n State变化可预期n 面向action序列编程n 松耦合调用方式ttieba_redux模块ReduxStoreGlobalReduxStoreBaseStoren 皮肤/夜间/暗黑n 开关/配置n 账户信息n 网络状态n Middlewaren 同步/异步n 并行度持有引用StateStateReducersTasksReducersTasksMapaction(标记),Func注册给外部访问的action定义到Mapaction,Func注册ActionsListenersRulesAct

    6、ionsListenersRulesn 全局广播监听者n 全局拦截处理Mapaction,Func注册Task、Listener、Rule1个Action对应1个/多个模块内/全局 静态/动态注册模块内动态 Redux标准用法如发起网络Task1个全局静态动态静态打开页面;获取定位未读消息数变化Listener 多个全局全局App启动;网络变化拦截页面跳转;添加通用参数;打日志Rule多个静态SHOW CODE根Main函数调用注册函数注册和分发执行模块StoreNextDispTask1NextDispTaskNNextDispReducer注册分发Register(类型和优先级)Globa

    7、lStoreNextDispRule1-NNextDispTask1-NBase StoreLDispatch(action)匹GlobalTask有Global是否GlobalTask或GlobalListener有注册GlobalRuleStore无 模块Task业务框架小结场景扩展启动初始化Tab容器化业务/服务/子系统生命周期tieba_redux构建系统一键生成多版本 多团队并行开发少选模块编译快跨H5可行性收益Hook跳转热修复加快问题定位Flutter Android插件之旅接下来Flutter Android插件n 插件设计与目标n 问题与挑战插件设计与目标特性公共基础库静态依

    8、赖Java/res/lib模块 透明配置 开发Flutterplugin网络帖子内容 直播Flutter动态依赖形态内置 网络F公共Java/res/libJava/res/libJava/res/lib插件B插件ARuntime业务游戏吧构建平台内置 网络运行容器主包Assets壳(部署管理插件问题与挑战 - plugin资源打包Native生态成熟公共基础库 Res方案1:代理模式独立容器ijkplayerovprogresshudPub透明灵活方案2:Flutter Plugin定制AAPT资源分段查找容器运行注入ovprogresshud Res 自定义控件 Res插件问题与挑战 An

    9、droidView资源使用Build#PlatformViewsChannel:createComposFlutterView:createSurfaceTextureTextureLayer:Paint(textureId)#Texture:Paint获取textureId,SurfaceTexture#FlutterJNI.registerTexture#PlatformViewAndroid:RegisterAttach,UpdateTexImage,drawImage通过GpuRunner到mappingtextureId, AndroidExternalTextureGLVirtua

    10、lDisplayController反射调用setResource#SingleViewPresentation(context:FlutterActivity)#Presentation构造函数super(createPresentationContext)插件问题与挑战 加载libapp.so初始化initConfig#sAotSharedLibraryName = metadata.getString(aot-shared-FlutterMain#startInitializationlibrary-name, libapp.so);反射修改路径FlutterActivity#onCre

    11、ateFlutterActivityDelegate#onCreateFlutterMain#ensureInitializationCompleteFlutterJNI.nativeInit#SettingsFromCommandLineFlutterActivityDelegate#createNativeView创建shell#创建engine之前,创建DartVM#创建DartVMData#DartSnapshot:VMSnapshotFromSettings和DartSnapshot:IsolateSnapshotFromSettings#NativeLibrary:Create(n

    12、ative_library_path.c_str();#handle_ = :dlopen(path, RTLD_NOW);FlutterNativeView#attachn 为何引入Fluttern 实践之旅n 总结目录主要分享了技术全景- 分层和工具链工程体系接入- 通过丰富脚本工具满足复杂工程需求总结业务框架升级- 传统到现代- tieba_reduxFlutter Android插件- 资源和libapp加载落地情况n 主版本:一键签到,吧详情,粉丝列表等n 内部版(纯flutter版) :Android,iOS,iPadn 正在进行:个人中心、垂类吧展望一下有Flutter要上;没有Flutter,创造Flutter也要上

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Flutter 在百度贴吧的落地实践.pptx
    链接地址:https://www.163wenku.com/p-2527355.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库