利用反编译学习Android
自从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的框架貌似被用的很多.
利用反编译学习Android的更多相关文章
- Atitit.反编译apk android源码以及防止反编译apk
Atitit.反编译apk android源码以及防止反编译apk 1.1. Tool apk逆向助手1 1.2. 二.使用dex2jar + jd-gui 得到apk的java源码1 1.3. 用 ...
- Unity-DLL反编译学习
本文由博主(SunboyL)原创,转载请注明出处:http://www.cnblogs.com/xsln/p/DLL_DeCompilation.html 在Unity实际开发过程中, ...
- System.Windows.Forms.Timer反编译学习
using System; using System.ComponentModel; using System.Globalization; using System.Runtime; using S ...
- 【安全性测试】利用反编译查看对应activity的方法采用hook技术绑定劫持_入门
本次主要为了研究手机端的安全性而写的一篇文章,在基于自己对手机安全性的研究下,想到了这些工具之间的结合,当然这也算是第一次对手机安全研究勇敢地踏出一步,也不知道是否成功,还是准备撞南墙撞到底吧! 使用 ...
- android反编译工具总结
序:总结反编译主要的目的在于学习.利用反编译进行相关的汉化或修改,都是不道德的! 大家都知道,将apk文件解压后有两部分文件需要处理,一种是xml文件,另一种一个dex文件(.dex),我们可以从.d ...
- Android反编译方法(class+xml)
ps:对于软件开发人员来说,保护代码安全也是比较重要的因素之一,不过目前来说Google Android平台选择了Java Dalvik VM的方式使其程序很容易破解和被修改,首先APK文件其实就是一 ...
- Android安全攻防战,反编译与混淆技术完全解析(上)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/49738023 之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值 ...
- 反编译Android APK及防止APK程序被反编译
怎么逆向工程对Android Apk 进行反编译 google Android开发是开源的,开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译的方式 ...
- Mac上反编译Android apk安装包
什么是反编译 我们知道,Android的程序打包后会生成一个APK文件,这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译.Android的反编译分成两个部分: 一 ...
随机推荐
- laravel5.2总结--blade模板
## 1.基本用法 ``` ##情形1 $name = laravel5 <div class="title"> {{$name}} {{$name}}</div ...
- Python+Selenium练习篇之18-获取元素上面的文字
本文介绍如何通过Selenium方法来获取某一个元素的text属性值.在很多自动化测试脚本中,需要多次获取元素的text值,拿过来进行对比和匹配.例如,在一个登陆界面,如果不输入用户名和密码,直接点击 ...
- LeetCode——Problem1:two sum
早就想刷LeetCode了,但一直在拖,新学期开学,开始刷算法. 我准备从Python和C++两种语言刷.一方面我想做机器学习,以后用Python会比较多,联系一下.另一方面C++或者C语言更接近底层 ...
- redis linux 安装
安装 1): wget http://download.redis.io/releases/redis-5.0.2.tar.gz 2): tar xzf redis-5.0.2.tar.gz 3):c ...
- 计算两个日期之间的天数差C++/java
1--Java 分析:调用java中Calendar类 int days(Date date1,Date date2){ Calendar cal = new Calendar.getInstance ...
- 我的第一个python程序——猜数字
#Author:xiaoxiao age = 22 #标准正确答案 counter = 0 #计数器 for i in range(10): #循环10次 if counter < 3: gue ...
- java同步器__学习笔记
参照:http://ifeve.com/introduce-abstractqueuedsynchronizer/ 前言: 在java.util.concurrent.locks包中有很多Lock的实 ...
- iOS自定义控件创建原理(持续更新)
前言 因为如果要创建各种自定义控件根据需求的不同会有很多的差别,所以我就在这里,分析一些自定义控件的创建实现方法 弹出视图 1.把要弹出的视图装在一个控制器里面,自定义转场动画 2.创建一个弹出视图, ...
- redis在linux上的安装和配置
https://blog.csdn.net/lzding/article/details/52040501(直接可以用的安装phpredis) http://www.runoob.com/redis/ ...
- [openmp]使用嵌套并行
变量OMP_NESTED设置使其可以在函数中并行. #include "omp.h" #include <cstdio> #include <iostream&g ...