自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杨充

万事起于忽微,量变引起质变!

  • 博客(215)
  • 收藏
  • 关注

原创 1.1String深入理解原理

String设计思想前因后果

2024-04-03 12:54:28 333

原创 TTS通用播放库技术设计

硬件设备需要通过tts语音向用户传递信息使用 TTS 技术为用户提供语音反馈。以便用户可以听到内容或响应!该库地址:https://github.com/yangchong211/YCToolLibTTS现状和发展语音合成又称文语转换(Text to Speech,TTS)技术,是语音处理领域的一个重要的研究方向,旨在让机器生成自然动听的人类语音。系统TTS(Text-to-Speech)介绍TTS 引擎(TTS Engine):TTS 引擎是实际执行文本到语音转换的组件。

2024-03-25 19:22:24 1067

原创 ProtoBuf-gRPC实践

01.gRPC学习背景1.1 为什么要学RPC1.2 RPC是什么1.3 网络库收益分析1.4 学习计划说明1.5 学习问题思考02.ProtoBuf的介绍2.1 ProtoBuf是什么2.2 ProtoBuf和json2.3 ProtoBuf问题思考2.4 ProtoBuf特点2.5 ProtoBuf存储格式2.6 ProtoBuf优缺点2.7 创建proto文件2.8 ProtoBuf核心思想2.9 转化为Json数据。

2024-03-19 20:37:49 922

原创 M1卡和CPU卡学习

01.整体概述介绍1.1 项目背景说明1.2 IC智能卡说明1.3 基础概念介绍02.CPU卡基础学习2.1 CPU操作流程2.2 读卡器与卡交互指令2.3 APDU指令格式2.4 APDU指令组成2.5 发送指令详细剖析2.6 响应指令详细解析03.M1卡基础学习3.1 什么是M1卡3.2 M1卡数据结构3.3 M1扇区密码结构3.4 M1扇区数据块结构3.5 M1卡片操作步骤3.6 M1卡运作机理3.7 M1卡开发思路。

2024-01-17 11:57:12 1038

原创 FPS监测设计实践

fps监测设计实践

2023-12-08 09:27:29 913

原创 01.崩溃捕获设计实践

Android的稳定性是Android性能的一个重要指标,它也是App质量构建体系中最基本和最关键的一环。如果应用经常崩溃率,或者关键功能不可用,那显然会对我们的留存产生重大影响。崩溃现场是“第一案发现场”,它保留着很多有价值的线索。接下来具体来看看在崩溃现场,确认重点,内存&线程需特别注意,很多崩溃都是由于它们使用不当造成的。如何去分析日志确认严重程度如果一时半会解决不了,那么能否先止损,采用降级策略。延期修复,如果是非要解决,那么解决完后即通过灰度测试发版,及时跟进问题。

2023-08-29 09:39:13 273

原创 Android JNI 学习实践

01.学习JNI开发流程1.1 JNI开发概念1.2 JNI和NDK的关系1.3 JNI实践步骤1.4 NDK使用场景1.5 学习路线说明02.NDK架构分层2.1 NDK分层构建层2.2 NDK分层Java层2.3 Native层03.JNI基础语法3.1 JNI三种引用3.2 JNI异常处理3.3 C和C++互相调用3.4 JNI核心原理3.5 注册Native函数3.6 JNI签名是什么04.一些必备操作4.1 so库生成打包。

2023-06-28 09:18:15 606

原创 View绘制流程分析

想要弄清楚View是怎么绘制的得先弄明白View是怎么创建出来的。我们先来看下View的创建流程。总结如下所示:Activity执行onResume之后再ActivityThread中执行Activity的makeVisible方法。View的绘制流程包含了测量大小,测量位置,绘制三个流程;Activity的界面绘制是从mDoctor即根View开始的,也就是从mDoctor的测量大小,测量位置,绘制三个流程;

2023-03-23 16:47:41 614 1

原创 Binder机制深入理解

每一个应用程序都是由一些Activity和Service组成的,这些Activity和Service有可能运行在同一个进程中,也有可能运行在不同的进程中。作为一名Android开发,我们每天都在和Binder打交道,虽然可能有的时候不会注意到,譬如:startActivity的时候,会获取AMS服务,调用AMS服务的startActivity方法startActivity传递的对象为什么需要序列化bindService为什么回调的是一个IBinder对象多进程应用,各个进程之间如何通信。

2023-03-22 17:54:49 957

原创 WMS机制学习分析

