四时宝库

程序员的知识宝库

Android工程师角度分析App使用的开源框架-3.菜鸟裹裹

自从分析完手淘后,感觉已经过去了一个世纪了,尴尬。本来上次说要分析京东和美团的,也没有开始着手,最近对智能物流比较感兴趣,所以这次分析的是菜鸟裹裹App。京东和美团的只能等后面了,抱歉。

App信息

文件: cainiao4android_10004264.apk

大小: 27.5M

版本: 4.7.1

反编译源码

这次反编译工具依然是jadx(如果有更好的工具,可以在留言推荐下哦)。

这次分析从AndroidManifest.xml文件开始, 菜鸟App的包名:com.cainiao.wireless。

com.cainiao.wireless

源码分析:

AndroidManifest.xml中定义的Application:

AtlasBridgeApplication是atlas框架下apk的真正Application,容器框架结构图:

具体原理参考:Atlas

真正的入口:

那真正的入口在哪里?

在AtlasBridgeApplication的attachBaseContext方法中有一段代码:

可以看出实际加载的是BridgeApplicationDelegate这个类的attachBaseContext方法,该方法也有一段主要逻辑:

所以最后其实加载的真正入口就是在AndroidManifest.xml中的名称为REAL_APPLICATION的meta-data标签:

简单分析下 CainiaoApplication

实现了ReactApplication,加载CNReactPackage模块。

在调试状态下,可以开启LeakCanary,Stetho。

注册了ActivityLifecycleCallbacks回调,具体作用等后期模块分析,在具体介绍。

本次的目的主要分析使用的开源框架。

wireless包结构:

其他包结构

一些比较细节的或者改造过的库,没有去穷举。

通过上面库的使用分析,菜鸟app在hrbird上运用比较多,这个与实际的业务有关(具体哪些业务上使用了,接下来会有一些列文章来分析)。

其他一些库,和以前阿里系的还是比较类似,使用了很多的主流库。

接下来会对菜鸟app进行更深一步的分析,具体分析哪些内容,正在整理中。

原文链接:

http://yeungeek.com/2018/07/15/Android%E5%B7%A5%E7%A8%8B%E5%B8%88%E8%A7%92%E5%BA%A6%E5%88%86%E6%9E%90App%E4%BD%BF%E7%94%A8%E7%9A%84%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6-3-%E8%8F%9C%E9%B8%9F%E8%A3%B9%E8%A3%B9/

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接