前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用

简介: 【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用

一、前言

image.png

说起前端分析工具,我翻来翻去。把 Chrome/Safari/Firefox/IE....的性能工具翻了一个遍,真是觉得工具五花八门,但是.....

原理没变。

想着也该写个公众号文章了,以让别人知道我在干什么。可是写什么主题呢?

http1.1/2.0 协议下的性能分析? 看话题就觉得没啥观众。

浏览器不同内核对前端处理的逻辑?会有人问:啥是内核?感觉很受伤。

............

并且从历史上的文章来看,一步步基础操作的文章比较受欢迎。所以有了写这篇文章的想法。

我在整理前端工具的时候,发现 charles 工具还不错,虽说是收费的工具,但是支持的平台挺多。

但是在网上看到挺多文章说 charles 录制 https 的时候,都没有把录制 android/IOS 上的 https 应用写的非常清楚。在这里一步步写出来给大家参考下。

正文从这里开始。

二、环境

  • macOS Sierra Version 10.12.6

  • Charles 4.2.5

  • iphone Version 9.1(不同版本有稍微的区别,只要能找到相应配置即可)

  • 华为EMUI Version 5.0.3 / Android Version 7.0

三、代理配置

1.首先打开Charles,主界面如下。

image.png

2.查看下代理配置。点 Proxy Setting...。同时把录制按钮点亮(其实默认就是亮的)

image.png

这个端口要记住,默认是 8888。
image.png

3.安装Charles自己的根证书。点击 Help> SSL Proxying > Install Charles Root Certificate

image.png

4.查看下 keychain 中的 Charles 证书是否始终信任。

image.png

5.保存Charles的根证书。点击 Help > SSL Proxying > Save Charles Root Certificate。(保存到哪里不用我说了吧?要一定要说的话,那就是随你的便!)

image.png

6.查看下本地 IP。点击 Help > Local IP Address
image.png

以上都是电脑上的准备工作,下面开始配置手机。因为 IOS 和 Android 的配置有不同,所以这里,分成两部分写。

四、IOS 配置

1.点开 wifi 的信息界面,并点击“手动”配置代理服务器。这里的 IP 就是前面看到的 IP,端口是前面配置的端口。
image.png

2.在手机上配置了上一步之后,在电脑上会出现如下提示。这肯定是点 Allow 了。
image.png

3.在手机上输入一个https的网址时会出现如下提示。点击信任。 这一步还有另一个方法,就是点击设置->通用->关于本机->证书信任设置-> 找到 charles proxy custom root certificate,然后开启信任。
image.png

4.在手机上打开 https 的页面。在电脑上查看录制效果。上边是电脑上 Charles 的录制结果;下边是手机上的打开的页面。
image.png
image.png

五、Android 配置

1.在手机上配置代理。怎么找到如下这个页面的呢?要在 wifi 的连接上按住不动,出现个菜单,然后点击 Modify network,并且在新窗口中点击 Show advanced options。
image.png

2.在手机上配置了上一步之后,在电脑上会出现如下提示。这肯定是点 Allow 了。
image.png

3.在手机上安装证书。
3.1.把保存的根证书文件传到手机上。(我是用微信的文件传输助手传的,你想用什么就随便了,前提是你能找得到文件保存在哪里了。)
3.2.点击 Install from SD card,找到证书文件(下面右图最上面的一个文件)。
image.png
image.png

3.3.输入屏保密码和证书名。我知道这里会有人问,为啥这一步要用拍的图,而不是截的图呢?哈哈。这就是因为呀,手机上不允许在这一步直接用截图功能!

image.png
image.png

4.在手机上打开 https 的页面。在电脑上查看录制效果。 上边是电脑上 Charles 的录制结果;下边是手机上的打开的页面。
image.png
image.png

正文至此完。

六、小结

在这个没有讲虚幻的原理和逻辑的文章中,一步步的操作是不是让你有很脚踏实地的感觉?其实我强忍着没有写 charles 的抓包原理和逻辑(其实就一个 proxy,有啥好讲的呢)。

这样的抓包过程,并不是原理有多复杂,而是逻辑有点绕(不是操作上感觉逻辑绕,而是解释逻辑起来有点绕),点开了也不难懂,就是网络中的数据包是怎么走的。只要明白这一点,管它是什么手机,管他是什么系统在运行类似这样的抓包工具,都是可以配置得出来的。

