- 博客(29)
- 收藏
- 关注
原创 在鸿蒙中调用 FFmpeg 命令行工具
HarmonyOS FFmpeg 工具库 —— 在鸿蒙中调用 FFmpeg 命令行工具(fftools),最终驱动 FFmpeg.so 执行音视频处理任务。
2025-12-10 15:03:53
779
原创 鸿蒙下FFmpeg编译流程梳理
本文详细介绍了在OpenHarmony系统中编译FFmpeg的全过程。主要内容包括:1)环境准备,配置鸿蒙SDK工具链和交叉编译框架lycium;2)获取FFmpeg源码,通过鸿蒙三方库仓库下载;3)使用lycium框架进行编译,生成32位和64位库文件;4)修改源码后的重新编译流程,包括解压、修改、打包、校验等步骤。文章提供了完整的操作指南和关键截图,适合需要在OpenHarmony平台上进行音视频开发的工程师参考。
2025-12-10 14:56:32
1193
原创 01. Android存储结构
学习要符合如下的标准化链条:了解概念->探究原理->深入思考->总结提炼->底层实现->延伸应用"学习主题知识类型✅Android/✅01.基础组件与机制✅四大组件✅IPC机制✅消息机制✅事件分发机制✅View与渲染体系(含Window、复杂控件、动画)✅存储与数据安全(SharedPreferences/DataStore/Room/Scoped Storage)✅02. 架构与工程化✅架构模式(MVC/MVP/MVVM/MVI)
2025-09-05 10:06:22
1150
原创 03. 协程入门_Android异步处理机制
它提供线程调度器(如Schedulers.io()用于IO线程池,AndroidSchedulers.mainThread()用于主线程),底层仍使用线程池和Handler进行线程切换。异步机制在Android开发中的出现,本质是为了解决主线程(UI线程)执行耗时任务(如网络请求、文件读写等)导致的阻塞问题,从而避免应用无响应(ANR)。每流到一个节点,这个节点就对自己负责的逻辑进行处理(比如转换、过滤),然后“回调”下一个节点的处理函数,直到链的尾部——也就是最终我们定义的Observer。
2025-08-26 20:35:53
463
原创 04. 鸿蒙_获取app缓存大小和清除缓存
学习要符合如下的标准化链条:了解概念->探究原理->深入思考->总结提炼->底层实现->延伸应用"学习主题知识类型知识类型✅Android/✅01.基础组件✅02.IPC机制✅03.消息机制✅04.View原理✅05.事件分发机制✅06.Window✅07.复杂控件✅08.性能优化✅09.流行框架✅10.数据处理✅11.动画✅12.Groovy✅音视频开发/✅01.基础知识✅02.OpenGL渲染视频✅03.FFmpeg音视频解码。
2025-08-26 09:54:31
1156
原创 04. study_ESP32配网库
学习要符合如下的标准化链条:了解概念->探究原理->深入思考->总结提炼->底层实现->延伸应用"学习主题知识类型知识类型✅Android/✅01.基础组件✅02.IPC机制✅03.消息机制✅04.View原理✅05.事件分发机制✅06.Window✅07.复杂控件✅08.性能优化✅09.流行框架✅10.数据处理✅11.动画✅12.Groovy✅音视频开发/✅01.基础知识✅02.OpenGL渲染视频✅03.FFmpeg音视频解码。
2025-08-14 21:30:56
803
原创 study_WebView介绍
学习要符合如下的标准化链条:了解概念->探究原理->深入思考->总结提炼->底层实现->延伸应用"学习主题:WebView知识类型知识类型✅Android/✅01.基础组件✅02.IPC机制✅03.消息机制✅04.View原理✅05.事件分发机制✅06.Window✅07.复杂控件✅08.性能优化✅09.流行框架✅10.数据处理✅11.动画✅12.Groovy✅音视频开发/✅01.基础知识✅02.OpenGL渲染视频。
2025-07-08 21:22:37
1115
原创 05. study_JSBridge机制
摘要:JSBridge机制解析 JSBridge是连接WebView中JavaScript与原生代码的通信桥梁,解决JS无法直接调用系统功能的问题。核心原理包括: 双向通信:JS通过注册接口调用原生方法,原生通过注入JS代码回调; 底层实现:原生利用反射生成方法映射表,JS调用时通过WebView桥接通道完成参数序列化和反射执行; JS分发器:采用"方法映射表+统一入口"模式实现自动分发。该机制是实现混合开发深度集成的关键技术,涉及WebView接口注册、参数序列化、反射调用等核心流程。
2025-07-07 20:04:18
860
原创 03. 对象的创建,存储和访问原理
下面用一张图总结Java对象创建的过程**掘金:https://juejin.im/user/499639464759898简书:http://www.jianshu.com/u/92a2412be53e邮箱:[934137388@qq.com]
2025-03-06 15:03:14
936
原创 02. JVM内存模型
程序计数器就是用于记录当前 Java 线程执行到的字节码位置。每个线程创建时都会有属于自己的程序计数器。程序执行流的控制:我们可以通过改变程序计数器来实现字节码跳转,从而去控制代码流,常见的循环等就依赖于这个。字节码位置的保存:程序计数器记录了当前线程执行的字节码的位置,从而当线程被切换回来的时候能够知道该线程上次运行到哪儿。程序计数器会OOM吗?注意:程序计数器是唯一一个不会出现OutOfMemoryError的内存区域,因为它要存储的数据量很小,就是一个地址而已。cpu不是有硬件pc吗?
2025-03-06 14:59:33
1133
原创 01. 类加载机制
先看一下java程序的执行流程图有三个关键的器:Java编译器,类装载器,解释器。.java源文件通过编译器编译后形成符合JVM标准的字节码文件。加载器将将字节码文件从外部加载进JVM中,并转化为JVM中类的运行时数据结构。然后是解释器:当执行程序时,我们找到方法区中的字节码文件,通过解释器转化为对应硬件平台的机器语言进行执行。好了,类加载就是Java程序执行的一个阶段。在某些场景下,开发者可能需要自定义类加载器,那么它要继承并重写方法来实现类的加载逻辑。
2025-03-06 14:50:58
1078
原创 01. 消息机制介绍
要理解消息机制,我们首先要理解进程和线程间的通信的差异。对于进程,他们之间通信相对困难,因为进程彼此之间隔离。所以他们的关键点是解决隔离问题,通常借助系统调用将用户空间数据复制到内核空间,再通过内核来传递数据,以此来消除隔离。对于线程,他们之间通信相对简单,因为他们都属于同一个进程,拥有相同的地址空间,理论上它们可以直接访问彼此的数据。那么线程间通信困难点是什么?
2025-03-06 14:38:45
872
原创 04. 滑动冲突处理
什么是滑动冲突?滑动冲突指的是:当父容器和子 View都可以响应滑动手势时,系统无法判断应该让哪一个控件处理滑动事件,导致滑动行为出现异常。掘金:https://juejin.im/user/499639464759898简书:http://www.jianshu.com/u/92a2412be53e邮箱:[934137388@qq.com]
2025-03-06 14:30:12
1108
原创 01. View事件分发基础介绍
View有两个重要的功能,一个是显示UI,一个是响应用户操作。显示UI借助绘制过程实现。而响应用户操作借助事件分发实现。当用户进行点击操作后,系统需要将这个点击事件传递给一个具体的View去响应处理。掘金:https://juejin.im/user/499639464759898简书:http://www.jianshu.com/u/92a2412be53e邮箱:[934137388@qq.com]
2025-03-06 14:27:05
938
原创 04. 垃圾回收机制
什么是垃圾回收?垃圾:对于一个对象,其占据内存空间,对象引用持有其内存空间地址,通过引用可以正确访问到该内存空间,如果该对象无对象引用,那么虽然它有内存空间,但是我们没有它的地址,无法正常访问到它,这就是垃圾。(怎么通过算法找到这些对象呢?这是简要的不可达,实际上更为复杂,要从GC Roots出发,如果无法通过引用链访问到,那就是不可达。回收:清理“垃圾”占用的内存空间(怎么通过算法实现回收呢?
2025-03-05 20:00:20
1043
原创 01. Binder机制
Binder 是一种进程间通信机制,从字面上来解释 Binder 有胶水、粘合剂的意思,顾名思义就是粘和不同的进程,使之实现通信。掘金:https://juejin.im/user/499639464759898简书:http://www.jianshu.com/u/92a2412be53e邮箱:[934137388@qq.com]
2025-03-05 08:55:08
1005
原创 06. View工作原理
扁平化视图层级:每个视图层级都会增加measure和layout的复杂度。扁平化视图层级可以减少measure和layout的调用自定义 ViewGroup 优化布局逻辑:默认的ViewGroup测量逻辑会遍历所有子视图,可能造成性能浪费。我们可以 通过自定义ViewGroup的测量逻辑来优化性能避免在onDraw中分配对象:这会导致频繁的内存分配和垃圾回收(GC)。优化invalidate:调用会触发onDraw,过于频繁的调用会增加 CPU 和 GPU 的负担。避免不必要的调用。
2025-03-05 08:46:56
1350
原创 05. onDraw介绍
绘制背景:背景通常是设置在视图上的background,如纯色背景、渐变、图片等。<TextView这里就是一个蓝色背景 android:background=“#0000FF”绘制自己:绘制视图的内容,例如文本、图形等。@Override// TextView 的默认实现会绘制文本内容// 白色文字// 18sp这里就是绘制白色的Hello world文本ViewGroup是容器,不显示内容,因此无需重写该方法绘制子视图:在该方法中,ViewGroup会遍历所有子视图,并调用它们的。
2025-03-05 08:43:25
614
原创 04. onLayout介绍
掘金:https://juejin.im/user/499639464759898简书:http://www.jianshu.com/u/92a2412be53e邮箱:[934137388@qq.com]
2025-03-05 08:39:51
879
原创 03. onMeasure介绍
简书:http://www.jianshu.com/u/92a2412be53e邮箱:934137388@qq.com掘金:https://juejin.im/user/499639464759898泡在网上的日子:http://www.jcodecraeer.com/member/content_list.php?
2025-02-18 16:38:20
916
原创 02. View绘制基础
掘金:https://juejin.im/user/499639464759898简书:http://www.jianshu.com/u/92a2412be53e邮箱:934137388@qq.com。
2025-02-16 19:18:21
1074
原创 01. View基础概念
View代表了一个矩形区域,可以用来显示内容或响应用户的交互。掘金:https://juejin.im/user/499639464759898简书:http://www.jianshu.com/u/92a2412be53e邮箱:934137388@qq.com。
2025-02-16 19:12:37
1305
原创 04. ContentProvider基础介绍
它是应用程序间通信组件,他用于在不同应用间共享数据(也即:IPC跨进程通信),借助ContentProvider提供的接口,应用可以将内部的数据暴露给外部应用,或者从其它应用中读取共享的数据。Broadcast和这个也是通信的,他们两者有什么区别呢?Broadcast更像是发送一个任务,让你去处理和完成。ContentProvider更像是把自己当作数据库暴露出去。:用于简化对URI的ID添加和解析操作UriMatcher。
2025-02-15 22:16:16
842
原创 03. BroadcastReceiver基础介绍
在 Android 系统中,广播(Broadcast)是一种用于Android系统不同组件间的通信机制。当其为全局广播时,进行跨进程组件通信时,依赖于Activity Manager Service(AMS)来管理广播的发送和接收,底层通信机制使用Binder。当其为本地广播时,进行进程内部组件通信时,依赖于通过一个局部的广播管理器在应用进程内部直接传递广播,避免了跨进程的开销。则是对发送出来的Broadcast进行过滤、接受和响应的组件。
2025-02-15 22:12:41
930
原创 02. Service基础介绍
什么是 ServiceService是一个不需要和用户交互,运行在后台的 Android 组件。负责执行与用户界面无关的任务。比如后台播放音乐和后台下载。如何理解“不与用户交互”和“后台运行”不与用户交互:指服务无需显示 UI 界面,也不需要直接响应用户的点击或输入事件。后台运行:指服务在后台任务栈中运行,优先级较低,可能被系统回收。Service默认运行在应用的主线程中,因此如果你在Service。
2025-02-13 15:27:11
981
原创 01. Activity基础介绍
Activity是一个为用户提供应用界面的组件,用户借助其和应用完成交互。每个Activity一般对应一个屏幕。购物应用中的商城列表和购物车可能是不同的 Activity,也可能是同一 Activity 中的多个 Fragment。怎么理解上面的提供界面和与用户进行交互?显示界面Activity是一个界面容器,负责容纳view对象(如按钮、文本框、图片等)来构成用户界面,具体的界面绘制由View层完成。响应用户操作:用户的交互事件(如点击、输入、滑动等)首先由具体的View对象捕获,Activity。
2025-02-12 23:51:41
937
原创 01. Throwable异常体系
父类Object,子类Throwable,往后是Error错误和Exception异常。错误有virtualMachineError和另一个。异常分为内部异常和外部异常,也就是IOException和RuntimeException。Error(错误):很严重的,程序无法处理的错误,大多数错误都不是由程序本身产生的,而表示代码运行时 JVM(Java 虚拟机)出现的问题。
2024-10-24 23:24:33
1858
原创 02. String类型
简书:http://www.jianshu.com/u/92a2412be53e掘金:https://juejin.im/user/499639464759898。
2024-10-20 23:49:04
1778
原创 01. Object根类
简书:http://www.jianshu.com/u/92a2412be53e掘金:https://juejin.im/user/499639464759898。
2024-10-17 22:44:24
1870
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