支付宝钱包客户端技术架构

简介:
+关注继续查看



黎三平:小微金服高级技术专家,06年就开始移动方面的研发,先后从事过游戏和应用开发。对Android的动态部署和移动应用的开发框架有一定研究,现负责支付宝钱包Android平台基础技术的架构设计工作。

该议题是分析支付宝钱包客户端的技术挑战及背景,讲述钱包客户端技术架构的大思路和整体架构,以及支撑当前架构的一些关键技术。以下来分享其精彩内容。

背景

移动互联网是一个战略核心,支付宝面临着无线化,业务快速推进的问题,且用户规模爆发,android环境复杂。支付宝这样一个支付工具依赖的就是支付产检,所以支付宝有一个平台化的一个构想,可以把支付产检丰富起来。

  支付宝投入的资源也是很大的,有多个业务团队并行开发,纯andioid开发的人员近50人。工程复杂度很高,模块组织方式也有很大挑战,不包括第三方库等其他东西,就有100W+行的java代码,100+个模块。

面临的挑战

  永久的问题:如何提升开发效率,如何提高稳定性,怎样部署,性能如何,安全问题也是支付宝的重要问题。

  研发过程管理困难:1依赖管理,每个模块对其他模块的依赖是管理困难的;2版本管理;3部署管理(搭火车,难以触达到用户);4模块组织方式(库工程,源代码级别,没有权限)。

  构建打包痛苦:可能不能打包(2.x安装不上),合并代码搞了很久,编译打包时间过长。

整体架构

  图1和图2是支付宝钱包客户端整体的架构图:

 

                                                图1

 

                                               图2

 

监控日志主要是用户行为监控,质量监控(包括crash,速度,流量,电量),安全监控以及诊断日志。

  异常处理:所有业务拆分成多个bundles,但如果有一些bundles比如造成闪退了,这时我们就需要做一些故障隔离,就是通过统一的Framework Exception Handler来做这个事情。主线程的Crash;工作线程的异常(网络、存储、其他)。

  安全措施:模块的签名来校验;Dex加固;防二次发布;通讯的安全通道; 防注入攻击(Xposed,Ptrace);其他安全措施。

动态加载

  Quinox容器有三大块:

1、模块管理:安装、升级、卸载;依赖关系的管理。

安装、升级的过程是这样的,我们首先会对所有下载下来的bundles做一个合法性的校验,首先是看它们的签名是否正确,再者看依赖关系是否正确,如果检验通过的话,我们会把它们拷贝到一个可执行域里面去,然后再把元数据持久化,那么下次启动时就会创建类装载,也会把资源初始化。

2、执行引擎:类的装载;资源的管理; Android组件的执行。

3、安全机制:签名校验;容错。

                            图3

图3为执行引擎的原理,在Pathclassloader上做了一些改造,通过它来管理其它的bundles,且对每个bundle都会串接一个类装载器。

 

                              图4

  图4为运行期原理图,通过上面的几项来管理bundles,bundles再进行导入导出服务。

 

研发支撑

 

                                图5

 

图5是研发过程,我们用A-svn库来管理代码,每个团队对应一个svn库,每个团队在自己的库上去开发,获取源代码和提交代码。然后在打包平台上打包,再提交到Maven库中,然后通过发布平台进行动态部署。

 

                               图6

图6是构建过程,左边是传统的构建过程,就是源代码编译生成直接给客户端。右边是做了一些改变,工程里面会有标准的工程布局,就是为了规范代码,编译时会有一个中间的过程,编译成一个二进制包,然后再进行动态部署。



                                                                                                            PPT下载地址:http://club.alibabatech.org/resource_detail.htm?topicId=155

 

相关文章
|
3月前
|
区块链
LeToken钱包系统开发|LeToken钱包系统开发指南与方案
在一个分布有众多节点的系统中,每个节点都具有高度自治的特征。
|
8月前
|
JSON 区块链 数据格式
交易所/钱包系统开发技术原理丨数字货币交易所/钱包系统开发(开发功能)及案例源码
  公链是Web3.0的核心载体,支持互操作、赋权赋能和信用机制,以及各类应用,Web3.0公链赛道主要包括Layer1、Layer2、Layer0。
|
9月前
去中心化链上拼团商城dapp系统开发合约定制方案
去中心化链上拼团商城dapp系统开发合约定制方案
|
9月前
|
新零售 区块链
区块链多商户商城开发(功能)丨区块链商城系统开发(逻辑及案例)丨区块链商城源码案例系统
 社交新零售,以社交赋能新零售模式,提升零售效率为目的的企业升级解决方案。社交新零售,是在消费升级时代,企业构建以消费者为中心的先进模式,从而获得竞争优势和效率提升。
|
10月前
|
区块链
多链钱包系统丨多链钱包系统开发(开发原理)丨多链钱包开发源码模式
 多币种钱包:支持多种区块链数字资产的钱包。多种区块链数字资产可以是一条区块链主链及围绕该主链协议设置的代币,也可以是多种区块链主链上不同的数字资产,所以多链钱包也可以说是多币种钱包。
|
10月前
|
区块链
多链钱包开发详情丨多链钱包系统开发(开发方案)丨多链钱包系统源码部署
单币种钱包:顾名思义,就是只为单一区块链数字资产服务的区块链钱包。因为它通常只支持单一区块链主链平台,所以也被称为主链钱包,
|
11月前
|
安全 前端开发 小程序
微信商户平台转账到零钱功能接入实战
近期营销活动中需要商户转账到微信用户零钱,实战角度说下接入过程,期间用的时间也比较多,把遇到的问题以及如何处理问题过程记录一下,希望对有同样需求的同学有所帮助,尽量少用一些时间,更专注业务处理.本文仅以发起商家转账( /v3/transfer/batches)功能进行讲解.
微信商户平台转账到零钱功能接入实战
|
存储 算法 区块链
Coinbase钱包系统开发
区块链Coinbase技术支持的数字藏品/数字艺术品,是将一个个数字化作品通过数字手段加密后,将其属性信息映射到区块链上形成唯√一标识,赋予其拥有者对该数字作品虚拟数字权益的形态,为了避免投机炒作嫌疑,国内将这类Coinbase技术支持的数字化作品称为“数字藏品”。
|
消息中间件 数据库
搭建xxpay支付平台(下)
搭建xxpay支付平台(下)
115 0
搭建xxpay支付平台(下)
相关产品
云迁移中心
推荐文章
更多