ClassyShark——apk分析利器(转载)

本文转载自地址

http://w4lle.github.io/2016/02/15/ClassyShark——分析apk利器/

背景

对于一个感兴趣的android非开源项目,通常使用逆向工程查看apk中的内容,俗称反编译。工具大概包括dex2jarJD-GUIapktoolprocyon,这些工具使用起来相对比较麻烦,如果我们只想知道该项目的基本框架、使用到哪些开源项目的话,那么就有些浪费时间。

对于一些大厂的项目,我们还比较关心的是用到了哪些新的框架和技术,对于新技术的流行程度和使用普遍程度有个比较好的把握,指导是否需要进行深度的使用学习。比如最近的比较流行的rxjava,热更新技术等等。

ClassyShark

ClassyShark是一款可以查看Android可执行文件的浏览工具,支持.dex, .aar, .so, .apk, .jar, .class, .xml 等文件格式,分析里面的内容包括classes.dex文件,包、方法数量、类、字符串、使用的NativeLibrary等。

使用方法

打开apk文件java -jar ClassyShark.jar -open

将生成的所有数据导出到文本文件里java -jar ClassyShark.jar -dump

将指定类生成的文件导出到文本文件里java -jar ClassyShark.jar -dump

打开ClassyShark,在GUI界面展示某特定的类

java -jar ClassyShark.jar -open

检测APKjava -jar ClassyShark.jar -inspect

导出所有的字符串 java -jar ClassyShark.jar -stringdump

具体使用

以美团项目为例,让我们看看能得到什么有用的信息

java -jar ClassyShark.jar -open ~/Downloads/group-351_3-meituan_.apk


美团项目中使用了MultiDex,并且classes.dex文件有3个,说明方法数肯定非常多。

美团的编译版本非常新, 紧跟时代, 23版本(Android 6.0)。

并且TargetSdkVersion也是23版本,紧跟技术方向。

最低版本是16(Android 4.1), 4.1以下的手机无法运行。

而且有好多的so库,有美团自己的,也有好多是第三方的库。


可以看到9万多个方法,怪不得会有3个classes.dex文件。

项目中应用了大量的第三方库,并且一般都是主流的比较稳定的开源库。

我们来看下都用到了哪些库

ZXing二维码识别库;

amap: 高德地图;

PullToRefresh使用最广的下拉刷新组件;

jackson, json解析库;

NineOldAndroidsJake大神的android兼容库

fresco,facebook出品的图片处理库,图片加载节省很多内存,避免OOM。

RxJavajava响应式编程库,再加上Square的Retrofit库的支持,可以说未来就是rxjava的天下,目前市面上已经有很多基于rxjava的项目;我们团队也将基于rxjava来开发项目;

圈内最牛逼的开源公司Square,Jake大神所在的公司,可以毫不夸张的说,Square的开源项目使得Android开发提速了好几年

okhttp网络请求库,已被官方采用;

retrofit非常牛逼的网络请求库,配合rxjava和lambda使用,代码量减少90%;

otto事件总线;

picasso图片加载库;

dagger依赖注入框架;

ExpandableTextView可折叠的TextView

iflytek, 科大讯飞的语音集成;

ViewPagerIndicator还是Jake大神的项目,viewpager的滚动控件;

actionbarsherlock依然是Jake大神的项目,Actionbar的适配库,不过已经过时了;

华为推送

SystemBarTint状态栏沉浸效果库

百度地图

新浪微博

腾讯的QQ和微信

大众点评,已经合并一家,东西也得用;

umpay, 联动优势支付;

支付宝;

andfix阿里出品的android热更新框架;

flurry统计库;

小米推送

http-request网络请求库;

EventBus事件总线库;

PhotoView放大缩小的图片处理库;

roboguice依赖注入框架,类似Dagger;

zip4j处理zip压缩的库;

link异步task关联库,很像rxjava;

总结

从上面分析我们可见看出,美团是一个技术很开放的公司,对于框架的使用比较多,使用的基本都是主流的开发框架,减少开发成本,增强app的稳定性和体验,对于我们来说,有很大的借鉴意义。比如,目前都在试水的热更新框架,美团选择了阿里的andfix,那么该技术方案肯定是得到了美团团队的验证;另外,美团团队也是比较潮流的,Retrofit+Rxjava的潮流趋势已经不可阻挡,美团已经开始使用;但是,从项目引用库中我们也可以看到一些不足之处;比如,同一种框架引用了多种第三方库,如网络库(okhttp,http-request),图片加载库(fresco,picasso),事件总线(EventBus, Otto),依赖注入(Dagger,roboguice),推送相关的库等很多重复的库,如果去掉重复的库那么可以节省很多的编译时间和apk包的大小;还有就是,我们基本可以断定,美团团队的内部并不能很好的统一,没有有效的沟通,代码开发很混乱,导致项目结构上的臃肿,重复库的使用等等问题。

通过分析App的项目结构和引用库的信息,我们大致掌握了该项目的架构,一些开发中的经验和不足,拓宽下开发视野,发现一些好用的开源库,增强我们的武器,这些都是我们在开发中可以借鉴的东西。

参考

分析应用使用的技术框架和开源库

本文转载自地址http://w4lle.github.io/2016/02/15/ClassyShark——分析apk利器/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,653评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,321评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,833评论 0 324
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,472评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,306评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,274评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,658评论 3 385
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,335评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,638评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,697评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,454评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,311评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,699评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,986评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,254评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,647评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,847评论 2 335

推荐阅读更多精彩内容