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

Android性能优化

针对Android中的性能优化,主要有以下几个有效的优化方法: 布局优化、绘制优化、内存泄漏优化、响应速度优化、ListView/RecyclerView及Bitmap优化、线程优化、其他 布局优化 核心思想就是:减少布局文件的层级。 删除布局中无用的控件和层次,其次有选择的使用性能比较低的ViewGroup。可以使用RelativeLayout来减少嵌
2018-12-20
#Android

Android性能优化-布局优化

2020-12-12

Android编译优化-实践

2022-08-22

Android性能优化-自动内存分析

2020-12-14

Android编译优化-基础概念

2022-08-22

Android音频技术攻略-AudioTrack相关

导读 本文按“定位与参数 -> 生命周期 -> 写入机制 -> API 观测 -> 故障恢复”组织,适合作为 AudioTrack 实战手册。 如果只看落地,建议优先阅读 1.2、2.3、3.3、5.1~5.4。 一、AudioTrack 定位与创建参数1.1 AudioTrack 是什么(定位)1.1.1 基础定义 AudioTrack 是 Android 侧 PCM
2026-02-16
#音视频

IPC机制

IPC机制 IPC是Inter-Process Communication的缩写。含义为进程间通信或者跨进程通信,指代两个进程间进行数据交换的过程、 还需要理解进程以及线程的区别和联系 进程:一般指一个执行单元,在设备上一般代指应用程序。 线程:CPU调度的最小单元且线程是有限资源。 一个进程可以包含多个线程,即一个应用内部可以执行多个任务。在Android中就会区分为主线程(UI线程)和
2018-12-11
#Android

Flutter学习大纲

Flutter是Google全新推出的跨平台应用开发框架,主打跨平台、高保真、高性能,需要通过Dart语言进行开发App,编写完成后即可实现 一套代码运行多个平台,目前只是支持了Android及iOS平台,后续还会拓展到PC上。 整套学习大纲会按照由表及里,由简到难的过程进行深入的学习Flutter。 搭建开发环境 新建一个Flutter应用 Dart语言相关 基础部件 Widg
2019-04-01
#Flutter学习笔记

Glide源码解析要点

该源码解析是基于最新的Glide 4.8.0进行的 Glide基本流程分析Glide的基本使用代码 1Glide.with(context).load($img$).apply(RequestOptions().transform(MultiTransformation(CenterCrop(),CircleCrop())).placeholder(R.drawable.ic_defaul
2018-03-18
#源码解析

数据结构--HashMap实现原理及解析

HashMap定义HashMap是基于Map接口实现的一种键-值对<key,value>的存储结构。内部允许null值,同时非有序,非同步(线程不安全)。它存储和查找数据时,是根据key的hashcode计算出具体的存储位置。内部最多允许一条记录的key为null。 如果把几个常见Map一起看: HashMap:非线程安全,适合单线程或外部已经做好同步的场景
2018-05-09
#数据结构 #Java源码

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

虚拟机类加载机制1.定义虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。 2.类的生命周期 类从被加载到虚拟机内存中开始,到卸载除内存为止,生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用
2018-04-12
#JVM

JVM相关及其拓展(七) — 线程安全与锁优化

线程安全与锁优化 首先需要并发的正确性,然后在此基础上实现高效。 线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者调用方法进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的。 线程安全的代码必须具备一个特征:代码本身封装了所有必要的正确保障性手段,令调用者无需关心多线程的问题,更无须自己采
2018-12-19
#JVM

JVM相关及其拓展(八) — 静态分派&动态分派

方法调用方法调用不同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法)。 从字节码指令的角度看,Java中常见的方法调用指令有invokestatic、invokespecial、invokevirtual、invokeinterface(以及更偏动态语言支持的invokedynamic)。其中“解析”更偏向于在满足条件时把常量池里的符号引用提前确定下来;“分派”则更偏
2019-02-21
#JVM

JVM相关及其拓展(六) -- Java与线程

Java与线程线程的实现线程是比进程更轻量级的调度执行单位,线程的引入可以把一个进程的资源分配和执行调度分开,各个线程间既可以共享进程资源,又可以独立调度(线程是CPU调度的基本单位)。 实现线程主要有三种方式: 使用内核线程实现 直接由操作系统内核支持的线程。 由内核来完成切换,内核通过操纵调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。 多线程内核:有能力处理多件事情,支持多线
2018-12-18
#JVM

JVM相关及其拓展(一)-- JVM内存区域

1. JVM内存区域 JVM在执行Java程序的过程中会把管理的内存分为若干个数据区域。 程序计数器(Program Counter Register):一块较小的内存空间,可看作为当前线程所执行的字节码的行号指示器。每条线程都需要一个独立的程序计数器,所以为线程私有区域。没有规定任何OutOfMemoryError情况的区域。线程执行Java方法,则记录正在执行的虚拟机字节码指令地址,若为Na
2018-04-10
#JVM
1…34567…11

搜索

Hexo Fluid