Submit Search
Upload
大鱼架构演进
•
Download as PPTX, PDF
•
13 likes
•
1,689 views
Jun Liu
Follow
"大鱼" App从启动到3.x版本, 全过程架构演进
Read less
Read more
Mobile
Report
Share
Report
Share
1 of 42
Download now
Recommended
Micro service
Micro service
rfyiamcool
淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況
inwin stack
Full Stack Monitoring with Prometheus and Grafana (Updated)
Full Stack Monitoring with Prometheus and Grafana (Updated)
Jazz Yao-Tsung Wang
Bd paa s - big-data platform as a service
Bd paa s - big-data platform as a service
inwin stack
Introduction to K8S Big Data SIG
Introduction to K8S Big Data SIG
Jazz Yao-Tsung Wang
美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台
美团点评技术团队
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011
Yiwei Ma
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps
Andrew Wu
Recommended
Micro service
Micro service
rfyiamcool
淺談 Kubernetes於大數據生態系的相關開發近況
淺談 Kubernetes於大數據生態系的相關開發近況
inwin stack
Full Stack Monitoring with Prometheus and Grafana (Updated)
Full Stack Monitoring with Prometheus and Grafana (Updated)
Jazz Yao-Tsung Wang
Bd paa s - big-data platform as a service
Bd paa s - big-data platform as a service
inwin stack
Introduction to K8S Big Data SIG
Introduction to K8S Big Data SIG
Jazz Yao-Tsung Wang
美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台
美团点评技术团队
天涯论坛的技术进化史-Qcon2011
天涯论坛的技术进化史-Qcon2011
Yiwei Ma
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps
Andrew Wu
2016-07-12 Introduction to Big Data Platform Security
2016-07-12 Introduction to Big Data Platform Security
Jazz Yao-Tsung Wang
十二項架構設計原則
十二項架構設計原則
Philip Zheng
美团技术沙龙04 美团下一代分布式存储系统
美团技术沙龙04 美团下一代分布式存储系统
美团点评技术团队
阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划
mysqlops
Comboware ComboStack 202105
Comboware ComboStack 202105
Elroy Peng
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
ideawu
20220224台中演講k8s
20220224台中演講k8s
chabateryuhlin
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub
Chao Zhu
初探 Elastic Observability 的實踐方法
初探 Elastic Observability 的實踐方法
Joe Wu
豆瓣数据架构实践
豆瓣数据架构实践
Xupeng Yun
FIT2CLOUD:云管理及DevOps协作平台
FIT2CLOUD:云管理及DevOps协作平台
Fit2Cloud
Huangjing renren
Huangjing renren
d0nn9n
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Etu Solution
Openstack的研究与实践
Openstack的研究与实践
OpenCity Community
容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中
Andrew Wu
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
Andrew Wu
美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡
美团点评技术团队
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
Tianwei Liu
美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise
美团点评技术团队
Mesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ Douban
Zhong Bo Tian
Android gradle 从入门到gg 2
Android gradle 从入门到gg 2
Jun Liu
Android gradle 从入门到gg 3
Android gradle 从入门到gg 3
Jun Liu
More Related Content
What's hot
2016-07-12 Introduction to Big Data Platform Security
2016-07-12 Introduction to Big Data Platform Security
Jazz Yao-Tsung Wang
十二項架構設計原則
十二項架構設計原則
Philip Zheng
美团技术沙龙04 美团下一代分布式存储系统
美团技术沙龙04 美团下一代分布式存储系统
美团点评技术团队
阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划
mysqlops
Comboware ComboStack 202105
Comboware ComboStack 202105
Elroy Peng
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
ideawu
20220224台中演講k8s
20220224台中演講k8s
chabateryuhlin
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub
Chao Zhu
初探 Elastic Observability 的實踐方法
初探 Elastic Observability 的實踐方法
Joe Wu
豆瓣数据架构实践
豆瓣数据架构实践
Xupeng Yun
FIT2CLOUD:云管理及DevOps协作平台
FIT2CLOUD:云管理及DevOps协作平台
Fit2Cloud
Huangjing renren
Huangjing renren
d0nn9n
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Etu Solution
Openstack的研究与实践
Openstack的研究与实践
OpenCity Community
容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中
Andrew Wu
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
Andrew Wu
美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡
美团点评技术团队
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
Tianwei Liu
美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise
美团点评技术团队
Mesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ Douban
Zhong Bo Tian
What's hot
(20)
2016-07-12 Introduction to Big Data Platform Security
2016-07-12 Introduction to Big Data Platform Security
十二項架構設計原則
十二項架構設計原則
美团技术沙龙04 美团下一代分布式存储系统
美团技术沙龙04 美团下一代分布式存储系统
阿里巴巴运维自动化的探索与规划
阿里巴巴运维自动化的探索与规划
Comboware ComboStack 202105
Comboware ComboStack 202105
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
20220224台中演講k8s
20220224台中演講k8s
唯品会大数据实践 Sacc pub
唯品会大数据实践 Sacc pub
初探 Elastic Observability 的實踐方法
初探 Elastic Observability 的實踐方法
豆瓣数据架构实践
豆瓣数据架构实践
FIT2CLOUD:云管理及DevOps协作平台
FIT2CLOUD:云管理及DevOps协作平台
Huangjing renren
Huangjing renren
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Openstack的研究与实践
Openstack的研究与实践
容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
美团点评技术沙龙14:美团四层负载均衡
美团点评技术沙龙14:美团四层负载均衡
2021 ee大会-旷视ai产品背后的研发效能工具建设
2021 ee大会-旷视ai产品背后的研发效能工具建设
美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise
Mesos-based Data Infrastructure @ Douban
Mesos-based Data Infrastructure @ Douban
Viewers also liked
Android gradle 从入门到gg 2
Android gradle 从入门到gg 2
Jun Liu
Android gradle 从入门到gg 3
Android gradle 从入门到gg 3
Jun Liu
Android gradle 从入门到gg 0
Android gradle 从入门到gg 0
Jun Liu
Android gradle 从入门到gg 1
Android gradle 从入门到gg 1
Jun Liu
Hockey Kit for Android
Hockey Kit for Android
旭辰 羅
Android Layout模組化介紹
Android Layout模組化介紹
Chris Jeng
Android Thread
Android Thread
Charile Tsai
[DEPRECATED]Gradle the android
[DEPRECATED]Gradle the android
Jun Liu
第二堂 學習 Java 語法 (1) Java 歷史與程序開發
第二堂 學習 Java 語法 (1) Java 歷史與程序開發
力中 柯
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Etu Solution
Java您不知道的5件事 雷腾(l.t)
Java您不知道的5件事 雷腾(l.t)
oleone
Retrofit Technology Overview by Cumulations Technologies
Retrofit Technology Overview by Cumulations Technologies
Cumulations Technologies
使用 RxJava 让数据流动 (Let data streaming using rxjava)
使用 RxJava 让数据流动 (Let data streaming using rxjava)
Tankery Chen
introduce Okhttp
introduce Okhttp
朋 王
網絡倫理 Internet Ethics
網絡倫理 Internet Ethics
Calvin C. Yu
Simplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o Retrofit
Felipe Pedroso
Rxjava meetup presentation
Rxjava meetup presentation
Guillaume Valverde
Retrofit
Retrofit
Amin Cheloh
Storm: Distributed and fault tolerant realtime computation
Storm: Distributed and fault tolerant realtime computation
Ferran Galí Reniu
Infinum Android Talks #16 - Retrofit 2 by Kristijan Jurkovic
Infinum Android Talks #16 - Retrofit 2 by Kristijan Jurkovic
Infinum
Viewers also liked
(20)
Android gradle 从入门到gg 2
Android gradle 从入门到gg 2
Android gradle 从入门到gg 3
Android gradle 从入门到gg 3
Android gradle 从入门到gg 0
Android gradle 从入门到gg 0
Android gradle 从入门到gg 1
Android gradle 从入门到gg 1
Hockey Kit for Android
Hockey Kit for Android
Android Layout模組化介紹
Android Layout模組化介紹
Android Thread
Android Thread
[DEPRECATED]Gradle the android
[DEPRECATED]Gradle the android
第二堂 學習 Java 語法 (1) Java 歷史與程序開發
第二堂 學習 Java 語法 (1) Java 歷史與程序開發
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Java您不知道的5件事 雷腾(l.t)
Java您不知道的5件事 雷腾(l.t)
Retrofit Technology Overview by Cumulations Technologies
Retrofit Technology Overview by Cumulations Technologies
使用 RxJava 让数据流动 (Let data streaming using rxjava)
使用 RxJava 让数据流动 (Let data streaming using rxjava)
introduce Okhttp
introduce Okhttp
網絡倫理 Internet Ethics
網絡倫理 Internet Ethics
Simplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o Retrofit
Rxjava meetup presentation
Rxjava meetup presentation
Retrofit
Retrofit
Storm: Distributed and fault tolerant realtime computation
Storm: Distributed and fault tolerant realtime computation
Infinum Android Talks #16 - Retrofit 2 by Kristijan Jurkovic
Infinum Android Talks #16 - Retrofit 2 by Kristijan Jurkovic
Similar to 大鱼架构演进
千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江
imShining @DevCamp
云网锦绣 SDN实战研讨会
云网锦绣 SDN实战研讨会
Hardway Hou
Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明
imShining @DevCamp
Alibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qcon
Yiwei Ma
徐晓 Qq空间技术架构之峥嵘岁月
徐晓 Qq空间技术架构之峥嵘岁月
drewz lin
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
colderboy17
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
guiyingshenxia
使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心
Du Yamin
Nodejs & NAE
Nodejs & NAE
q3boy
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
FLASH开发者交流会
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
drewz lin
How do we manage more than one thousand of Pegasus clusters - engine part
How do we manage more than one thousand of Pegasus clusters - engine part
acelyc1112009
什么是云计算
什么是云计算
Liyang Tang
Bluemix Node-Red Part II
Bluemix Node-Red Part II
Joseph Chang
Using google appengine_final
Using google appengine_final
Wei Sun
冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践
Trinea Trinea
微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构
Chen Fei
IDF2013大会分享——《使用新浪移动云开发全平台应用》
IDF2013大会分享——《使用新浪移动云开发全平台应用》
easychen
深入浅出 V cloud director
深入浅出 V cloud director
ITband
Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本
延胜 黄
Similar to 大鱼架构演进
(20)
千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江
云网锦绣 SDN实战研讨会
云网锦绣 SDN实战研讨会
Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明
Alibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qcon
徐晓 Qq空间技术架构之峥嵘岁月
徐晓 Qq空间技术架构之峥嵘岁月
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心
Nodejs & NAE
Nodejs & NAE
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
How do we manage more than one thousand of Pegasus clusters - engine part
How do we manage more than one thousand of Pegasus clusters - engine part
什么是云计算
什么是云计算
Bluemix Node-Red Part II
Bluemix Node-Red Part II
Using google appengine_final
Using google appengine_final
冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践
微博平台混合云实践 - Docker全架构
微博平台混合云实践 - Docker全架构
IDF2013大会分享——《使用新浪移动云开发全平台应用》
IDF2013大会分享——《使用新浪移动云开发全平台应用》
深入浅出 V cloud director
深入浅出 V cloud director
Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本
大鱼架构演进
1.
云应用 | 2016.01.20
1 大鱼架构演进 云应用 2016.01.20
2.
云应用 | 2016.01.20
2 1. Demo阶段 2. PGC: 热点、话题 3. PGC: 热点、群聊 4. PGC: 热点、万人群聊 5. UGC: 热点、万人群聊、弱社交 6. UGC: 热点、社交分享 -> LBS 7. 总结 目录
3.
云应用 | 2016.01.20
3 • RxJava: 多线程, 线程池, 任务管理, 异常管理. 禁 止使用AsyncTask, Thread等Android/Java原生 线程相关以及Android Annotation这种注解型框架 • Retrofit: 网络请求 • Picasso: 图片加载与缓存 • Okhttp: 网络通信 • 数据持久化: Android原生 • UI: RecyclerView, support-v21, Toolbar, SnackBar等Android Lollipop预览版相关控件 Demo阶段 Android客户端架构[0.1, 0.3)
4.
云应用 | 2016.01.20
4 • 白色: 不需要或者需要很少的开发与维护 • 绿色: 需要日常开发与维护 • 蓝色: 需要超越日常工作量的投入, 存在 可控的风险 • 橙色: 需要预研与验证的技术, 存在不可 预知的风险 Demo阶段 Android客户端架构[0.1.0, 0.3)
5.
云应用 | 2016.01.20
5 • 运营管理平台 • 服务器业务接口 • MySql数据持久化 • 一台开发主机 Demo阶段 服务器架构
6.
云应用 | 2016.01.20
6 • Demo版本, 修了两天BUG, 改了几次UI, 就这么上了 • 额外: 预研直播, 群聊相关技术 PGC: 热点、话题
7.
云应用 | 2016.01.20
7云应用 | 2016.01.20 7 PGC: 热点、群聊 差异化: 给用户游戏一 样的用户体验
8.
云应用 | 2016.01.20
8 • 实时网络游戏 • 高可用, 高并发, 优秀的 可扩展性 参考的架构 网易Pomelo架构 https://github.com/NetEase/pomelo
9.
云应用 | 2016.01.20
9 • 引入 Socket.io 框架 • 因为服务器开发是Java工程师, 所以 我们选择了Socket.io + Netty 的方 案 • Socket.io 对移动端的支持, 比当时 的 Pomelo 架构鲁棒性高太多, 现在 的 Pomelo 内部也改用 Socket.io 了 • Socket.io长连接单机可以达到百万 级别, 函数式API PGC: 热点、群聊 服务器架构 – 陈明
10.
云应用 | 2016.01.20
10 • Socket.io.RxJava: 将 Socket.io 的 函数式接口, 以及大鱼的相关业务接口 改成RxJava Observable式 • 将Retrofit的网络异常, 与 Socket.io 的网络异常全部封装到同一个模块, 代 理给RxJava • SharePrefer: 对SharedPreference 的链式封装, 简化SharedPreference 使用, 源代码GIST点我 PGC: 热点、群聊 Android客户端架构[0.3.0, 0.6)
11.
云应用 | 2016.01.20
11 PGC: 热点、群聊 Android客户端架构[0.3.0, 0.6) 设备唯一ID方案, Google与Apple的推荐方案
12.
云应用 | 2016.01.20
12 PGC: 热点、群聊 Android客户端架构[0.3.0, 0.6) 设备唯一ID方案, 我们的MUID方案
13.
云应用 | 2016.01.20
13 • 视差动画 - Parallax effects • View Property Animation • Layout Transition, Activity Transition, Fragment Transition • Shared Element Animation • View Animation • Canvas, Bitmap! PGC: 热点、群聊 Android客户端架构[0.3.0, 0.6) 动画相关 • 游戏引擎 – Game engines • Libgdx • Cocos2d-x • Unity • … 做了十几个动画效果, 改了几个版本UI
14.
云应用 | 2016.01.20
14云应用 | 2016.01.20 14 广播风暴: 同一个话题人数达到1250的时候, 同时发一条消息, 机房网卡就爆了(50MB)
15.
云应用 | 2016.01.20
15 • n² 流量 • 解决方案: 参考网络游戏, 服务器分区 – 连接服务器物理分区, 聊天房间业务逻辑分区 – 精简json结构, 或者更换为protobuf – 控制广播范围, 从全广播改成声波广播 – 控制用户发送消息频率 – 控制用户接收消息频率 – 图片url使用短code, 由客户端拼接 PGC: 热点、群聊 广播风暴 Connector Connector Connectormaster Connector 消息队列 消息队列 消息队列 消息队列
16.
云应用 | 2016.01.20
16云应用 | 2016.01.20 16 最终方案: 魅族Push通道protobuf重构版本
17.
云应用 | 2016.01.20
17 • Fresco: 比Picasso更优秀的性 能, 更好的扩展性, 对动画的渲 染效率远高于Android原生控件 • Nebula.dayu: 基于nebula, 对 大鱼业务的封装 • Nebula.dayu.RxJava: 将 Nebula与大鱼业务改造成 RxJava式管理, 附加事务推送等 nebula暂时缺失的模块 • UI又改了 PGC: 热点、万人群聊 Android客户端架构[0.6.0, 0.8)
18.
云应用 | 2016.01.20
18 • Push通道: 独立的, 只针对大鱼业务 • 因为原版还在测试阶段, 并没有target 第三方应用 PGC: 热点、万人群聊 服务器架构
19.
云应用 | 2016.01.20
19 • 声波控制消息广播范围和数量 PGC: 热点、万人群聊 服务器架构 声波控制
20.
云应用 | 2016.01.20
20 • 分组实现 PGC: 热点、万人群聊 服务器架构 声波架构 – By 陈金平 Socket服务群,消息收集分发,订阅 Http服务群,非消息业务,图片 Http服 务,运 营和管 理平 台,以 及监控 平台 消息生成服务 消息下发服务 赞/踩,投票站 队服务 Redis Mysql规定数据 库 归档服务 FastDFS 用户 消息路由中心 (整理消息) 发言 Location服务集群(用户订阅路由中心) 发言 通知逻辑组下发 逐个发送消息 订阅,投票,站队 主题,消息管理等 鉴权和用户管 理服务 大组消息队列A 小房间 A1 小房间 A2 … … Slave
21.
云应用 | 2016.01.20
21 • 分组实现 PGC: 热点、万人群聊 服务器架构 声波架构 – By 陈金平 大组消息队列A 小房间 A1 小房间 A2 … … Slave 消息接收服务集群 消息分发服务集群 消息路由中心 Redis集群 组临时消息队列 精选时消息队列归档用消息队列 用户群 发消息 存入数据库 转发路由中心 定时分组通知集群 收消息
22.
云应用 | 2016.01.20
22 • 还是解决不了这种问题: – 用户B与A, C能聊天互动 – 用户A与C却互相看不到 • 但是却将一个房间爆满, 另一个房间只有 几个人的寂寞感, 平均分配到了所有人 PGC: 热点、万人群聊 服务器架构 声波架构 用户A 用户C用户B
23.
云应用 | 2016.01.20
23云应用 | 2016.01.20 23 并行开发流程
24.
云应用 | 2016.01.20
24
25.
云应用 | 2016.01.20
25云应用 | 2016.01.20 25 Apk安全相关: 对于一个应用, 外发到应用市 场, 首要保证安全, 其次是渠道分发推广
26.
云应用 | 2016.01.20
26 • 添加Apk自我保护方案 • 使用Gradle Flavor来定制渠道打包 • RxJava作为整体架构的基础考虑 • Https签名从Java层移动到C层 • 敏感数据使用Gradle加密, C层解密 • 随着项目的变大, SQLite简直就是 业界毒瘤, • 不, 一切Android偏Framework的 API都是业界毒瘤 • UI又改了, 2次 PGC: 热点、万人群聊、弱社交 Android客户端架构[1.0.0, 2.0.1]
27.
云应用 | 2016.01.20
27 • 外部工具Gradle加密数据, 或者流程 • Gradle将APK的release签名加密到NDK层 • Gradle编译过程中将编译的Dex代码信息加密到 NDK层 • Android NDK层反向校验APK的Dex代码信息 • Android NDK层反向校验APK的签名 • Android NDK层解密次数据, 或解密流程 PGC: 热点、万人群聊、弱社交 Android客户端架构[1.0.0, 2.0.1] Apk自我保护方案
28.
云应用 | 2016.01.20
28 • 比如Http签名加密整体流程 PGC: 热点、万人群聊、弱社交 Android客户端架构[1.0.0, 2.0.1] Apk自我保护方案
29.
云应用 | 2016.01.20
29 • 加密解密 PGC: 热点、万人群聊、弱社交 Android客户端架构[1.0.0, 2.0.1] Apk自我保护方案 Android Apk NDK层解密 Gradle 编译过程加密
30.
云应用 | 2016.01.20
30 • 自签名校验 PGC: 热点、万人群聊、弱社交 Android客户端架构[1.0.0, 2.0.1] Apk自我保护方案
31.
云应用 | 2016.01.20
31 • Dex代码校验 PGC: 热点、万人群聊、弱社交 Android客户端架构[1.0.0, 2.0.1] Apk自我保护方案
32.
云应用 | 2016.01.20
32 • 二次打包流程 • 早期互联网Android应用, Ant编译的时候, 二次打包 Apk来加密, 原理与此一致 PGC: 热点、万人群聊、弱社交 Android客户端架构[1.0.0, 2.0.1] Apk自我保护方案
33.
云应用 | 2016.01.20
33 • 第二次优化版本, 修改 Gradle编译链, 简化成一 次打包 PGC: 热点、万人群聊、弱社交 Android客户端架构[1.0.0, 2.0.1] Apk自我保护方案
34.
云应用 | 2016.01.20
34 • 自我保护方案从大鱼2.0.0之后, 脱离大鱼, 单独维护, 可供其他应用使用, 音乐, 视频, 智能生活等多个 APP已经用到 项目地址: http://gitlab.meizu.com/AppArch/security • 因为集成比较复杂, 后来又做了个gradle插件, 来帮助应用傻瓜式集成此方案 项目地址: http://gitlab.meizu.com/Cloud/securityplugin PGC: 热点、万人群聊、弱社交 Android客户端架构[1.0.0, 2.0.1] Apk自我保护方案
35.
云应用 | 2016.01.20
35 • 使用Gradle Flavor来定义渠道Flavor • 借助Gradle resValue, buildConfigField等接口, 将渠道信息注入到Apk的代码与资源中, 以供数据统计 • 修改Gradle Android编译链, 在assemble的时候, 通过时间戳+机编码将apk以及混淆文件mappings绑 定到一起, 归档起来, 以供retrace • 此归档流程已经集成至魅族Gradle插件2.x版本, 由于服务器不支持x.y.z.CI_CODE 这种版本名, 所以全 功能版本为 dev.2.3 项目地址: http://cloud.meizu.com/dayu/meizugradleplugin/tree/dev_23 PGC: 热点、万人群聊、弱社交 Android客户端架构[1.0.0, 2.0.1] 渠道分发
36.
云应用 | 2016.01.20
36云应用 | 2016.01.20 36 2.0版本之后, 群聊被砍
37.
云应用 | 2016.01.20
37 • Https全REST full化, 签名 改为Oauth头签名, hmac- sha256加密算法 • Retrofit升级为2.0-beta3 最新架构 • 全面废弃了渣渣SQLite, 改 用realm数据库并加密, 开 发效率提升了无数倍 • JVM层添加Kotlin语言 • UI又改了 PGC: 热点、万人群聊、社交分享 Android客户端架构3.0.0
38.
云应用 | 2016.01.20
38 • RxJava: 刚开始很难用, 习惯了超好用, 可以大幅度提升多线程, 任务组合, 任务管理等开发效率 • Retrofit: 刚开始很好用, 习惯了更好用, 可以大幅度提升网络接口开发效率 • Realm: 刚开始很难用, 习惯了超好用, 可以大幅度提升数据库开发效率 • Picasso -> Fresco: 难用一点点, 但性能提升 • Kotlin: 刚开始很难用, 习惯了, 越用越好用, 可以大幅度提升敲代码的效率 • 但总体而言: 开发使用了过多不稳定的beta, 甚至experimental技术 总结 Android长期技术选用
39.
云应用 | 2016.01.20
39 • 技术选用: 尽量选择”绿色”, 甚至”白色”的技术, “蓝色”的技术一个阶段最多选一个 • 三方SDK: 各种auth2.0登录SDK, 各种支付SDK, 各种github开源库 • 渠道分发: Gradle必须要懂 • 数据统计: 海外Flurry, 国内友盟 • 推送平台: 极光, 或者parse这样的MBaas • 灰度测试, 云测 • Android安全: 壳固化技术, 二次打包技术, 或者像大鱼一样的apk保护方案 • 免服务器开发(Baas, MBaas): 海外parse, 国内LeanCloud, bmob等一堆抄袭的 • 总而言之, 所有以上都是资源, 我们要做的是按startup挑选组合一切可以使用的资源 总结 Startup阶段, 移动开发你会遇到的东西
40.
云应用 | 2016.01.20
40 • Ideas -> Validate: 产品idea的验证, 此过程在UI设计之前, 第三方validate公司有 Unbounce • Plan -> Visualize: 只有通过validate的idea, 才能进入原型图设计, 项目计划阶段 • Project Management: 进入项目管理阶段 • Website: 开发稳步进行的时候, 网站才开始建设, 一般5美刀就可以买到 • SEO: 搜索优化, 与渠道分发准备推进项目上线 • Payment & Legal: 支付接入, 账号系统, 以及法律规避 • Analytic: 产品正常运转了之后, 数据分析开始介入, 用数据来帮助产品提升 • 其实Analytic约等于 Validate, 形成一个子循环, 数据分析是用来自我Validate然后改进下一个产品需求 与迭代的 总结 Startup项目正确的流程
41.
云应用 | 2016.01.20
41 • 网易网络游戏框架: https://github.com/NetEase/pomelo • Google惟一ID方案: http://developer.android.com/training/articles/user-data-ids.html • Apk自我保护方案: http://gitlab.meizu.com/AppArch/security/tree/master • Apk自我保护方案插件: http://gitlab.meizu.com/Cloud/securityplugin/tree/master • 魅族Gradle插件: http://cloud.meizu.com/dayu/meizugradleplugin – dev_23分支中包含有apk及mappings归档插件代码 • 推特Oauth加密: https://dev.twitter.com/oauth/overview/creating-signatures • Startup 15个工具: http://creately.com/blog/diagrams/15-tools-to-launch-your-startup/?utm_content=bu 可供参考的资源
42.
云应用 | 2016.01.20
42 谢谢 云应用 – 刘俊
Download now