
技术分享类
文章平均质量分 74
邹奇
热爱技术,热爱分享,锻炼身体!坚持开源分享!!!
展开
-
Android 中设置指定语言
另外不要在自定义的 Application 类中获取 getResources() ,亲自测试后发现设置指定语言功能并没有生效,后面发现是 getResources 这个方法导致。Android Appication及Activity的 Resource 生成代码分析千万不要在application里面重写getResources技术永不眠!我们下期见!原创 2022-10-26 13:50:15 · 1963 阅读 · 3 评论 -
【JitPack】发布一个你自己的 Android 依赖库
我这里是已经提交过了,说下我的操作:关联远程库,提交到暂存区,拉取远端开发分支(我这里是。到这里就完成了 github 相关的 release 打包操作。输入新分支名称后点击回车,即可创建 tag v1.0.6。重新构建一下项目,成功后可以发现依赖添加成功了。这个也是比较简单,同学们自己根据实际来提交即可。有疑问的同学可以查看工程结构,这里就不细说了。这里没啥可说的,上面注释已经写的很详细。的一次完整的提交过程,仅供参考。的同学也比较了解,这里不多细说。前期踩坑略多,这里做个记录。分支到主分支的请求。原创 2022-08-24 16:08:56 · 1320 阅读 · 0 评论 -
Java 设计模式之【命令】学习与掌握
文章目录定义优点缺点模式的结构与实现模式的结构模式的实现应用场景定义将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。优点通过引入中间件(抽象接口)降低系统的耦合度。可以实现宏命令。命令模式可以与组合模式结合,将多个命令装配成一个组合命令,即宏命令。扩展性良好,增加或删除命令非常方便。采用命令模式增加与删除命令不会影响其他类,且满足“开闭原则”。缺点可能产生大量具体的命令原创 2021-11-05 17:00:24 · 151 阅读 · 0 评论 -
Java 设计模式之【策略】学习与掌握
文章目录前言定义优点缺点模式的结构与实现模式的结构模式的实现应用场景前言个人建议设计模式这一系列的文章,多关注定义和模式的代码实现。至于模式结构和扩展或者是应用场景,基本了解过一下就好,没必要硬记。这只是我的个人建议,同学们当然可以自己选择知识消化。鲁迅曾说过:对代码相关的概念,如果理解不了,就狠狠的实践它吧!实践的多了,就自然懂了。定义该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装原创 2021-11-04 11:20:55 · 189 阅读 · 0 评论 -
Java 设计模式之【模板方法】学习与掌握
文章目录定义优点缺点模式的结构与实现模式的结构模式的实现应用场景定义定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。优点它在父类中提取了公共的部分代码,便于代码复用。部分方法是由子类实现的,因此子类可以通过扩展方式增加相应的功能,符合开闭原则。它封装了不变部分,扩展可变部分。它把认为是不变部分的算法封装到父类中实现,而把可变部分算法由子类继承实现,便于子类继续扩展。缺点由于继承关系自身的缺点,如果父类添加原创 2021-11-03 11:27:24 · 203 阅读 · 0 评论 -
Java 设计模式之【组合】学习与掌握
文章目录定义优点缺点组合模式的结构与实现模式的结构模式的实现应用场景定义将对象组合成树状层次结构,使用户对单个对象和组合对象具有一致的访问性。组合模式一般用来描述整体与部分的关系,它将对象组织到树形结构中,顶层的节点被称为根节点,根节点下面可以包含树枝节点和叶子节点,树枝节点下面又可以包含树枝节点和叶子节点#mermaid-svg-mNbznDSDAYofUiPR .label{font-family:'trebuchet ms', verdana, arial;font-family:va原创 2021-11-01 14:50:56 · 162 阅读 · 0 评论 -
Java 设计模式之【享元】学习与掌握
文章目录定义优点缺点模式结构与实现模式结构模式的实现应用场景定义运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。优点相同对象只要保存一份,这降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力。缺点读取享元模式的外部状态会使得运行时间稍微变长。为了使对象可以共享,需要将一些不能共享的状态外部化,这将增加程序的复杂性。模式结构与实现享元模式的定义提出了两个要求原创 2021-10-28 11:59:55 · 146 阅读 · 0 评论 -
Java 设计模式之【外观】学习与掌握
文章目录定义优点缺点模式结构与实现模式结构模式的实现模式应用场景定义外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。优点降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易。降低了大型软件原创 2021-10-27 11:05:00 · 107 阅读 · 0 评论 -
Java 设计模式之【装饰器】学习与掌握
文章目录定义优点缺点装饰器模式的结构与实现模式结构模式实现应用场景定义指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。优点装饰器模式完全遵守开闭原则通过使用不同装饰类及这些装饰类的排列组合,可以实现不同效果装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用缺点装饰器模式会增加许多子类,过度使用会增加程序得复杂性。装饰器模式的结构与实现使用组合关系来创建一个包装对象原创 2021-10-26 14:08:55 · 193 阅读 · 0 评论 -
Java 设计模式之【桥接】学习与掌握
文章目录定义优点缺点桥接模式的结构与实现模式的结构模式的实现应用场景定义将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。优点符合开闭原则符合合成复用原则其实现细节对客户透明抽象与实现分离,扩展能力强缺点由于聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,能正确地识别出系统中两个独立变化的维度,这增加了系统的理解与设计难度。桥接模式的结构与实现将抽象化部分与实现化部分分开,取消二者的继承原创 2021-10-25 14:53:00 · 179 阅读 · 0 评论 -
Java 设计模式之【适配器】学习与掌握
文章目录定义与特点优点缺点模式的结构与实现模式的结构类适配器模式实现对象适配器模式实现模式应用场景模式的扩展定义与特点将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高优点在很多业务场景中符合开闭原则。客户端通过适配器可以透明地调用目标接口。复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。将目标类和适配者类解耦,解决了目标类和适配者类接口不一致原创 2021-10-22 14:07:22 · 158 阅读 · 0 评论 -
Java 设计模式之【建造者】学习与掌握
文章目录定义优点缺点模式的结构与实现结构实现应用场景建造者模式和工厂模式的区别模式的扩展定义指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。优点封装性好,构建和表示分离。扩展性好,各个具体的建造者相互独立,有利于系统的解耦。客户端不必知道产品内部组成的细节,建造者可以对创建过程逐步细化,而原创 2021-10-19 14:39:04 · 140 阅读 · 2 评论 -
Java 设计模式之【工厂方法】学习与掌握
文章目录定义优点缺点模式结构与实现模式结构模式实现应用场景定义定义一个用于创建产品的接口,由子类决定生产什么产品。优点灵活性增强,对于新产品的创建,只需多写一个相应的工厂类。用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程。典型的解耦框架。高层模块只需要知道产品的抽象类,无须关心其他实现类,满足迪米特法则、依赖倒置原则和里氏替换原则。迪米特法则:又叫作最少知识原则。其含义是:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该原创 2021-10-18 15:01:34 · 181 阅读 · 0 评论 -
Java 设计模式之【原型】学习与掌握
文章目录什么是原型优点缺点模式结构与实现模式结构模式实现应用实例什么是原型将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。优点Java 自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一个对象更加优良。可以使用深克隆方式保存对象的状态,使用原型模式将对象复制一份,并将其状态保存起来,简化了创建对象的过程,以便在需要的时候使用(例如恢复到历史某一状态),可辅助实现撤销操作。缺点需要为每一个类都配置一个 clone 方法clone 方法位于类的内部原创 2021-10-14 17:06:21 · 149 阅读 · 0 评论 -
Java 设计模式之【单例】学习与掌握
文章目录定义特点优缺点应用场景实现懒汉式单例饿汉式单例单例模式的扩展定义某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。特点单例类只有一个实例对象;该单例对象必须由单例类自行创建;单例类对外提供一个访问该单例的全局访问点。优缺点优点可以避免对资源的多重占用。单例模式设置全局访问点,可以优化和共享资源的访问。单例模式可以保证内存里只有一个实例,减少了内存的开销。缺点单例模式的功能代码通常写在一个类中,如果功能设计不合理原创 2021-10-09 11:15:53 · 194 阅读 · 0 评论 -
Java 设计模式之【代理】 学习与掌握
文章目录什么是代理代理分类两种代理的优缺点及应用场景实践理解两种代理主要区别文章讲 静态代理 和 动态代理 两种代理。什么是代理对其他对象提供一种代理,用来控制对这个被代理对象的访问。简单来说,在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理分类静态代理动态代理两种代理的优缺点及应用场景静态代理【优点】使用者只关心业务逻辑,不需要着眼内部实现,方便后期的变更和部分共用代码的统一处理。【缺点】当原创 2021-10-04 17:09:35 · 108 阅读 · 0 评论 -
Android 中关于九宫格图片的那些事
文章目录背景拉伸对比定义与原理制作点九图片图片加工说明背景最近看了会书,然后有个知识点还是比较重要的。也对同学们的开发是有帮助的,这里简单的记录下。拉伸对比普通图片和九宫格图片拉伸效果对比如下图示:从上面对比图中可看出,当普通图片拉伸后,背景图会变得模糊(左右两边的边缘线既变宽又变模糊了);但是用的九宫格图片拉伸后却不会。定义与原理为了解决图片过度拉伸后显示模糊的问题,Android 专门设计了点九图片。点九图片的扩展名是 png,文件名后常带有 “.9” 字样。因为把一张图片划分成了原创 2021-07-19 11:26:22 · 1607 阅读 · 0 评论 -
Android 中悬浮在 activity 上的透明背景 dialog 实现
文章目录背景背景最近项目中有用到,且手机上很多 app 也会有这个功能,记录一下。原创 2021-05-06 14:23:12 · 1110 阅读 · 4 评论 -
Android Kotlin基础学习 - 委托
文章目录背景内容类委托属性委托定义一个被委托的类标准委托延迟属性 Lazy可观察属性 Observable把属性存储在映射中NOT NULL局部委托属性属性委托要求翻译规则背景学习 记录分享 坚持开源!内容委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。Kotlin 直接支持委托模式,更加优雅,简洁。Kotlin 通过关键字 by 实现委托。类委托类的委托即一个类中定义的方法实际是调用另一个类的对象的方法原创 2021-03-26 17:45:52 · 164 阅读 · 0 评论 -
Android Kotlin基础学习 - 对象表达式和对象声明
文章目录背景说明对象表达式对象声明伴生对象对象表达式和对象声明之间的语义差异背景学习 记录分享 坚持开源!说明Kotlin 用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类。对象表达式通过对象表达式,可以让方法的参数使用某个匿名内部类的对象。window.addMouseListener(object : MouseAdapter() { override fun mouseClicked(e: MouseEvent) {原创 2021-03-24 18:35:43 · 276 阅读 · 2 评论 -
Android Kotlin基础学习 - 枚举类
文章目录背景说明枚举初始化使用枚举常量实例背景学习 记录分享 坚持开源!说明枚举类最基本的用法是实现一个类型安全的枚举。枚举常量用逗号分隔,每个枚举常量都是一个对象。enum class Color { RED,WHITE,BLACK,BLUE,PINK}枚举初始化每一个枚举都是枚举类的实例,它们可以被初始化:enum class Color(val rgb: Int) { RED(0xff0000), BLUE(0x0000ff)}枚举支原创 2021-03-23 11:43:25 · 585 阅读 · 0 评论 -
Android Kotlin基础学习 - 泛型
文章目录背景定义泛型函数声明实例泛型约束型变声明处型变星号投射(类型投影)背景学习 记录分享 坚持开源!定义泛型,即 “参数化类型”,将类型参数化,可以用在类,接口,方法上。与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼。声明一个泛型类:class Game<T> (t: T) { var value = t;}创建类的实例,需要指定类型参数: val game: Game<String> = Gam原创 2021-03-22 14:36:08 · 374 阅读 · 0 评论 -
Android Kotlin基础学习 - 数据类与密封类
文章目录背景数据类复制实例数据类以及解构声明标准数据类密封类背景学习 记录分享 坚持开源!数据类Kotlin 可以创建一个只包含数据的类,关键字为 data:// Kotlin 可以创建一个只包含数据的类,关键字为 datadata class DataUser(val name: String, val age: Int) { }编译器会自动的从主构造函数中根据所有声明的属性提取以下函数:equals() / hashCode()toString() 格式如 “Use原创 2021-03-18 11:28:48 · 481 阅读 · 0 评论 -
Android Kotlin基础学习 - 扩展
文章目录背景扩展函数实例扩展函数是静态解析的实例扩展一个空对象扩展属性伴生对象的扩展扩展的作用域扩展声明为成员背景学习 记录分享 坚持开源!Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 Decorator 模式。扩展是一种静态行为,对被扩展的类代码本身不会造成任何影响。扩展函数扩展函数可以在已有类中添加新的方法,不会对原类做修改,扩展函数定义形式:fun receiverType.functionName(params){ body}recei原创 2021-03-17 16:41:33 · 277 阅读 · 0 评论 -
adb 命令拉起 apk 并传递参数及相关注意事项
文章目录背景分析过程解决方案方案 1方案 2背景跑 demo 播测,需要使用 adb 命令拉起播测 demo,并传必要的参数将值带给我。其中有个播放地址的值,传过来时发现值不完整,缺少了一部分。后面发现是存在特殊字符,传参时导致了截断,故不完整。只需要特殊编码或者处理下就好。分析过程获取传参值的代码为:private void testIntentData() { System.out.println("> --- testIntentData ---");原创 2021-03-16 15:35:03 · 5730 阅读 · 0 评论 -
Android Kotlin基础学习 - 接口
文章目录背景接口定义接口实现实例接口中的属性实例函数重写实例背景学习,记录分享,坚持开源!接口定义Kotlin 接口与 Java 8 类似,使用 interface 关键字定义接口,允许方法有默认实现:interface MyInterface { fun call() // 未实现 fun call2A(){ // 已实现 println("> call2A 允许方法有默认实现") }}接口实现一个类可以实现一个或多个接口。/原创 2021-03-16 11:02:21 · 517 阅读 · 0 评论 -
Android Kotlin基础学习 - 继承
文章目录背景构造函数子类有主构造函数子类没有主构造函数重写属性重写背景学习,记录分享,坚持开源!Kotlin 中所有类都继承 Any 类,它是所有类的父类。对于没有父类型声明的类, Any 类就是其默认父类:/** * 隐式继承 Any 类 */class Implicit{}Any 类默认提供了三个函数:/** * Indicates whether some other object is "equal to" this one. Implementations原创 2021-03-15 18:09:43 · 260 阅读 · 0 评论 -
Android Kotlin基础学习 - 类和对象
文章目录背景类定义类的属性属性定义getter 和 setter实例主构造器实例次构造器背景学习,记录分享,坚持开源!类定义Kotlin 类定义可包含:构造函数和初始化代码块、函数、属性、内部类和对象声明。Kotlin 中使用关键字 class 声明类,后面紧跟类名称。如下:class ImxiaoqiXxx{ // 类名为 W3cschool // 大括号内是类体构成}可以在类中定义成员函数。如下:class ImxiaoqiXxx() { fun sing()原创 2021-03-12 18:13:28 · 271 阅读 · 0 评论 -
Android Kotlin基础学习 - 函数
文章目录函数定义可变长参数函数lambda(匿名函数)高阶函数背景学习,分享记录,坚持开源!函数定义函数使用关键字 fun ,参数格式为:[参数: 类型]。示例: /** * 函数定义使用关键字 fun,参数格式为:[参数:类型] */ fun sum(a: Int, b: Int): Int { return a+b; }表达式作为函数体,返回值的类型根据表达式最终结果值类型自动推断。示例: /** * 表达式作为原创 2021-03-10 15:29:29 · 308 阅读 · 0 评论 -
Android Kotlin 基础学习 - 条件语句
文章目录背景内容背景学习 分享记录 坚持开源!内容Kotlin 提供了条件表达式。跟 java 中的写法略有不同,在 Kotlin 中写法如下: number = 88; // 每个条件分支都隐式地返回其最后一行的表达式的结果,因此无需使用 return 关键字 val answer : String = if (number > 88){ "number is more than 88" }else{原创 2021-03-09 15:08:25 · 282 阅读 · 0 评论 -
Android Kotlin 基础学习 - Null 安全 && 可为 Null 性
文章目录背景Null 安全可为 Null 性背景分享记录 坚持开源!Null 安全默认情况下,Kotlin 不能持有 null 值。例如以下代码编译无法通过:var secure : String = null;要使变量持有 null 值,它必须是可为 null 类型。可以在变量类型后面加上 ? 后缀,将变量指定为可为 null,如以下示例所示:var secure : String? = null;指定 String? 类型后,可以为 secure 赋予 String 值或 n原创 2021-03-09 14:33:11 · 478 阅读 · 0 评论 -
Android Kotlin 基础学习 - 类型推断
文章目录背景内容背景学习 kotlin 编程语言的基础知识 …坚持开源!内容Kotlin 编译器会根据变量所赋值的类型来推断出变量的类型声明一个变量如下:var typeInfer = "类型推断";由于值是 String 类型,故变量 typeInfer 也会被编译器推断为 String 类型。请注意,Kotlin 是一种静态类型的语言。这意味着,类型将在编译时解析且从不改变。因为是 String 类型,故无法对其调用任何不属于 String 类的函数,如下图示:因为原创 2021-03-08 15:43:58 · 347 阅读 · 0 评论 -
Android Kotlin 基础学习 - 变量声明
文章目录背景内容背景学习 kotlin 编程语言的基础知识 …坚持开源!内容Kotlin 使用关键字 var 和 val 声明变量。val 用于值从不更改的变量。使用 val 声明的变量无法重新赋值。var 用于值可以更改的变量。var 声明变量示例如下:var number : Int = 10;// var 用于值可以更改的变量val 声明变量示例如下:val language : String = "Kotlin";// val 用于值从不更改的变量图示如下:原创 2021-03-08 11:49:51 · 255 阅读 · 0 评论 -
Android Kotlin 基础学习 - Kotlin了解概览
文章目录背景概览一些优点背景多学点东西,记录下,分享啥的 …坚持开源!概览使用 Kotlin 更快地编写更出色的 Android 应用Kotlin 是一种新型的静态类型编程语言,有超过 60% 的专业 Android 开发者在使用,它有助于提高工作效率、开发者满意度和代码安全性一些优点富有表现力且简洁Kotlin 的现代语言功能让您可以专注于表达自己的想法,少编写样板代码。更安全的代码借助自身类型系统所含的 @Nullable 和 @NonNull,原创 2021-03-08 10:51:52 · 219 阅读 · 0 评论 -
Android 获取系统属性值简单说明
文章目录背景获取方式工具类代码获取对应系统属性的 key设备品牌获取演示背景项目中需要获取机顶盒 stbId 等设备系统属性的值获取方式通过反射使用 android.os.SystemProperties 这个类来读取对应系统的属性值。因为这个类是隐藏的,应用层无法直接使用,所以这里需要通过反射来解决。工具类代码工具类对外提供取值方法,内部取值逻辑通过反射实现,这就是总体的思路。代码如下:package yanhua.tv.yinhe;import java.lang.reflect原创 2021-03-04 11:46:20 · 2042 阅读 · 2 评论 -
插件化相关学习与配置 dx 或 d8 环境变量
文章目录背景什么是插件化dx 和 d8 简述dx 和 d8 环境配置输出 dex 文件命令背景最近在了解插件化相关内容,实践了一下,这里记录下相关内容。实践文章 – 手把手带你实现最简单的插件化框架什么是插件化插件化开发是将整个 app 拆分成多个模块,这些模块包括一个宿主和多个插件,每个模块都是一个 apk,最终打包的时候宿主 apk 和插件 apk 分开打包。用户在使用宿主 apk 的时候可以动态的去下载插件 apk,然后使用该功能而不是去更新整个 app 后才能使用新功能。dx 和原创 2021-02-25 18:12:25 · 1180 阅读 · 0 评论 -
git 删除远程分支与拉取指定 commitid 的代码
文章目录背景删除远程分支拉取指定 commitid 代码背景项目需要删除不用的远程分支项目需要在原来某一次 commitid 的基础上修改一些东西简单记录分享,方便日后查找删除远程分支分支切换到 master 使用:git checkout master删除远程不再使用的分支,使用:git push origin --delete [废弃分支名称]有的还需要再次验证 git 密码,输入密码确认后即可成功删除远程分支拉取指定 commitid 代码从远程分支 cl原创 2021-02-25 13:49:00 · 7579 阅读 · 0 评论 -
Android 开发中渐变背景的简单使用
文章目录背景实现新建 drawable resource 文件gradient.xml 文件渐变背景实现gradient.xml 的使用angle属性说明背景项目中修改 UI,需要用到渐变背景,这个可以代码简单实现,简单做下记录。实现新建 drawable resource 文件选中 res 目录下的 drawable 目录,右键新建一个 Drawable Resource File。如下图示:默认显示如下:修改 Root element 为 shape,并命名为 gradient。如下原创 2021-02-24 10:17:01 · 833 阅读 · 0 评论 -
转载分享:冷启动优化 - BoostMultiDex加载
文章目录背景为什么需要 Dex 加载适用性背景最近负责的一个项目,因反馈存在启动慢且黑屏的情况,然后花了1周时间专门对启动相关的问题做了相关优化。这里冷启动的优化是一个方面,且分析发现冷启动这块耗时长就是因为使用了 Android 原生的 MultiDex 加载方案,原生dex加载导致首次安装启动会耗时 10s 以上的时间,所以这里优化方案是采用了字节跳动开源自研的 dex 加载框架 BoostMultiDex为什么需要 Dex 加载当项目打包的时候,实际是会生成一个 dex 文件的,但是这个原创 2021-02-03 15:02:20 · 405 阅读 · 0 评论 -
在 Android 设备利用 adb 命令实现 tcpdump 抓网络包
文章目录背景步骤连接上 Android 设备将 tcpdump 文件 push 进 Android 设备某个目录中使用 tcpdump 抓包将 capture.pcap 网络包文件 pull 到本机背景这篇文章我其实没打算写的,可能是懒吧!不过有个测试小妹妹测试我目前负责的一个项目,她大多数时候是需要进行网络抓包来分析相关问题的。但是因为她抓的网络包有的时候不准确,故我本人也远程连接过她的电脑抓了几次,使用的是 tcpdump 抓的网络包。最后决定写这篇文章记录一下抓包的过程,有些简单的东西文章里不原创 2020-12-21 14:16:13 · 12849 阅读 · 6 评论