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

OpenGL-环境配置

在Mac环境下进行OpenGL的学习配置

2022-01-25
OpenGl

Flutter-Dart语言简介

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

2021-02-10
Flutter

Ubuntu18.04 双系统安装笔记

主要用来记录在Win10 系统上安装Ubuntu18的过程 下载镜像制作系统启动U盘分区设置遇到的问题及解决方案 Ubuntu系统删除

2021-01-16
Ubuntu

Android-SurfaceFlinger解析

基于Android 6.0源码进行分析 SurfaceFlinger是Android系统中最重要的图像消费者,Activity绘制的界面图像,都会传递到SurfaceFlinger中。 主要作用:接收图像缓冲区数据,然后交给HWComposer或OpenGL合成,合成完毕后再返回。 SurfaceFlinger初始化init通过执行surfaceflinger.rc文件,然后就执行到了ma

2020-12-21
Android

Hprof文件解析

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

2020-12-14
Java

Android-事件分发机制

当用户触摸屏幕或者按键操作。 首先触发硬件驱动,驱动收到事件后,将相应事件写入到输入设备节点 输入系统取出内核事件,封装成为KeyEvent或MotionEvent 交付给对应的Window消费该事件。 硬件中断 物理设备将数据发送给内核是通过设备驱动传输的,在dev/input/目录下有几个设备文件eventX。 其中event0对应的就是触摸屏,当触摸屏的驱动被挂载后,驱动程序就会

2020-11-20
Android

Android-性能监控

线下分析AS ProfilerSystrace adbLeakCanary/MAT线上统计MatrixDoreamonKit

2020-11-20
性能优化

Android-SharedPreferences简析

SharedPreferences是系统提供的一种简易数据持久化的手段,适合单进程、小批量的数据存储与访问。以键值对的形式存储在xml文件中。文件存储路径为data/data/package_name/shared_prefs/目录。 源码解析 获取SharedPerferences对象 获取方法从getSharedPreferences(name,mode)开始,此时就需要去加载对应name

2020-11-18
Android

Android系统启动过程

2020-11-12
Android

Android9.0源码编译记录

下述操作系统均为 Manjaro 20.02。编译源码版本为Android 9.0. 内核版本为goldfish-4.14 Android源码编译下载源码编译配置123456789#在ArchLinux下需要主动配置export LC_ALL=C#在 /usr/lib/locale 目录下生成C.UTF-8文件夹locale_gen#在Ubuntu下 不需要执行改操作 编译环境ArchLinu

2020-11-11
源码

Android布局优化-AsyncLayoutInflater简析

布局加载过程中存在两个耗时点: 布局文件读取慢,涉及IO操作 根据<tag>创建View慢(createViewFromTag()),使用反射的方式创建View。布局嵌套层数越多,控件个数越多,反射的次数就会越多。 当XML文件过大、嵌套过深时,就会导致页面发生卡顿甚至ANR。 解决方案有两种: 直接解决:不使用IO操作以及反射 侧面缓解:把耗时操作放到子线程,等待加载完毕返回

2020-11-02
Android

Android硬件加速

软硬件绘制的分歧点绘制过程入口位于ViewRootImpl.performDraw()中 123456789101112131415//viewRootImpl.java private void performDraw() { ... try { //调用draw()执行实际的绘制工作 boolean

2020-10-27
Android

Android性能优化-LeakCanary

LeakCanary主要用来进行内存泄漏检测,并且可以直观的展示泄漏的路径 如何使用1234dependencies { // debugImplementation because LeakCanary should only run in debug builds. debugImplementation 'com.squareup.leakcanary:leakcanary-

2020-10-14
Android

Android动画-属性动画

对作用对象进行了扩展,可以对任何对象做动画,甚至可以没有对象。 1.与View动画进行比较 View动画的作用对象只能是View,属性动画可以作用于所有Java对象 View动画并没有改变View的属性,只是改变了View的视觉效果,并不具有交互性(例如:无法响应动画后的点击事件。);属性动画是真正的对View的属性进行了修改,可以方便后续的交互操作。 View动画的效果比较单一,只能实现一

2020-10-12
Android

Android性能优化-启动优化

App启动分为三种:冷启动、热启动、温启动 启动优化主要在冷启动时进行。 冷启动——Cold Start 开机后第一次启动应用 或者 应用被杀死后再次启动。 冷启动耗时检测 adb命令 1234adb [-d|-e|-s <serialNumber>] shell am start -S -W com.example.app/.MainActivity -c andr

2020-10-08
Android
1…678910…12

搜索

Hexo Fluid