对一个程序员来说可以破解别人的app是一件激动人心的事,早些年做apk破解还是比较简单的事,随着大家对防破解的重视,市场上也陆续出现各种apk加固工具,使得今天apk破解也就没那么简单了,甚至连资源文件都看不了,很久以前用过dex2jar、JD-GUI、apktool等反编译工具,这些工具用起来略显麻烦,一大推步骤和命令行,今天使用一款简介的工具,classyshark
通过使用ClassyShark我们可以很容易的看到一个apk使用了哪些第三方开源库,对于我们日常进行开发工作还是很有借鉴意义的。
下面以《今日头条》为例来进行说明:部分内容引用自这里
我们下载jar后直接双击点开就可以,然后填上我们下载保存在本地apk的路径即可分析,如下图:
可以看到头条分了三个classes.dex文件,说明方法使用的很多,编译版本是Android6.0最低适配4.0,so库有很多使用第三方的:
-> libandfix.so 热修复框架AndFix
-> libcocklogic 友盟
-> libgif android-gif-drawable是一个用于显示GIF图片的Android组件
-> libimagepipeline.so facebook fresco
-> libweibosdkcore.so 微博SDK
我们再看看它的包结构:
我们可以看到它的方法总共有8万多,超过了65536,所以使用了MultiDex,通过包名可以分析出来:
-> Retrofit 这个不解释了,最好的网络请求框架
-> ijkplayer B站的开源框架
-> autolayout 应该是自己实现的一套布局方案
-> xiaomi 小米推送
-> com.bytedance 头条业务逻辑
-> alipay.sdk 阿里支付
-> pulltorefresh 上拉下拉加载框架(作者已停更)
-> umeng 友盟
-> gson 谷歌官方json解析
除此之外还能看到,今日头条地图定位使用的是高德地图,日志监控使用的是听云,差不多大概是使用以上的技术吧,当然还有一些就不一一列举了,通过这个我们可以大概了解到大厂所使用的技术,从而从中借鉴应用到自己的项目当中。