Wxy's Blog
  • 首页
  • 归档
  • 标签
  • 关于
  • 友链
不因虚度年华而悔恨,不因碌碌无为而羞愧

Golang学习笔记-基本概念

安装Golang环境通过brew install go
2019-03-28
#hide

Gradle学习笔记-Project

Project对应着项目中的build.gradle文件,每个gradle文件被解析后都会生成一个Project对象。所有build.gradle中定义的属性及方法都可以通过Project进行调用。 常用属性参考资料Project官方文档
2019-06-14
#Gradle

HTTP的原理和工作机制

HTTP的原理和工作机制 什么是HTTP? HyperText(可以指向其他文本的链接文本) Transfer Protocol——超文本传输协议。位于TCP/IP协议的最顶层——应用层。 从日常角度来说,在App中调用网络请求,直接就会使用到HTTP。发送数据(Request)到服务端,等待服务端数据处理完毕再返回(Response)到App,App在进行后续处理,例如页面展示等。 HTTP工
2020-03-29
#HTTP

Hook技术简析

说到Hook技术需要先提到逆向工程,主要目的是在不能轻易获得必要生产信息的情况下,直接从成品分析,推导出产品的设计原理。 逆向分析又分为 静态分析:不执行程序的情况下对程序行为进行分析的技术 动态分析:在程序运行时对程序进行调试的技术。Hook属于动态分析。 代理模式设计模式--静态代理模式和动态代理模式原理及实现 Hook技术概述 对象A直接调用B,对象B结果直接回调给A。 Hook
2019-02-06
#Java

JNI基础知识

JNI基础概念JNI本意为Java Native Interface,为了方便Java调用C、C++等本地代码所封装的一层接口。当出现一些无法用Java处理的任务时,就可以借用JNI技术去完成。一般来说有以下几种情况需要用到JNI技术: 需要调用Java语言不支持的依赖于操作系统平台特性的一些功能。例如:调用当前Android系统的底层功能,而Java无法实现,就需要用到JNI 为了提升应用
2019-03-02
#Android

Flutter-Dart语言简介

Dart语言设计借鉴了Java和JavaScript,同时存在了两者的特性。 Dart变量声明1var name = 'wxy'; 表示名字是name的变量包含一个指向值为 bob 的字符串对象引用。 当前name的类型被推断为String,当然也可以通过直接指定变量类型,例如String name ='wxy'; 内置类型 主要支持数字、字符串、布尔、数
2021-02-10
#Flutter

Gradle操作小记

显示所有依赖关系解析树 1./gradlew app:dependencies 生成项目 1./gradlew clean assembleEnvTestReleaseChannels -PchannelList=default 清理项目 1./gradlew clean api与implementation的区别api:完全等同于原先的compile指令,使用了该命令编译的依赖
2018-04-03
#Gradle

数据结构--CopyOnWriteArrayList实现原理及简析

CopyOnWriteArrayList定义 ArrayList本身不是线程安全的,在读线程读取ArrayList的数据时,此时在去写入数据,就会触发fast-fail机制,抛出ConcurrentModificationException异常。也可以使用Vector去代替ArrayList使用,或者使用Collections.synchronizeList()包裹ArrayList。但他们都
2019-01-18
#数据结构

Handler机制源码解析(二)

主要包括Handler其他使用知识点 1. 子线程创建Handler对象 不可以直接在子线程创建Handler对象,因为Handler对象必须要绑定一个Looper,才可以使用。 若在子线程需要使用Handler,则需要先创建一个Looper对象即执行Looper.prepare()然后再创建Handler对象时调用Looper.myLooper()获取Looper对象传入方法,最后调用Loop
2018-10-07
#源码解析

Handler机制源码解析

主要的内容包括Handler的机制以及四个组成部分和源码的分析 下面的代码分析都是基于Android8.0 - Oreo的源代码
2018-05-14
#Android #源码解析

Hprof文件解析

Hprof对应的就是内存快照。可以方便的凭借Hprof进行OOM分析以及异常治理。 OOM治理 内存快照保存的对象信息和依赖关系也是静态分析内存泄漏的关键。 Crash治理 保存的数据,也可用于分析异常问题。 Hprof文件格式Hprof文件格式有明确组织方式,Android在Java的基础上新增了部分Tag。 Java Hprof格式![Java Hprof格式](/im
2020-12-14
#Java

JVM相关及其拓展(三) -- 虚拟机类加载器

虚拟机类加载器定义:在类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类,实现这个动作的代码块称为“类加载器”。 例如:编写的是.java文件,代码运行后变成.class文件,类加载器就是加载.class文件。 不同的类加载器加载同一个类时,得到的两个类也是不相等的。 更完整地说,JVM里一个类的“身份
2018-04-16
#JVM

Java-AbstractQueuedSynchronizer简介

AQS简介AQS全称为AbstractQueuedSynchronizer,意为抽象队列同步器。 Abstract:抽象类,只实现主要逻辑,其他交由子类实现 Queued:FIFO队列存储数据 Synchronizer:同步 在Lock中,是非常重要的核心组件。AQS是用来构建锁和同步器的框架,使用AQS可以简单且高效构建同步器。我们常见的ReentrantLock、CountdownLat
2020-09-13
#Java

Java-BlockingQueue阻塞队列

![BlockingQueue阻塞队列](/images/BlockingQueue 阻塞队列xmind.png) Queue接口Queue队列的特征是FIFO——先进先出。只有队尾可以进行插入操作,只有队头可以进行删除操作。 Java中的Queue继承了Collection接口,并额外实现了以下方法 12345678public interface Queue<E&g
2018-12-24
#Java

Java-ReentrantLock原理及解析

一般的锁都是配合synchronized使用的,实际上在java.util.concurrent.locks还提供了其他几个锁的实现,拥有更加强大的功能和更好的性能。 锁的分类可重入锁 可重入锁:任意线程在获取该锁后能够再次获取锁时不会被阻塞。 当前线程恶可以反复加锁,但必须释放同样多次数的锁,否则会导致锁不会释放。可以避免死锁 原理通过组合自定义同步器(AQS)实现锁的获取与释放 再次进行l
2018-12-19
#Java
1…56789…11

搜索

Hexo Fluid