- 博客(91)
- 收藏
- 关注
原创 在 Android 的`Handler` 和 `Binder
是两个核心概念,分别用于不同场景的线程通信和跨进程通信(IPC)。在 Android 开发中,
2025-05-14 11:08:17
380
原创 在Java中实现Parcelable接口和Serializable接口有什么区别?
优先使用 Parcelable:在 Android 开发中,若需频繁传递对象(如 Intent、IPC),Parcelable是首选,性能显著优于。使用 Serializable:若数据需跨平台存储或传输,且对性能要求不高,更方便。选择建议:在 Android 中,除非必要(如第三方库依赖),否则尽量避免使用传递数据。
2025-05-13 19:16:23
706
原创 安卓的systemservice 、systemserver、systemservicemanage和servicemanage用法
以下是对安卓中SystemService、SystemServer、SystemServiceManager和ServiceManager的讲解和区别:定义:是Framework中对应特定功能的服务,供其他模块和App调用,如BatteryService、PowerManagerService等。它是所有系统服务的基类,定义了系统服务的基本结构和生命周期方法,如onStart、onBootPhase、onSwitchUser等。
2025-05-07 07:09:59
838
原创 进程间通信IPC
借助Intent可以在不同组件(像 Activity、Service 等)间传递数据,这些组件能够运行于不同进程。Intent支持传递基本数据类型、或Parcelable对象。// 在发送端// 在接收端。
2025-05-06 09:08:29
325
原创 IPC中的Binder
在 Android 系统里,Binder 是实现进程间通信(IPC)的核心机制,它具备高效、安全等特性。下面从架构、工作原理、调用流程等方面详细介绍 Binder 的原理。
2025-05-06 08:59:10
904
原创 android的MVC、MVP、MVVM
在 Java 里,private和public属于访问修饰符,其作用是管控类、方法、变量等的访问权限。除此之外,Java 还有protected访问修饰符以及默认(不写修饰符)的访问级别。
2025-05-06 08:58:29
427
原创 android 中的AMS 和 WMS
在Android开发中,AMS(Activity Manager Service)和WMS(Window Manager Service)是系统中非常重要的服务,学习它们对于深入理解Android系统架构和开发高性能应用具有重要意义。
2025-05-01 07:55:14
982
原创 java访问修饰符
在 Java 里,private和public属于访问修饰符,其作用是管控类、方法、变量等的访问权限。除此之外,Java 还有protected访问修饰符以及默认(不写修饰符)的访问级别。
2025-04-30 13:45:13
256
原创 Kotlin 常见问题
答案要点:密封类用于表示受限的类层次结构,即一个密封类的子类是有限的,并且必须在与密封类相同的文件中声明。密封类通常用于替代枚举类,当枚举类的每个常量需要携带不同的数据时,使用密封类更为合适。在 Kotlin 中,变量默认是不可为空的,如果需要允许变量为空,需要在类型后面加上。答案要点:Kotlin 中的反射机制允许在运行时检查类、属性和方法等信息,并且可以动态调用它们。答案要点:协程是一种轻量级的线程,它可以在单线程中实现并发。不过,反射会带来一定的性能开销,并且可能会破坏类的封装性,因此应该谨慎使用。
2025-04-29 16:14:26
1134
原创 android开发中的多线程、数据存储同步功能实现方案和应用场景
在Android开发中,多线程、数据存储与同步功能有多种实现方案,以下是详细介绍及其应用场景:
2025-04-29 15:31:28
1188
原创 消息处理机制 Handler、Looper 和 MessageQueue
在 Android 中,为避免阻塞主线程(UI 线程)导致界面卡顿,耗时操作(如网络请求、文件读写)需在子线程执行。但更新 UI 只能在主线程进行,这时就需要借助消息处理机制把任务从子线程传递到主线程。该机制的核心工作流程是:子线程把消息发送到消息队列,主线程从消息队列取出消息并处理。定义即消息队列,本质是一个基于单链表的数据结构,用于存储Message对象。Message是一个封装了消息数据和处理信息的类,它包含了消息的标识、携带的数据等内容。作用:它负责管理和维护消息,遵循先进先出(FIFO)原则。
2025-04-29 15:19:54
309
原创 Android Framework常见问题
答案要点:Intent 是 Android 中用于在组件(如 Activity、Service、Broadcast Receiver)之间传递消息的对象。它可以用于启动 Activity(显式或隐式)、启动 Service、发送广播等。显式 Intent 通过指定目标组件的类名来启动特定组件,而隐式 Intent 则通过指定动作(Action)、数据(Data)等信息,由系统根据这些信息来匹配合适的组件。继承系统服务的基类:根据需求继承合适的系统服务基类,实现必要的方法。
2025-04-29 14:59:20
795
原创 详解React Fiber架构中,reconcile阶段的具体工作流程
在 React Fiber 架构里,协调(Reconcile)阶段处于虚拟 DOM(VDOM)与实际 DOM 渲染之间,主要承担着把 VDOM 转化为 Fiber 节点树、开展 Diff 比较并标记节点变化的任务。
2025-04-27 15:24:25
498
原创 react的 Fiber 节点的链表存储
在React Fiber架构中,Fiber节点的链表存储是一种重要的数据结构组织方式,用于管理和遍历Fiber节点。
2025-04-27 15:22:28
379
原创 关于 React Fiber 架构、Hooks 原理
在 React 16 版本之前,采用的是栈调和(Stack Reconciler),流程是 JSX 经过render函数转换为虚拟 DOM(VDOM),然后直接递归渲染 VDOM。这种方式一旦开始渲染就无法中断,若渲染任务复杂,会导致页面卡顿,影响用户体验。而 React 16 引入了 Fiber 架构,在 VDOM 和实际 DOM 渲染之间增加了一个协调(Reconcile)阶段。
2025-04-27 15:14:07
1037
原创 安卓的Launcher 在哪个环节进行启动
在某些特殊情况下,如用户手动更换Launcher应用,或者系统出现故障需要重新启动Launcher时,Launcher的启动过程会在相应的触发条件下重新进行。例如,当用户在设置中切换默认Launcher应用后,系统会在下次启动或用户返回主屏幕时,启动新设置的Launcher应用。
2025-04-27 15:12:19
385
原创 Monorepo、Lerna、Yarn Workspaces、pnpm Workspaces 用法
Monorepo 即单仓库,是一种项目管理策略,它将多个相关的项目或包存放在同一个代码仓库中。与之相对的是 Polyrepo(多仓库),即每个项目或包分别存放在独立的代码仓库。Lerna 是一个用于管理包含多个包(package)的 JavaScript 项目的工具,专门为 Monorepo 设计。它可以帮助开发者更高效地管理 Monorepo 中的多个包,提供了一系列命令来处理包的版本管理、发布、依赖安装等操作。
2025-04-27 13:48:35
1062
原创 Rollup、Webpack、Esbuild 和 Vite 前端打包工具
Rollup、Webpack、Esbuild 和 Vite 都是前端开发中常用的打包工具,它们各有特点,以下是对它们的详细对比:
2025-04-27 11:12:54
1178
原创 npm、pnpm 和 yarn 包管理工具
npm:适合初学者和对生态兼容性要求较高的项目,尤其是在需要频繁使用 npm 官方提供的一些功能和工具时。yarn:对于对安装速度和依赖锁定有较高要求的项目,yarn是一个不错的选择,特别是在团队协作开发中。pnpm:当项目依赖较多,磁盘空间有限时,pnpm的节省磁盘空间和快速安装的优势会更加明显。
2025-04-27 11:11:02
723
原创 Babel 对 Polyfill 的运用
Babel 中用到了 Polyfill 相关内容,主要是(在 Babel 7.4.0 及以后版本被弃用)和core-js。
2025-04-27 09:54:37
483
原创 Polyfill 介绍及用法
编写自己的 Polyfill:对于一些简单的特性,可以自己编写 Polyfill。这样可以更好地控制代码,并且减少引入第三方库的风险。例如,实现的 Polyfill:if (!k++;});
2025-04-27 09:42:46
685
原创 babel核心知识点
Babel 是一个 JavaScript 编译器,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 代码,以便在旧版本的浏览器或环境中运行。
2025-04-26 08:48:17
475
原创 react的fiber 用法
异步渲染:借助React.lazy和Suspense实现代码分割和异步加载组件。优先级调度:使用函数设置任务优先级。时间切片:通过React.memo记忆化组件,减少不必要的渲染。Fiber 是 React 16.x 及以后版本所采用的协调算法,其核心目标在于提升 React 应用的渲染性能和响应能力。
2025-04-26 08:34:42
1062
原创 前端如何连接tcp 服务,接收数据
在传统的浏览器前端环境中,由于浏览器的同源策略和安全限制,无法直接建立 TCP 连接。不过,可以通过 WebSocket 或者使用 WebRTC 来间接实现与 TCP 服务的通信,另外在 Node.js 环境中可以直接使用net模块建立 TCP 连接。
2025-04-25 17:23:23
1225
原创 tcp 和http 网络知识
TCP:即传输控制协议(Transmission Control Protocol),是一种面向连接的、可靠的、基于字节流的传输层通信协议。它为互联网中的数据通信提供稳定的传输机制,在不可靠的IP层之上,通过确认、重传和错误检测等技术确保数据正确到达。比如在文件传输场景中,TCP保证文件的每个字节都能准确无误地从源端传输到目的端。HTTP:超文本传输协议(HyperText Transfer Protocol),是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。
2025-04-25 17:12:22
1588
2
原创 安卓的Launcher 在哪个环节进行启动
在某些特殊情况下,如用户手动更换Launcher应用,或者系统出现故障需要重新启动Launcher时,Launcher的启动过程会在相应的触发条件下重新进行。例如,当用户在设置中切换默认Launcher应用后,系统会在下次启动或用户返回主屏幕时,启动新设置的Launcher应用。
2025-04-21 14:45:20
454
原创 安卓的桌面 launcher是什么
安卓的桌面Launcher是一种安卓应用程序,它主要负责管理和展示手机主屏幕的界面以及相关功能,为用户提供与设备交互的主要入口。
2025-04-21 14:44:28
540
原创 android的 framework 是什么
Android的Framework(框架)是Android系统的核心组成部分,它为开发者提供了一系列的API(应用程序编程接口),使得开发者能够方便地创建各种Android应用。
2025-04-21 14:28:56
545
原创 如何学习 Android Framework
学习 Android Framework 具有一定的挑战性,但通过合理规划和有效的学习方法,能够逐步掌握。
2025-04-21 14:26:35
289
原创 训练出一个模型需要哪些步骤
训练一个大模型(如LLM)是一个系统化工程,涉及数据、算法、算力和工程优化的复杂协作。掌握这些步骤后,可根据实际需求调整流程。
2025-04-03 17:24:57
540
原创 大模型中的参数规模与显卡匹配
在大模型训练和推理中,显卡(GPU/TPU)的选择与模型参数量紧密相关,需综合考虑显存、计算能力和成本。70B模型原始显存需求(FP16):140GB →。*基于AWS p4d.24xlarge实例估算。→ 需多卡分布式训练。实际部署前,建议使用。
2025-04-03 17:23:05
933
原创 大模型训练必须使用英伟达的显卡吗
大模型训练并非必须使用英伟达(NVIDIA)显卡,但英伟达GPU因其成熟的生态和工具链目前仍是主流选择。随着AI芯片竞争加剧,未来3-5年可能会出现更成熟的替代方案,但目前训练百亿级大模型仍建议优先考虑英伟达硬件。
2025-04-03 17:21:30
573
原创 Mistral模型
Mistral 是由法国初创公司 Mistral AI 开发的一系列高效开源大语言模型(LLM),以其小体积、高性能著称,尤其在7B(70亿参数)规模下表现优异,甚至超越部分更大的模型(如Llama 2 13B)。以下是关键细节:优势总结:(2)本地量化运行(llama.cpp + GGUF)下载GGUF模型(如Mistral-7B-v0.1-Q4_K_M.gguf)。使用llama.cpp运行:(3)微调(LoRA/PEFT)支持Hugging Face生态的微调工具:5. Mistr
2025-04-02 13:55:36
555
原创 模大型格式
是一种专为**本地运行大型语言模型(LLMs)**设计的二进制文件格式,由。它优化了模型加载、内存管理和跨平台兼容性,特别适合在。团队开发,用于替代早期的。设备上高效运行量化模型。GGUF 文件通常以。
2025-04-02 13:50:28
690
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人