XYH Blog

一板一眼就会滋生弱点

Retrofit请求流程分析

本文记录Retrofit请求流程

本文记录Retrofit一个请求的生成流程。 前言 早就想去深入分析的一个网络库,最近终于能静下心去分析它的请求流程,本文 Retrofit 版本为v2.4.0。 本文追踪一个接口里的方法怎么变成Call<T>,这个清晰之后便可知Retrofit 基本工作流程。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...

leetcode宝石与石头

leetcode经典入门算法

leetcode算法之宝石与石头。 宝石与石头 该题为leetcode入门算法之一。 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。 J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此”a”和”A”是不同类型的石头。 如: 1 2 输入: J = "...

Android操作Excel

本文记录Android中Excel的读写。

记录Android导入/导出Excel。 前言 最近工作有需求要读取跟写入Excel文件,最终采用了Apach开源的POI库来处理。 读Excel 以sd卡上的一个POT-Test.xlsx文件为例,权限问题自行处理。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29...

Dart之泛型

Dart泛型简记

本文记录Dart泛型。 为何使用泛型 在 Dart 中类型是可选的,有些情况下可能想使用类型来表明你的意图,不管是使用泛型还是具体类型。 这点跟其他强类型语言非常类似,Dart泛型跟Java的泛型基本一致。 1 2 var list = new List<String>(); list.addAll(["a","b","c"]); 另外一个使用泛型的原因...

Dart第五章

Dart之class

Dart第五章-Class。 Class Dart是一个面向对象语言,同时支持基于 mixin 的继承机制。每个对象都是一个实例,所有的类都继承自 Object。 基于 Mixin 的继承意味着每个类(Object 除外) 都只有一个父类,一个类的代码可以在其他 多个类继承中重复使用。 使用 new 关键字和构造函数来创建新的对象。 1 2 3 4 5 var p = new Poi...

使用AccessibilityService实现微信自动发送消息

记录AccessibilityService的简易使用

使用AccessibilityService实现微信自动发送消息。 使用AccessibilityService实现微信自动发送消息 最近公司需要一个小工具,能够通过导入Excel,读取 Excel 内容精准微信一对一发送消息,本来想过通过微信Web版模拟点击,但是这样限制有点多了,于是想到了 Android 上的 AccessibilityService 来实现模拟点击功能。 ...

使用CMake进行NDK开发

CMake简单入门

使用CMake进行NDK开发简记。 前言 最近在开发项目的时候,部分网络请求的加密规则由于一直写在Java代码中,很容易被反编译找到关键加密规则导致被爬取数据,所以在评估了加密方案之后决定把加密规则由C++实现,通过NDK编译之后提供给Java层使用。 NDK编译的方式有: 基于Make的ndk-build CMake 独立工具链用于与其他编译系统集成,或与基于...

Promise使用小记

ES6 Promise使用小记

记录ES6中Promise的使用。 ES6的Promise对象使用小记。 在使用axios中,经常看到 Promise 对象,本文做个小记录。 Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及该异步操作的结果值,本质上,Promise 是一个绑定了回调的对象,而不是将回调传进函数内部。 语法 1 new Promise( function(resolv...

Nginx反向代理处理跨域

Nginx proxy_pass

记录使用Nginx反向代理解决前端跨域问题。 Nginx反向代理解决前端跨域问题 No ‘Access-Control-Allow-Origin’ header is present on the requested resource. 前言:最近在抓包快手用户结构及视频的时候,使用Fiddler抓完包,反编译破解sig算法之后,使用H5做了一个分析工具,在请求的过程中...

Dart学习第四章

记录Dart第四章-流程控制。

记录Dart第四章-流程控制。 流程控制 本文记录Dart流程控制及异常处理。 if and else for loops while and do while loops break and continue switch and case assert if and else 与大部分通用语言一致 1 2 3 4 5 6 7 8 9...