目录
相关文章
|
1天前
|
安全 数据处理 Android开发
构建高效Android应用:Kotlin协程的实践之路
【4月更文挑战第26天】 在面对现代Android开发时,性能优化和流畅的用户体验成为了开发者们追求的目标。Kotlin作为一种现代化的编程语言,通过其协程特性为Android应用带来了前所未有的并发处理能力。本文将深入探讨如何利用Kotlin协程提升Android应用的响应性和效率,同时保持代码的简洁性。我们将从协程的基础概念出发,逐步揭示如何在实际应用中运用这些强大的工具,以及它们如何改善应用架构和用户交互体验。
|
3天前
|
移动开发 Java Android开发
构建高效Android应用:采用Kotlin协程优化网络请求
【4月更文挑战第24天】 在移动开发领域,尤其是对于Android平台而言,网络请求是一个不可或缺的功能。然而,随着用户对应用响应速度和稳定性要求的不断提高,传统的异步处理方式如回调地狱和RxJava已逐渐显示出局限性。本文将探讨如何利用Kotlin协程来简化异步代码,提升网络请求的效率和可读性。我们将深入分析协程的原理,并通过一个实际案例展示如何在Android应用中集成和优化网络请求。
|
3天前
|
调度 Android开发 开发者
构建高效Android应用:探究Kotlin协程的优势与实践
【4月更文挑战第24天】随着移动开发技术的不断演进,提升应用性能和用户体验已成为开发者的核心任务。在Android平台上,Kotlin语言凭借其简洁性和功能性成为主流选择之一。特别是Kotlin的协程功能,它为异步编程提供了一种轻量级的解决方案,使得处理并发任务更加高效和简洁。本文将深入探讨Kotlin协程在Android开发中的应用,通过实际案例分析协程如何优化应用性能,以及如何在项目中实现协程。
|
4天前
|
存储 缓存 安全
Android系统 应用存储路径与权限
Android系统 应用存储路径与权限
6 0
Android系统 应用存储路径与权限
|
4天前
|
存储 安全 Android开发
Android系统 自定义系统和应用权限
Android系统 自定义系统和应用权限
19 0
|
9天前
|
缓存 移动开发 Android开发
构建高效Android应用:从优化用户体验到提升性能表现
【4月更文挑战第18天】 在移动开发的世界中,打造一个既快速又流畅的Android应用并非易事。本文深入探讨了如何通过一系列创新的技术策略来提升应用性能和用户体验。我们将从用户界面(UI)设计的简约性原则出发,探索响应式布局和Material Design的实践,再深入剖析后台任务处理、内存管理和电池寿命优化的技巧。此外,文中还将讨论最新的Android Jetpack组件如何帮助开发者更高效地构建高质量的应用。此内容不仅适合经验丰富的开发者深化理解,也适合初学者构建起对Android高效开发的基础认识。
10 0
|
9天前
|
移动开发 Android开发 开发者
构建高效Android应用:采用Kotlin进行内存优化的策略
【4月更文挑战第18天】 在移动开发领域,性能优化一直是开发者关注的焦点。特别是对于Android应用而言,由于设备和版本的多样性,确保应用流畅运行且占用资源少是一大挑战。本文将探讨使用Kotlin语言开发Android应用时,如何通过内存优化来提升应用性能。我们将从减少不必要的对象创建、合理使用数据结构、避免内存泄漏等方面入手,提供实用的代码示例和最佳实践,帮助开发者构建更加高效的Android应用。
15 0
|
11天前
|
缓存 移动开发 Java
构建高效的Android应用:内存优化策略
【4月更文挑战第16天】 在移动开发领域,尤其是针对资源有限的Android设备,内存优化是提升应用性能和用户体验的关键因素。本文将深入探讨Android应用的内存管理机制,分析常见的内存泄漏问题,并提出一系列实用的内存优化技巧。通过这些策略的实施,开发者可以显著减少应用的内存占用,避免不必要的后台服务,以及提高垃圾回收效率,从而延长设备的电池寿命并确保应用的流畅运行。
|
11天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
10 0
|
13天前
|
搜索推荐 开发工具 Android开发
安卓即时应用(Instant Apps)开发指南
【4月更文挑战第14天】Android Instant Apps让用户体验部分应用功能而无需完整下载。开发者需将应用拆分成模块,基于已上线的基础应用构建。使用Android Studio的Instant Apps Feature Library定义模块特性,优化代码与资源以减小模块大小,同步管理即时应用和基础应用的版本。经过测试,可发布至Google Play Console,提升用户便利性,创造新获客机会。