自从2014年底到2015年中,全民创业的热潮就已经席卷全国了,一大批新的创业公司在北上广萌芽,也造成了大量的开发人员需求.扯远了,今天不谈创业潮,聊聊如何通过反编译学习Android.
本文只是个人对于学习的一点看法,大神请绕道.
如今市面上有很多优秀的App.这些App比较适合我们拿出来研究,去了解他们使用的技术(用了哪些开源库,^_^).
那么如何去了解呢?
反编译~
基本上经过反编译之后的代码,就能大致的了解其软件结构了.
下面以一些app为例简单地说明,仅作为学习交流,请勿随意传播,造成不良影响.
搭建反编译环境
由于搭建反编译环境比较简单,这里就不详细说明了.
可以参考文章 Mac下配置Apktool反编译环境
反编译
常用的反编译命令:
获取反编译后的资源文件和smail代码等
apktool d xxx.apk
将dex转换为jar包在jd_gui中查看
d2j-dex2jar.sh classes.dex
分析反编译结果
常用开源库
注解库Butterknife
网络请求框架Retrofit (支持Rxjava)
网络请求库okHttp
Json解析库Gson
okHttp库用到 okio
ReactX函数响应式编程框架 RxJava
Rx异步框架同上 RxAndroid
图片控制库PhotoView
图片加载库Glide
图片加载库Picasso
Android解耦库EventBus
内存泄露检测工具eakcanary
支持在低版本(API 11 以下)使用Android 属性动画以及3D 旋转动画的框架 nineoldandroids
图片毛玻璃效果库Android StackBlur
网络请求框架 By Google Volley
Light weight android easing library Android-Easing
常用三方服务
百度地图
百度推送
Umeng更新组件&分析
环信及时通信
阿里妈妈推广sdk
阿里支付sdk
微信支付sdk
END
由于反编译的App不多,大概总结了一下,如果有一些不错的App可以一起分析一下其中使用的开源库和使用的技术.
不过目前RxJava+Retrofit+ButterKnife+OkHttp+EventBus的框架貌似被用的很多.