Android进阶
文章平均质量分 96
Android进阶相关知识
xyTianZhao
当你的能力驾驭不了你的野心时,那么你该学习了、、、
展开
-
Android 输入系统详解
Android 输入系统的工作原理概括来说,内核将原始事件写入到设备节点中,InputReader 不断地通过 EventHub 将原始事件取出来并翻译加工成 Android 输入事件,然后交给 InputDispatcher。InputDispatcher 根据 WMS 提供的窗口信息将事件交给合适的窗口。窗口的 ViewRootImpl 对象再沿着控件树将事件派发给感兴趣的控件。控件对其收到的事件作出响应,更新自己的画面、执行特定的动作。原创 2023-05-06 18:15:35 · 798 阅读 · 0 评论 -
Android 图形系统详解
一个页面(Activity)显示到屏幕上流程分析:启动 Activity → 创建 Window → WMS 注册 Window → SurfaceFlinger 创建 Surface → 合成 layer → 显示主要涉及三个进程:App进程、System_server进程、SurfaceFlinger进程原创 2023-02-08 21:04:46 · 4413 阅读 · 0 评论 -
OkHttp简析及实现
OkHttp简析及实现还记得 2015 年刚开始学习 Android 那会,还在为 Eclipse 项目中集成 Afinal.jar 、 Volley.jar 爆红而发愁,一晃而过到现在的 2020 年,见证了 AndroidStudio 的兴起。就这短短的5年时间,很多工具和技术都进行了更新换代或者在升级今天我们就看看经过官方承认并使用的网络请求框架 OkHttp。OkHttp简析使用接入 OkHttp先来康康怎么接入,直接 gradle 中一行代码就搞定了。确实比之前还要下载相关 jar 包原创 2020-08-19 16:03:28 · 508 阅读 · 0 评论 -
EventBus之高效使用
EventBus之高效使用说起 EventBus,作为一名 Android 开发者,应该不会太陌生,但是我们大部分都会根据官方文档直接进行使用,其实还有一种比较高效的使用方式。就是不使用注解的方式,在编译时期,对相关注册方法进行注册。这其实就相当于用空间换时间的一种常规操作了。这里附上 官方源码 和 官方文档 的地址。先来贴一张官方文档中的图解,让大家对 EventBus 的工作机制现有一个宏观上的回忆。常规使用先来看看常规的使用方式。1、接入EventBus implementation原创 2020-07-01 20:49:07 · 436 阅读 · 0 评论 -
SVG 详解——自定义可点击的中国地图
SVG 详解——自定义可点击的中国地图SVG定义SVG 是一种图像文件格式,类似于 JPG、PNG。只不过 JPG 和 PNG 这种文件需要图像引擎加载,而 SVG 则是由画布来加载的。它的英文全称为 Scalable Vector Graphics,意思就是可缩放的矢量图形。可让你设计无损失、高分辨率的 Web 页面图像。猿猿们就可以用代码来描绘图像,不管怎么缩放都始终保持高清显示,不会...原创 2020-04-14 17:15:38 · 3543 阅读 · 0 评论 -
Android 事件分发机制分析及源码详解
Android 事件分发机制分析及源码详解文章目录Android 事件分发机制分析及源码详解事件的定义事件分发序列模型分发序列分发模型事件分发对象及相关方法源码分析事件分发总结一般在实际开发中,我们很少主动去处理相关滑动处理,所以就很少关注事件分发相关机制。因为系统已经帮我们处理好了,如:ScrollView、ViewPage、ListView 等。这里我们就以事件分发为入口,来分析一下...原创 2020-03-09 21:39:39 · 360 阅读 · 0 评论 -
Apk 全面瘦身详解
Apk 全面瘦身详解做 Android 开发的都有经历过,项目的体积大小随着开发时间增长,包体积也会随之增长。想想一个经历过5-6年的项目,如果不做包体积方面的控制和优化,最起码现在得有百兆了,还是一个简单的应用。随着 apk 的体积增大,相应的弊端也就暴露出来了,这也就是我们为什么要进行 apk 瘦身的原因安装包过大,导致很多用户不愿更新和下载安装包过大,导致新用户不愿下载安装包过...原创 2020-03-04 15:44:43 · 468 阅读 · 0 评论 -
View 自定义属性之 LayoutInflater
View 自定义属性之 LayoutInflater平常开发中,我们避免不了会自定义 view,自定义 view 的时候可以通过 AttributeSet 来获取自定义的相关属性。而怎么样不通过自定义 view,就能实现自定义相关属性呢,那就要使用自定义的 LayoutInflater 了。原生 LayoutInflater 使用我们先看看原生的 LayoutInflater 是怎么使用的。...原创 2020-02-28 18:13:35 · 505 阅读 · 0 评论 -
Android水波纹效果
Android水波纹效果最近学习了 Paint 和 Canvas 的相关知识,自定义 View 实现了一个水波纹效果注释在代码里面已经补全了。直接看代码即可package com.wuba.demo;import android.animation.Animator;import android.animation.AnimatorListenerAdapter;import an...原创 2019-08-15 12:58:54 · 417 阅读 · 0 评论 -
Canvas 详解
Canvas 详解这节我们来看一下 Canvas 的相关知识,官方文档有详细的功能说明,这里我们简要了解一下几个常用的功能绘制文本、几何图形、位图接口功能drawText绘制文本drawLine绘制连线drawPath根据给定的Path,绘制连线drawPoint绘制点drawBitmap绘制位图位置形状变换接口功能...原创 2019-08-13 21:28:04 · 309 阅读 · 0 评论 -
Paint 的ColorFilter(颜色过滤器)和 XFermode(图层混合模式)
Paint 的ColorFilter(颜色过滤器)和 XFermode(图层混合模式)ColorFilter-颜色过滤器顾名思义就是 Paint 画笔的颜色过滤功能。通过 setColorFilter(ColorFilter filter) 方法进行设置,该方法传入了一个 ColorFilter 对象,我们来看下这个是个嘛东东。/** * A color filter can be use...原创 2019-08-13 11:06:41 · 710 阅读 · 0 评论 -
Paint 详解
Paint 详解Android 中的 Paint 我们可以理解为画画中的画笔,画笔往往有多种颜色和粗细。Paint 只有一个,但是他可以设置相关属性,来实现各种画笔的特性。我们作画时是用画笔在画板上作画,这里的 Paint 就是我们的画笔,画板就是 Android 中的 Cavans 了,这节我们直谈 Paint,Cavans 就不过多介绍。常用 API我们列举出了 Paint 常见的一些 ...原创 2019-08-07 20:08:33 · 828 阅读 · 0 评论 -
Android 音频录制(三)-OpenSL ES
Android 音频录制-OpenSL ES相关推荐音频基础知识Android 音频录制-MeidaRecordAndroid 音频录制-AudioRecordAndroid 音频录制-OpenSL ES原创 2019-09-29 11:14:18 · 400 阅读 · 0 评论 -
音频基础知识
音频基础知识小时候看电视、听广播就在想,这里面的人在哪藏着呢,那么小的空间,咋藏的呢,他也不出来,就在里面瞎BB。直到后来我入了计算机的坑,才发现万事万物皆01。经过后来了解,发现一个声音源要变成 01 数据需要经过以下几个过程。自然声波->模拟信号->数字信号自然声波->模拟信号当我们说话时,麦克风会将自然声波处理转换成为声音的模拟信号。麦克风一般分为以下两种...原创 2019-09-26 11:18:31 · 514 阅读 · 0 评论 -
Android 音频录制(一)-MediaRecord
Android 音频录制(一)-MediaRecordAndroid 系统为我们提供了三种录制音频的方式MediaRecord( Java API)AudioRecord( Java API)OpenSL ES( Native API)这次我们先从最简单的 MediaRecord 说起系统提供的这个是最简单的录制 API。不用关心编码、不用操作字节码,所有的数据处理内部都已经实现,...原创 2019-09-25 20:49:36 · 528 阅读 · 0 评论 -
Android WebView 与 Native 交互
Android WebView 与 Native 交互在 Android 开发过程中,难免会用到 WebView 展示一些 H5 页面,这样就免不了需要和 Native 进行一些信息的交互。比如获取当前登陆状态、保存一些值、调起相应页面或者功能等。这里将 H5 与 Android 交互这块封装成了一个模块,有兴趣可以看下 WNBridge,访问不了的可以下载资源先来看一下效果图Andro...原创 2019-08-29 20:25:42 · 441 阅读 · 0 评论 -
Android 屏幕适配
Android 屏幕适配常见方案限定符适配尺寸限定符限定符描述layout-small小屏幕layout-normal基准屏幕layout-large大屏幕layout-xlarge超大屏幕屏幕方向限定符限定符描述layout-land横向layout-port纵向分辨率限定符限定符描述...原创 2019-08-29 10:17:35 · 321 阅读 · 0 评论 -
源码分析软键盘弹出失效问题
源码分析软键盘弹出失效问题平常开发中,经常碰到 EditText 输入内容时需要调起软件盘。但是有时发现调用了之后没有生效,软键盘并没有弹出来。通常做法如下,延迟执行,虽然大概率提升了软键盘弹出的几率,但是偶尔还是会失效,没有从根本上解决问题的痛点。editTextView.postDelayed(new Runnable() { @Override ...原创 2019-08-26 21:47:56 · 688 阅读 · 0 评论 -
Android 音频录制(二)-AudioRecord
Android 音频录制(二)-AudioRecordAndroid 系统为我们提供了三种录制音频的方式MediaRecord( Java API)AudioRecord( Java API)OpenSL ES( Native API)这次我们来说复杂一点的 AudioRecord。官方API 介绍我们在上节说的 使用MeidaRecord录制,系统已经为我们将数据处理完成,我们只...原创 2019-09-26 14:19:09 · 812 阅读 · 0 评论