01.快速了解WMS机制1.1 WMS是什么1.2 应用于那些场景1.3 WMS主要功能1.4 Window是什么1.5 WMS整体框架02.WMS核心流程2.1 WMS启动流程03.WMS流程分析3.1 Window添加View3.2 WMS核心职责3.3 WMS是如何启动3.4 WMS构造方法3.5 WMS窗口管理05.一些源码分析5.1 addView源码分析5.2 remove源码与解析。

2023-03-21 10:59:42 514

原创 通用缓存存储设计实践

01.整体概述说明1.1 项目背景介绍1.2 遇到问题记录1.3 基础概念介绍1.4 设计目标1.5 产生收益分析02.市面存储方案2.1 缓存存储有哪些2.2 缓存策略有哪些2.3 常见存储方案2.4 市面存储方案说明2.5 存储方案的不足03.存储方案原理3.1 Sp存储原理分析3.2 MMKV存储原理分析3.3 LruCache考量分析3.4 DiskLru原理分析3.5 DataStore分析3.6 HashMap存储分析。

2023-03-07 17:11:12 648

原创 数据结构-Hash常见操作实践

数据结构-Hash常见操作实践

2023-02-02 19:26:34 738

原创 感冒咳嗽土法子

01.常见的感冒药02.止咳的土方法03.感冒的土方法。

2022-12-20 19:37:01 873

原创 移动端防抓包实践

移动端防抓包

2022-12-10 09:31:35 927

原创 05.观察者设计模式

观察者设计模式

2022-11-23 18:56:32 745

原创 悬浮窗开发设计实践

悬浮窗

2022-11-18 15:29:08 1776

原创 高性能图片优化方案

高性能图片优化方案

2022-10-16 11:55:22 1891

原创 隐私合规综合实践

隐私合规综合实践

2022-10-12 09:05:28 1526

原创 App磁盘沙盒工具实践

沙盒,磁盘工具,Android工具

2022-03-03 14:46:03 2691

原创 01.视频播放器内核切换封装

视频播放器

2021-12-16 22:14:17 884

原创 Element树原理

目录介绍01.Element是什么东西02.Element源码的分析03.Element创建过程分析04.mount方法调用分析05.理解BuildContext01.Element是什么东西Widget和Element的关系知道最终的UI树其实是由一个个独立的Element节点构成。也说过组件最终的Layout、渲染都是通过RenderObject来完成的。从创建到渲染的大体流程是:根据Widget生成Element,然后创建相应的RenderObject并关联到Element.

2021-12-15 19:35:52 2241

原创 Widget原理分析

目录介绍01.Widget基础概念1.1 Widget概念1.2 Widget骨架1.3 Widget源码1.4 Widget不可变02.StatelessWidget源码03.StatefulWidget源码04.InheritedWidget源码05.Context是什么作用01.Widget基础概念1.1 Widget概念在Flutter中几乎所有的对象都是一个Widget。与原生开发中“控件”不同的是,Flutter中的Widget的概念更广泛,它不仅可以表示

2021-12-15 19:29:33 2373 1

原创 Flutter三棵树理解

目录介绍01.Flutter三棵树背景02.Flutter中的三棵树03.Flutter三棵树关系04.运行时三棵树结构05.三棵树的作用介绍Flutter三棵树背景1.1 先思考一些问题Widget与Element是什么关系?它们是一一对应的还是怎么理解?createState 方法在什么时候调用?state 里面为啥可以直接获取到 widget 对象?Widget 频繁更改创建是否会影响性能?复用和更新机制是什么样的?Widget、Element、RenderObject 三

2021-12-15 19:26:17 3849 1

原创 Flutter Chanel通信流程

目录介绍01.flutter和原生之间交互02.MethodChanel流程03.MethodChanel使用流程04.MethodChanel代码实践05.EventChannel流程06.EventChannel基本流程07.EventChannel代码实现08.BasicMessageChannel流程09.BasicMessageChannel基本流程10.BasicMessageChannel代码实现11.Channel编解码器说明12.Channel通信可以子线程吗1

2021-08-26 18:47:43 1140

原创 Flutter如何状态管理

目录介绍01.什么是状态管理02.状态管理方案分类03.状态管理使用场景04.Widget管理自己的状态05.Widget管理子Widget状态06.简单混合管理状态07.全局状态如何管理08.Provider使用方法09.订阅监听修改状态推荐fluter Utils 工具类库:https://github.com/yangchong211/YCFlutterUtilsflutter 混合项目代码案例:https://github.com/yangchong211/YCHybr

