Android工程师角度分析App使用的开源框架-1.支付宝
2017-02-10 15:32 阅读(265)

年前在掘金上看到一篇文章支付宝 Android 版使用的开源组件,看到很多人在评论,怎么支付宝也用这么多的开源框架,是不是会很low啊?
接下来,我们看看支付宝用到的开源框架列表:
https://ds.alipay.com/fd-opensource/index.html 。 这篇文章已经分析了支付宝用到的开源组件以及一些说明。不过我这次要从源码角度(反编译)再去看看,支付宝到底用了哪些开源框架。

反编译源码

关于反编译的工具,可以看我以前的一篇文章Android反编译之一-反编译的工具和方法
这次使用到的工具

反编译完成后,使用JD查看源码,源码结构:

源码分析

下面就源码来分析下,支付宝使用的开源框架,是否和他们列出来的一致。

名称包名描述
android-supprt-libraryv4,v7,v13,multidexgoogle支持库
OpenSSL
NDK使用,看下lib是否有对应的so文件
Gsoncom.google.gsonGoogle官方的Json解析库
fastjsoncom.alibaba.fastjsonalibaba的Json解析库
sqlcryptonet.sqlciphersqlite加密库,支付宝直接整合到com.alibaba.sqlcrypto,对源码有修改
duktape-androidcom.squareup.duktape一个新的小巧的超精简可嵌入式JavaScript引擎,支付宝已经整合到com.alipay.jsbridge.duktape
achartengineorg.achartengine老牌的图表库
android-stackblurcom.enrique.stackblur图像高斯模糊,支付宝已经整合到com.alipay.android.phone.o2o.o2ocommon.util.blur
android-gif-drawablepl.droidsonroids.gifAndroid显示Gif动图
libyuv
在Android上使用Google开源的图像处理库libyuv进行高效的图像处理
css-layout
Facebook开源跨平台前端布局引擎Yoga,在源码中没有找到对应的类
libjpeg-turbo
libjpeg-turbo 是一个专门为 x86 和 x86-64 处理器优化的高速 libjpeg 的改进版本
ViewPagerIndicatorcom.viewpagerindicator老牌的ViewPagerIndicator,支付宝已经整合到com.alipay.mobile.commonui.widget.hgridview
CircleImageViewde.hdodenhof.circleimageview圆角图片库,支付宝已经整合到com.alipay.android.phone.wallet.sharetoken.view
ProgressWheel
环形进度的UI库
NineOldAndroidscom.nineoldandroids.view动画兼容库
DiskLruCache
Android”硬盘”缓存
ijkplayertv.danmaku.ijk.media.playerBilibili开源的视频播放库
DanmakuFlameMaster
Bilibili开源的中二病开源弹幕引擎—烈焰弹幕
androidquery
轻量级的Android开源框架
TheMVPcom.kymjs.themvp一个MVP框架,支付宝已经整合到com.alipay.mobile.android.mvp
tagsoup
html解析框架
wirecom.squareup.wireClean, lightweight protocol buffers for Android and Java
okiookiojava IO框架
okhttpokhttp3著名网络框架,支付宝已经整合到com.alipay.mobile.common.transportext.biz.spdy
androidquerycom.androidqueryAndroid-query框架能够快速的,比传统开发android所要编写的代码要少得很多,容易阅读
XRecyclerView
源码中未找到
dagger
依赖注入框架,源码中未找到
androidannotationsorg.androidannotations另一个注入框架
EventBus
Android事件总线
zlib
数据压缩用的库
aspectjorg.aspectj面向切面的框架
thriftorg.apache.thrift一个软件框架,用来进行可扩展且跨语言的服务的开发
flexbox-layoutcom.google.android.flexboxGoogle 开源的Android 排版库
ormlitecom.j256.ormliteorm数据库框架
Android-Zip4jnet.lingala.zip4jAndroid带密码解压库
AndFixcom.alipay.euler.andfixAndroid Hotfix框架

关于其他使用到第三方push库,这里就没有列出来,有兴趣的同学,可以自行研究。

总结

通过反编译,支付宝使用了列表中的开源框架,由于支付宝版本的不一致,和他们列出来的支付宝 Android 版使用的开源组件,有些出入。
从中看出,支付宝对一些大公司成熟的开源框架,比较青睐,比如google,square的一系列框架。那哪些是可以借鉴的。

常用库

惊喜库(新学的)

关于支付宝使用的框架就分析到这里,发现支付宝使用的有些库还是非常值得参考的。下次准备分析下淘宝,看看阿里系的app有何不同之处。