Android抓包从未如此简单
作者:lygttpod
链接:https://juejin.cn/post/7119083753376317448
一、情景再现:
有一天你正在王者团战里杀的热火朝天,忽然公司测试人员打你电话问为什么某个功能数据展示不出来了,昨天还好好的纳,是不是你又偷偷写bug了。。。WTF!,你会说:把你手机给我,我连上电脑看看打印的请求日志是不是接口有问题。然后吭哧吭哧搞半天看到接口数据返回的格式确实不对,然后去群里丢了几句服务端人员看一下这个接口,数据有问题。然后有回去打游戏,可惜游戏早已结束,以失败告终,自己还被无情的举报禁赛了。。。
人生最痛苦的事莫过于此。假如你的项目已经集成了抓包助手,并且也给其他人员介绍过如何使用,那么像这类问题根本就不需要你再来处理了,遇到数据问题他们第一时间会自己看请求数据,而你就可以安心上王者了。
二、Android抓包现状
目前常见的抓包工具有Charles、Fiddler、Wireshark等,这些或多或少都需要一些配置,略显麻烦,只适合开发及测试人员玩,如果产品也想看数据怎么办纳,别急,本文的主角登场了,你可以在项目中集成Android Monitor
,只需两步简单配置即可实现抓包数据可视化功能,随时随地,人人都可以方便快捷的查看请求数据了。
三、效果展示
俗话说无图无真相
四、如何使用
抓包工具有两个依赖需要添加:monito和monitor-plugin
Demo下载体验
源码地址
1、monitor接入
添加依赖
debugImplementation 'io.github.lygttpod:monitor:0.0.4'
备注: 使用debugImplementation是为了只在测试环境中引入
2、monitor-plugin接入
- 根目录build.gradle下添加如下依赖
buildscript {dependencies {......//monitor-plugin需要classpath 'io.github.lygttpod:monitor-plugin:0.0.1'}}
- 添加插件
在APP的build.gradle中添加://插件内部会自动判断debug模式下hook到okhttpapply plugin: 'monitor-plugin'
原则上完成以上两步你的APP就成功集成了抓包工具,很简单有没有,如需定制化服务请看下边的个性化配置
3、 个性化配置
1、修改桌面抓包工具入口名字:在主项目string.xml中添加 monitor_app_name即可,例如:<string name="monitor_app_name">XXX-抓包</string>2、定制抓包入口logo图标:添加 monitor_logo.png 即可3、单个项目使用的话,添加依赖后可直接使用,无需初始化,库里会通过ContentProvider方式自动初始化默认端口8080(端口号要唯一)4、多个项目都集成抓包工具,需要对不同项目设置不同的端口和数据库名字,用来做区分在主项目assets目录下新建 monitor.properties 文件,文件内如如下:对需要变更的参数修改即可# 抓包助手参数配置# Default port = 8080# Default dbName = monitor_db# ContentTypes白名单,默认application/json,application/xml,text/html,text/plain,text/xml# Default whiteContentTypes = application/json,application/xml,text/html,text/plain,text/xml# Host白名单,默认全部是白名单# Default whiteHosts = # Host黑名单,默认没有黑名单# Default blackHosts = # 如何多个项目都集成抓包工具,可以设置不同的端口进行访问monitor.port=8080monitor.dbName=app_name_monitor_db
4、 proguard(默认已经添加混淆,如遇到问题可以添加如下混淆代码)
# monitor-keep class com.lygttpod.monitor.** { *; }
5、 温馨提示
虽然monitor-plugin只会在debug环境hook代码,
但是release版编译的时候还是会走一遍Transform操作(空操作),
为了保险起见建议生产包禁掉此插件。在jenkins打包机器的《生产环境》的local.properties中添加monitor.enablePlugin=false,全面禁用monitor插件
6、如何使用
- 集成之后编译运行项目即可在手机上自动生成一个抓包入口的图标,点击即可打开可视化页面查看网络请求数据,这样就可以随时随地的查看我们的请求数据了。
- 虽然可以很方便的查看请求数据了但是手机屏幕太小,看起来不方便怎么办呐,那就去寻找在PC上展示的方法,首先想到的是能不能直接在浏览器里边直接看呐,这样不用安装任何程序在浏览输入一个地址就可以直接查看数据
- PC和手机在同一局域网的前提下:直接在任意浏览器输入 手机ip地址+抓包工具设置的端口号即可(地址可以在抓包app首页TitleBar上可以看到)
7、关键原理说明
- 拦截APP的OKHTTP请求(添加拦截器处理抓包请求,使用ASM字节码插装技术实现)
- 数据保存到本地数据库(room)
- APP本地开启一个socket服务AndroidLocalService
- 与本地socket服务通信
- UI展示数据(手机端和PC端)
五、最后
在使用AndroidMonitor过程遇到任何问题欢迎提Issues,如果对你有帮助,动动你的发财小手点个赞吧!
最后的最后,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。
一、架构师筑基必备技能
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
……
二、Android百大框架源码解析
1.Retrofit 2.0源码解析
2.Okhttp3源码解析
3.ButterKnife源码解析
4.MPAndroidChart 源码解析
5.Glide源码解析
6.Leakcanary 源码解析
7.Universal-lmage-Loader源码解析
8.EventBus 3.0源码解析
9.zxing源码分析
10.Picasso源码解析
11.LottieAndroid使用详解及源码解析
12.Fresco 源码分析——图片加载流程
三、Android性能优化实战解析
- 腾讯Bugly:对字符串匹配算法的一点理解
- 爱奇艺:安卓APP崩溃捕获方案——xCrash
- 字节跳动:深入理解Gradle框架之一:Plugin, Extension, buildSrc
- 百度APP技术:Android H5首屏优化实践
- 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
- 携程:从智行 Android 项目看组件化架构实践
- 网易新闻构建优化:如何让你的构建速度“势如闪电”?
- …
四、高级kotlin强化实战
1、Kotlin入门教程
2、Kotlin 实战避坑指南
3、项目实战《Kotlin Jetpack 实战》
从一个膜拜大神的 Demo 开始
Kotlin 写 Gradle 脚本是一种什么体验?
Kotlin 编程的三重境界
Kotlin 高阶函数
Kotlin 泛型
Kotlin 扩展
Kotlin 委托
协程“不为人知”的调试技巧
图解协程:suspend
五、Android高级UI开源框架进阶解密
1.SmartRefreshLayout的使用
2.Android之PullToRefresh控件源码解析
3.Android-PullToRefresh下拉刷新库基本用法
4.LoadSir-高效易用的加载反馈页管理框架
5.Android通用LoadingView加载框架详解
6.MPAndroidChart实现LineChart(折线图)
7.hellocharts-android使用指南
8.SmartTable使用指南
9.开源项目android-uitableview介绍
10.ExcelPanel 使用指南
11.Android开源项目SlidingMenu深切解析
12.MaterialDrawer使用指南
六、NDK模块开发
1、NDK 模块开发
2、JNI 模块
3、Native 开发工具
4、Linux 编程
5、底层图片处理
6、音视频开发
7、机器学习
七、Flutter技术进阶
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter开发环境搭建和调试
5、Dart语法篇之基础语法(一)
6、Dart语法篇之集合的使用与源码解析(二)
7、Dart语法篇之集合操作符函数与源码分析(三)
…
八、微信小程序开发
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战……
全套视频资料:
一、面试合集
二、源码解析合集
三、开源框架合集
欢迎大家一键三连支持,若需要文中资料,直接点击文末CSDN官方认证微信卡片免费领取【保证100%免费】↓↓↓
Android抓包从未如此简单相关推荐
- Android抓包方法之Win7笔记本Wifi热点+WireShark工具
Android抓包方法 之Win7笔记本Wifi热点+WireShark工具 前言 做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等. 第 ...
- Android 抓包 Fiddler Https443问题
Android 抓包 Fiddler Https443问题 简单的Fiddler配置在这里不说了,可以查到 解决Android 手机App抓包出现443问题 方法一: 把app的targetSdkVe ...
- batT脚本如何自动执行 adb shell 以后的命令(android抓包)
bat脚本自动执行 adb shell 以后的命令 @echo off echo su > test.txt echo 其它命令(如 cd /data) >> test.txt ad ...
- Android抓包指南①: 使用Fiddler抓HTTP/HTTPS包
抓包的重要性 网络抓包,是Android应用逆向分析的重中之重,很多时候我们拿到一个APP,不知道从何入手分析,往往是从抓包开始,先弄清楚他与服务器通信的内容,如果一目了然,我们完全可以照搬,自行写一 ...
- Android抓包 - Okhttp混淆导致Hook工具失效
Android抓包 - Okhttp混淆导致Hook工具失效 本文部分内容参考 loco 大佬的文章,同时借用loco大佬文章中的2个APP(有无混淆). 微信公众号: yeshengit 这篇文章的 ...
- 抓包工具Charles简单使用介绍(可抓取Android中app的请求)
摘自: 作者:Roy_Liang链接:http://www.jianshu.com/p/5539599c7a25 Charles安装 HTTP抓包 HTTPS抓包 1. Charles安装 官网下载安 ...
- Android抓包方法(一)之Fiddler代理
做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等. 具体步骤如下: 1.抓包原理 Fiddler是类似代理服务器的形式工作,它能够记录所有 ...
- Android抓包方法(二) 之Tcpdump命令+Wireshark
前言 做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等.学会抓包分析是测试人员必备的功课之一.最先想的基本上都会是Fiddler代理抓包, ...
- Android抓包方法(一) 之Fiddler代理
前言: 做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等. 不管是之前做HTML5手机项目测试,还是现在的企邮app测试,经常需要抓包,做 ...
- Android抓包Charles入门教程
Android抓包工具有很多,有轻量的如httpCanary直接安装在手机上通过代理进行抓包,有功能强大的WireShark PC 端的抓包工具(也要设置代理啦),还有老牌抓包工具Finder和Cha ...
最新文章
- [家里蹲大学数学杂志]第254期第五届[2013年]全国大学生数学竞赛[数学类]试题
- 应用程序_Blazor VS 传统Web应用程序
- 外星人进化_深层分析宇宙常数对生命形成进化的影响,外星人或许根本就“不是人”!...
- H - Great Cells Gym - 101194H(数学推导/思维)
- switch case 支持的 6 种数据类型
- 理解计算机程序与指令
- 递归函数之阶乘的实现
- Python中的异常处理try、exception、raise
- 春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。...
- 【Python实例第36讲】一个高斯过程回归的例子
- 菜鸟学习日志3.界面控件的设置
- 转载自Kevin-Tong
- 如何构建自己的计算机,第四部分:安装Windows和加载驱动程序
- Java程序员每天的工作都是做什么的?
- 魔板(康托展开去重)
- 卡耐基计算机专业课程,你以为卡耐基梅隆大学只有计算机专业厉害吗?
- 他一定幸福地生活在那里
- 水利水电安全员考试单选练习题库(11)
- matplotlib.pyplot——cmap直观理解
- PHP解码JavaScript中的escape()方法
热门文章
- 一个Python 爬虫程序
- 中国科学院计算机吴,专家人才库数据----中国科学院计算技术研究所
- 修改UI及盒子启动及部分后续操作
- 10大亮点解读--极通EWEBS4.0
- IT项目管理之第5章 项目时间管理习题之案例分析汇总
- webApp PHP项目打包供手机下载,免越狱免签名的苹果ios webAPP打包生成的网站教程(附iphone配置实用工具)...
- GlobalMapper20坐标转换
- 正定矩阵和半正定矩阵
- echarts label加边框_ECharts 教程 富文本标签 - 闪电教程JSRUN
- 计算机技能培训工作计划,计算机培训教学计划范文