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

Kotlin-Tips

主要用来记录Kotlin的一些关键概念 Kotlin lazy关键字 lazy用在懒初始化的场景下,在参数不使用时无需进行初始化过程。 123456class Bird(var weight:Double = 0.00,var age:Int = 1,var color:String = "blue"){ val sex : String by lazy{ //内部

2020-10-06
Kotlin

WebRTC-Mediasoup编译记录

下载相关文件 libmediasoupclient webrtc 参考文档compile_webrtc mediasoup doc 编译webrtc1234567891011121314151617181920//编译工具下载git clone https://chromium.googlesource.com/chromium/tools/depot_tools.gitexport PATh=

2020-09-24
WebRTC

Mac软件清单

电池管理软件bclm-Github AIDente 开发工具Android Studio 3.6.3 https://dl.google.com/dl/android/studio/install/3.6.3.0/android-studio-ide-192.6392135-mac.dmg 010-Editor 用于查看字节码软件,支持各种类型文件解析,dex,resource.arsc

2020-09-17
Mac

Android-流量统计

流量统计Android目前提供了两种流量计算方案 TrafficStats NetworkStatsManager 这两种方案有着各自的优缺点与限制,下面简单的记录一下 TrafficStats Android API8后提供的该类,可以获取设备重启以来的流量信息。 12345678public class TrafficStats { public static long g

2020-09-15
Android

Java-AbstractQueuedSynchronizer简介

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

2020-09-13
Java

Kotlin协程原理

在介绍了大部分概念,现在需要针对这些概念进行详细的说明以及分析。 协程是轻量级的线程 协程概念 非抢占式或协作式的计算机并发调度的实现,程序可以主动挂起或者恢复执行, 避免在异步程序中使用大量的回调,使用阻塞的方式写出非阻塞的代码。 一种全新处理并发的方式,可以在Android平台上简化异步执行的代码。 协程主要用来解决两个问题: 处理耗时任务 保证主线程安全 在后面的原理介绍中,会介绍与

2020-09-04
Kotlin

WebRTC音频处理模块相关

WebRTC源码基于提交版本4c2f9c9 WebRTC音频处理模块,负责在传输音频时对音频进行一定的处理,例如降噪、增益、回声消除,整体模块代码位于modules/audio_processing。 按照以下模块分别介绍,各模块的功能以及相关配置和源码解析 默认音频处理配置如下: 1234567891011121314AudioOptions options; options.echo_ca

2020-08-14
WebRTC

LeetCode Hot 100

LeetCode 1:两数之和 12345678910111213141516171819class Solution { public int[] twoSum(int[] nums, int target) { int[] result = new int[2]; Map<Integer,Integer> map = new H

2020-08-03
算法

OkHttp-HTTPDNS实践

2020-02-19
设计方案

Java-线程池

基础概念 线程:进程中负责执行的执行单元,一个进程中至少有一个线程,操作系统能够进行调度的最小单位 进程:一个执行中的程序的实例 多线程:解决多任务同时执行的需求,合理使用CPU资源。多线程的运行时根据CPU切换完成,如何切换由CPU确定,因此多线程具有不确定性 线程池: 基本思想是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理,当有线程任务

2019-09-13
Java

Jetpack-Lifecycle简析

Lifecycle简介Google官方提供的一个生命周期感知组件。可以由引用组件自己进行生命周期管理,从而减少内存泄露以及异常的可能性。 让我们自己创建的对象也可以感知到Android组件的生命周期。 核心设计模式观察者模式。 Lifecycle使用示例先构建需要监听生命周期的组件 1234567891011public class LifeCycleComponent implements L

2019-02-15
源码解析

Jetpack-ViewModel简析

源码分析基于androidx版本 ViewModel简介 ViewModel是用来存储和管理Lifecycle创建数据的组件,在配置发生改变或者屏幕旋转时数据仍然不会丢失。ViewModel可以负责组件间的通信,可以高效解决Activity与Fragment的通信问题。 主要的功能还是在非手动关闭以及系统回收条件下进行 Activity/Fragment的数据保存。 具有以下优势: 与UI层

2019-02-15
源码解析

Jetpack-LiveData简析

LiveData简介本质上是一个观察者模式,在Activity/Fragment中实现观察者,LiveData是被观察者,在LiveData存储的数据变更时触发事件。 LiveData还具有生命周期感知能力,可以控制在应用可见时去更新UI,不可见时不执行操作,减少了内存泄露问题。 LiveData示例一般情况下LiveData要配合着ViewModel一起使用,ViewModel负责触发数据更新,

2019-02-15
源码解析

Android - Drawable相关

Drawable简介 Drawable是一种 可以在Canvas上进行绘制的对象,即可绘制物。与View不同,Drawable没有事件和交互的方法。 在实际开发中,Drawable通常被用作View的背景,一般通过XML进行定义,也支持通过代码去实现(例如动画样式的Drawable)。 Drawable是一个抽象类,是所有Drawable的基类。例如常用的ShapeDrawable、Bitmap

2019-01-10
Android

View的事件体系

在Android中任何一个与用户交互或者展示内容的控件都是由View拓展实现的。 View的基础知识View是Android中所有控件的基类,也包括ViewGroup。ViewGroup可以理解为View的组合,内部可以包含很多View以及ViewGroup,通过这种关系就形成了一个View树。 上层的控件主要负责测量与绘制下层的控件,并传递交互事件。 1. View的位置参数1.An

2018-12-25
Android
1…789101112

搜索

Hexo Fluid