2021-08-19 16:27:27 907

原创 NA嵌入Flutter页面

目录介绍01.Android承载flutter容器02.过时的NA跳转flutter方案03.升级版本NA跳转Flutter处理04.如何处理NA跳转flutter传参05.思考遇到的几个问题分析06.Flutter页面关闭时Crash07.Android引入flutter本质08.Flutter启动加载流程和优化00.推荐fluter Utils 工具类库:https://github.com/yangchong211/YCFlutterUtilsflutter 混合项目代码案

2021-08-16 19:07:14 410

原创 Flutter Utils 全网最齐全的工具类

FlutterUtils目录介绍01.事件通知bus工具类02.颜色Color工具类03.日期转化工具类04.File文件工具类05.Sql数据库工具类06.Json转化工具类07.Log日志打印工具类08.屏幕参数工具类09.Sp轻量存储工具类10.辅助计算工具类11.加密和解密工具类12.Num格式处理工具类13.设备参数获取工具类14.图片处理工具类15.网络处理工具类16.常用正则工具类17.Object常用工具类18.验证相关工具类19.路由管理工具类2

2021-08-09 19:28:52 1102

原创 组件通信注解框架实践

组件通信注解框架实践目录介绍01.为何需要组件间通信02.实现同级组件通信方式03.先看一个简单的案例04.项目组件通信流程05.逆向简化注册流程06.这个注解是做什么的07.注解是如何生成代码08.如何定义注解处理器09.项目库的设计和完善10.封装该库有哪些特点11.一些常见的报错问题12.部分原理分析的说明01.为何需要组件间通信明确一个前提:各个业务组件之间不会是相互隔离而是必然存在一些交互的;业务复用:在Module A需要引用Module B提供的某个功能

2021-03-10 21:00:46 264

原创 DiskLruCache源码分析

目录介绍01.DiskLruCache简单介绍02.磁盘缓存提问答疑03.缓存日志journal分析04.DiskLruCache的open()05.DiskLruCache的edit()06.DiskLruCache的get()07.DiskLruCache的remove()08.DiskLruCache其他方法00.二级缓存应用实践关于视频播放位置本地记录为何有该需求主要是公司开发多个定制平板教育app,由于服务端没有做视频播放位置存储功能,为完成任务最后采用本地记录视频

2021-02-07 16:59:55 485

原创 04.视频播放器通用架构实践

04.视频播放器通用架构实践目录介绍01.视频播放器的痛点02.业务需求的目标03.该播放器框架特点04.播放器内核封装05.播放器UI层封装06.如何简单使用07.如何自定义播放器08.该案例的拓展性分享09.关于视频缓存方案10.如何监控视频埋点11.待实现的需求分析12.一些细节上优化13.参考案例和博客记录00.视频播放器通用框架基础封装视频播放器player,可以在ExoPlayer、MediaPlayer,声网RTC视频播放器内核,原生MediaPlayer

2020-10-16 19:09:05 1256 1

原创 05.视频播放器内核切换封装

05.视频播放器内核切换封装目录介绍01.视频播放器内核封装需求02.播放器内核架构图03.如何兼容不同内核播放器04.看一下ijk的内核实现类05.看一下exo的内核实现类06.如何创建不同内核播放器07.看一下工厂类实现代码08.后期如何添加新的内核00.视频播放器通用框架基础封装视频播放器player,可以在ExoPlayer、MediaPlayer,声网RTC视频播放器内核,原生MediaPlayer可以自由切换对于视图状态切换和后期维护拓展,避免功能和业务出现耦合。比

2020-10-16 09:31:50 1842

原创 03.视频播放器Api说明

03.视频播放器Api说明目录介绍01.最简单的播放02.如何切换视频内核03.切换视频模式04.切换视频清晰度05.视频播放监听06.列表中播放处理07.悬浮窗口播放08.其他重要功能Api09.播放多个视频10.VideoPlayer相关Api11.Controller相关Api12.边播放边缓存api13.类似抖音视频预加载14.视频播放器埋点00.视频播放器通用框架基础封装视频播放器player,可以在ExoPlayer、MediaPlayer,声网RTC视频

2020-10-16 09:24:47 3237

原创 02.视频播放器整体结构

