架构经验汇总(Part1)编辑:ElvisZhang2016.12微服务示例开发CI发布其他开发架构API设计兼容性分支管理性能指标安全ViewPresenterModelModel-View-PresenterViewControllerModelModel-View-Controller开发CI发布其他架构设计--APP开发CI发布其他架构设计--APPAPIBusinesscore架构设计--SDK开发CI发布其他APIBusinessCore架构设计--SDK开发CI发布其他coreAPI参数解析NetworkDBStorageConfigCenter事件总线SecurityEntities信息获取事件驱动任务调度逻辑处理CoreBusiness界面接口设计开发CI发布其他易用性:•接入简单•可自解释•可定制•防止误用接口设计稳定性:•生命周期•弃用(@Deprecated)•扩展•异常处理开发CI发布其他AndroidApiRom版本so版本SDK版本兼容兼容性开发CI发布其他安全性--本地数据安全范围1storage2sharedpreference3db4resource5memory6…实施:•JNI•加密•内存数据处理开发CI发布其他安全性--通信数据安全明文中间人攻击实施:•HTTPS•ECDHE-AES-GCM开发CI发布其他性能指标电量&流量•批处理请求•优化协议•压缩数据•心跳优化处理•WakeLock&WifiLock开发CI发布其他内存•多进程处理•优化图片使用包大小•精简resource/code•raw/keep.xml注意事项:•多版本维护•人员开发CI发布其他分支来源:•官网sdk包•应用定制包、rom定制包分支管理CICRBuildTest开发CI发布其他开发CI发布其他特点:•需求多分支兼容•BugFix工具:CodeReviewBUILD开发CI发布其他特点:•多demo打包(包含不同配置的demo包)•提供apk和jar,aar包供测试需求测试开发CI发布其他特点:•自动化测试•人工测试发布灰度发布包管理开发CI发布其他配置中心灰度发布用户选择:•测试app选择•目标用户选择开发CI发布其他灰度发布工具:•Logful•Android/iOS支持•日志加密存储和上传•日志检索•实时日志控制•Crash捕获•数据监控,报警开发CI发布其他灰度发布延时数据监控报警通知开发CI发布其他灰度发布Crash趋势Crash详情开发CI发布其他配置中心应用版本城市网络LOG厂商Rom多维度配置开发CI发布其他发布包管理Binary打包:•提供aar包•多种构建工具的支持•Maven•Jcenter•私有仓库开发CI发布其他发布包管理内容管理:•更新日志•Sample工程代码•DemoAPK•文档•Jar,aar下载,接入方式•社区支持开发CI发布其他其他第三方jar包低污染全平台支持开发CI发布其他开发CI发布其他第三方jar包:•使用冲突问题•Classpath检测其他低污染:•及时清理运行过程中创建的临时文件全平台支持:•Cocos2dx,unity3d,APICloud,ReactNative等等灵活稳定易用总结