mPaaSAndroid培训出品mPaaS简介总目录mPaaSAndroid框架工程构建环境搭建组件介绍mPaaS简介1PARTONEmPaaSMobilePlatformAsAServicemPaaS是源于支付宝App的移动开发平台,为移动开发、测试、运营及运维提供云到端的一站式解决方案,能有效降低技术门槛、减少研发成本、提升开发效率,协助企业快速搭建稳定高质量的移动App。包含:MGS、MAS、MDS、MPS、Nebula、Scan…价值2PARTTWOAndroid框架平台级Android应用遇到的问题OSGi(OpenServiceGatewayInitiative)技术是Java动态化模块化系统的一系列规范。OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于Java语言的服务(业务)规范。简单来说,OSGi可以认为是Java平台的模块层。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语,这些组件能够组装进一个应用和部署中。OSGI规范的核心组件是OSGI框架。这个框架为应用程序(被叫做组件(bundle))提供了一个标准环境。整个框架可以划分为四个层次:运行环境、模块、生命周期管理、服务注册框架由来•根据基础技术层级、客户端的业务线等原则,对客户端应用程序进行模块化拆分•每一个模块由独立的小团队或者个人来进行开发、维护、测试、集成•模块与模块之间可以做到彻底解耦,它们之间可以通过’接口’进行依赖,如果某个模块出现问题不影响其他业务•每一个模块可以进行热插拔,即可以对单个模块进行动态化发布,相对客户端整体发布要更加灵活基于此框架的客户端App的开发,就像是将一个个的积木搭建而成,这些积木被称之为:BundleBundle这个概念来源于OSGi规范,它是应用程序的模块单元基于支付宝钱包框架(mPaaS)开发的Android客户端应用皆由多个Bundle构成。重要概念Bundle标识Bundle组件BundleBundlePortal&Apk客户端架构框架运行流程ClassLoader广播FRAMEWORK_ACTIVITY_USERLEAVEHINTFRAMEWORK_ACTIVITY_ALL_STOPPEDFRAMEWORK_WINDOW_FOCUS_CHANGEDFRAMEWORK_BROUGHT_TO_FOREGROUND…框架事件PipeLineEventPIPELINE_FRAMEWORK_CLIENT_STARTEDPIPELINE_FRAMEWORK_INITED…框架事件注册PointCutFrameworkPointCutManagerregisterPointCutAdvicePointCut工程构建Gradle是一个基于ApacheAnt和ApacheMaven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。GradlePlugin是在Gradle运行环境中提供的可扩展的插件,Gradle构建流程是由多个支持输入输出任务构成的。AndroidStudioPlugin是AndroidStudio的扩展插件,提供了一键打包、创建Bundle、创建Portal、生成加密图片、生成hotpatch包等等功能。构建构建参数环境搭建4PARTFOURJDK8AndroidStudio2.2.3APILevel19Gradle2.14.1BOOST_GRADLE_HOMEmPaaS插件开发环境mPaaS插件配置打包参数hotpatchhotpatch加密图片5组件介绍快速开始•应用分析•应用升级•热修复•消息推送•同步服务•RPC•H5容器组件服务创建一个应用•应用分析:实现埋点日志上报,并监控到大盘数据•应用升级:实现应用内升级提示和下载。•消息推送:实现简单消息推送,弹出通知。•热修复:修复简单的空指针问题。•RPC:接入一个简单的RPC。•H5容器:实现自定义JSAPI,H5离线包加载和更新。mPaas实战AndroidQ:gradlesync错误?A:检查android版本,buildToolsVersion是19.1.0,compilesdkversion是23,androidgradleplugin版本用1.5.0Q:ResourceNotFoundExceptionA:确保launcherbundle和portal使用的packagename不一样FAQ组件服务-应用分析•上报地址•ProductID•ProductVersion•userId工程配置接口调用本地写入日志上报•行为埋点•自动化埋点•性能埋点•Crash埋点•日志文件•格式解析•日志模型•程序冷启•压后台•单类型到达40条•crash日志立即上报通过客户端日志的采集、保存、和上报等功能,提供app性能分析,用户行为分析,crash报告等服务组件服务-Hotpatch•添加模块•网关地址•ProductID•ProductVersion工程配置加密信息打包发布•RSA非对称加密•AES对称加密•公钥自身加密•Patch包•插件打包•资源上传Hotpatch是一种不需要发布新版本,快速修复线上严重Bug的方法,提供从后台同步脚本、回滚脚本、本地管理等功能组件服务-RPC•网关地址•ProductID•ProductVersion工程配置加密信息接口调用•无线保镖加密图片•导入代码•子线程•异步拉取高级设置•拦截器•指定网关RPC为远程调用,对业务代码公开稳定的接口,但在下层可以支持使用HTTP、HTTPs等多重通道发送请求THANKYOU!谢谢