02.视频播放器整体结构目录介绍01.视频常见的布局视图02.后期可能涉及的视图03.需要达到的目的和效果04.视频视图层级示意图05.整体架构思路分析流程06.如何创建不同播放器07.如何友好处理播放器UI08.交互交给外部开发者09.关于优先级视图展示10.代码项目lib代码介绍00.视频播放器通用框架基础封装视频播放器player,可以在ExoPlayer、MediaPlayer,声网RTC视频播放器内核,原生MediaPlayer可以自由切换对于视图状态切换和后期维

2020-10-15 17:41:54 967 1

原创 01.视频播放器框架介绍

视频播放器介绍文档目录介绍01.该视频播放器介绍02.视频播放器功能03.视频播放器架构说明04.视频播放器如何使用05.播放器详细Api文档06.播放器封装思路07.播放器示例展示图08.添加自定义视图09.视频播放器优化处理10.播放器问题记录说明11.性能优化和库大小12.视频缓存原理介绍13.查看视频播放器日志14.该库异常code说明15.该库系列wiki文档16.版本更新文档记录00.视频播放器通用框架基础封装视频播放器player,可以在ExoPla

2020-10-15 09:41:05 3500

原创 00.Android线程池实践基础

目录介绍01.实际开发问题02.线程池的优势03.ThreadPoolExecutor参数04.ThreadPoolExecutor使用05.线程池执行流程06.四种线程池类07.execute和submit区别08.线程池的使用技巧01.实际开发问题在我们的开发中经常会使用到多线程。例如在Android中,由于主线程的诸多限制,像网络请求等一些耗时的操作我们必须在子线程中运行。我们往往会通过new Thread来开启一个子线程,待子线程操作完成以后通过Handler切换到主线程

2020-10-06 11:12:45 258

原创 Https详细分析

目录介绍01.为何会有Https02.解决方案分析03.SSL是什么04.RSA验证的隐患05.CA证书身份验证06.Https工作原理07.Https代理作用08.Https真安全吗09.Https性能优化01.为何会有HttpsHttp的缺点通信使用明文;通信使用明文意味着安全性大大降低,当通信过程被窃听后,无需花费额外的投入就可看到传输的数据。例如使用抓包工具,无需任何配置就可查看任何使用HTTP协议的通信数据;不验证通信方身份不验证通信方的身份,将导致

2020-09-25 19:24:41 821

原创 OkHttp请求耗时统计

目录介绍01.先提问一个问题02.EventListener回调原理03.请求开始结束监听04.dns解析开始结束监听05.连接开始结束监听06.TLS连接开始结束监听07.连接绑定和释放监听08.request请求监听09.response响应监听10.如何监听统计耗时11.应用实践之案例01.先提问一个问题OkHttp如何进行各个请求环节的耗时统计呢?OkHttp 版本提供了EventListener接口,可以让调用者接收一系列网络请求过程中的事件,例如DNS解析、T

2020-09-23 18:22:59 1535

原创 Android端Charles抓包

目录介绍01.下载安装02.抓包代理设置03.抓包Https操作04.抓包原理介绍05.抓包数据介绍06.常见问题总结07.Android拦截抓包01.下载安装下载地址(下载对应的平台软件即可)https://www.charlesproxy.com/download/下载破解文件https://assets.examplecode.cn/file/charles.jar打开Finder,在应用程序中选择Charles并右键选择显示包内容显示包内容后在Content

2020-09-21 19:33:37 1471

原创 Android网络收集和ping封装库

目录介绍01.基础介绍02.stetho大概流程03.Android中应用04.如何使用05.案例截图如下06.网络请求接口信息07.如何使用ping01.基础介绍该工具作用诸葛书网络拦截分析,主要是分析网络流量损耗,以及request,respond过程时间。打造网络分析工具……参考stetho库地址https://github.com/facebook/stetho功能Stetho 是 Facebook 开源的一个 Android 调试工具。是一个 Ch

2020-09-11 20:26:43 871

原创 04.Android崩溃Crash库之Loop拦截崩溃和ANR

目录总结01.能否利用Looper拦截崩溃02.思考几个问题分析03.App启动时自动开启Looper04.拦截主进程崩溃前沿上一篇整体介绍了crash崩溃库崩溃重启,崩溃记录记录,查看以及分享日志等功能。项目地址:https://github.com/yangchong211/YCAndroidTool欢迎star01.能否利用Looper拦截崩溃问题思考一下能否基于 Handler 和 Looper 拦截全局崩溃(主线程),避免 APP 退出。能否基于 Handler

2020-09-07 16:10:56 1181 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除