<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>SUN 的技术笔记</title><description>AI 应用、后端开发与项目记录</description><link>https://sun227454.online/</link><language>zh-CN</language><item><title>Agent 运行时：状态、重试与幂等</title><link>https://sun227454.online/blog/posts/agent-runtime-reliability/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/agent-runtime-reliability/</guid><description>任务状态、循环检测、错误分类与副作用恢复的工程笔记。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CNN：LeNet 与 ResNet</title><link>https://sun227454.online/blog/posts/cnn-lenet-resnet/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/cnn-lenet-resnet/</guid><description>卷积输出尺寸、LeNet 结构、残差连接与迁移学习的代码笔记。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MySQL：导出数据库与表</title><link>https://sun227454.online/blog/posts/mysql-dump-commands/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/mysql-dump-commands/</guid><description>使用 mysqldump 导出完整数据、单表和表结构，以及验证备份时需要注意的事项。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>强化学习笔记</title><link>https://sun227454.online/blog/posts/note-ai-0296581dfc2f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-0296581dfc2f/</guid><description>强化学习（Reinforcement learning，RL）讨论的问题是一个**智能体(agent)** 怎么在一个复杂不确定的 环境(environment) 里面去极大化它能获得的奖励。通过感知所处环境的 状态(state) 对 动作(action) 的 反应(reward)， 来指导更好的动作，从而获得最大的 收益(return)，这被称为在交互中学</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>上下文工程</title><link>https://sun227454.online/blog/posts/note-ai-033591e838b4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-033591e838b4/</guid><description>上下文工程关注的不是“模型能装下多少 Token”，而是：在当前这一步，模型应该看到哪些信息，才能以最低噪声完成正确决策。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Mission: 掌握多模态 LoRA 与 QLoRA</title><link>https://sun227454.online/blog/posts/note-ai-03f7ba63fda0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-03f7ba63fda0/</guid><description>能够读懂并改造仓库现有的 Qwen2-VL 微调脚本，根据任务和显存条件选择 LoRA 或 QLoRA，而不是只会复制训练参数。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MLA 结构代码实现及优化</title><link>https://sun227454.online/blog/posts/note-ai-06422c2e8219/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-06422c2e8219/</guid><description>MLA 结构的可视化图如下所示：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ReAct系统提示词</title><link>https://sun227454.online/blog/posts/note-ai-095ef15a5bcf/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-095ef15a5bcf/</guid><description>你需要解决一个任务。为此，你需要将任务分解为多个步骤。对于每个步骤，首先使用 Thought: 思考要做什么，然后使用可用工具之一决定一个 Action:。接着，你将根据你的行动从环境/工具中收到一个 Observation:。持续这个思考和行动的过程，直到你有足够的信息来提供 FinalAnswer:。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AI Coding 面试实战题</title><link>https://sun227454.online/blog/posts/note-ai-0b9fdb28b799/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-0b9fdb28b799/</guid><description>下面几道题是我从公开面经和牛客内容里整理出来的。练习时别背整段答案，至少要亲手跑一遍“澄清需求—拆任务—让 AI 实现—看代码—做测试”的过程，不然面试官追问两句就容易露馅。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>weather</title><link>https://sun227454.online/blog/posts/note-ai-0cfb7c814cc1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-0cfb7c814cc1/</guid><description>weather，AI相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>vllm 优化之 cuda_graph 详解</title><link>https://sun227454.online/blog/posts/note-ai-0eabb09a2fd4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-0eabb09a2fd4/</guid><description>vllm 是 pythonic 的 llm 推理框架，在 cpu 进行 cuda kernel launch（启动）的 eager mode 时，其存在可较大的 kernel launch 开销，尤其是对于 batch较小/模型较小的情况，kernel 启动开销过大！由此，作者基于 torch 使用 cuda graph 来直接减少 kernel launc</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>讯飞星辰 MaaS 平台使用指南</title><link>https://sun227454.online/blog/posts/note-ai-10b7fd5395e3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-10b7fd5395e3/</guid><description>讯飞星辰 MaaS 精调平台是一个全链路的大模型精调解决方案，支持快速定制专属大模型。本指南将详细介绍如何使用该平台完成大模型精调。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AI Coding 面试问答</title><link>https://sun227454.online/blog/posts/note-ai-113af70088ce/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-113af70088ce/</guid><description>这一部分来自公开面经和一些同学的反馈，开发、测开、Agent 开发都用得上。别把参考回答背成稿，先把思路说清，再换成你自己的项目细节。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>transformer论文解读</title><link>https://sun227454.online/blog/posts/note-ai-12a589066be0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-12a589066be0/</guid><description>CNN 的的卷积核窗口大小有限，每次只能看比较短的部分序列，但是它的多通道机制被认为可以去识别多模式，transformer 论文参考这个机制，在 attention 的机制进一步引出了 Muti-Head Attention，来模拟卷积层的多输出通道效果。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CUDA内核执行配置及线程索引计算</title><link>https://sun227454.online/blog/posts/note-ai-12b62777f076/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-12b62777f076/</guid><description>前面的内容我们知道可以为一个核函数配置多个线程（每个线程同一时刻只能处理一个数据），而这些线程的组织是通过内核调用函数的执行配置 &lt;&lt;&lt;grid_size, block_size&gt;&gt; &gt;来决定的，执行配置决定了如何划分并行任务。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>从 Vibe Coding 到可控生产力：Harness Engineering 的实践启示</title><link>https://sun227454.online/blog/posts/note-ai-18fe8bea2f09/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-18fe8bea2f09/</guid><description>AI Agent 让代码产出不再稀缺，但以下问题成为新瓶颈：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CUDA内存组织</title><link>https://sun227454.online/blog/posts/note-ai-197164c68bd3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-197164c68bd3/</guid><description>前面我们学习了线程是如何在 GPU 中执行的，以及如何通过操作线程束来优化核函数性能，但是，核函数性能并不是只和线程束的执行有关，它还跟全局内存访问模式有关系。本文将剖析核函数与全局内存的联系及其对性能的影响。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>weather</title><link>https://sun227454.online/blog/posts/note-ai-1978a9105dba/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-1978a9105dba/</guid><description>本项目是一个示例用的天气 Agent，用于在 A2A 演示中作为 Remote Agent 使用。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>记忆管理（Memory Management）</title><link>https://sun227454.online/blog/posts/note-ai-1a3cc340b699/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-1a3cc340b699/</guid><description>智能体系统需要记住过往交互信息，才能完成复杂任务并提供连贯体验。没有记忆机制，智能体就是无状态的，无法保持对话上下文、学习经验或个性化响应，仅能处理简单的一问一答，无法应对多步骤流程或用户需求变化。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>llm综合分析论文翻译</title><link>https://sun227454.online/blog/posts/note-ai-1e4758ef2e37/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-1e4758ef2e37/</guid><description>语言模型（LLMs）已经彻底革新了自然语言处理领域，但其不断增长的复杂性使得在不同硬件配置下的部署和优化变得更加困难。“语言模型比较分析”项目提供了一个全面的评估框架，用于测试 LLM 在各种平台上的性能、计算效率和内存使用情况。通过比较分析预训练模型和定制模型在不同 GPU 上的表现，该项目揭示了性能特征、可扩展性以及资源利用情况。项目采用了网络分析图和</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>从 Claude Code 学习 Agent 工程实现</title><link>https://sun227454.online/blog/posts/note-ai-2025f7c44822/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-2025f7c44822/</guid><description>普通 AI 对话是&quot;一问一答&quot;——你说一句，它回一句，结束。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>目标设定与监控（Goal Setting &amp; Monitoring）</title><link>https://sun227454.online/blog/posts/note-ai-212f9df53be2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-212f9df53be2/</guid><description>要让智能体真正高效且有目标地工作，仅仅具备信息处理或工具使用能力是不够的；它们还需要明确的方向感，以及判断自己是否取得成功的方法。这正是目标设定与监控模式的核心：为智能体设定具体目标，并赋予其追踪进度、判断目标是否达成的能力。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CUDA的Stream和Event模块详解</title><link>https://sun227454.online/blog/posts/note-ai-21412332beb0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-21412332beb0/</guid><description>cuda api 分为两个类型：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Roofline 论文解读</title><link>https://sun227454.online/blog/posts/note-ai-21740c9876fe/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-21740c9876fe/</guid><description>多核处理器设计的兴起，同时针对多核设计还没有统一的设计原则，这使得程序员编写高性能程序面临更加复杂的挑战，因此提出一个易于理解并能提供性能优化建议的性能模型显得尤为重要。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AI Coding 笔试 Prompt 速查</title><link>https://sun227454.online/blog/posts/note-ai-2892f6b601c9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-2892f6b601c9/</guid><description>如果没有运行结果，把“失败用例/现象”换成手推时发现的分支矛盾或接口不一致，不要伪造测试失败。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>智能体记忆面试速记</title><link>https://sun227454.online/blog/posts/note-ai-28db825a7f3d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-28db825a7f3d/</guid><description>核心思路是分层管理。我会把上下文分成三层：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RAG 专题导航</title><link>https://sun227454.online/blog/posts/note-ai-2a31d1f7217e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-2a31d1f7217e/</guid><description>RAG 不是“向量数据库 + 大模型”的简单拼接，而是把数据治理、检索、证据组织、受证据约束的生成和持续评测组合成一套系统。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Switch-Transformers论文详解</title><link>https://sun227454.online/blog/posts/note-ai-2bad4e34261e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-2bad4e34261e/</guid><description>llm 推理部署中的 All-to-All 通信包括：Dispatch 和 Combine 阶段。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>llm推理性能测试方案</title><link>https://sun227454.online/blog/posts/note-ai-2bb019d374d6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-2bb019d374d6/</guid><description>prompt 数据集分成英文和中文数据集，英文的是 vllm 框架所采用的数据集（裁剪版，只使用了 2000条左右），中文的是 ziya 数据。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>运行方法</title><link>https://sun227454.online/blog/posts/note-ai-2c9b88aafcf3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-2c9b88aafcf3/</guid><description>首先请确保你已经安装了 uv，如果没有的话，请按以下页面的要求安装：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>提示链模式（Prompt Chaining）</title><link>https://sun227454.online/blog/posts/note-ai-30b0a9cee0ce/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-30b0a9cee0ce/</guid><description>提示链模式（Prompt Chaining），又称流水线模式（Pipeline），是将复杂任务分解为多个简单子任务，每个子任务对应一次 LLM 调用，前一步的输出作为下一步的输入，依次串联执行。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>智能体记忆系统</title><link>https://sun227454.online/blog/posts/note-ai-337818fac04a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-337818fac04a/</guid><description>智能体“有记忆”，不等于把全部聊天记录塞进向量库。一个可用的记忆系统至少要回答六个问题：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>工具与运行时 MOC</title><link>https://sun227454.online/blog/posts/note-ai-36cfbc36e739/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-36cfbc36e739/</guid><description>工具与运行时 MOC，AI相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>理解 triton 内核教程 3</title><link>https://sun227454.online/blog/posts/note-ai-378365b304c8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-378365b304c8/</guid><description>LN 作用是减少了不同特征之间的依赖关系，可以使得模型训练更加稳定，收敛更快，并提高了模型的泛化能力。Batch Norm 和 Layer Norm 的区别一句话总结就是 bn 是切特征，ln 是切样本。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>智能体工具调用面试速记</title><link>https://sun227454.online/blog/posts/note-ai-3ad5fb1dc214/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-3ad5fb1dc214/</guid><description>早期 ReAct 可能解析 Action: ...，现代实现更多使用原生结构化 Tool Calling，并通过 call_id 关联调用与结果。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>反思模式（Reflection）</title><link>https://sun227454.online/blog/posts/note-ai-3d358bb727d1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-3d358bb727d1/</guid><description>在前几章中，我们已经探讨了基础的智能体模式：链式执行（Chaining）、路径选择（Routing）和并行化（Parallelization）。这些模式让智能体能够更高效、更灵活地完成复杂任务。然而，即使拥有复杂的工作流，智能体的初始输出或计划也可能并不理想、准确或完整。这时，反思（Reflection）模式就发挥了作用。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>tgi性能瓶颈分析实验</title><link>https://sun227454.online/blog/posts/note-ai-4144263f47d2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-4144263f47d2/</guid><description>前言：分析性能瓶颈，对比 2/4/8卡 A40、8卡 A100 的 prefill、decode、通信耗时占比区别，给出定量结论。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>flashattention-1论文解读</title><link>https://sun227454.online/blog/posts/note-ai-41e34ea6385c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-41e34ea6385c/</guid><description>Transformer 模型目前已经成为自然语言处理和图像分类等领域中使用最广泛的神经网络架构。虽然 Transformer 模型已经变得越来越大和深，但是处理更长的上下文依然还是有困难，最主要的原因是其核心模块-自注意力机制的时间和内存复杂度是序列长度的二次方。一个重要的问题是，让注意力更快、内存效率更高是否可以帮助 Transformer 模型解决长序列</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>triton内核开发基础1</title><link>https://sun227454.online/blog/posts/note-ai-42bbfdc3ff19/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-42bbfdc3ff19/</guid><description>常用的 Triton 基础函数及其作用如下：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>llm_note</title><link>https://sun227454.online/blog/posts/note-ai-43252f161e33/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-43252f161e33/</guid><description>LLM notes, including model inference, hpc programming note, transformer model structure, and vllm framework code analysis notes.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>第一部分：大模型基础（所有公司必问）</title><link>https://sun227454.online/blog/posts/note-ai-459c9ffbe5dd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-459c9ffbe5dd/</guid><description>这份资料结合200+份真实面经（阿里飞猪、AI应用开发、Agent/RAG方向）以及当前大厂真实招聘趋势，把 AI开发工程师 / AI应用工程师 / Agent工程师 / LLM工程师 面试题整理成题库。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>护栏与安全模式（Guardrails and Safety Patterns）</title><link>https://sun227454.online/blog/posts/note-ai-462e681726ab/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-462e681726ab/</guid><description>护栏（Guardrails），也称为安全模式，是确保智能体安全、合规并按预期运行的一组机制。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>位置编码算法背景知识</title><link>https://sun227454.online/blog/posts/note-ai-4a15396a2555/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-4a15396a2555/</guid><description>理解 RoPE 位置编码算法的原理和推导公式之前得先具备一些背景知识，主要是关于三角函数、旋转矩阵、直角坐标系、欧几里得内积的相关概念和公式，可以先快速阅览本章内容，后续关于 RoPE 算法的推导不理解的时候，再来细看相关公式和概念即可。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>动手学大模型：大模型知识编辑</title><link>https://sun227454.online/blog/posts/note-ai-4aff16fea73e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-4aff16fea73e/</guid><description>导读: 语言模型的编辑方法和工具</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Prompt Engineering 知识点</title><link>https://sun227454.online/blog/posts/note-ai-500d3913fbea/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-500d3913fbea/</guid><description>Prompt（提示词）是给 AI 模型的指令，指令的明确性和详细性决定了模型的输出效果。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>英伟达 GPU 性能分析指导</title><link>https://sun227454.online/blog/posts/note-ai-55eb9c980488/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-55eb9c980488/</guid><description>本文主要介绍了 GPU 结构、操作的执行方式以及深度学习操作的常见限制，目的是为了更好的理解 GPU 的基本运行原理以及神经网络或特定网络层如何高效利用给定 GPU。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>llm 推理 latency 分析</title><link>https://sun227454.online/blog/posts/note-ai-5a89347ee8e9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-5a89347ee8e9/</guid><description>基于 roofline 模型和的 llm 推理 decode 阶段的 latency 分析:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RAG 工程全流程</title><link>https://sun227454.online/blog/posts/note-ai-5dfbe96c0c1f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-5dfbe96c0c1f/</guid><description>离线侧：数据源接入 → 解析清洗 → 切块 → 元数据与权限 → Embedding → 建立倒排索引和向量索引 → 版本化更新。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>SmoothQuant 量化详解</title><link>https://sun227454.online/blog/posts/note-ai-5ec0bb68ca31/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-5ec0bb68ca31/</guid><description>SmoothQuant 是 PTQ（训练后量化）方案，量化位宽为 W8A8，即权重和激活都是用 8bit 量化，SmoothQuant 的核心贡献是，基于权重易量化而激活难量化的观察提出了一个解决办法：引入平滑因子 s 来平滑激活中的异常值，并通过数学上的等效转换将量化的难度从激活迁移至权重上。这个方法可以使 INT8 量化能够应用于 LLMs 中所有的矩阵</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>英伟达GPU通信和多卡拓扑结构</title><link>https://sun227454.online/blog/posts/note-ai-5f9a98f96b59/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-5f9a98f96b59/</guid><description>GPU 卡间互连带宽，指的是不同卡之间互连通信速度。单机多卡内存和 GPU、GPU 和 GPU 之间互联可通过 PCIE、NVLink、NVSwitch； 多机多卡 GPU 之间（不同主机）、CPU 与 GPU 之间互联可通过 GPUDirect RDMA、IB/万兆以太网 + TCP/IP。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AI Coding 七步工程流程：从题目到可验收交付</title><link>https://sun227454.online/blog/posts/note-ai-60f9278208e7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-60f9278208e7/</guid><description>AI Coding 不是“把题目复制给 AI，然后等待完整答案”，而是：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>lightllm模型推理概述</title><link>https://sun227454.online/blog/posts/note-ai-617ff75f3068/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-617ff75f3068/</guid><description>自定义的 llama 模型结构定义实现在 lightllm 框架中。LightLLM 类在 models/light_llm.py 文件中定义。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>大模型微调完全指南</title><link>https://sun227454.online/blog/posts/note-ai-6246c02f0ba3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-6246c02f0ba3/</guid><description>大语言模型（LLM）是一种专注于处理语言数据的人工智能模型，通过分析和学习海量文本数据来掌握语言的语法、语义和上下文关系，从而实现自然语言的理解与生成。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>triton内核编译流程解析</title><link>https://sun227454.online/blog/posts/note-ai-63700ca47aae/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-63700ca47aae/</guid><description>Triton 既是语言，可用于编写高性能计算 GPU kernel，使用 Triton 编写核函数必须按照其提供的 DSL 进行编写，否则运行失败。也是编译器（根据配置自动生成 kernel），采用 just-in-time 机制进行编译。如果你编写了一个用 triton.jit 修饰的核函数，那么在运行时其会被编译成底层 GPU 二进制（PTX / SAS</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>动手学大模型：GUI智能体构建</title><link>https://sun227454.online/blog/posts/note-ai-6537582f13dd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-6537582f13dd/</guid><description>1.了解GUI智能体领域的技术路线和研究现状</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CUDA流介绍</title><link>https://sun227454.online/blog/posts/note-ai-666bfd3e8f59/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-666bfd3e8f59/</guid><description>CUDA 程序的并行层次有两个：kernel 函数内部和 kernel 函数外部的并行。核函数外部的并行主要指：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>vllm优化技术速览</title><link>https://sun227454.online/blog/posts/note-ai-66798ef7bf1a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-66798ef7bf1a/</guid><description>vLLM 是一个快速且易于使用且大模型推理服务框架，声称有以下快速特性：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>LLM文本隐写术</title><link>https://sun227454.online/blog/posts/note-ai-68939f5ed58e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-68939f5ed58e/</guid><description>本项目实现了基于大型语言模型（LLM）的文本隐写术，使用GPT-2模型在生成的文本中隐藏信息。项目包含两种编码方法：霍夫曼编码（Huffman Coding）和固定长度编码（Fixed Length Coding, FLC）。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RAG准确率优化：从60%到85%</title><link>https://sun227454.online/blog/posts/note-ai-689d495c99d4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-689d495c99d4/</guid><description>来源：Bilibili - 面试官问：RAG准确率怎么从60%提高到85%？</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>7 分钟了解 10 种 RAG 策略</title><link>https://sun227454.online/blog/posts/note-ai-697dd5a37170/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-697dd5a37170/</guid><description>来源：Bilibili - 7 分钟了解 10 种 RAG 策略</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>deepspeed推理和训练优化概述</title><link>https://sun227454.online/blog/posts/note-ai-6997cf7604ef/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-6997cf7604ef/</guid><description>伴随着 Transformer 结构的提出，后续 LLM 参数开始从亿级到百亿、乃至万亿级增长，与超高速增长到模型参数量相比， GPU 显存的增长实属有限，有数据显示每 18 个月仅翻了 1.7 倍。模型参数量的增长和硬件的显存的增长之间的差距越来越大，但从目前趋势看，超大的计算量和参数量是目前 LLM 训练和推理的必经之路。在千亿模型上训练就需要 1.5T</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ReAct &amp; Plan-and-Execute</title><link>https://sun227454.online/blog/posts/note-ai-6a33945716da/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-6a33945716da/</guid><description>在构建 LLM Agent 系统时，选择合适的推理模式至关重要。本文将深入对比两种主流的 Agent 推理模式：ReAct（Reasoning and Acting）和 Plan-and-Execute，通过实战案例帮助你做出正确的技术选型。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>动手学大模型：大模型智能体安全</title><link>https://sun227454.online/blog/posts/note-ai-6aed168d3901/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-6aed168d3901/</guid><description>导读: 该部分介绍大模型智能体构建与安全风险测评</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>llm推理服务框架总结</title><link>https://sun227454.online/blog/posts/note-ai-6b85cb197e78/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-6b85cb197e78/</guid><description>这里我给出各大 llm 服务引擎的主要特性总结，大家都有的常规或者体现不出差距的特性则忽略。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>prompt-cache论文速读</title><link>https://sun227454.online/blog/posts/note-ai-71f2520ff916/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-71f2520ff916/</guid><description>在 多轮对话、DocQA 和 RAG 客服系统场景下中，提示词会包含重复的文本段落，如系统消息、提示模板和用于上下文的文档，也就是说常见文本段的注意力状态（也就是 kv 缓冲向量）\{(k_1,v_1), (k_2,v_2),..,(k_n,v_n)\} 是可以重复利用的。Prompt Cache 论文基于这一关键观察，设计了一个提示词模块提出来明确定义这些</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AWQ 代码深入剖析</title><link>https://sun227454.online/blog/posts/note-ai-730b321735ea/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-730b321735ea/</guid><description>作者提供了 llm-awq 仓库，开源包括了量化算法、量化模型转换和量化模型推理的代码，另外提供了 entry.py 代码来调用模型权重量化和量化推理接口。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>图神经网络与 PyTorch Geometric</title><link>https://sun227454.online/blog/posts/note-ai-773fad4308d3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-773fad4308d3/</guid><description>任务类型决定数据划分、组 batch 方法、模型输出形状和指标，不能只替换最后一个分类层。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>上下文与记忆 MOC</title><link>https://sun227454.online/blog/posts/note-ai-791358ede6e6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-791358ede6e6/</guid><description>上下文与记忆 MOC，AI相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>triton内核开发基础3</title><link>https://sun227454.online/blog/posts/note-ai-7bbc0584549f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-7bbc0584549f/</guid><description>torch 中 Tensor 的乘法有几种方法，如 *、torch.mul、torch.multiply、torch.dot、torch.mv、torch.mm、torch.matmul、torch.einsum 等，主要分为 3 种：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>flashattention-3论文速读</title><link>https://sun227454.online/blog/posts/note-ai-7d26411862bf/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-7d26411862bf/</guid><description>flashattention-2 虽然减少了非矩阵乘法的计算量，提高了运行速度，但是其并未充分利用最新硬件的功能，导致在 H100 GPU 上的利用率仅为 35%，由此作者提出了 flashattention-3，提出了3 项优化策略来提升 Hopper GPU 上的注意力计算性能：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MoE专家并行详解</title><link>https://sun227454.online/blog/posts/note-ai-7e82a5056a1c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-7e82a5056a1c/</guid><description>在 MOE 模块中，Router 负责决定发送 token 到 指定 expert 中，在实际模型推理过程中，可能某些 experts 接收 tokens 过多，某些 experts 接收 tokens 过少，这种现象叫做 expert 负载不均衡。这种情况不仅脱离了 MoE 的设计初衷（术业有专攻），也影响了 MoE 计算效率（分布式训练推理中各卡通讯时的</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RNN 与自然语言推断</title><link>https://sun227454.online/blog/posts/note-ai-7eff68dfc27a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-7eff68dfc27a/</guid><description>序列模型在时间步 t 接收输入 x_t，并把上一时刻状态 h_{t-1} 传给当前时刻：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>transformers库快速入门</title><link>https://sun227454.online/blog/posts/note-ai-8102089b056d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-8102089b056d/</guid><description>token: 可以理解为最小语义单元，翻译的话可以是词元、令牌、词，也可以是 word/char/subword，单理解就是单词和标点。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>动手学大模型：大模型越狱攻击</title><link>https://sun227454.online/blog/posts/note-ai-83073f790bfd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-83073f790bfd/</guid><description>https://github.com/EasyJailbreak/EasyJailbreak</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>预训练语言模型微调与部署</title><link>https://sun227454.online/blog/posts/note-ai-83fd4d791e20/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-83fd4d791e20/</guid><description>https://github.com/huggingface/transformers</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>gpt1-3论文解读</title><link>https://sun227454.online/blog/posts/note-ai-840ffcb50f44/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-840ffcb50f44/</guid><description>参考计算机视觉模型，使用没有标记的文本去做生成式预训练，然后在特定任务上做判别式微调。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AWQ 量化详解</title><link>https://sun227454.online/blog/posts/note-ai-857814ad7ede/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-857814ad7ede/</guid><description>先回顾下 SmoothQuant 论文提到的几个关键总结：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>多智能体协作（Multi-Agent Collaboration）</title><link>https://sun227454.online/blog/posts/note-ai-85cf06dc1d42/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-85cf06dc1d42/</guid><description>单一 LLM 智能体难以应对复杂问题，缺乏多样化专长或工具，成为系统瓶颈，降低效率与可扩展性，难以完成多领域目标。多智能体协作模式通过将复杂问题拆分为可管理子问题，分配给具备专长的智能体，智能体通过顺序交接、并行处理或层级委托等协议协作，实现单一智能体无法完成的目标。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>深入理解agent</title><link>https://sun227454.online/blog/posts/note-ai-86197469dcef/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-86197469dcef/</guid><description>在智能体（Agent）架构中，规划器（Planner）、感知器（Perceiver/Sensor） 和 执行器（Executor/Actuator） 是三个核心组件，它们对应了思考-感知-行动的流程。可以把它类比成一个人：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>智能体评测</title><link>https://sun227454.online/blog/posts/note-ai-885e5f791c7b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-885e5f791c7b/</guid><description>生产评测应再加入：写入准确率与漏写率、检索 Recall@k/nDCG、冲突更新准确率、错误经验传播率、隐私删除完整性、跨租户泄漏率、p50/p95 延迟、每轮 Token/模型调用成本，以及最终任务成功率。所有公开分数都要记录 reader LLM、embedding、reranker、top-k、提示、数据版本和 judge；否则“同一基准”并不代表可比</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>kv-cache 原理及优化概述</title><link>https://sun227454.online/blog/posts/note-ai-891a4a55b890/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-891a4a55b890/</guid><description>背景：生成式模型的推理过程很有特点，推理生成 tokens 的过程是迭代式的。简单来说就是，用户给一个输入文本，模型会输出一个回答（长度为 N），但该过程中实际执行了 N 次模型前向传播过程。即 GPT 类模型一次推理只输出一个 token，当前轮输出的 token 与之前输入 tokens 拼接，并作为下一轮的输入 tokens，反复多次直到遇到终止符 E</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>哆啦A梦与超级赛亚人：时空之战</title><link>https://sun227454.online/blog/posts/note-ai-89907e244277/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-89907e244277/</guid><description>在一个寻常的午后，大雄依旧坐在书桌前发呆，作业堆得像山，连第一页都没动。哆啦A梦在一旁翻着漫画，时不时叹口气，觉得这孩子还是一如既往的不靠谱。正当他们的生活照常进行时，一道强光突然从天而降，整个房间震动不已。光芒中走出一名金发少年，身披战甲、气势惊人，他就是来自未来的超级赛亚人——特兰克斯。他一出现便说出了惊人的话：未来的地球即将被黑暗势力摧毁，他来此是为了</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>张量并行技术详解</title><link>https://sun227454.online/blog/posts/note-ai-8c4ee6abe9e3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-8c4ee6abe9e3/</guid><description>为了训练更大的 transformer 模型，Megatron-LM 论文 作者引入了一种简单高效的 intra-layer model parallel（层内模型并行，也叫张量并行）方法，它无需安装新的编译器和库，和早期的 pipeline model parallelism 方法互为正交且互补，并且只需在 native PyTorch 中插入少量 com</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>DeepSeekV3-MoE模块代码解析测试</title><link>https://sun227454.online/blog/posts/note-ai-8cc84916ede1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-8cc84916ede1/</guid><description>MoEGate 是 DeepSeek-V3 中混合专家（MoE）架构的门控机制核心组件，负责为每个 token 动态选择合适的专家进行处理。其主要创新点包括：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AI 辅助编程工程方法</title><link>https://sun227454.online/blog/posts/note-ai-8ed9c7cd30c9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-8ed9c7cd30c9/</guid><description>这类面试表面上是“现场让 AI 写代码”，面试官实际看的是你能不能把需求问清楚、把代码管住、把结果验出来。Cursor、Claude Code 用哪个都行，功能能跑起来也只是第一步。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AI 辅助编程 MOC</title><link>https://sun227454.online/blog/posts/note-ai-8f86f31db31b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-8f86f31db31b/</guid><description>AI 辅助编程 MOC，AI相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>浅析Tenstorrent软件栈</title><link>https://sun227454.online/blog/posts/note-ai-8ff927ae3626/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-8ff927ae3626/</guid><description>TT-BUDA 是为 Tenstorrent 芯片开发的 AI 软件栈，兼容主流深度学习框架如 Pytorch、TensorFlow 等，通过 TT-BUDA 软件栈能够生成可执行文件，用于在 Tenstorrent 芯片上运行的 AI 模型。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>理解 triton 之基础知识</title><link>https://sun227454.online/blog/posts/note-ai-9006e72ab281/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-9006e72ab281/</guid><description>在 PyTorch 中，张量的维度（或称为“秩”）决定了数据的结构和形状：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>vllm 优化之 PagedAttention 源码解读</title><link>https://sun227454.online/blog/posts/note-ai-920dca4c30e6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-920dca4c30e6/</guid><description>PagedAttention 算法的原理可以参考我前面写的文章vllm优化技术速览。从源码的角度来看 PagedAttention，其实可以分为两部分:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>后训练与AgentRL</title><link>https://sun227454.online/blog/posts/note-ai-92a3cb6b6007/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-92a3cb6b6007/</guid><description>OPD（On-Policy Distillation）的核心并不是“必须拿到Teacher的完整Logprob”，而是Student自己先进行On-Policy Rollout，然后让Teacher对Student产生的轨迹提供额外的监督信号，再把这个Teacher信号蒸馏回Student；因此当Teacher是闭源API模型、只返回文本而不给Token级L</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>deepspeed推理框架评测总结</title><link>https://sun227454.online/blog/posts/note-ai-936177467812/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-936177467812/</guid><description>DS 是 deepspeed 框架的缩写，本文分别评测了 DeepSpeed、transformers、FasterTransformer 三个框架。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>triton内核开发基础2</title><link>https://sun227454.online/blog/posts/note-ai-968e2fa738f0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-968e2fa738f0/</guid><description>本节的例子是学习实现一个融合的 “Softmax” 算子：对于某类矩阵，其速度是显著快于 PyTorch 的原生操作，因为这些矩阵的行能够适应 GPU 的 SRAM。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>LLaVA 系列模型结构详解</title><link>https://sun227454.online/blog/posts/note-ai-9912eea9687c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-9912eea9687c/</guid><description>模型概述：作者将输入的图像划分为固定大小的图像块，对每个图像块都进行线性嵌入，添加位置嵌入，并将生成的向量序列输入到标准的 Transformer 编码器中。为了进行分类，参考前人经验，使用标准方法，即在序列中添加一个额外的可学习“分类令牌”。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CUDA背景知识</title><link>https://sun227454.online/blog/posts/note-ai-9e6644ce8f63/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-9e6644ce8f63/</guid><description>GPU的微观结构因不同厂商、不同架构都会有所差异，但核心部件、概念、以及运行机制大同小异，NVidia Tesla 微观架构如下图所示:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>deepspeed推理优化技术概览</title><link>https://sun227454.online/blog/posts/note-ai-9f2532d0c3fd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-9f2532d0c3fd/</guid><description>早期的 DeepSpeed 框架虽然支持训练大规模模型，但是训练好的模型在已有的推理解决方案上面临以下问题：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>集合通信总结和实践</title><link>https://sun227454.online/blog/posts/note-ai-9f9c2742d14f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-9f9c2742d14f/</guid><description>P2P 是点对点通信，是消息传递系统的基础功能。P2P 支持在进程对之间进行数据传输，一端发送，另一端接收。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>llm并行策略概述</title><link>https://sun227454.online/blog/posts/note-ai-a3b29bf6ab93/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-a3b29bf6ab93/</guid><description>1，对于单节点服务器（8 卡）的数据并行 DP（Data Parallelism）算法，一般 GPU0 执行 AllReduce 操作，即执行聚合再下发梯度的操作。实现 DP 的一种经典编程框架叫“参数服务器”，在这个框架里，计算 GPU 称为Worker，梯度聚合 GPU 称为 Server。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>LoRA 与 QLoRA Resources</title><link>https://sun227454.online/blog/posts/note-ai-a3fbea1f8975/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-a3fbea1f8975/</guid><description>LoRA 与 QLoRA Resources，AI相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CUDA内核优化策略</title><link>https://sun227454.online/blog/posts/note-ai-a66818161a20/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-a66818161a20/</guid><description>CUDA GPU提供了多种内存类型，每种类型的访问速度和用途不同。有效利用这些内存类型可以显著提升内核性能。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>flashattention1-2-3 系列总结</title><link>https://sun227454.online/blog/posts/note-ai-a8684dbe5277/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-a8684dbe5277/</guid><description>给定输入向量 \mathbf{x} = [x_1, x_2, \dots, x_N]，Softmax(x) 函数的输出定义为（默认对行进行 Softmax。）：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AI Coding 笔试模拟训练</title><link>https://sun227454.online/blog/posts/note-ai-a87a26da6b8e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-a87a26da6b8e/</guid><description>在已有后端工程中实现订单库存预占：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CUDA编程模型进阶</title><link>https://sun227454.online/blog/posts/note-ai-a9e7e9576b5f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-a9e7e9576b5f/</guid><description>前面学习了 CUDA 编程模型的基本概念，内核配置以及内核调用，我们会编写简单的 CUDA 代码了，本文将深入探讨 CUDA 编程模型是如何映射到 GPU 底层硬件架构的，并探讨影响性能的各种底层因素。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CUDA编程模型概述</title><link>https://sun227454.online/blog/posts/note-ai-aa25ac7c048a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-aa25ac7c048a/</guid><description>CUDA 是 NVIDIA 的通用并行计算架构（编程模型），是在 C 语言基础上扩展的。借助于CUDA，你可以像编写 C/C++ 语言程序一样实现并行算法。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>FasterTransformer速览</title><link>https://sun227454.online/blog/posts/note-ai-af60dc38ffd9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-af60dc38ffd9/</guid><description>FasterTransformer(FT) 是一个库，用于实现基于 Transformer 的神经网络推理的加速引擎，对于大模型，其以分布式方式跨越许多 GPU 和节点。FasterTransformer 包含 Transformer 块的高度优化版本的实现，其中包含编码器 Encoder 和解码器 Decoder 部分。基于 FT 可以运行完整的编码器-解</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>智能体工具调用原理</title><link>https://sun227454.online/blog/posts/note-ai-af7124084896/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-af7124084896/</guid><description>大模型本身不能直接访问文件系统、终端、数据库和外部 API。它只能根据上下文生成结构化的工具调用请求；Harness 负责注册工具、选择本轮可见工具、校验调用、执行真实代码、回填结果并控制下一轮循环。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>英伟达GPU架构总结</title><link>https://sun227454.online/blog/posts/note-ai-b59783d40c4d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-b59783d40c4d/</guid><description>深度神经网络是由大量具有相同结构的神经元堆叠而成的，它们本质上具有很高的并行性，同时，神经网络严重依赖矩阵数学运算。对于多层网络来说，其需要大量的浮点性能和带宽来提高计算效率和速度，而 GPU 拥有数千个针对矩阵数学运算优化的处理核心-CUDA 核心，可提供数十至数百 TFLOPS 的性能，因此 GPU 硬件天然适合神经网络的训练和推理计算。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>并行化模式（Parallelization）</title><link>https://sun227454.online/blog/posts/note-ai-b6168c79a16a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-b6168c79a16a/</guid><description>复杂智能体任务通常包含多个可以同时执行的子任务，而不是一个接一个地串行处理。此时就需要并行化设计模式。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>模型上下文协议（MCP）</title><link>https://sun227454.online/blog/posts/note-ai-bb92713d87da/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-bb92713d87da/</guid><description>为了让 LLM 成为真正的智能体，必须具备与外部环境交互的能力——访问实时数据、调用外部软件。没有标准化通信协议，每次集成都需定制开发，难以复用，阻碍了复杂 AI 系统的扩展和互联。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>online-softmax论文解读</title><link>https://sun227454.online/blog/posts/note-ai-beb3adbfaca2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-beb3adbfaca2/</guid><description>Softmax 函数在机器学习中应用广泛，此前的多项研究提出了更快的替代方案。本文针对提升原始 Softmax 性能，提出了一种一次遍历输入数据来计算 Softmax 函数归一化项的方法，作用是减少内存访问次数，并称其为“在线 Softmax”，并推测这种减少内存访问的方法可以提升 Softmax 在实际硬件上的性能。基准测试也证实了这一推测：Softmax</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>深度学习与 PyTorch</title><link>https://sun227454.online/blog/posts/note-ai-c2db7760adee/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-c2db7760adee/</guid><description>深度学习与 PyTorch，AI相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>lightllm 性能瓶颈分析</title><link>https://sun227454.online/blog/posts/note-ai-c348a4777b47/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-c348a4777b47/</guid><description>算子占比分析、通信时间对比分析、不同阶段的算子分析。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>路由模式（Routing）</title><link>https://sun227454.online/blog/posts/note-ai-c3b451784c09/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-c3b451784c09/</guid><description>相比提示链模式的固定线性流程，路由模式能根据输入动态选择不同的处理路径。它通过一个路由器对输入进行分类或评估，然后将其导向最合适的专用处理器，使系统从固定执行路径转变为动态决策系统。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>LLM数学推理</title><link>https://sun227454.online/blog/posts/note-ai-c61e889d3a76/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-c61e889d3a76/</guid><description>本项目实现了让大规模语言模型（LLM）学习数学推理的代码，主要技术为使用Supervised Finetuning（SFT）来让模型学习DeepSeek-R1生成的回复，从中学习复杂的数学推理技能（如反思、验算等）。 本实验基于DeepMath-103K数据集以及Qwen/Qwen2.5-Math-1.5B模型，带领读者初步尝试在数学任务上的数据蒸馏全流程。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RAG 评测与排障</title><link>https://sun227454.online/blog/posts/note-ai-c9aa742d57e6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-c9aa742d57e6/</guid><description>先建立真实评测集，覆盖正常问题、长尾词、专有 ID、多跳问题、无答案问题、过期知识、权限边界和恶意文档。为查询标注相关文档/Chunk、标准答案或关键事实与可接受引用。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>动手学大模型：RLHF</title><link>https://sun227454.online/blog/posts/note-ai-caa70cbee38c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-caa70cbee38c/</guid><description>复现实验配置：单卡 NVDIA A800-SXM4-80GB 占用 10097MiB，训练耗时 35min19s。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RAG 高级检索与优化</title><link>https://sun227454.online/blog/posts/note-ai-cc237fc92a9d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-cc237fc92a9d/</guid><description>基础 RAG 在复杂场景下会遇到问题，催生了多种增强技术。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>假设一：通才智能体的出现</title><link>https://sun227454.online/blog/posts/note-ai-cc3dce4d93c5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-cc3dce4d93c5/</guid><description>第一种假设认为，智能体将从狭窄的专家型进化为真正的通才，能够高可靠性地管理复杂、模糊和长期目标。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AI Coding 笔试高分指南</title><link>https://sun227454.online/blog/posts/note-ai-ce6c93ae791b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-ce6c93ae791b/</guid><description>牛客当前公开说明采用“结果 + 过程”双维度评价：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>vllm 推理流程剖析</title><link>https://sun227454.online/blog/posts/note-ai-ceaf9ca8ad7e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-ceaf9ca8ad7e/</guid><description>简单来讲，大模型推理一般会经历 4 个流程：Tokenizer -&gt; Model.forward -&gt; Sampler -&gt; DeTokenizer，但对于集成了各种优化技术的 vllm 框架来说，大模型推理服务流程是非常复杂的</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>评测与可观测性 MOC</title><link>https://sun227454.online/blog/posts/note-ai-cecd1be6ef21/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-cecd1be6ef21/</guid><description>评测与可观测性 MOC，AI相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>运行方法</title><link>https://sun227454.online/blog/posts/note-ai-ced9798d27a5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-ced9798d27a5/</guid><description>首先请确保你的系统已经安装了 uv 和 Jupyter，否则请参照如下链接安装：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>资源感知优化（Resource-Aware Optimization）</title><link>https://sun227454.online/blog/posts/note-ai-cf4d0f7e5ad8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-cf4d0f7e5ad8/</guid><description>LLM 应用常常昂贵且缓慢，任务全用最优模型并不高效，需在输出质量与资源消耗间权衡。资源感知优化解决智能系统在计算、时间和财务资源消耗上的管理难题。缺乏动态管理策略，系统无法适应任务复杂度变化或预算与性能约束。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Sinusoida 位置编码详解</title><link>https://sun227454.online/blog/posts/note-ai-d24d68eebf66/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-d24d68eebf66/</guid><description>不同于 RNN、CNN 等模型，对于 Transformer 模型来说，位置编码的加入是必不可少的，因为纯粹的 Attention 模块是无法捕捉输入顺序的，即无法区分不同位置的 Token。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>动手学大模型：多模态大语言模型</title><link>https://sun227454.online/blog/posts/note-ai-d37460b6abf4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-d37460b6abf4/</guid><description>导读: 该部分介绍多模态大语言模型的常见架构以及构建方法</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>flashattention-2论文解读</title><link>https://sun227454.online/blog/posts/note-ai-d378d3dc5f7f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-d378d3dc5f7f/</guid><description>将 transformer 拓展到更长的序列是一个难点，而注意力层是是扩展到更长序列的主要瓶颈，因为随着序列长度的增加，标准注意力层的计算时间和内存占用呈二次方增长。FlashAttention 通过 Tiling 和 Recomputation 技术大幅减少了 cuda kernel 对 global memory 的访问量，显著节省了内存（线性而非二次）</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>智能体记忆研究脉络</title><link>https://sun227454.online/blog/posts/note-ai-d3a6b20f6c79/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-d3a6b20f6c79/</guid><description>1959 年的 General Problem Solver 用状态、目标、算子和手段—目的分析组织问题求解，原始论文见 A General Problem-Solving Program for a Computer。之后的 Soar 认知架构把当前情境放入 working memory，把 if-then 产生式放入长期 procedural memor</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>vit 论文速读</title><link>https://sun227454.online/blog/posts/note-ai-d7f4b5b3f7f7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-d7f4b5b3f7f7/</guid><description>META 于 2020 年发表 DETR 论文，紧跟着谷歌从特征编码的角度深入研究 Transformer 在视觉表征层面的学习能力，进而提出了 Vision Transformer (ViT) 模型。模型结构比较简单，是自注意力机制和前馈网络的直接堆叠，只使用到了 Transformer 中的 encoder 结构。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>面试题：为什么大模型采用 Decoder-only 架构？</title><link>https://sun227454.online/blog/posts/note-ai-da6069d85d7d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-da6069d85d7d/</guid><description>Transformer 模型最初包含 Encoder 和 Decoder 两个部分：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>工具使用格式</title><link>https://sun227454.online/blog/posts/note-ai-ddd4c2f8915d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-ddd4c2f8915d/</guid><description>你是 Cline，一位技艺高超的软件工程师，精通多种编程语言、框架、设计模式和最佳实践。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>智能体可观测性与故障归因</title><link>https://sun227454.online/blog/posts/note-ai-dde148c73e36/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-dde148c73e36/</guid><description>评测回答“系统好不好”，可观测性回答“刚才发生了什么、为什么失败”。智能体包含概率模型、动态工具和外部环境，只记录最终文本无法定位问题。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AI MOC</title><link>https://sun227454.online/blog/posts/note-ai-df263fb560d3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-df263fb560d3/</guid><description>Agent 设计模式与实践代码：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>llm 推理揭秘论文翻译</title><link>https://sun227454.online/blog/posts/note-ai-df2eeba0c41b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-df2eeba0c41b/</guid><description>在大型语言模型 (LLM) 高效推理领域，尽管其发展迅速且充满活力，但目前尚缺乏一个简洁的框架来分析各种 LLM 推理方法，从而清晰地理解这一领域。我们的综述区别于传统的文献回顾，不仅总结了现有研究的现状，还基于 Roofline 模型提出了一个用于系统分析 LLM 推理技术的框架。该框架能够识别在硬件设备上部署 LLM 时的瓶颈，并为诸如为什么 LLM 受</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>动手学大模型：模型水印</title><link>https://sun227454.online/blog/posts/note-ai-dfa0f74c0df0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-dfa0f74c0df0/</guid><description>导读: 该部分介绍语言模型的水印</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>推理技术（Reasoning Techniques）</title><link>https://sun227454.online/blog/posts/note-ai-e07a7e470965/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-e07a7e470965/</guid><description>简单任务可以由模型一次生成答案，复杂任务则需要分解、搜索、验证和调整。智能体推理的价值不在于生成更长的“思考文字”，而在于把问题求解组织成可执行、可观察、可验证、可终止的工作流。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Agent Skills</title><link>https://sun227454.online/blog/posts/note-ai-e0879b9affce/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-e0879b9affce/</guid><description>Skill 渐进披露的是“如何完成任务”的知识和流程，不是工具执行能力。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>高德 Agent 研发面复习卡</title><link>https://sun227454.online/blog/posts/note-ai-e1b8444f1ddf/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-e1b8444f1ddf/</guid><description>本页保留原始面经的跨主题时间索引和一页复习卡；详细内容已拆入对应专题，避免一篇文档同时承担记忆、评测、RAG 和结构化输出四种职责。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>模型技术解析合集</title><link>https://sun227454.online/blog/posts/note-ai-e4bca1cfa7a4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-e4bca1cfa7a4/</guid><description>Kimi K3 的 Stable LatentMoE 是其大规模 MoE（Mixture-of-Experts）架构中的核心技术之一，它主要解决传统 MoE 模型在扩展到万亿级参数规模后出现的训练不稳定、Expert 负载不均衡、Router 崩溃以及长时间训练难以收敛的问题。简单来说，普通 MoE 的核心思想是“扩大模型参数，但每次只激活部分 Expert</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>dive-into-llms-main</title><link>https://sun227454.online/blog/posts/note-ai-e5b6feb11d7e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-e5b6feb11d7e/</guid><description>项目动机/ 教程目录/ 贡献者列表</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MCP终极指南-番外篇</title><link>https://sun227454.online/blog/posts/note-ai-e6740445c650/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-e6740445c650/</guid><description>本项目用于演示 Cline 与模型沟通的细节。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>LLM Finetune</title><link>https://sun227454.online/blog/posts/note-ai-e6d6ff83dbda/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-e6d6ff83dbda/</guid><description>安装环境：pip install -r requirements.txt</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>浅析dataflow芯片架构和组成</title><link>https://sun227454.online/blog/posts/note-ai-e75bf1309df0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-e75bf1309df0/</guid><description>GPU 虽然是冯诺依曼架构，但是去除了 CPU 中的分支预测、乱序执行等模块，遵循 SIMT（Single Instruction Multiple Thread）的编程模型，同一条指令可以同时在多个线程上执行，极大的增强了计算程序执行时的并行性。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>知识检索（RAG）</title><link>https://sun227454.online/blog/posts/note-ai-eb5c3e7b3aca/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-eb5c3e7b3aca/</guid><description>LLM 虽有强大文本生成能力，但受限于训练数据，知识是静态的，无法包含实时或专有数据，导致响应可能过时、不准确或缺乏特定场景所需的上下文。RAG（Retrieval-Augmented Generation）模式通过连接 LLM 与外部知识源来解决这一问题。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>DeepSeekV2 论文解读</title><link>https://sun227454.online/blog/posts/note-ai-ed68094d1696/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-ed68094d1696/</guid><description>DeepSeek-V2 是一种高效的开源混合专家（MoE）语言模型，基于创新的 Transformer 架构，实现了经济的训练和高效的推理。DeepSeek-V2 具有 2360 亿个参数(236B)，每个 token 激活 21 亿个参数，支持 128K tokens 的上下文长度。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>理解 triton 内核教程 4</title><link>https://sun227454.online/blog/posts/note-ai-f094ca29f384/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-f094ca29f384/</guid><description>标准 attention 计算公式如下所示：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>DeepseekV3 论文解读</title><link>https://sun227454.online/blog/posts/note-ai-f0f6f4f302b5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-f0f6f4f302b5/</guid><description>DeepSeek-V3，是一个强大的混合专家（MoE）语言模型，总参数量达 6710 亿（671B），每个 token 激活 370 亿（37B）参数。为实现高效推理和经济高效的训练，DeepSeek-V3 采用了多头潜在注意力（MLA）和 DeepSeekMoE 架构，这些架构已在 DeepSeek-V2 中得到充分验证。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>SmoothQuant 源码剖析</title><link>https://sun227454.online/blog/posts/note-ai-f2ef67808fdf/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-f2ef67808fdf/</guid><description>总结：smoothquant 从实现角度可拆开成两部分： 逐通道 smooth（平滑）权重和逐-token/逐 tensor 量化权重。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RAG 面试速记</title><link>https://sun227454.online/blog/posts/note-ai-f307b15ca0fb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-f307b15ca0fb/</guid><description>RAG 在推理时注入可更新、可引用的外部事实；微调主要改变模型行为、表达格式或领域任务能力。需要最新/私域/可追溯事实优先 RAG；需要稳定格式、风格或任务能力考虑微调；两者可以组合。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>大模型提示学习与思维链</title><link>https://sun227454.online/blog/posts/note-ai-f37024ee0bc9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-f37024ee0bc9/</guid><description>导读: 该部分介绍大模型的API调用与推理指南</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>深入理解 roofline 模型</title><link>https://sun227454.online/blog/posts/note-ai-f4adfaead0ea/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-f4adfaead0ea/</guid><description>为了做性能分析，Roofline 模型论文引入了“操作强度”（operational intensity）这个概念，表示每字节 DRAM/HBM 数据传输（traffic）所对应的操作次数（每字节 flops），这里的字节数是指那些经过缓存层过滤后进入主内存 DRAM/HBM 的字节，即我们关注的是缓存与内存之间的数据传输，而不是处理器与缓存之间的数据传输（</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CUDA执行模型</title><link>https://sun227454.online/blog/posts/note-ai-f5fbe3fc3e84/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-f5fbe3fc3e84/</guid><description>前面的内容我们学习了 CUDA 编程模型中主要有两个抽象（逻辑）概念：内存层次结构和线程层次结构，知道了线程的组织结构是由执行配置 &lt;&lt;&lt;grid_size, block_size&gt;&gt;&gt; 决定的，并知道如何编写简单的 kernel 函数。今天的内容则重点在于分析 GPU 并行架构的抽象视图，从而分析线程的并发，从而能编写在吞吐量和内存访问更优的 kernel</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>llama1-3 模型结构详解</title><link>https://sun227454.online/blog/posts/note-ai-f809f1c3d10e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-f809f1c3d10e/</guid><description>LLaMA（Large Language Model Meta AI）是 由 Meta AI 发布的一个开放且高效的大型基础语言模型，共有 7B、13B、33B、65B（650 亿）四种版本。其数据集来源都是公开数据集，无任何定制数据集，保证了其工作与开源兼容和可复现，整个训练数据集在 token 化之后大约包含 1.4T 的 token。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Tool Use Formatting</title><link>https://sun227454.online/blog/posts/note-ai-f8586c61eec8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-f8586c61eec8/</guid><description>You are Cline, a highly skilled software engineer with extensive knowledge in many programming languages, frameworks, design patterns, and best practices.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>VideoCode-main</title><link>https://sun227454.online/blog/posts/note-ai-f8e180c24557/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-f8e180c24557/</guid><description>本仓库用于存储“马克的技术工作坊”的示例代码。全网同名，如果你所看视频的博主名不叫“马克的技术工作坊”，那么你观看的一定是别人搬运的盗版视频，请告知我或直接帮我举报，谢谢！</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>transformer 模型结构详解及实现</title><link>https://sun227454.online/blog/posts/note-ai-f99922c7fd14/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-f99922c7fd14/</guid><description>以下是 Transformer 模型（简短）历史中的一些关键节点：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>DeepSeek V3 MoE 通信量分析与 All2All 过程可视化</title><link>https://sun227454.online/blog/posts/note-ai-fadc31ed9529/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-fadc31ed9529/</guid><description>DeepSeek V3/R1 采用了大规模专家并行（Expert Parallelism, EP）策略来处理256个专家的MoE层。由于模型的高度稀疏性（每层仅激活8个专家），需要采用很大的overall batch size来确保每个专家获得足够的expert batch size。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>工具发现与动态加载</title><link>https://sun227454.online/blog/posts/note-ai-ff409610cb1a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-ff409610cb1a/</guid><description>如果系统有几百或几千个工具，不能无脑把全部 Schema 塞进上下文，否则会：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>masked-attention 算法详解</title><link>https://sun227454.online/blog/posts/note-ai-ff8f93b93b84/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-ai-ff8f93b93b84/</guid><description>Self-Attention 中文翻译为自注意力机制，论文中叫作 Scale Dot Product Attention，它是 Transformer 架构的核心，其结构如下图所示：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>数据结构概述</title><link>https://sun227454.online/blog/posts/note-algorithms-04ae5854dd5c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-algorithms-04ae5854dd5c/</guid><description>能被输入到计算机中，能被计算机处理的符号的集合。是计算机操作的对象的总称。是计算机处理的信息能被特定的符号表示形式</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>算法知识总结</title><link>https://sun227454.online/blog/posts/note-algorithms-04dd1e11b516/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-algorithms-04dd1e11b516/</guid><description>本部分主要是笔者在学习算法知识和一些相关面试题所做的笔记，如果出现错误，希望大家指出！</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>排序</title><link>https://sun227454.online/blog/posts/note-algorithms-1b6f49345e87/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-algorithms-1b6f49345e87/</guid><description>重复地走访过要排序的数列，每次比较相邻两个元素，如果它们的顺序错误就把它们交换过来，越大的元素会经由交换慢慢“浮”到数列的尾端。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>数据结构与算法 MOC</title><link>https://sun227454.online/blog/posts/note-algorithms-1ffdf37ec048/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-algorithms-1ffdf37ec048/</guid><description>数据结构与算法 MOC，数据结构与算法相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>【C++】算法竞赛常用_STL</title><link>https://sun227454.online/blog/posts/note-algorithms-650a0d0d1c50/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-algorithms-650a0d0d1c50/</guid><description>欢迎关注我的专栏, 准备写完算法基础所有题解🚀🚀🚀 专栏链接</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>剑指 offer 思路总结</title><link>https://sun227454.online/blog/posts/note-algorithms-8b4bc26eaf68/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-algorithms-8b4bc26eaf68/</guid><description>本部分主要是笔者在练习剑指 offer 时所做的笔记，如果出现错误，希望大家指出！</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ACM_算法模板_（打比赛专用）</title><link>https://sun227454.online/blog/posts/note-algorithms-945c0b8caa22/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-algorithms-945c0b8caa22/</guid><description>ACM_算法模板_（打比赛专用），数据结构与算法相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>常见面试智力题总结</title><link>https://sun227454.online/blog/posts/note-algorithms-a8803f7d5111/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-algorithms-a8803f7d5111/</guid><description>本部分主要是笔者在练习常见面试智力题所做的笔记，如果出现错误，希望大家指出！</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>常用算法</title><link>https://sun227454.online/blog/posts/note-algorithms-b6660fad477b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-algorithms-b6660fad477b/</guid><description>核心思想：快速求任意子区间的元素和。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>算法基础面试速记</title><link>https://sun227454.online/blog/posts/note-algorithms-ebfe567c0e3a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-algorithms-ebfe567c0e3a/</guid><description>算法基础面试速记，数据结构与算法相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>滑动窗口</title><link>https://sun227454.online/blog/posts/note-algorithms-fa2b3403144f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-algorithms-fa2b3403144f/</guid><description>给你一个整数数组 nums，有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第六弹)</title><link>https://sun227454.online/blog/posts/note-android-0069b3dbe8b3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0069b3dbe8b3/</guid><description>Andorid Studio中进行debug:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidRuntime_ART与Dalvik</title><link>https://sun227454.online/blog/posts/note-android-0080a4dc6445/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0080a4dc6445/</guid><description>在说Android Runtime之前，我们需要了解什么是运行时环境，还需要了解一些基本知识，即JVM和Dalvik VM的功能。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.系统架构</title><link>https://sun227454.online/blog/posts/note-android-010033009ac5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-010033009ac5/</guid><description>关于系统架构，维基百科给出了一个非常好的定义。 A system architecture is the conceptual model that defines the structure, behavior, and more views of a system.[ (系统架构是概念模型，定义了系统的结构、行为和更多的视图)</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>3. ExoPlayer源码分析之prepare方法</title><link>https://sun227454.online/blog/posts/note-android-011bb12996e5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-011bb12996e5/</guid><description>上面两篇文章说了ExoPlayer简单的使用，都是些API，没什么用，查查文档就可以了。我们要去学习ExoPlayer整体是怎么设计的。以下基于2.10.6版本.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>音视频同步原理</title><link>https://sun227454.online/blog/posts/note-android-02957041b6cb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-02957041b6cb/</guid><description>媒体数据经过解复用流程后，音频/视频解码便是独立的，也是独立播放的。而在音频流和视频流中，其播放速度都是有相关信息指定的：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android弹幕实现</title><link>https://sun227454.online/blog/posts/note-android-03189755c769/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-03189755c769/</guid><description>bilibili Android开源弹幕引擎.烈焰弹幕使</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>自定义View入门</title><link>https://sun227454.online/blog/posts/note-android-032a95c2fd84/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-032a95c2fd84/</guid><description>view中onDraw()是个空函数，也就是说具体的视图都要覆写该函数来实现自己的绘制。对于ViewGroup则不需要实现该函数，因为作为容器是“没有内容“的（但必须实现dispatchDraw()函数，告诉子view绘制自己）。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Asset目录与res目录的区别</title><link>https://sun227454.online/blog/posts/note-android-048ae3791573/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-048ae3791573/</guid><description>两者目录下的文件在打包后会原封不动的保存在apk包中，不会被编译成二进制。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>如何提高Activity启动速度</title><link>https://sun227454.online/blog/posts/note-android-0573c90ad1b7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0573c90ad1b7/</guid><description>减少onCreate的时间，那就精简onCreate里的代码。放在onResume里好了。为了用户体验更好一些，把页面显示的View细分一下，放在AsyncTask里逐步显示，如果你够熟练，用handler更好，这样用户的看到的就是有层次有步骤的一个个的view的展示，不会是先看到一个黑屏，然后一下显示所有view。最好作成动画，效果更自然些。利用多线程的目</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Dagger2简介(一)</title><link>https://sun227454.online/blog/posts/note-android-069d6b6a09e7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-069d6b6a09e7/</guid><description>Dagger是一个依赖注入(Dependency Injection,简称DI)框架，butterknife也是一个依赖注入框架。但是Dagger2比Butterknife更强大的多，它的主要作用，就是对象的管理，其目的是为了降低程序耦合。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>11.Hilt简介</title><link>https://sun227454.online/blog/posts/note-android-08ae9f470ebb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-08ae9f470ebb/</guid><description>说到依赖注入，做Android的人都会想到一个库：Dagger。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>滑动切换Activity(GestureDetector)</title><link>https://sun227454.online/blog/posts/note-android-091feb592ef2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-091feb592ef2/</guid><description>滑动切换Activity(GestureDetector)，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>4.开发环境配置</title><link>https://sun227454.online/blog/posts/note-android-09ae442f4101/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-09ae442f4101/</guid><description>FFmpeg的学习看其源代码时需要下载他的仓库，直接读源码，其他场景下的编译都是自己根据自己的需求进行编译的，但是在Mac 中不需要进行编译就可以学习FFmpeg的各个API:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>4.GLTextureView实现</title><link>https://sun227454.online/blog/posts/note-android-09c52c548cec/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-09c52c548cec/</guid><description>系统提供了GLSurfaceView，确没有提供GLTextureView，但是我们目前的项目灰常复杂庞大，我不想去封一层接口，然后动态去选择使用GLSurfaceView(实现一些纹理效果)或者TextureView(无OpenGL效果)来播放视频。我只想在目前的基础上去扩展，我想去实现一个GLTextureView。上面分析完GLSurfaceView的</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>5.OpenGL ES绘制三角形</title><link>https://sun227454.online/blog/posts/note-android-0a0d7a557882/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0a0d7a557882/</guid><description>OpenGL ES的绘制需要有以下步骤:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>手机摇晃</title><link>https://sun227454.online/blog/posts/note-android-0a267236bb7b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0a267236bb7b/</guid><description>手机摇晃，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WAV</title><link>https://sun227454.online/blog/posts/note-android-0a5ed14f4927/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0a5ed14f4927/</guid><description>WAVE文件格式是微软FIFF(Resource Interchange FileFormat)资源交换文件标准的一种，是针对于多媒体文件存储的一种文件格式和标准。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android开发不申请权限来使用对应功能</title><link>https://sun227454.online/blog/posts/note-android-0a79f25ca97a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0a79f25ca97a/</guid><description>从用户角度来说很难获取到正确的android权限。通常你只需要做一些很基础的事(例如编辑一个联系人)但实际你申请的权限却远远比这更强大(例如可以获取到所有的联系人明细等)。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>shell</title><link>https://sun227454.online/blog/posts/note-android-0a8eeb3d9986/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0a8eeb3d9986/</guid><description>ls x* y*: 过滤文件中x和y开头的文件 ls -F: 区分文件还是目录 ls -l: 显示详细信息</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>5.Kotlin_内部类&amp;密封类&amp;枚举&amp;委托</title><link>https://sun227454.online/blog/posts/note-android-0b1c0370192c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0b1c0370192c/</guid><description>这个类现在可以使用任何的类型初始化，并且参数也会使用定义的类型，我们可以这么做：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>获取手机中所有安装的程序</title><link>https://sun227454.online/blog/posts/note-android-0b1c743c81b0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0b1c743c81b0/</guid><description>获取手机中所有安装的程序，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android 5.0 6.0 7.0特性</title><link>https://sun227454.online/blog/posts/note-android-0ba9cd556299/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0ba9cd556299/</guid><description>OpenJDK替换Java API</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.涉及到事件响应的常用方法构成</title><link>https://sun227454.online/blog/posts/note-android-0c2c004a91d9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0c2c004a91d9/</guid><description>用户在手指与屏幕接触过程中通过MotionEvent对象产生一系列事件，它有四种状态：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>TabLayout记录</title><link>https://sun227454.online/blog/posts/note-android-0c9627e5e5db/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0c9627e5e5db/</guid><description>今天用TabLayout的时候发现，TabLayout的setOnPageChangeListener的方法过期了，良好的编程习惯是不在项目中使用过时的方法的，所以要找一个替代的方案：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>应用后台唤醒后数据的刷新</title><link>https://sun227454.online/blog/posts/note-android-0dce7755415a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0dce7755415a/</guid><description>应用后台唤醒后数据的刷新，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>获取应用程序缓存及一键清理</title><link>https://sun227454.online/blog/posts/note-android-0e0dc7f6cf61/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0e0dc7f6cf61/</guid><description>获取应用程序缓存及一键清理，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MediaExtractor、MediaCodec、MediaMuxer</title><link>https://sun227454.online/blog/posts/note-android-0e981a4a8149/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-0e981a4a8149/</guid><description>MediaExtractor是一个Android系统用于从多媒体文件中提取音频和视频数据的类。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ScrollingTabs</title><link>https://sun227454.online/blog/posts/note-android-100a6e928fbb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-100a6e928fbb/</guid><description>自定义ScrollingTabs结合ViewPager实现指引的效果。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2.卷积</title><link>https://sun227454.online/blog/posts/note-android-1080b54ef9de/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1080b54ef9de/</guid><description>卷积一词最开始出现在信号与线性系统中，信号与线性系统中讨论的就是信号经过一个 线性系统以后发生的变化。由于现实情况中常常是一个信号前一时刻的输出影响着这一时刻 的输出，所在一般利用系统的单位响应与系统的输入求卷积，以求得系统的输出信号（当然 要求这个系统是线性时不变的）。 卷积的定义： 卷积是两个变量在某范围内相乘后求和的结果。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>４、 网络存储数据</title><link>https://sun227454.online/blog/posts/note-android-10cb6aa6f735/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-10cb6aa6f735/</guid><description>Android提供了5种方式来让用户保存持久化应用程序数据。根据自己的需求来做选择，比如数据是否是应用程序私有的，是否能被其他程序访问，需要多少数据存储空间等，分别是：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>3. 内存管理</title><link>https://sun227454.online/blog/posts/note-android-11847c714e82/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-11847c714e82/</guid><description>内存管理机制负责对内存架构进行管理，使程序在内存架构的任何一个层次上的存放对于用户来说都是一样的。用户无须担心自己的程序是存储在缓存、主存、磁盘还是磁带上，反正运行、计算、输出的结果都一样。而内存管理实现这种媒介透明的手段就是虚拟内存。用我们多次讲过的“抽象”来说，虚拟内存就是操作系统提供给用户的另一个“幻象”。这个幻象构建在内存架构的顶端，给用户提供一个比</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>6.DataBinding简介</title><link>https://sun227454.online/blog/posts/note-android-118f229b2776/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-118f229b2776/</guid><description>https://developer.android.com/topic/libraries/data-binding</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Base64加密</title><link>https://sun227454.online/blog/posts/note-android-11fad8163cdc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-11fad8163cdc/</guid><description>为什么会有Base64编码呢？因为有些网络传送渠道并不支持所有的字节，例如传统的邮件只支持可见字符的传送， 像ASCII码的控制字符就不能通过邮件传送。这样用途就受到了很大的限制，比如图片二进制流的每个字节不可能全部是可见字符，所以就传送不了。 最好的方法就是在不改变传统协议的情况下，做一种扩展方案来支持二进制文件的传送。把不可打印的字符也能用可打印字符来表</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.操作系统简介</title><link>https://sun227454.online/blog/posts/note-android-12b7d2168de4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-12b7d2168de4/</guid><description>操作系统(Operating System, 简称OS)是管理和控制计算机硬件与软件资源的计算机程序。它是一种由引导程序（bootloader）启动并管理计算机中所有程序生命周期的系统程序。任何其他软件都必须在操作系统的支持下才能运行，操作系统能有效组织和管理系统中的各种软、硬件资源，合理组织计算机系统的工作流程并控制程序的执行，为用户提供一个良好的操作环境</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>视频播放相关内容总结</title><link>https://sun227454.online/blog/posts/note-android-133784d6da92/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-133784d6da92/</guid><description>显示一个Surface的抽象接口，使你可以控制Surface的大小和格式以及在Surface上编辑像素，和监视Surface的改变。这个接口通常通过SurfaceView类实现。 简单的说就是我们无法直接操作Surface只能通过SurfaceHolder这个接口来获取和操作Surface。 SurfaceHolder中提供了一些lockCanvas():获</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android学习笔记</title><link>https://sun227454.online/blog/posts/note-android-145cacd12f81/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-145cacd12f81/</guid><description>Android学习笔记，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>7.嵌入式系统</title><link>https://sun227454.online/blog/posts/note-android-1510bc43aada/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1510bc43aada/</guid><description>为完成某个特定功能而设计的，或许有附加机制或其他部分的计算机硬件和软件结合体。在许多情况下，嵌入式系统是一个更大系统或产品中的一部分，如汽车中的防抱死系统。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>自定义View——FlowLayout</title><link>https://sun227454.online/blog/posts/note-android-1686ae571cb1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1686ae571cb1/</guid><description>Android中的FlowLayout~</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Coil简介</title><link>https://sun227454.online/blog/posts/note-android-168e1b0f60e7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-168e1b0f60e7/</guid><description>Coil作为图片加载库的新秀，和Glide、Picasso这些老牌图片库相比，它们的优缺点是什么以及Coil未来的展望？先来了解一下什么是Coil。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>kts</title><link>https://sun227454.online/blog/posts/note-android-175c3a254611/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-175c3a254611/</guid><description>Gradle 支持使用 Groovy DSL 或 Kotlin DSL 来编写脚本。所以在学习具体怎么写脚本时，我们肯定会考虑到底是使用 Kotlin 来写还是 Groovy 来写。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android四大组件之Service</title><link>https://sun227454.online/blog/posts/note-android-176a3ebcc035/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-176a3ebcc035/</guid><description>本地服务:服务代码在本应用中远程服务:服务在另外一个应用里面(另外一个进程里面)aidl: android interface defination language IPC implementation : inter process communication</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Glide简介(上)</title><link>https://sun227454.online/blog/posts/note-android-177722653533/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-177722653533/</guid><description>Glide是Google员工的开源项目，Google官方App中已经使用，在2015年的Google I/O上被推荐。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1. ExoPlayer简介</title><link>https://sun227454.online/blog/posts/note-android-1869f4a9df8f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1869f4a9df8f/</guid><description>ExoPlayer是google开源的应用级媒体播放器项目。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android异步任务机制之AsycTask</title><link>https://sun227454.online/blog/posts/note-android-18824f169622/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-18824f169622/</guid><description>在上一篇文章已经说了，主线程主要负责控制UI页面的显示、更新、交互等。 为了有更好的用户体验，UI线程中的操作要求越短越好。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>3.NestedScrollView简介</title><link>https://sun227454.online/blog/posts/note-android-1916ce664dd4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1916ce664dd4/</guid><description>NestedScrollView即支持嵌套滑动的ScrollView，因此我们可以简单的把NestedScrollView类比为ScrollView，其作用就是作为控件父布局，从而具备(嵌套)滑动的功能。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>调试平台Flipper</title><link>https://sun227454.online/blog/posts/note-android-1942477a0968/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1942477a0968/</guid><description>Flipper是之前Facebook的一个内部调试工具，旨在帮助开发人员以交互式和可扩展的方式检查和理解iOS及Android应用程序的结构和行为。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>String格式化</title><link>https://sun227454.online/blog/posts/note-android-1bba8219014c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1bba8219014c/</guid><description>String格式化，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>PCM</title><link>https://sun227454.online/blog/posts/note-android-1c81f70f8ca3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1c81f70f8ca3/</guid><description>PCM(Pulse Code Modulation)，脉冲编码调制。人耳听到的是模拟信号，PCM是把声音从模拟信号转化为数字信号的技术。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>13.LUT滤镜</title><link>https://sun227454.online/blog/posts/note-android-1c8349b2a6bb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1c8349b2a6bb/</guid><description>LUT全称Look Up Table，也称为颜色查找表。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>python3入门</title><link>https://sun227454.online/blog/posts/note-android-1d6a5a0368ac/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1d6a5a0368ac/</guid><description>字符串就是一系列字符。在Python中，用引号括起来的都是字符串，其中的引号可以是单引号，也可以是双引号。例如:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebView总结</title><link>https://sun227454.online/blog/posts/note-android-1da04c4982f9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1da04c4982f9/</guid><description>在Android中有WebView Widget，它内置了WebKit引擎，同时，WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源的浏览器引擎， Chrome浏览器也是基于它的。所以很多表现WebView和Chrome是一样的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>基于OTP算法的双向认证</title><link>https://sun227454.online/blog/posts/note-android-1f58098cc72f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1f58098cc72f/</guid><description>先举例一个应用场景吧，我们应该都用U盾，或者将军令这种生成动态密钥的工具，其实它内部就是基于OTP算法来实现的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AOP</title><link>https://sun227454.online/blog/posts/note-android-1f5c2a767c48/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-1f5c2a767c48/</guid><description>AOP(Aspect Oriented Programing),面向切面编程。 是OOP(Object Oriented Programing)面向对象编程的延续。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>简介</title><link>https://sun227454.online/blog/posts/note-android-2042c96f9a5c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2042c96f9a5c/</guid><description>除了前面讲的Apple的HLS，还有Adobe HTTP Dynamic Streaming (HDS)、Microsoft Smooth Streaming (MSS)。他们各家的协议原理大致相同，但是格式又不一样，也无法兼容，所以Moving Picture Expert Group (MPEG) 就把大家叫到了一起，呼吁大家一起来制定一个标准的，然后就</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>播放器性能优化</title><link>https://sun227454.online/blog/posts/note-android-210f5b100e8d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-210f5b100e8d/</guid><description>通过软解可以支持，但是CPU会占用较高，而且发热和耗电。 对解码能力进行评估，来通过机型打分控制是否使用H265以及是用360p还是480p。但是H265全部切换成本较高，牵扯到转码成本以及存储成本，所以可以只对热点的视频去进行编码，这样少量的视频就可以带来可观的效果。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Vim使用教程</title><link>https://sun227454.online/blog/posts/note-android-21c0d6478069/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-21c0d6478069/</guid><description>Better, Stronger, Faster</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Dagger2与MVP(八)</title><link>https://sun227454.online/blog/posts/note-android-2236aa461c1a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2236aa461c1a/</guid><description>前面介绍了Dagger2的基本知识，并且通过示例代码演示了如何在Android开发中去使用Dagger2。 Dagger2可以减少很多模板化的代码，更易于测试、降低耦合度，创建可复用可交换的模板。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Selector使用</title><link>https://sun227454.online/blog/posts/note-android-2266cc510fb6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2266cc510fb6/</guid><description>Selector使其能够在不同的状态下更换某个View的背景图片。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>9.OpenGL ES纹理</title><link>https://sun227454.online/blog/posts/note-android-22cff3a5ed84/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-22cff3a5ed84/</guid><description>现实生活中，纹理（Texture）最通常的作用是装饰 3D 物体，它就像贴纸一样贴在物体表面，丰富了物体的表面和细节。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.简介</title><link>https://sun227454.online/blog/posts/note-android-239adb0834c5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-239adb0834c5/</guid><description>基础组件提供了横向功能，例如向后兼容性、测试以及Kotlin语言的支持。它包含如下组件库:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android基础面试题</title><link>https://sun227454.online/blog/posts/note-android-23cc742379da/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-23cc742379da/</guid><description>没有删这套题，虽然都是网上找的，在刚开始找工作的时候这套题帮了我很多，那时候Android刚起步，很多家都是这一套面试题，我都是直接去了不看题哗哗一顿就写完了，哈哈 现在估计没有公司会用这种笔试题了。还是留下来吧，回忆一下。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>11.播放组件封装</title><link>https://sun227454.online/blog/posts/note-android-23ed1ab68dda/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-23ed1ab68dda/</guid><description>通常播放器的开发都设计成一定程度的分层，将视频帧的显示、进度条、控制键、音量调节、预览图、字幕、弹幕、频道列表、后续播放推荐等截面功能与音视频播放进行剥离，以使代码模块化，架构清晰。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>JNI_C语言基础</title><link>https://sun227454.online/blog/posts/note-android-248c957cf965/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-248c957cf965/</guid><description>JNI_C语言基础，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>反编译</title><link>https://sun227454.online/blog/posts/note-android-24c8be4989c7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-24c8be4989c7/</guid><description>修改代码及资源，最好的方式是修改apktool反编译后的资源级smali代码。JD-GUI查看的java代码不适宜修改，因为修改后还需要重新转换成smali，才能重新编译打包会apk。 至于smali的修改，则要学习smali语言的语法了，smali是一种类似汇编语言的语言，具体语法可自行上网学习。 在smali文件夹中找到与具体类对应的smali文件，然后</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>八种排序算法</title><link>https://sun227454.online/blog/posts/note-android-25b2388003c6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-25b2388003c6/</guid><description>基本思想:在要排序的一组数中，假设前面(n-1)[n&gt;=2]个数已经是排好顺序的，现在要把第n个数插到前面的有序数中，使得这n个数也是排好顺序的。如此反复循环，直到全部排好顺序。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.FFmpeg简介</title><link>https://sun227454.online/blog/posts/note-android-2681387cb853/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2681387cb853/</guid><description>FFmpeg是一个开源免费跨平台的视频和音频流方案，属于自由软件，采用LGPL或GPL许可证（依据你选择的组件）。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec，为了保证高可移植性和编解码质量，libavcodec里很多codec都是从头开发的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第一弹)</title><link>https://sun227454.online/blog/posts/note-android-26e314c75da8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-26e314c75da8/</guid><description>本文为转载文章：原文地址：https://github.com/CharonChui/AndroidNote</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>来电监听及录音</title><link>https://sun227454.online/blog/posts/note-android-271a6d6af355/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-271a6d6af355/</guid><description>来电监听及录音，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>打包jar</title><link>https://sun227454.online/blog/posts/note-android-27b26f36b8d4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-27b26f36b8d4/</guid><description>以上便可以开始使用jar包了，简单说一下jar包里面最好是不要有静态资源文件的，因为是访问不到的，如果要访问静态文件需要利用java的反射机制，来获取添加依赖项目的静态资源。当然，如果我们的Library里面有动态库(用c写的so文件)，也是访问不到的，这时我们可以采用aar文件。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android Touch事件分发详解</title><link>https://sun227454.online/blog/posts/note-android-27b7405dfaf6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-27b7405dfaf6/</guid><description>先说一些基本的知识，方便后面分析源码时能更好理解。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>10.GLSurfaceView+MediaPlayer播放视频</title><link>https://sun227454.online/blog/posts/note-android-27fadbe567a7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-27fadbe567a7/</guid><description>平时的视频播放都是使用mediaplayer+textureview或者mediaplayer+surfaceview，但是如果我们要对视频进行一些OpenGL的操作，打个比方说我要在视频播放的时候添加一个滤镜，这个时候就需要用到SurfaceTexture了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第二弹)</title><link>https://sun227454.online/blog/posts/note-android-288b94a8e9e8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-288b94a8e9e8/</guid><description>AndroidStudio使用教程(第二弹)，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>零权限上传数据</title><link>https://sun227454.online/blog/posts/note-android-290eead6d33c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-290eead6d33c/</guid><description>虽然没有权限，但是也可以通过浏览器用Get方式来传递自己的数据，由于这样会打开浏览器，为了防止让用户看到， 所以我们可以再用户锁屏之后开始传递数据，而在用户一解除锁屏我们就回到桌面，这里用KeyguardManager来实现， 即在锁屏的时候键盘不能用，而一旦键盘能用了我们就立马回到桌面</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.Kotlin_简介&amp;变量&amp;类&amp;接口</title><link>https://sun227454.online/blog/posts/note-android-295e8f4b39d0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-295e8f4b39d0/</guid><description>在5月18日谷歌在I/O开发者大会上宣布，将Kotlin语言作为安卓开发的一级编程语言。并且会在Android Studio 3.0版本全面支持Kotlin。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>数据结构</title><link>https://sun227454.online/blog/posts/note-android-29da1950ed39/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-29da1950ed39/</guid><description>结构，简单的理解就是关系，比如分子结构，就是说组成分子的原子之间的排列方式。严格点说，结构是指各个组成部分相互搭配和排列的方式。在现实世界中， 不同数据元素之间不是独立的，而是存在特定的关系，我们将这些关系称为结构。那数据结构是什么？</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>H265</title><link>https://sun227454.online/blog/posts/note-android-2aca714ae1a0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2aca714ae1a0/</guid><description>H265，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android MOC</title><link>https://sun227454.online/blog/posts/note-android-2b5fb4a71d06/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2b5fb4a71d06/</guid><description>Android MOC，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>14.findViewById的过去及未来</title><link>https://sun227454.online/blog/posts/note-android-2d96e713b4ab/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2d96e713b4ab/</guid><description>We have lots of alternatives for this, and you may wonder why do we need another solution. Let’s compare the different solutions based on these criteria: null-safety, compile-time</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>duplicate class冲突解决</title><link>https://sun227454.online/blog/posts/note-android-2dec24b5ae2f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2dec24b5ae2f/</guid><description>今天在开发过程中遇到了这个错误。提示Base64Encoder在com.x.x.x.x:b64encode:1.0.8和b64encode_v2_0.jar里面重复了，一个是1.0.8版本一个是2.0版本。 那么这里要做的就是exclude一个就可以。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>自定义view——CameraView</title><link>https://sun227454.online/blog/posts/note-android-2e0ffc0d2046/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2e0ffc0d2046/</guid><description>今天我们我们同样是要做一个自定义view，不过和其他自定义view稍有不同的是，其他的自定view可能继承自的是view，或者viewGroup，今天写的自定义view继承自的是SurfaceView，它具有的功能是，可以直接在view上看到我们自己，并且可以获取到这个流，可以把流编码存储，也可以上传至服务器，当然我这里面只演示了将流中的一帧取出来，然后转乘</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Dagger2原理分析(九)</title><link>https://sun227454.online/blog/posts/note-android-2e1463874d32/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2e1463874d32/</guid><description>在看这篇文章前，强烈建议看一下注解使用 因为这篇文章只是分析Dagger2自动生成的代码，有关如何把注解生成代码的过程，就需要通过上面这篇文章来看了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2.UML简介</title><link>https://sun227454.online/blog/posts/note-android-2f180448a9bc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2f180448a9bc/</guid><description>推荐使用Visual Paradigm，如果是非商业用途可以下载社区版，免费使用</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>超级管理员(DevicePoliceManager)</title><link>https://sun227454.online/blog/posts/note-android-2f1a28b936b0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2f1a28b936b0/</guid><description>Public interface for managing policies enforced on a device. Most clients of this class must have published a DeviceAdminReceiver that the user has currently enabled.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>什么是服务？</title><link>https://sun227454.online/blog/posts/note-android-2f1acb8d6879/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2f1acb8d6879/</guid><description>Service是一个应用程序组件，它能够在后台执行一些耗时较长的操作，并且不提供用户界面。服务能被其它应用程序的组件启动，即使用户切换到另外的应用时还能保持后台运行。此外，应用程序组件还能与服务绑定，并与服务进行交互，甚至能进行进程间通信（IPC）。 比如，服务可以处理网络传输、音乐播放、执行文件I/O、或者与content provider进行交互，所有这</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>P2P</title><link>https://sun227454.online/blog/posts/note-android-2f87e200c1c5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-2f87e200c1c5/</guid><description>P2P(Peer to Peer):点对点通信或称为对等联网。每个用户既下载数据，又作为服务器存储数据 并供其他用户下载。他的本质，是一种硬盘的共享，是把每个人电脑上的一部分硬盘，拿出来与其他人共享。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>HttpClient执行Get和Post请求</title><link>https://sun227454.online/blog/posts/note-android-30a7959090e4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-30a7959090e4/</guid><description>HttpClient执行Get和Post请求，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第六弹)</title><link>https://sun227454.online/blog/posts/note-android-315025a0a30f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-315025a0a30f/</guid><description>本文为转载文章：原文地址：https://github.com/CharonChui/AndroidNote</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>HTTP与HTTPS的区别</title><link>https://sun227454.online/blog/posts/note-android-327ac029af9f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-327ac029af9f/</guid><description>超文本传输协议，是一个基于请求与响应，无状态的，应用层的协议，常基于TCP/IP协议传输数据，互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Dagger2之dagger-android(七)</title><link>https://sun227454.online/blog/posts/note-android-32938fb704fa/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-32938fb704fa/</guid><description>在Dagger2的官网上说如果你要使用dagger.android里面的东西，就需要添加dagger-android相关的依赖。那这里面都提供了些什么呢？</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android四大组件之ContentProvider</title><link>https://sun227454.online/blog/posts/note-android-3382ca2d0ebd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3382ca2d0ebd/</guid><description>安卓应用程序默认是无法获取到其他程序的数据，这是安卓安全学的基石(沙盒原理)。但是经常我们需要给其他应用分享数据，内容提供者就是一个这种可以分享数据给其他应用的接口。 可以简单的理解为，内容提供者就是一个可以在不同应用程序间共享数据的组件，相当于一个中间人，一个程序把数据暴露给这个中间人，另一个则通过这个中间人获取相应的数据.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第三弹)</title><link>https://sun227454.online/blog/posts/note-android-3447a88e9cb6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3447a88e9cb6/</guid><description>熟悉了基本的使用之后，可能关心的就是版本控制了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>开发中Log的管理</title><link>https://sun227454.online/blog/posts/note-android-3515373a5972/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3515373a5972/</guid><description>LogUtil是一个管理Log打印的工具类。在开发的不同阶段中通过对该类的控制来实现不同级别Log的打印。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Fragment专题</title><link>https://sun227454.online/blog/posts/note-android-3517ac623bf1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3517ac623bf1/</guid><description>A Fragment is a piece of an application&apos;s user interface or behavior that can be placed in an Activity. Interaction with fragments is done through FragmentManager, which can be obt</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio提高Build速度</title><link>https://sun227454.online/blog/posts/note-android-356434085446/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-356434085446/</guid><description>Android Studio自动发布以来，凭借其强大的功能，很快让开发者都投入到它的阵营下。但是也问题，就是Build速度太慢了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio中进行ndk开发</title><link>https://sun227454.online/blog/posts/note-android-35a2dcfeda3c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-35a2dcfeda3c/</guid><description>AndroidStudio中进行ndk开发，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC——VideoFileRenderer解析</title><link>https://sun227454.online/blog/posts/note-android-35b1e62f8e6f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-35b1e62f8e6f/</guid><description>WebRTC——VideoFileRenderer解析，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>DNS及HTTPDNS</title><link>https://sun227454.online/blog/posts/note-android-3702b1f91e5c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3702b1f91e5c/</guid><description>DNS（Domain Name System):域名系统,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库，能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前，对于每一级域名长度的限制是63个字符，域名总长度则不能超过253个字符。它的作用是根据域名查出IP地址，它是HTTP协议的前提，只有将域名正确的解析成IP地址后，后</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>5.FFmpeg核心功能</title><link>https://sun227454.online/blog/posts/note-android-37a7274daee2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-37a7274daee2/</guid><description>FFmpeg共有8个可信开发库:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android性能优化</title><link>https://sun227454.online/blog/posts/note-android-37ad9c417011/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-37ad9c417011/</guid><description>如果应用程序需要使用Service来执行后台任务的话，只有当任务正在执行的时候才应该让Service运行起来。当启动一个Service时，系统会倾向于将这个Service所依赖的进程进行保留，系统可以在LRUcache当中缓存的进程数量也会减少，导致切换程序的时候耗费更多性能。我们可以使用IntentService，当后台任务执行结束后会自动停止，避免了Se</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>获取位置(LocationManager)</title><link>https://sun227454.online/blog/posts/note-android-38945ea1772b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-38945ea1772b/</guid><description>获取位置(LocationManager)，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1、Handler的由来</title><link>https://sun227454.online/blog/posts/note-android-396f8b6eb269/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-396f8b6eb269/</guid><description>当程序第一次启动的时候，Android会同时启动一条主线程（ Main Thread）来负责处理与UI相关的事件，我们叫做UI线程。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>下拉刷新ListView</title><link>https://sun227454.online/blog/posts/note-android-3a33dce2d74b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3a33dce2d74b/</guid><description>原理：拉刷新ListView无非就是对普通的List View添加一个HeaderView,然后通过对ListView onTouchEvent来获取当前下拉刷新的状态。然后去改变HeaderView的状态。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AsyncTask详解</title><link>https://sun227454.online/blog/posts/note-android-3a45ca3da651/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3a45ca3da651/</guid><description>AsyncTask简单的说其实就是Handler和Thread的结合，就像下面自己写的MyAsyncTask一样，这就是它的基本原理，当然它并不止这么简单。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Dagger2入门demo(二)</title><link>https://sun227454.online/blog/posts/note-android-3a55900408e9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3a55900408e9/</guid><description>这个东西不太好入门，这里就直接用例子上代码了。有关如何添加以来在github上面写的很清楚了，android在build.gradle中进行配置就好了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>5.LiveData简介</title><link>https://sun227454.online/blog/posts/note-android-3a57b5c56bbd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3a57b5c56bbd/</guid><description>ViewModel的主要作用是存放页面所需要的各种数据。我们在示例代码中定义了接口，当数据发生变化时，采用接口的方式实现对页面的通知。对此前面已经做了相关说明，通过接口的方式对页面进行通知是可行的，但如果要观察的数据很多，则需要定义大量的接口，代码会显得十分冗余。为此，Jetpack提供了LiveData组件。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>视频解码之软解与硬解</title><link>https://sun227454.online/blog/posts/note-android-3b38c81318ec/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3b38c81318ec/</guid><description>硬解：从字面意思上理解就是用硬件来进行解码，通过显卡的视频加速功能对高清视频进行解码，很明显就是一个专门的电路板(这样好理解...)来进行视频的解码，是依靠显卡GPU的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>6.Kotlin_多继承问题</title><link>https://sun227454.online/blog/posts/note-android-3b8377b84367/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3b8377b84367/</guid><description>继承和实现是面向对象程序设计中不变的主题。Java是不支持类的多继承的，Kotlin亦是如此。他们为什么要这样设计呢？ 现实中，其实多继承的需求经常会出现，然而类的多继承方式会导致进程关系上语义的混淆。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android导入项目一直在Building的解决方案</title><link>https://sun227454.online/blog/posts/note-android-3bb98bc258f9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3bb98bc258f9/</guid><description>这种问题的发生的场景，一般是因为项目中的gradle的版本，或者sdk的版本我们本地环境中没有，所以需要先下载，然后才能导入，但是下载起来又特别的慢，所以我们需要修改一下待导入项目中用的配置。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Dagger2Android示例代码</title><link>https://sun227454.online/blog/posts/note-android-3bf32eb0b945/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3bf32eb0b945/</guid><description>经过前面的几个部分，基本把Dagger2讲完了，都是通过简单的示例的代码。那这里我们就用开发中具体的部分来进行示例， 这里示例主要是有两个小问题，第一个就是前面我们从例子开始讲的试试直降了@Inject在变量上的使用，没有将去实际的用构造函数使用@Inject来讲解。 还有一个就是Component在使用inject的时候也有两种方式:create()和bu</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>视频封装格式</title><link>https://sun227454.online/blog/posts/note-android-3c27a7dba7af/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3c27a7dba7af/</guid><description>一个完整的视频文件，包括音频、视频和基础元信息，我们常见的视频文件如mp4、mov、flv、avi、rmvb等视频文件，就是一个容器的封装，里面包含了音频和视频两部分，并且都是通过一些特定的编码算法，进行编码压缩过后的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ReactNative利用CodePush实现热更新</title><link>https://sun227454.online/blog/posts/note-android-3d8827a4cfbb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3d8827a4cfbb/</guid><description>ReactNative的优势之一就是它可以进行热更新，需要热更新的应用场景有很多种，例如：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>清单文件</title><link>https://sun227454.online/blog/posts/note-android-3d94efff2f3d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3d94efff2f3d/</guid><description>AndroidManifest.xml 配置清单文件是 每个 Android 应用的配置中心，系统在安装和运行应用时，首先会读取它。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC——AudioTrack-VideoTrack解析</title><link>https://sun227454.online/blog/posts/note-android-3defacbb8adf/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3defacbb8adf/</guid><description>WebRTC——AudioTrack-VideoTrack解析，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android 内存泄漏总结</title><link>https://sun227454.online/blog/posts/note-android-3e60ff0ef3b7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3e60ff0ef3b7/</guid><description>** 本文为转载的优质好文，原文链接</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>5.I/O</title><link>https://sun227454.online/blog/posts/note-android-3e7de9bf5238/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3e7de9bf5238/</guid><description>输入输出的目的，简单来说，就是提供一个人机交互的通道，使得人与计算机能够进行沟通。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>volley-retrofit-okhttp之我们该如何选择网路框架</title><link>https://sun227454.online/blog/posts/note-android-3e82896b19b3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3e82896b19b3/</guid><description>说起Volley、Retrofit、OkHttp相信基本没有人不知道。当然这里把OkHttp放进来可能有些不恰当。 因为OkHttp的官方介绍是An HTTP+HTTP/2 client for Android and Java applications。 也就是说OkHttp是基于http协议封装的一套请求客户端。它是真正的网络请求部分， 与HttpCli</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>音频编码格式</title><link>https://sun227454.online/blog/posts/note-android-3ea645452069/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-3ea645452069/</guid><description>多媒体要想发声，就得加个喇叭，但是喇叭是靠模拟信号驱动的，所以在喇叭之前需要增加一个数字信号转模拟信号的“解码器”， 将数字信号转换为模拟信号。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>18.其他</title><link>https://sun227454.online/blog/posts/note-android-4013726414bc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-4013726414bc/</guid><description>视觉暂留： 人眼在观察景物时，光信号传入大脑神经，需经过一段短暂的时间，光的作用结束后，视觉形象并不立即消失，这种残留的视觉称“后像”，视觉的这一现象则被称为“视觉暂留”。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RMB大小写转换</title><link>https://sun227454.online/blog/posts/note-android-423b871bc77d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-423b871bc77d/</guid><description>RMB大小写转换，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RxJava+retrofit2实现安卓中网络操作</title><link>https://sun227454.online/blog/posts/note-android-427d5cff4256/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-427d5cff4256/</guid><description>#RxJava +retrofit2实现安卓中网络操作~</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2.Android线程间通信之Handler消息机制</title><link>https://sun227454.online/blog/posts/note-android-42fd727b71cb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-42fd727b71cb/</guid><description>Binder/Socket用于进程间通信，而Handler消息机制用于同进程的线程间通信，Handler消息机制是由一组MessageQueue、Message、Looper、Handler共同组成的，为了方便且称之为Handler消息机制。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>JSON的定义</title><link>https://sun227454.online/blog/posts/note-android-43cb1778be2a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-43cb1778be2a/</guid><description>一种轻量级的数据交换格式，具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案（有点类似于正则表达式 ，获得了当今大部分语言的支持），从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式，同时也具备类似于C语言体系的行为。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CDN及PCDN</title><link>https://sun227454.online/blog/posts/note-android-440189355808/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-440189355808/</guid><description>CDN(Content Delivery Network或Content Ddistribute Network):内容分发网络也称为内容传送网络。 是指一种透过互联网互相连接的电脑网络系统，利用最靠近每位用户的服务器，更快、更可靠地将音乐、图片、影片、 应用程序及其他文件发送给用户，来提供高性能、可扩展性及低成本的网络内容传递给用户。 这个概念始于1996</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>黑名单挂断电话及删除电话记录</title><link>https://sun227454.online/blog/posts/note-android-44362ad3e0a5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-44362ad3e0a5/</guid><description>黑名单挂断电话及删除电话记录，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC-Android源码解析</title><link>https://sun227454.online/blog/posts/note-android-446a7b626849/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-446a7b626849/</guid><description>目前博主打算先对WebRTC-Android-sdk进行解析，目前不会涉及到底层C++的知识。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android中弱引用与软引用</title><link>https://sun227454.online/blog/posts/note-android-44a20d0d1689/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-44a20d0d1689/</guid><description>在Android应用的开发中，为了防止内存溢出，在处理一些占用内存大而且声明周期较长的对象时候，可以尽量应用软引用和弱引用技术。 下面以使用软引用为例来详细说明。弱引用的使用方式与软引用是类似的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>竖着的Seekbar</title><link>https://sun227454.online/blog/posts/note-android-44e1ca06b294/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-44e1ca06b294/</guid><description>视频播放器页面音量控制Seekbar实现竖直的效果。竖直只是将Seekbar转了90度或-90度，我们可以把画布转一个角度，然后交给系统去画， 具体的做法就是重写ondraw()调整画布，然后调用super.onDraw()。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>对象</title><link>https://sun227454.online/blog/posts/note-android-450349d34846/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-450349d34846/</guid><description>旧方式（已废弃）：直接通过控件 id 访问</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>文件上传</title><link>https://sun227454.online/blog/posts/note-android-456119736560/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-456119736560/</guid><description>文件上传，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>HTTP FLV</title><link>https://sun227454.online/blog/posts/note-android-459d3ac3dbae/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-459d3ac3dbae/</guid><description>在说HTTP-FLV之前，我们有必要对FLV adobe 官方标准有个认识，因为HTTP-FLV协议中封装格式使用的是FLV。FLV文件格式标准是写F4V/FLV fileformat spec v10.1的附录E里面的FLVFile Format。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>3.Android Framework框架</title><link>https://sun227454.online/blog/posts/note-android-46aa4df95a7d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-46aa4df95a7d/</guid><description>Framework定义了客户端组件和服务端组件功能及接口。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>3.热修复_addAssetPath不同版本区别原因(三)</title><link>https://sun227454.online/blog/posts/note-android-46e2af45a734/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-46e2af45a734/</guid><description>在做热修复功能时Java层通过反射调用addAssetPath在Android5.0及以上系统没有问题，在Android 4.x版本找不到资源。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>数据加密及解密</title><link>https://sun227454.online/blog/posts/note-android-471e46232277/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-471e46232277/</guid><description>加密incode：对明文(plaintext可读懂的信息)进行翻译，使用不同的算法对明文以代码形式(密码)实施加密转换成密文(ciphertext)。 该过程的逆过程称为解密(descode)，即将该编码信息转化为明文的过程。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.MaterialToolbar简介</title><link>https://sun227454.online/blog/posts/note-android-4787088f1061/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-4787088f1061/</guid><description>从Android 3.0(API 11)开始，所有使用默认主题背景的Activity均使用ActionBar作为应用栏。不过，经过不同Android版本的演化，原生ActionBar的行为会有所不同，具体取决于设备用的是哪个版本的Android系统。所以Android提供了Toolbar，可以让这些功能在任何设备上保持一致。 所以，你应用使用支持库中的Too</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ARouter</title><link>https://sun227454.online/blog/posts/note-android-48164da0958c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-48164da0958c/</guid><description>ARouter 一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>屏幕适配</title><link>https://sun227454.online/blog/posts/note-android-49b14f6ef3ef/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-49b14f6ef3ef/</guid><description>Px不同设备显示效果相同。这里的“相同”是指像素数不会变，比如指定UI长度是100px，那不管分辨率是多少UI长度都是100px。 也正是因为如此才造成了UI在小分辨率设备上被放大而失真，在大分辨率上被缩小。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android基础面试题</title><link>https://sun227454.online/blog/posts/note-android-49cfed3ad60f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-49cfed3ad60f/</guid><description>本文为转载文章：原文地址：https://github.com/CharonChui/AndroidNote</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Jetpack Compose简介</title><link>https://sun227454.online/blog/posts/note-android-4a2bb255f8fc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-4a2bb255f8fc/</guid><description>Jetpack Compose是用于构建原生Android UI的现代工具包。 Jetpack Compose使用更少的代码，强大的工具和直观的Kotlin API，简化并加速了Android上的UI开发。这是Android Developers 官网对它的描述。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC——AudioRenderer解析</title><link>https://sun227454.online/blog/posts/note-android-4a89b510e191/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-4a89b510e191/</guid><description>WebRTC——AudioRenderer解析，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Ant打包</title><link>https://sun227454.online/blog/posts/note-android-4bbcc48a834e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-4bbcc48a834e/</guid><description>key.store=keystore.keystore //把签名放到根目录中 key.alias=tencent key.store.password=1234 key.alias.password=1234 ```</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC——AudioSource、VideoSource解析</title><link>https://sun227454.online/blog/posts/note-android-4c06265fe3c9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-4c06265fe3c9/</guid><description>WebRTC——AudioSource、VideoSource解析，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>6.视频播放简介</title><link>https://sun227454.online/blog/posts/note-android-4cb23ae6ab46/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-4cb23ae6ab46/</guid><description>解封装是指将输入的封装格式的数据，分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类有很多，例如MP4、MKV、RMVB、TS、FLV、AVI等，其作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如FLV格式的数据，经过解封装操作后，输出H.264编码的视频码流和AAC编码的音频码流。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>深入了解MV模式</title><link>https://sun227454.online/blog/posts/note-android-4cd12d9d20f2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-4cd12d9d20f2/</guid><description>无论是哪种MV**系列，都涉及到了Model和View，如果单纯的只有Model和View，他们是没有办法一起协同工作的，所以就有了各种MV..的设计模式</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>自定义RadioGroup</title><link>https://sun227454.online/blog/posts/note-android-4d30ed0ac489/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-4d30ed0ac489/</guid><description>首先分析一下，就是在系统自带的RadioGroup中，如果我们嵌套了，LinearLayout的话，就会失效，因为系统的RadioGroup没有考虑到这种情况，所以我们需要自定义一个Group，初步的打算是继承自LinearLayout。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>4.CoordinatorLayout简介</title><link>https://sun227454.online/blog/posts/note-android-4d45711d5a8a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-4d45711d5a8a/</guid><description>官方文档的第一句话就非常醒目：CoordinatorLayout is a super-powered FrameLayout,非常直白，CoordinatorLayout继承于ViewGroup,它就是一个超级强大Framelayout。说白了就是可以通过Behavior协调子View 。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>读取用户logcat日志</title><link>https://sun227454.online/blog/posts/note-android-4e6091b10cc3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-4e6091b10cc3/</guid><description>读取用户logcat日志，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ReactNative调试心得</title><link>https://sun227454.online/blog/posts/note-android-4fff430d36c8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-4fff430d36c8/</guid><description>本文出自《React Native学习笔记》系列文章。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>程序的启动、卸载和分享</title><link>https://sun227454.online/blog/posts/note-android-53da564a609a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-53da564a609a/</guid><description>程序的启动、卸载和分享，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ListView性能优化</title><link>https://sun227454.online/blog/posts/note-android-53f0a9661213/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-53f0a9661213/</guid><description>重用了convertView，很大程度上的减少了内存的消耗。通过判断convertView是否为null，是的话就需要产生一个视图出来，然后给这个视图数据，最后将这个视图返回给底层，呈献给用户。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>4.ViewModel简介</title><link>https://sun227454.online/blog/posts/note-android-54a37c0aca00/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-54a37c0aca00/</guid><description>Android系统提供控件，比如Activity和Fragment，这些控件都是具有生命周期方法，这些生命周期方法被系统调用。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>任务管理器(ActivityManager)</title><link>https://sun227454.online/blog/posts/note-android-54bb9edd483d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-54bb9edd483d/</guid><description>Android中ActivityManager类似于Windows下的任务管理器，能得到正在运行程序的内容等信息</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>adb logcat使用简介</title><link>https://sun227454.online/blog/posts/note-android-553ae814dcfb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-553ae814dcfb/</guid><description>得有半年没写日记了，今天不太忙，抽空写一个简单的入门，因为很长时间没用了，最近用起来发现已经忘了.....</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>9.PackageManagerService简介</title><link>https://sun227454.online/blog/posts/note-android-5562652a431b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-5562652a431b/</guid><description>安装及卸载程序的操作都是由PmS完成，安装程序的过程包括在程序目录下创建以包名称命名的程序文件、创建程序数据目录，以及把程序信息保存到相关的配置文件packages.xml中，卸载则是一个相反的操作。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Jetpack Compose_Modifier</title><link>https://sun227454.online/blog/posts/note-android-557b47ce40fb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-557b47ce40fb/</guid><description>在传统开发中，使用XML文件来描述组件的样式，而Jetpack Compose设计了一个精妙的东西，它叫作Modifier。Modifier允许我们通过链式调用的写法来为组件应用一系列的样式设置，如边距、字体、位移等。在Compose中，每个基础的Composable组件都有一个modifier参数，通过传入自定义的Modifier来修改组件的样式。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>自定义View详解</title><link>https://sun227454.online/blog/posts/note-android-57e323b8097c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-57e323b8097c/</guid><description>虽然之前也分析过View绘制过程，但是如果让我自己继承ViewGroup然后自己重新onMeasure,onLayout,onDraw方法自定义View我还是会头疼。今天索性来系统的学习下。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第五弹)</title><link>https://sun227454.online/blog/posts/note-android-5958948315a7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-5958948315a7/</guid><description>关于如何创建Project这里就不说了， 默认创建的Project中有一个app的Module。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC——PeerConnection-java解析</title><link>https://sun227454.online/blog/posts/note-android-5a67ea434fd0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-5a67ea434fd0/</guid><description>以上便是，我对PeerConnection源码的解析，转载请注明出处:linsir.top，我的gitHub地址，欢迎star，follow~</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android推送实现原理</title><link>https://sun227454.online/blog/posts/note-android-5b8015920c33/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-5b8015920c33/</guid><description>android系统的推送和iOS的推送有什么区别：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>fMP4格式详解</title><link>https://sun227454.online/blog/posts/note-android-5bc12ab9e586/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-5bc12ab9e586/</guid><description>MP4文件的基本单元是“box”，这些box既可以包括data，也可以包括metadata。MP4文件标准允许多种方式来组织data box和metadata box。将metadata放在data之前，客户端应用程序可以在播放video/audio之前获得更多的关于video/audio的信息，因此这种方式在大多数的多媒体应用场景都是比较有用的。但是，在流</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>自定义控件</title><link>https://sun227454.online/blog/posts/note-android-5c165a05eaca/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-5c165a05eaca/</guid><description>配置完成后会自动在R文件中生产对应的R.styleable内部类</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Handler内存泄漏分析及解决</title><link>https://sun227454.online/blog/posts/note-android-5d078ddc8bc9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-5d078ddc8bc9/</guid><description>首先，请浏览下面这段handler代码：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android开发中的MVP模式详解</title><link>https://sun227454.online/blog/posts/note-android-5d15c5e264bd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-5d15c5e264bd/</guid><description>在Android开发中，如果不注重架构的话，Activity类就会变得愈发庞大。这是因为在Android开发中View和其他的线程可以共存于Activity内。那最大的问题是什么呢？ 其实就是Activity中同时存在业务逻辑和UI逻辑。这导致增加了单元测试和维护的成本。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Retrofit详解(上)</title><link>https://sun227454.online/blog/posts/note-android-5d742ae611a2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-5d742ae611a2/</guid><description>之前写过一篇文章volley-retrofit-okhttp之我们该如何选择网路框架来分析Volley与Retrofit之间的区别。之前一直用Volley比较多。但是随着Rx系列的走红，目前越来越多的项目使用RxJava+Retrofit这一黄金组合。而且Retrofit使用注解的方式比较方便以及2.x版本的提示让Retrofit更加完善，今天简单的来学习记</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>自定义状态栏通知</title><link>https://sun227454.online/blog/posts/note-android-5d97c78afcc6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-5d97c78afcc6/</guid><description>状态栏通知布局 custom_notification.xml</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>BroadcastReceiver安全问题</title><link>https://sun227454.online/blog/posts/note-android-5df519819fa7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-5df519819fa7/</guid><description>BroadcastReceiver设计的初衷是从全局考虑可以方便应用程序和系统、应用程序之间、应用程序内的通信，所以对单个应用程序而言BroadcastReceiver是存在安全性问题的(恶意程序脚本不断的去发送你所接收的广播)</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>HttpURLConnection与HttpClient</title><link>https://sun227454.online/blog/posts/note-android-5fcc22a6a813/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-5fcc22a6a813/</guid><description>一般对于API请求返回的数据大多是Json类的字符串，Gzip压缩可以使数据大小大幅降低。 Retrofit及Volley框架默认在Android Gingerbread(API 9)及以上都是用HttpURLConnection，9以下用HttpClient。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android卸载反馈</title><link>https://sun227454.online/blog/posts/note-android-602720e42549/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-602720e42549/</guid><description>最初记得是在360安全卫士中出现的，在手机上卸载他的应用之后浏览器就会弹出一个反馈页面，让用户进行反馈，感觉这种功能对于产品改进特别有帮助。 但是仔细一想该怎么去实现却犯愁了，最开始想这也简单啊，不就是监听下自身被卸载就可以了，应该系统会有卸载的广播，可惜没有。甚至其他的一些 方法也是不行的，因为你程序都被卸载了，你的代码怎么会执行呢？皮之不存，毛将焉附。那</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>TS</title><link>https://sun227454.online/blog/posts/note-android-605ab9d8b387/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-605ab9d8b387/</guid><description>TS的全称为MPEG2-TS，TS即Transport Stream的缩写。它是分包发送的，每一个包长188字节（还有192和204字节的包）。包的结构为，包头4字节（第一个字节为0x47），负载为184字节。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Activity界面绘制过程详解</title><link>https://sun227454.online/blog/posts/note-android-60f26bcd3e2c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-60f26bcd3e2c/</guid><description>设置界面首先就是Activity.setContentView()方法：我们先看一下他的源码：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.OpenCV简介</title><link>https://sun227454.online/blog/posts/note-android-610b566b3385/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-610b566b3385/</guid><description>OpenCV是一个基于Apache2.0许可（开源）发行的跨平台计算机视觉和机器学习软件库，可以运行在Linux、Windows、Android和Mac OS操作系统上。 [1] 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成，同时提供了Python、Ruby、MATLAB等语言的接口，实现了图像处理和计算机视觉方面的很多通用算法。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>HLS协议</title><link>https://sun227454.online/blog/posts/note-android-6159235cd3e2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6159235cd3e2/</guid><description>HLS(HTTP Live Streaming)协议：2009年由苹果公司实现的基于HTTP的流媒体传输协议，可实现流媒体的直播和点播。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载，每次只下载一些。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RxJava详解之执行原理(四)</title><link>https://sun227454.online/blog/posts/note-android-619062fee5c1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-619062fee5c1/</guid><description>前面几篇文章介绍了RxJava的基本使用，也说了RxJava的优缺点。下面我们就从源码的角度去分析一下RxJava的原理，以及如何进行 线程切换和导致内存泄漏的原因。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>8.PagingLibrary简介</title><link>https://sun227454.online/blog/posts/note-android-623bff03bdaa/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-623bff03bdaa/</guid><description>8.PagingLibrary简介，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>开发中异常的处理</title><link>https://sun227454.online/blog/posts/note-android-63e3703fef37/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-63e3703fef37/</guid><description>开发中异常的处理，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>12.FBO</title><link>https://sun227454.online/blog/posts/note-android-64991e74a28e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-64991e74a28e/</guid><description>EGL 是 OpenGL ES 和本地窗口系统（Native Window System）之间的通信接口，它的主要作用： 与设备的原生窗口系统通信；</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AudioTrack简介</title><link>https://sun227454.online/blog/posts/note-android-64b96b5fe437/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-64b96b5fe437/</guid><description>Android系统提供了三种播放音频文件的方式:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>OOM问题分析</title><link>https://sun227454.online/blog/posts/note-android-64bdf129dbae/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-64bdf129dbae/</guid><description>OOM(OutOfMemoryError)，最近线上版本出现了大量线程OOM的crash，尤其是华为Android 9.0系统的手机，占总OOM量的85%左右。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>自定义view——sideslipListView</title><link>https://sun227454.online/blog/posts/note-android-6536f00cc268/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6536f00cc268/</guid><description>当一个listView在屏幕上显示的时候，它上面(屏幕上面)发生的各种事件，我们是可以捕捉到的，我们只需要判断一下是不是我们需要的事件，如果是的话，就产生反馈，对事件进行处理，否则就不处理即可。 当我们发现用户是在一个item上面产生了滑动事件，并且是从右向左滑，并且满足我们对有效滑动长度的定义的话，那么这次事件我们就判断是有效的，我们就计算到相应的位置，并</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>4.调度</title><link>https://sun227454.online/blog/posts/note-android-657fd440c085/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-657fd440c085/</guid><description>在多道程序设计系统中，内存中有多个进程，每个进程要么正在处理器上运行，要么正在等待某些事件的发生，比如I/O完成。处理器调度的目的是：以满足系统目标（如响应时间、吞吐率、处理器效率）的方式，把进程分配到一个或多个处理器上执行。处理器（或处理器组）通过执行某个进程而保持忙状态，而此时其他进程处于堵塞状态。典型的调度有四种：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>fMP4 vs ts</title><link>https://sun227454.online/blog/posts/note-android-659b32239a7b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-659b32239a7b/</guid><description>MP4，全称MPEG-4 Part 14，是一种使用MPEG-4的多媒体电脑档案格式，副档名为.mp4，以储存数码音讯及数码视讯为主。另外，MP4又可理解为MP4播放器，MP4播放器是一种集音频、视频、图片浏览、电子书、收音机等于一体的多功能播放器。TS是日本高清摄像机拍摄下进行的封装格式，先来简要介绍一下什么是MPEG2-TS吧。MPEG2格式大家都通过对</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>剑指Offer(下)</title><link>https://sun227454.online/blog/posts/note-android-65a9ea7d156e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-65a9ea7d156e/</guid><description>剑指Offer(上)一共是23道题。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>基础知识</title><link>https://sun227454.online/blog/posts/note-android-66525f07b6a6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-66525f07b6a6/</guid><description>在 Android 开发中，理解项目的整体框架是非常重要的，它帮助你更清晰地构建和组织应用。以下是一个典型 Android 项目的 结构和组件，我将按层次和模块进行解释，以帮助你更好地理解 Android 项目的框架。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>SDK Manager无法更新的问题</title><link>https://sun227454.online/blog/posts/note-android-67a05464fceb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-67a05464fceb/</guid><description>由于伟大的防火墙，大陆访问Google服务会无法连接。不过作为程序猿，一般都会科学上网，所以这都不是事。今天这里说明一下普通情况下SDK Manager无法更新的问题.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Top-K问题</title><link>https://sun227454.online/blog/posts/note-android-687131cdd7e8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-687131cdd7e8/</guid><description>Top-K问题在数据分析中非常普遍的一个问题（在面试中也经常被问到），比如:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>发布library到Maven仓库</title><link>https://sun227454.online/blog/posts/note-android-68f55d266897/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-68f55d266897/</guid><description>在Android Studio中想要使用一些第三方类库的时候非常方便，只需要在build.gradle中加入一行代码就可以了：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Jetpack Compose组件</title><link>https://sun227454.online/blog/posts/note-android-68f687f47c9e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-68f687f47c9e/</guid><description>在很多应用场景中，我们需要在一段文字中对局部内容应用特别格式以示突出，比如一个超链接或者一个电话号码等，此时需要用到AnnotatedString。AnnotatedString是一个数据类，除了文本值，它还包含了一个SpanStyle和ParagraphStyle的Range列表。SpanStyle用于描述在文本中子串的文字样式，ParagraphStyl</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RecyclerView的简介</title><link>https://sun227454.online/blog/posts/note-android-696ae7f04e3a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-696ae7f04e3a/</guid><description>这个是谷歌官方出的控件，使我们可以非常简单的做出列表装的一个控件，当然recyclerview的功能不止这些，它还可以做出瀑布流的效果，这是一个非常强大的控件，内部自带viewholder可以使我们非常简单的完成许多操作，正在一步一步取代listview这个控件，当然它也有一些小的缺点，那就是谷歌官方并没有直接给我写出它的点击事件的接口，但是这并难不倒我们，</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Icon制作</title><link>https://sun227454.online/blog/posts/note-android-6a0346086c8a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6a0346086c8a/</guid><description>图标工厂，一键生成各种分辨率图片</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android动画</title><link>https://sun227454.online/blog/posts/note-android-6b695b85a2e2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6b695b85a2e2/</guid><description>上面所讲的动画都是Android 3.0之前的动画，也就是我们最先熟悉的Frame动画和Tween动画。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>9.Kotlin_androidktx</title><link>https://sun227454.online/blog/posts/note-android-6b6a142a55a3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6b6a142a55a3/</guid><description>相信每一位安卓开发人员对findViewById()这个方法再熟悉不过了，毫无疑问，潜在的bug和脏乱的代码令后续开发无从下手的。 尽管存在一系列的 开源库能够为这个问题带来解决方案，然而对于运行时依赖的库，需要为每一个View注解变量字段。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android报错2</title><link>https://sun227454.online/blog/posts/note-android-6bc90d3dba0f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6bc90d3dba0f/</guid><description>这个错误导致的原因是，我们的AndroidManifest.xml中没有配置，默认的启动项。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>知识大杂烩</title><link>https://sun227454.online/blog/posts/note-android-6bca20911a46/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6bca20911a46/</guid><description>但是会发现对话框上面和下面都有一个小黑背景，这是因为对话框的默认背景是黑色的。那么怎么才让它去掉上面的黑背景呢？</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2.GLSurfaceView简介</title><link>https://sun227454.online/blog/posts/note-android-6bd064b95a2c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6bd064b95a2c/</guid><description>在Android系统中，无论开发者调用什么渲染API，一切内容都会渲染到Surface上。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AAC</title><link>https://sun227454.online/blog/posts/note-android-6bff566fc733/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6bff566fc733/</guid><description>AAC 是高级音频编码（Advanced Audio Coding）的缩写，出现于1997 年，最 初是基于MPEG-2 的音频编码技术，目的是取代MP3 格式。2000 年，MPEG-4 标准出台，AAC 重新集成了其它技术（PS,SBR），为区别于传统的MPEG-2 AAC， 故含有SBR 或PS 特性的AAC 又称为MPEG-4 AAC。 AAC 是新</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Dagger2Lay和Provider(五)</title><link>https://sun227454.online/blog/posts/note-android-6c4eedd3e34c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6c4eedd3e34c/</guid><description>我们再回到之前的例子，现在我们把前面使用单例的部分都去掉，再来继续讲其他的部分。在上面的CoffeeModule中，把每个provideXXX()都添加一句log:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>自定义View —— drawBitmap</title><link>https://sun227454.online/blog/posts/note-android-6c9ca4fea2ac/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6c9ca4fea2ac/</guid><description>drawBitmap是指将一张图片一张图片画在画布上面。这里面调用的：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>多线程断点下载</title><link>https://sun227454.online/blog/posts/note-android-6c9eb3137ea9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6c9eb3137ea9/</guid><description>多线程断点下载，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Dagger2入门demo扩展(三)</title><link>https://sun227454.online/blog/posts/note-android-6ca4ed0ba030/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6ca4ed0ba030/</guid><description>上一篇文章中讲了一个入门的例子，感觉虽然不懂内部怎么实现的，好像大体知道要怎么去用了，理解了每部分都是干什么的，既然都讲了例子了，那就继续用 这个例子讲下如果被依赖的类的构造函数带有参数，我们该怎么去处理？</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>8.Kotlin_协程</title><link>https://sun227454.online/blog/posts/note-android-6ce9b7f04e3a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6ce9b7f04e3a/</guid><description>协程并不是Kotlin提出来的概念，其他的一些编程语言，例如Go、Python等都可以在语言层面上实现协程，甚至是Java，也可以通过使用扩展库来间接的支持协程。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>11.OpenGL ES滤镜</title><link>https://sun227454.online/blog/posts/note-android-6d2464dbbf77/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6d2464dbbf77/</guid><description>给图像添加滤镜本质就是图片处理，也就是对图片的像素进行计算，简单来说，图像处理的方法可以分为三类:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>13.Jetpack MVVM简介</title><link>https://sun227454.online/blog/posts/note-android-6d7c733e3855/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6d7c733e3855/</guid><description>项目地址:android-architecture Google将该项目命名为Android的架构蓝图，我想从名字上已可以看穿一切。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>线程池的原理</title><link>https://sun227454.online/blog/posts/note-android-6db51a20f15c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6db51a20f15c/</guid><description>所谓线程池，就是将多个线程放在一个池子里面（所谓池化技术），然后需要线程的时候不是创建一个线程，而是从线程池里面获取一个可用的线程，然后执行我们的任务。线程池的关键在于它为我们管理了多个线程，我们不需要关心如何创建线程，我们只需要关系我们的核心业务，然后需要线程来执行任务的时候从线程池中获取线程。任务执行完之后线程不会被销毁，而是会被重新放到池子里面，等待机</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ART</title><link>https://sun227454.online/blog/posts/note-android-6de410181616/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6de410181616/</guid><description>ART 代表 Android Runtime，其处理应用程序执行的方式完全不同于 Dalvik，Dalvik 是依靠一个 Just-In-Time (JIT) 编译器去解释字节码。开发者编译后的应用代码需要通过一个解释器在用户的设备上运行，这一机制并不高效，但让应用能更容易在不同硬件和架构上运 行。ART 则完全改变了这套做法，在应用安装时就预编译字节码到机</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>8.TabLayout简介</title><link>https://sun227454.online/blog/posts/note-android-6e253ed46a00/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6e253ed46a00/</guid><description>所有的 Tab 选项卡实例化都是通过 TabLayout.Tab 完成的。你可以通过 TabLayout.newTab()来创建 Tab 对象。你可以通过更改Tab 的setText()、setIcon()分别设置选项卡的文字和 Icon。要显示选项卡 Tab,你必须通过一个方法 addTab(tab)方法将其添加到布局。例如：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>9.BottomNavigation简介</title><link>https://sun227454.online/blog/posts/note-android-6ec7524005e5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6ec7524005e5/</guid><description>9.BottomNavigation简介，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>H264</title><link>https://sun227454.online/blog/posts/note-android-6f2ea90285ab/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6f2ea90285ab/</guid><description>H.264是一种高性能的视频编解码技术。目前国际上制定视频编解码技术的组织有两个，一个是“国际电联”，它制定的标准有H.261、H.263、H.263+等，另一个是“国际标准化组织（ISO）”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。而H.264则是由两个组织联合组建的联合视频组（JVT）共同制定的新数字视频编码标准，所以它既是ITU-T的H</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.Android进程间通信</title><link>https://sun227454.online/blog/posts/note-android-6f498d93281f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6f498d93281f/</guid><description>Binder，英文的意思是别针、回形针。我们经常用别针把两张纸”别“在一起，而在Android中，Binder用于完成进程间通信（IPC），即把多个进程”别“在一起。比如，普通应用程序可以调用音乐播放服务提供的播放、暂停、停止等功能。Binder工作在Linux层面，属于一个驱动，只是这个驱动不需要硬件，或者说其操作的硬件是基于一小段内存。从线程的角度来讲，</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>3.Kotlin_数字&amp;字符串&amp;数组&amp;集合</title><link>https://sun227454.online/blog/posts/note-android-6f62e805acd5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6f62e805acd5/</guid><description>前面介绍了基本语法和编码规范后，接下来学习下基本类型。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>音视频场景</title><link>https://sun227454.online/blog/posts/note-android-6f9028249770/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-6f9028249770/</guid><description>视频点播(Video On Demand, VOD)是个人用户最常用的功能之一，也是许多媒体平台的支柱业务，如国外的Netflix、Hulu和国内的爱奇艺、优酷、腾讯视频、B站等。视频点播的核心在于将媒体传输内容的选择权交给用户，将用户选择的音视频媒体内容通过网络传输到用户的播放器进行播放。视频点播的内容可能来源于专业生产内容(PGC)、用户生产内容(UGC</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>关键帧</title><link>https://sun227454.online/blog/posts/note-android-70cc444e2f3e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-70cc444e2f3e/</guid><description>在H.264协议中定义了3种帧，完整编码的帧叫I帧、参考之前的I帧生成的只对差异部分进行编码的帧叫P帧、还有一种参考前后的帧进行编码的帧叫B帧。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>10.DataStore简介</title><link>https://sun227454.online/blog/posts/note-android-7306fbf2eecc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-7306fbf2eecc/</guid><description>Jetpack DataStore是一种数据存储解决方案，允许您使用协议缓冲区存储键值对或类型化对象。DataStore使用Kotlin协程和Flow以异步、一致的事务方式存储数据。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Parcelable及Serializable</title><link>https://sun227454.online/blog/posts/note-android-730f418c0e21/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-730f418c0e21/</guid><description>在Java中Serializable接口是一个允许将对象转换为字节流(序列化)然后重新构造回对象(反序列化)的标记接口。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC——MediaSource-java解析</title><link>https://sun227454.online/blog/posts/note-android-733bc16ea619/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-733bc16ea619/</guid><description>WebRTC——MediaSource-java解析，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>音量及屏幕亮度调节</title><link>https://sun227454.online/blog/posts/note-android-738b856e4bb4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-738b856e4bb4/</guid><description>音量及屏幕亮度调节，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Dagger2单例(四)</title><link>https://sun227454.online/blog/posts/note-android-73abda09372e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-73abda09372e/</guid><description>我们就继续用前面的例子开始讲了，如果我使用了两个对象:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android报错:Manifest merger failed with multiple errors, see logs</title><link>https://sun227454.online/blog/posts/note-android-73d49a3d304b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-73d49a3d304b/</guid><description>在编写Android代码的时候可能会遇到这样的错误：Manifest merger failed with multiple errors, see logs，但是遇到这样的问题，我们的内心是崩溃的，因为它告诉我们，我们的代码有问题，编译过过去，但是又没有告诉我们问题在哪里，所以我们需要自己找问题。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>热修复实现(二)</title><link>https://sun227454.online/blog/posts/note-android-74c8071be4ba/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-74c8071be4ba/</guid><description>之前也分析过InstantRun的源码，前面也写了一篇热修复实现原理的文章。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>自定义Toast</title><link>https://sun227454.online/blog/posts/note-android-758cee0e7676/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-758cee0e7676/</guid><description>系统Toast提示时不能够进行取消，如果有多个Toast时会很长时间才消失。自定义Toast通过WindowManager来进行手动的控制Toast的显示与隐藏。能有效的解决该问题。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Wifi状态监听</title><link>https://sun227454.online/blog/posts/note-android-75d31fa07a73/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-75d31fa07a73/</guid><description>Wifi状态监听，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Jetpack简介</title><link>https://sun227454.online/blog/posts/note-android-767028e86fd0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-767028e86fd0/</guid><description>JetPack是Google推出的一些库的集合。是Android基础支持库SDK以外的部分。包含了组件、工具、架构方案等...开发者可以自主按需选择接入具体的哪个库。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>动态申请权限库：easypermissions使用与源码解析</title><link>https://sun227454.online/blog/posts/note-android-768d33adffa6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-768d33adffa6/</guid><description>当接触了Android 6.0 7.0 之后，很多人就会发现，单纯的在AndroidManifest.xml中声明权限已经是不好使的了，因为Google为了保护用户的权限，需要应用动态的权限申请。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第四弹)</title><link>https://sun227454.online/blog/posts/note-android-78c9bfaed2a2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-78c9bfaed2a2/</guid><description>本文为转载文章：原文地址：https://github.com/CharonChui/AndroidNote</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>自定义背景</title><link>https://sun227454.online/blog/posts/note-android-795f0618867e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-795f0618867e/</guid><description>自定义背景，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RxJava详解(二)</title><link>https://sun227454.online/blog/posts/note-android-7a41dd97edde/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-7a41dd97edde/</guid><description>上面这一部分，又是介绍、又是Hello World、又是数据变换，但是你会发现然而并没有什么卵用。说好的简洁一点也木有体现出来。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android图片三级缓存</title><link>https://sun227454.online/blog/posts/note-android-7bb84718d6f0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-7bb84718d6f0/</guid><description>现在android应用中不可避免的要使用图片，有些图片是可以变化的，需要每次启动时从网络拉取，这种场景在有广告位的应用以及纯图片应用（比如百度美拍）中比较多。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MVC与MVP及MVVM</title><link>https://sun227454.online/blog/posts/note-android-7c6ddad267fc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-7c6ddad267fc/</guid><description>MVC是一种使用Model View Controller模型-视图-控制器设计创建Web应用程序的模式:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1. LeetCode_两数之和</title><link>https://sun227454.online/blog/posts/note-android-7c73183561e1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-7c73183561e1/</guid><description>给定一个整数数组nums和一个整数目标值target，请你在该数组中找出和为目标值target的那两个整数，并返回它们的数组下标。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android发布sdk到jcenter</title><link>https://sun227454.online/blog/posts/note-android-7cad2e361687/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-7cad2e361687/</guid><description>本文介绍的是通过bintray-release这个插件来上传我们的项目。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>4.Kotlin_表达式&amp;关键字</title><link>https://sun227454.online/blog/posts/note-android-7d4afe601996/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-7d4afe601996/</guid><description>在Kotlin中，if是一个表达式，即它会返回一个值，每个条件分支都隐式地返回其最后一行的表达式的结果，因此无需使用return关键字。因此就不需要三元运算符条件 ? 然后 : 否则，因为普通的if就能胜任这个角色。 if的分支可以是代码块，最后的表达式作为该块的值:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>React/React Native 的ES5 ES6写法对照表</title><link>https://sun227454.online/blog/posts/note-android-7dcc48615044/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-7dcc48615044/</guid><description>很多React/React Native的初学者都被ES6的问题迷惑：各路大神都建议我们直接学习ES6的语法(class Foo extends React.Component)，然而网上搜到的很多教程和例子都是ES5版本的，所以很多人在学习的时候连照猫画虎都不知道怎么做。今天在此整理了一些ES5和ES6的写法对照表，希望大家以后读到ES5的代码，也能通过对</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Retrofit详解(下)</title><link>https://sun227454.online/blog/posts/note-android-7f0c569ba56a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-7f0c569ba56a/</guid><description>上一篇文章介绍了Retrofit的基本使用，接下来我们通过从源码的角度分析一下Retrofit的实现。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2.进程与线程</title><link>https://sun227454.online/blog/posts/note-android-802571a955ba/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-802571a955ba/</guid><description>我们知道I/O操作是耗时的，CPU在执行的一个程序的时候这个程序可能会有一些耗时的操作，而CPU的执行是非常快的，那如果这种情况下，CPU一直等待这个程序执行完耗时的操作再继续执行，就会导致CPU的使用率大大降低，为了提高CPU的使用率，就引入了多道程序设计，也就是说有多个程序执行，当执行到一个程序时如果遇到耗时的操作，那CPU就切换到另一个程序继续执行，等</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ConstraintLaayout简介</title><link>https://sun227454.online/blog/posts/note-android-80682abd136e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-80682abd136e/</guid><description>ConstraintLayout从发布到现在也得有两年的时间了，但是目前在项目中却很少用到他。今天闲下来记录一下，以后可以用来解决一些布局的嵌套问题。 ConstraintLayout是RelativeLayout的升级版本，但是比RelativeLayout更加强调约束，它能让你的布局更加扁平化，一般来说一个界面一层就够了。 而且它可以直接在布局编辑页面通</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第五弹)</title><link>https://sun227454.online/blog/posts/note-android-80e1feb8c54e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-80e1feb8c54e/</guid><description>本文为转载文章：原文地址：https://github.com/CharonChui/AndroidNote</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>4.ActivityManagerService简介</title><link>https://sun227454.online/blog/posts/note-android-81860c0eb761/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-81860c0eb761/</guid><description>ActivityManagerService简称AmS，是Android内核的三大核心功能之一，另外两个是WindowManagerService和View。Activity的管理实际上由三个主要类完成，分别是AmS、ActivityRecord及ActivityTask。AmS内部用ActivityRecord来表示一个Activity对象。Activit</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>JVM架构</title><link>https://sun227454.online/blog/posts/note-android-818ce275418d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-818ce275418d/</guid><description>Java的主要优势在于，它被设计为可在具有WORA(write once, run anywhere)概念的各种平台上运行-“一次编写，可在任何地方运行”。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Activity 生命周期</title><link>https://sun227454.online/blog/posts/note-android-81f85d08ff97/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-81f85d08ff97/</guid><description>在Android 中，Activity 的生命周期交给操作系统统一管理。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Glide简介(下)</title><link>https://sun227454.online/blog/posts/note-android-82a3a4c6a17f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-82a3a4c6a17f/</guid><description>假设我们不想将加载的图片显示到ImageView上，而是只想得到对应的Bitmap。Glide提供了一种可以通过Targets获取Bitmap的方法。 Target和callback没什么不同，都是在通过Glide的异步线程下载和处理后返回结果。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Widget简介</title><link>https://sun227454.online/blog/posts/note-android-838f0afad227/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-838f0afad227/</guid><description>可以使用AppWidgetManager更新Widget中的数据，但这样最短也要半个小时才能更新一次，一般不用他更新，而是自己定义一个服务去更新Widget中的数据。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>SurfaceView与TextureView</title><link>https://sun227454.online/blog/posts/note-android-83dd3dca0536/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-83dd3dca0536/</guid><description>Android系统中图形系统是相当复杂的，包括WindowManager、SurfaceFlinger、OpenGL等。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>7.Kotlin_注解&amp;反射&amp;扩展</title><link>https://sun227454.online/blog/posts/note-android-850592e9aaaa/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-850592e9aaaa/</guid><description>注解是将元数据附加到代码的方法。要声明注解，请将annotation修饰符放在类的前面:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>4. ExoPlayer源码分析之prepare序列图</title><link>https://sun227454.online/blog/posts/note-android-854b1bf5d818/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-854b1bf5d818/</guid><description>上面源码分析完了后，发现一脸懵逼，只是简单的知道了怎么调用的，都是啥，但是并不知道每个类具体是干啥的，以及他们之间的关联关系</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>butterknife源码详解</title><link>https://sun227454.online/blog/posts/note-android-854dafb65b5a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-854dafb65b5a/</guid><description>作为Android开发者，大家肯定都知道大名鼎鼎的butterknife。它大大的提高了开发效率，虽然在很早之前就开始使用它了，但是只知道是通过注解的方式实现的，却一直没有仔细的学习下大牛的代码。最近在学习运行时注解，决定今天来系统的分析下butterknife的实现原理。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>剑指Offer(上)</title><link>https://sun227454.online/blog/posts/note-android-85aabc619718/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-85aabc619718/</guid><description>最近面试，遇到一些笔试题，写不上来，内心是崩溃的，该好好复习下了，所以决定仔细做一遍，随便也整理下，方便大家学习。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>5.AppBarLayout简介</title><link>https://sun227454.online/blog/posts/note-android-85f88f23e975/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-85f88f23e975/</guid><description>AppbarLayout是Material Design的一个控件。它继承自LinearLayout，布局方向为垂直方向。所以你可以把它当成垂直布局的LinearLayout来使用。AppBarLayout是在LinearLayou上加了一些材料设计的概念，它可以让你定制当某个可滚动View的滚动手势发生变化时，其内部的子View实现何种动作。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>页面布局</title><link>https://sun227454.online/blog/posts/note-android-85fe9360a569/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-85fe9360a569/</guid><description>事实上，用XML定义的界面，最后也是要转换为代码来实现布局的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>7.OpenGL ES着色器语言GLSL</title><link>https://sun227454.online/blog/posts/note-android-864fbc9de13d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-864fbc9de13d/</guid><description>三维顶点视为三元组(x,y,z)。现在引入一个新的分量w，得到向量(x,y,z,w)。请先记住以下两点：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>hashCode与equals</title><link>https://sun227454.online/blog/posts/note-android-8726c344d36a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-8726c344d36a/</guid><description>HashSet和HashMap一直都是JDK中最常用的两个类，HashSet要求不能存储相同的对象，HashMap要求不能存储相同的键。 那么Java运行时 环境是如何判断HashSet中相同对象、HashMap中相同键的呢？当存储了相同的东西之后Java运行时环境又将如何来维护呢？在研究这个问题之前，首先说明一下JDK对equals(Object obj)</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>图片加载库比较</title><link>https://sun227454.online/blog/posts/note-android-8735d9c205b9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-8735d9c205b9/</guid><description>Android开发过程中，图片加载基本是每个项目都必备的功能，图片加载的开源项目也比较多，从最老牌的Android-Universal-Image-Loader，到后来Google的Volley再到良心公司Square的Picasso以及FaceBook的Fresco和Google IO开发者大会上推荐的Glide。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RxJava详解之操作符执行原理(五)</title><link>https://sun227454.online/blog/posts/note-android-89295c9f5de4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-89295c9f5de4/</guid><description>上一篇文章介绍了RxJava的执行原理。下面继续介绍一下操作符的执行原理，但是操作符太多了，这里用map来进行说明。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>6.屏幕绘制基础</title><link>https://sun227454.online/blog/posts/note-android-896e6f1583d5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-896e6f1583d5/</guid><description>Android中的GUI系统是客户端和服务端配合的窗口系统，即后台运行了一个绘制服务，每个应用程序都是该服务端的一个客户端，当客户端需要绘制时，首先请求服务端创建一个窗口，然后在窗口中进行具体的视图内容绘制；对于每个客户端而言，他们都感觉自己独占了屏幕，而对于服务端而言，它会给每一个客户端窗口分配不同的层值，并根据用户的交互情况动态改变窗口的层值，这就给用户</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>7.Room简介</title><link>https://sun227454.online/blog/posts/note-android-89965e584b00/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-89965e584b00/</guid><description>Room是一个持久化工具，和ormlite、greenDao类似，都是ORM工具。在开发中我们可以利用Room来操作sqlite数据库。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RTMP</title><link>https://sun227454.online/blog/posts/note-android-8a8877aff7e4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-8a8877aff7e4/</guid><description>Real Time Messaging Protocol(实时消息传送协议):是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。协议基于TCP，是一个协议族(默认端口1935)，包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP 是一种设计用来进行实时数据通信的网络协议，主要用来在Fl</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>内存泄露</title><link>https://sun227454.online/blog/posts/note-android-8ac26f5a2908/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-8ac26f5a2908/</guid><description>内存泄露是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放，从而造成的内存空间的浪费称为内存泄露。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>获取手机及SD卡可用存储空间</title><link>https://sun227454.online/blog/posts/note-android-8bec9bb63eb0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-8bec9bb63eb0/</guid><description>存储设备都是分块的，获取一共有多少块，然后算出来每一块的大小就能得到总的大小</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>14.实例化</title><link>https://sun227454.online/blog/posts/note-android-8bed422cf28d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-8bed422cf28d/</guid><description>实例化(instancing)提供了一种机制，可以只用一个C++/OpenGL调用就告诉显卡渲染一个对象的多个副本。这可以带来显著的性能优势，特别是在绘制有数千甚至数百万个对象时，例如渲染在场地中的许多花朵。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC——IceCandidate、SdpObserver、CameraSession解析</title><link>https://sun227454.online/blog/posts/note-android-8d53d7f5a2ba/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-8d53d7f5a2ba/</guid><description>WebRTC——IceCandidate、SdpObserver、CameraSession解析，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>生产者消费者</title><link>https://sun227454.online/blog/posts/note-android-8d58c5ce921e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-8d58c5ce921e/</guid><description>JDK1.5 中提供了多线程升级解决方案。 将同步Synchronized替换成现实Lock操作。将Object中的wait，notify notifyAll，替换了Condition对象。 该对象可以Lock锁 进行获取。 该示例中，实现了本方只唤醒对方操作。Lock:替代了Synchronized lock unlock newCondition()Co</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第四弹)</title><link>https://sun227454.online/blog/posts/note-android-8ef8154d49ba/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-8ef8154d49ba/</guid><description>讲解到这里我感觉有必要说明一下Gradle。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置，而不是传统的XML.更多介绍请直接参考Gradle或Google搜索。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AVI</title><link>https://sun227454.online/blog/posts/note-android-8f333362a5d6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-8f333362a5d6/</guid><description>音频视频交错(Audio Video Interleaved，AVI)格式，是一门成熟的老技术，尽管国际学术界公认AVI已经属于被淘汰的技术，但是简单易懂的开发API，还在被广泛使用。AVI符合RIFF(ResourceInterchange File Format)文件规范，使用四字符码(Four-Character Code，FOURCC)表征数据类型。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>目前流行的开发组合</title><link>https://sun227454.online/blog/posts/note-android-8fb6dc0e0765/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-8fb6dc0e0765/</guid><description>目前主流的一套框架就是Retrofit + RxJava + RxBinding + Dagger2</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android动画</title><link>https://sun227454.online/blog/posts/note-android-8ff231ec5911/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-8ff231ec5911/</guid><description>本文为转载文章：原文地址：https://github.com/CharonChui/AndroidNote</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>热修复实现(一)</title><link>https://sun227454.online/blog/posts/note-android-905cc37a007e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-905cc37a007e/</guid><description>现在的热修复方案已经有很多了，例如alibaba的dexposed、AndFix以及jasonross的Nuwa等等。原来没有仔细去分析过也没想写这篇文章，但是之前InstantRun详解这篇文章中介绍了Android Studio Instant Run的 实现原理，这不就是活生生的一个热修复吗？ 随心情久久不能平复，我们何不用这种方式来实现。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>HashMap实现原理分析</title><link>https://sun227454.online/blog/posts/note-android-906547933d6d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-906547933d6d/</guid><description>HashMap是Map接口的实现，元素以键值对的方式存储，并且允许使用null建和null值，因为key不允许重复，因此只能有一个键为null。 HashMap被认为是Hashtable的增强版，HashMap是一个非线程安全的容器，如果想构造线程安全的Map考虑使用ConcurrentHashMap。 HashMap是无序的，因为HashMap无法保证内部</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RxJava Android开发全系列</title><link>https://sun227454.online/blog/posts/note-android-90e3eef91bea/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-90e3eef91bea/</guid><description>有关RxJava的介绍请看RxJava详解系列</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RxJava详解之线程调度原理(六)</title><link>https://sun227454.online/blog/posts/note-android-90e467dc1054/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-90e467dc1054/</guid><description>subscribeOn()是指定被观察者事件源的执行线程。 observeOn()是指定观察者的处理时间的线程。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>PopupWindow细节</title><link>https://sun227454.online/blog/posts/note-android-915488c63334/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-915488c63334/</guid><description>A popup window that can be used to display an arbitrary view. The popup windows is a floating container that appears on top of the current activity.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>3.FFmpeg切片</title><link>https://sun227454.online/blog/posts/note-android-91d15a874875/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-91d15a874875/</guid><description>3.FFmpeg切片，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>代码混淆</title><link>https://sun227454.online/blog/posts/note-android-91eaaa357a4d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-91eaaa357a4d/</guid><description>混淆器通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法，对代码进行压缩，优化和混淆。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>音视频基础知识</title><link>https://sun227454.online/blog/posts/note-android-926bd12de731/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-926bd12de731/</guid><description>帧/秒(frames per second)的缩写帧率即每秒显示帧数，帧率表示图形处理器处理场时每秒钟能够更新的次数。高的帧率可以得到更流畅、更逼真的动画。一般来说30fps就是可以接受的，但是将性能提升至60fps则可以明显提升交互感和逼真感，但是一般来说超过75fps一般就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理的能力，因</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>HttpURLConnection详解</title><link>https://sun227454.online/blog/posts/note-android-92ccf7ddc0e0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-92ccf7ddc0e0/</guid><description>之前写过HttpURLConnection与HttpClient的区别及选择。后来又分析了Volley的源码。 最近又遇到了问题，想在Volley中针对HttpURLConnection添加连接池的功能，开始有点懵了，不知道HttpURLConnection要怎么加连接池， 虽然感觉这是没必要的，但是心底确拿不出依据。所以研究下HttpURLConnecti</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>JNI基础</title><link>https://sun227454.online/blog/posts/note-android-92dc4eb54578/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-92dc4eb54578/</guid><description>JNI基础，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>8.WindowManagerService简介</title><link>https://sun227454.online/blog/posts/note-android-93e887238b27/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-93e887238b27/</guid><description>WmS是Android中图形用户接口的引擎，它管理着所有窗口，包括创建、删除窗口以及将某个窗口设置为焦点等。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Picasso-android-load-image-layout</title><link>https://sun227454.online/blog/posts/note-android-940c429d80e6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-940c429d80e6/</guid><description>Picasso-android-load-image-layout，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>7.View绘制原理</title><link>https://sun227454.online/blog/posts/note-android-94345afa8386/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-94345afa8386/</guid><description>界面窗口的根布局是DecorView，该类继承自FrameLayout.说到View绘制，想到的就是从这里入手，而FrameLayout继承自ViewGroup。感觉绘制肯定会在ViewGroup或者View中， 但是木有找到。发现ViewGroup实现ViewParent接口，而ViewParent有一个实现类是ViewRootImpl， ViewGruo</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2. ExoPlayer MediaSource简介</title><link>https://sun227454.online/blog/posts/note-android-947bbf663f33/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-947bbf663f33/</guid><description>在ExoPlayer里每一种媒体资源都是被MediaSource来代表的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>如何让Service常驻内存</title><link>https://sun227454.online/blog/posts/note-android-948e3a44bd42/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-948e3a44bd42/</guid><description>我非常鄙视这种行文，一个公司应该想到如何把产品做的更完善，而不是用这些技术来损害用户的利益，来获取自己肮脏的所谓的功能。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>病毒</title><link>https://sun227454.online/blog/posts/note-android-94d80c95a381/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-94d80c95a381/</guid><description>病毒：一个特殊计算机程序.对于病毒的查杀都是基于特征码的识别.杀毒软件都需要有一个病毒信息的数据库.常用病毒数据库2000万条杀毒引擎: 一套复杂高效的数据库查询算法.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Intent操作</title><link>https://sun227454.online/blog/posts/note-android-94ea08b85a1b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-94ea08b85a1b/</guid><description>Intent 是 Android 中非常重要的一个核心类，它的作用是：在 Android 系统中完成“意图”操作，例如启动活动、传递数据、调用系统功能（如拨号、拍照等）。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>屏幕适配之百分比方案详解</title><link>https://sun227454.online/blog/posts/note-android-950518b7e7be/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-950518b7e7be/</guid><description>Android设备碎片化十分严重，在开发过程中的适配工作也非常很繁琐，有关屏幕适配的介绍请看之前的文章屏幕适配。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC</title><link>https://sun227454.online/blog/posts/note-android-95b322a8f304/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-95b322a8f304/</guid><description>WebRTC，名称源自网页实时通信（Web Real-Time Communication）的缩写，是一个支 持网页浏览器进行实时语音通话或视频聊天的技术，是谷歌2010 年以6820 万美元收购 Global IP Solutions 公司而获得的一项技术。 WebRTC 提供了实时音视频的核心技术，包括音视频的采集、编解码、网络传输、显示 等功能，并且还</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Github个人主页绑定域名</title><link>https://sun227454.online/blog/posts/note-android-95bd01106fa6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-95bd01106fa6/</guid><description>Github虽然很好，可毕竟是免费的，还是有不少限制的。写到这里，特意去看了下Github对免费用户究竟有什么限制。发现除了300M的空间限制（还是所谓软限制），没有其他限制。所以用它来作为博客平台，真是再理想不过了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android音视频开发初级入门篇</title><link>https://sun227454.online/blog/posts/note-android-963a24f9e13e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-963a24f9e13e/</guid><description>在 Android 音视频开发学习思路 里面，我们写到了，想要逐步入门音视频开发，就需要一步步的去学习整理，并积累。本文是音视频开发积累的第一篇。 对应的要学习的内容是：在 Android 平台绘制一张图片，使用至少 3 种不同的 API，ImageView，SurfaceView，自定义 View。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Bitmap优化</title><link>https://sun227454.online/blog/posts/note-android-97edaab18152/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-97edaab18152/</guid><description>Bitmap优化，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.OpenGL简介</title><link>https://sun227454.online/blog/posts/note-android-9825437734d6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-9825437734d6/</guid><description>OpenGL(Open Graphics Library开放图形库)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>3.Lifecycle简介</title><link>https://sun227454.online/blog/posts/note-android-99803a8ad547/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-99803a8ad547/</guid><description>在Android应用程序开发中，解耦很大程度上表现为系统组件的生命周期与普通组件之间的解耦。普通组件在使用过程中通常需要依赖于系统组件的生命周期。有时候，我们不得不在系统组件的生命周期回调方法中，主动对普通组件进行调用或控制。因为普通组件无法主动获知系统组件的生命周期事件。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Mac下配置adb及Android命令</title><link>https://sun227454.online/blog/posts/note-android-9b54a8708a0b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-9b54a8708a0b/</guid><description>带着欣喜若狂的心情，买了一个Mac本，刚拿到它的时候感觉真的是一件艺术品，哈哈。废话不多说，里面配置Android开发环境。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.ContentProvider是什么？</title><link>https://sun227454.online/blog/posts/note-android-9b6d1f4307a3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-9b6d1f4307a3/</guid><description>ContentProvider（内容提供者）是Android的四大组件之一，管理android以结构化方式存放的数据，以相对安全的方式封装数据（表）并且提供简易的处理机制和统一的访问接口供其他程序调用。 Android的数据存储方式总共有五种，分别是：Shared Preferences、网络存储、文件存储、外储存储、SQLite。但一般这些存储都只是在单独</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>视频编码原理</title><link>https://sun227454.online/blog/posts/note-android-9bb00bde05e6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-9bb00bde05e6/</guid><description>为什么巨大的原始视频可以编码成很小的视频呢？这其中的技术是什么呢？ 核心思想就是去除冗余信息：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>来电号码归属地提示框</title><link>https://sun227454.online/blog/posts/note-android-9d1cd4f50496/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-9d1cd4f50496/</guid><description>Toast提示只要提示的时间够长，就可以浮动到其他任何界面之上，所以我们可以模仿Toast来实现来电号码归属地的提示框</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>修改系统组件样式</title><link>https://sun227454.online/blog/posts/note-android-9d25c64d1afe/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-9d25c64d1afe/</guid><description>系统所有组件的样式声明都在data-res-values-styles.xml中，如果我们想要修改某个系统组件的样式只需要拷贝它的样式到本地后修改一下就行了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2.ViewBinding简介</title><link>https://sun227454.online/blog/posts/note-android-9df661a68780/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-9df661a68780/</guid><description>ViewBinding是Google在2019年I/O大会上公布的一款Android视图绑定工具，在Android Studio 3.6中添加的一个新功能，更准确的说，它是DataBinding的一个更轻量变体，为什么要使用View Binding呢？答案是性能。许多开发者使用Data Binding库来引用Layout XML中的视图，而忽略它的其他强大功</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2.Kotlin_高阶函数&amp;Lambda&amp;内联函数</title><link>https://sun227454.online/blog/posts/note-android-9f10482a3835/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-9f10482a3835/</guid><description>在某些情况下，不带参数的函数可与只读属性互换。 虽然语义相似，但是在某种程度上有一些风格上的约定。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>LeakCanary的工作过程以及原理</title><link>https://sun227454.online/blog/posts/note-android-a012762e1cbc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a012762e1cbc/</guid><description>先说一下，这篇文章，是博主看到的少有的好文，感觉写的非常通俗易通。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android项目总结</title><link>https://sun227454.online/blog/posts/note-android-a014b32ddbb0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a014b32ddbb0/</guid><description>Android项目总结，最近在公司里，写了几个Android的小项目，在学习过程中学习了一些新的东西，也学到了很多东西，所以打算记录一下。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java并发编程之原子性、可见性以及有序性</title><link>https://sun227454.online/blog/posts/note-android-a03bdd89318c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a03bdd89318c/</guid><description>众所周知，原子是构成物质的基本单位，所以原子代表着不可分。 即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断，要么就都不执行。 最简单的一个例子就是银行转账问题，赋值或者return。比如a = 1;和 return a;这样的操作都具有原子性 原子性不论是多核还是单核，具有原子性的量，同一时刻只能有一个线程来对它进行操作！ 加锁可以保证</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Composing builds简介</title><link>https://sun227454.online/blog/posts/note-android-a10b8f220346/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a10b8f220346/</guid><description>在Android Studio项目中，经常会引用多个Module，而且会有多人同时参与项目开发，在这种背景下，会时常遇到版本冲突问题，出现不同的compileSdkVersion或者出现同一个库的多个不同版本等，导致我们的包体变大，项目运行时间变长，所以将依赖版本统一是一个项目优化的必经之路。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>JVM垃圾回收机制</title><link>https://sun227454.online/blog/posts/note-android-a156759476c4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a156759476c4/</guid><description>当前主流的商用程序语言(Java、C#)的内存管理子系统都是通过可达性分析(Reachability Analysis)算法来判定对象是否存活的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>布局优化</title><link>https://sun227454.online/blog/posts/note-android-a1aa87e47be0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a1aa87e47be0/</guid><description>布局优化的核心问题就是要解决因布局渲染性能不佳而导致应用卡顿的问题。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>锁屏以及解锁监听</title><link>https://sun227454.online/blog/posts/note-android-a1f6aa0a03e5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a1f6aa0a03e5/</guid><description>屏幕锁屏以及解锁时会分别发送SCREEN_ON和SCREEN_OFF广播，但是这两个广播只能通过代码的形式注册才能被监听到，在AndroidManifest.xml中注册根本监听不到。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第三弹)</title><link>https://sun227454.online/blog/posts/note-android-a3db82b4a8d8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a3db82b4a8d8/</guid><description>本文为转载文章：原文地址：https://github.com/CharonChui/AndroidNote</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>安全退出应用程序</title><link>https://sun227454.online/blog/posts/note-android-a472905dcadc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a472905dcadc/</guid><description>既然上面介绍的三种方法都没有效果，那么怎么才能退出应用程序呢？就是自定义一个Application,在该Application中去定义一个List&lt;Activity&gt;的集合来记录中每一个开启的Activity，在退出的时候去遍历这个List&lt;Activity&gt;集合， 然后挨个的进行mActivity.finish()方法，这要求在每开启一个Activity的</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>检查app是否具有推送权限</title><link>https://sun227454.online/blog/posts/note-android-a659705ec6c7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a659705ec6c7/</guid><description>检查app是否具有推送权限，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC——Android入门</title><link>https://sun227454.online/blog/posts/note-android-a6d39db43a49/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a6d39db43a49/</guid><description>#WebRTC是什么 WebRTC is a free, open project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components hav</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android获取SHA1</title><link>https://sun227454.online/blog/posts/note-android-a6dfd07d90c0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a6dfd07d90c0/</guid><description>Android获取SHA1，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Home键监听</title><link>https://sun227454.online/blog/posts/note-android-a7ea596f58b5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a7ea596f58b5/</guid><description>Home键监听，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>IntentService定义</title><link>https://sun227454.online/blog/posts/note-android-a87b033f2238/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a87b033f2238/</guid><description>IntentService继承与Service，用来处理异步请求。客户端可以通过startService(Intent)方法传递请求给IntentService。IntentService在onCreate()函数中通过HandlerThread单独开启一个线程来依次处理所有Intent请求对象所对应的任务。 这样以免事务处理阻塞主线程（ＡＮＲ）。执行完所一</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ApplicationId vs PackageName</title><link>https://sun227454.online/blog/posts/note-android-a87fb8f69efa/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-a87fb8f69efa/</guid><description>曾几何时，自从转入Studio阵营后就发现多了个applicationId &quot;com.xx.xxx&quot;，虽然知道肯定会有区别，但是我却没有仔细去看，只想着把它和packageName设置成相同即可(原谅我的懒惰- -!)。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>资源文件拷贝的三种方式</title><link>https://sun227454.online/blog/posts/note-android-ab8baccb4d40/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ab8baccb4d40/</guid><description>那Raw和Assets两者有什么区别呢？</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第二弹)</title><link>https://sun227454.online/blog/posts/note-android-ab920f7a3acf/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ab920f7a3acf/</guid><description>本文为转载文章：原文地址：https://github.com/CharonChui/AndroidNote</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>6.OpenGL ES绘制矩形及圆形</title><link>https://sun227454.online/blog/posts/note-android-abdf8804f6ed/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-abdf8804f6ed/</guid><description>写完上面的绘制三角形的部分，手快抽筋了，为啥？一个就是每个方法都要调用GLES30.还有一个就是我们完全可以把公共的代码再封装到一个Base类里面啊，所以我这里就抽了一个BaseGLSurfaceViewRenderer类，然后把GLES30中一些常用的方法写了一遍。为什么要这样做呢？ 我们也可以通过import static来省去GLES30的写法，但我不</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ReactNative短信验证码倒计时控件</title><link>https://sun227454.online/blog/posts/note-android-ac2c871679e3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ac2c871679e3/</guid><description>根据项目的需要，需要写一个自定义的控件，实现如下功能：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2.NavigationView简介</title><link>https://sun227454.online/blog/posts/note-android-ac52f39402b1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ac52f39402b1/</guid><description>NavigationView包含两个部分：menu和headerLayout。menu是用来在NavigationView中显示具体的菜单项的，headerLayout则是用来在NavigationView中显示头部布局的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android启动模式详解</title><link>https://sun227454.online/blog/posts/note-android-ac559f32777c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ac559f32777c/</guid><description>顾名思义，是单一实例的意思，即任意时刻只允许存在唯一的Activity实例，而且该Activity所在的task不能容纳除该Activity之外的其他Activity实例！它与singleTask有相同之处，也有不同之处。相同之处: 任意时刻，最多只允许存在一个实例。不同之处:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AV1</title><link>https://sun227454.online/blog/posts/note-android-ad1a351dd1ec/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ad1a351dd1ec/</guid><description>AV1，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android中能够简化开发流程的一些框架</title><link>https://sun227454.online/blog/posts/note-android-adc6700a0fd0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-adc6700a0fd0/</guid><description>BaseRecyclerViewAdapterHelper:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android6.0权限系统</title><link>https://sun227454.online/blog/posts/note-android-ae504e314b68/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ae504e314b68/</guid><description>Android权限系统是一个非常重要的安全问题，因为它只有在安装时会询问一次。一旦软件本安装之后，应用程序可以在用户毫不知情的情况下使用这些权限来获取所有的内容。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC——VideoRenderer解析</title><link>https://sun227454.online/blog/posts/note-android-af59ad4a512b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-af59ad4a512b/</guid><description>WebRTC——VideoRenderer解析，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>应用安装</title><link>https://sun227454.online/blog/posts/note-android-afad6063e1ef/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-afad6063e1ef/</guid><description>应用安装，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>10.Kotlin_设计模式</title><link>https://sun227454.online/blog/posts/note-android-b0190a2f14f9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b0190a2f14f9/</guid><description>简单工厂的模式，它的核心作用是通过一个工厂类隐藏对象实例的创建逻辑，而不需要对外暴露。典型的使用场景就是当拥有一个父类与多个子类的时候，我们可以通过这种模式来创建子类对象。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Activity是什么？</title><link>https://sun227454.online/blog/posts/note-android-b02e0dcbc3d1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b02e0dcbc3d1/</guid><description>我们都知道android中有四大组件（Activity 活动，Service 服务，Content Provider 内容提供者，BroadcastReceiver 广播接收器），Activity是我们用的最多也是最基本的组件，因为应用的所有操作都与用户相关，Activity 提供窗口来和用户进行交互。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MD5加密</title><link>https://sun227454.online/blog/posts/note-android-b09ec1a982be/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b09ec1a982be/</guid><description>MD5是一种不可逆的加密算法只能将原文加密，不能将密文再还原回去，原来把加密后将这个数组通过Base64给变成字符串， 这样是不严格的业界标准的做法是对其加密之后用每个字节&amp;15然后就能得到一个int型的值，再将这个int型的值变成16进制的字符串.虽然MD5不可逆， 但是网上出现了将常用的数字用md5加密之后通过数据库查询，所以MD5简单的情况下仍然可以查</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Library项目中资源id使用case时报错</title><link>https://sun227454.online/blog/posts/note-android-b104a28c86ed/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b104a28c86ed/</guid><description>在平时开发的过程中对一些常量的判断，都是使用switch case语句，因为switch case比if else的效率稍高。但是也遇到了问题，就是在library中使用时会报错:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android WorkManager</title><link>https://sun227454.online/blog/posts/note-android-b15f4b5bccaa/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b15f4b5bccaa/</guid><description>谷歌在今年的Google I/O上宣布了一项非常令人兴奋的功能，该功能允许开发人员执行传统上需要详细了解各种API级别和可用于这些API的后台任务库的后台任务(简单点说就是”管理一些要在后台工作的任务, – 即使你的应用没启动也能保证任务能被执行”)，这就是WorkManager,WorkManager提供了从其他API（例如JobScheduler，Fir</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>如何终止App的运行</title><link>https://sun227454.online/blog/posts/note-android-b16acb2d5b75/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b16acb2d5b75/</guid><description>&lt;uses-permission android:name=&quot;android.permission.KILL_BACKGROUND_PROCESSES&quot; /&gt;</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>注解使用</title><link>https://sun227454.online/blog/posts/note-android-b2c572817075/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b2c572817075/</guid><description>更通俗的意思是为程序的元素（类、方法、成员变量）加上更直观更明了的说明，这些说明信息是与程序的业务逻辑无关，并且是供指定的工具或框架使用的。 Annontation像一种修饰符一样，应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>React-Native 报错记录</title><link>https://sun227454.online/blog/posts/note-android-b55ba92da5df/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b55ba92da5df/</guid><description>React-Native 报错记录，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>XmlPullParser</title><link>https://sun227454.online/blog/posts/note-android-b5a3ee6816c4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b5a3ee6816c4/</guid><description>XmlPullParser，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>一款Android的Log、Toast的库</title><link>https://sun227454.online/blog/posts/note-android-b73078d51be8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b73078d51be8/</guid><description>经过以上的配置，已经可以正常的使用了，如果我们想配置的更加轻便的话，是可以这样的：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>SlidingMenu</title><link>https://sun227454.online/blog/posts/note-android-b77de9169367/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b77de9169367/</guid><description>SlidingMenu无非就是一个包含三个View的控件，左边View、中间View(默认时全屏)、右边View，默认的情况下中间View会把两边的View覆盖住， 在手指滑动的时候，会根据手指的滑动方向以及滑动距离去移动中间的那个View，从而能让两边View完全可见。在定义该View的时候，首先会想到继承RelativeLayout，能简单的实现这种左、</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android中相机与相册的详细使用</title><link>https://sun227454.online/blog/posts/note-android-b7eccee4a5b6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b7eccee4a5b6/</guid><description>目前主流app都具有上传头像啊，上传图片的功能，看起来好简单的需求，但是其实这里面有一点点不同的地方。先说一下我的思路，因为开发周期的问题，并没有打算自定义相机与图片查询工具，打算采用系统相机和图片查看工具，最开始我打算调用系统的剪裁并且取得的效果还是不错的，因为我最开始做的是系统头像上传的这个功能，后来我采用同样的方法做了上传商品图片的功能，但是这个时候就</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RxJava详解(一)</title><link>https://sun227454.online/blog/posts/note-android-b86445f2aaa9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b86445f2aaa9/</guid><description>现在RxJava变的越来越流行了，很多项目中都使用了它。特别是大神JakeWharton等的加入，以及RxBinding、Retrofit、RxLifecycle等众多项目的，然开发越来越方便，但是上手比较难，不过一旦你入门后你就会发现真是太棒了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>8.虚拟机</title><link>https://sun227454.online/blog/posts/note-android-b8b2051243c2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b8b2051243c2/</guid><description>通常而言，应用程序直接运行在PC或服务器的操作系统上。每台PC或服务器在同一时间只运行一个操作系统。因此，应用程序供应商需要为每个操作系统或平台重写应用程序的部分代码，才能使应用能够得到系统支持的运行。要支持多种操作系统，应用程序供应商需要创建、管理和维护多种硬件与操作系统基础设施，这一过程需要耗费昂贵的代价和大量的资源。处理这个问题的有效策略之一称为虚拟化</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android黑科技——ButterKnifeZelezny</title><link>https://sun227454.online/blog/posts/note-android-b8bd41e3a1d9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-b8bd41e3a1d9/</guid><description>当一个XML中元素实在过多的时候，手动绑定id，不但浪费时间，而且非常的麻烦，有了这个黑科技之后，就可以轻松很多，解放双手啦。这是一个Android的插件，它是基于ButterKnife开发的，想要安装这个需要先添加Butterknife的 依赖，具体步骤如下：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android编码规范</title><link>https://sun227454.online/blog/posts/note-android-ba45a7eb49cc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ba45a7eb49cc/</guid><description>Java程序有两类注释：实现注释(implementation comments)和文档注释(document comments)。 实现注释是使用/.../和//界定的注释。文档注释(被称为&quot;doc comments&quot;)由/**...*/界定。文档注释可以通过javadoc 工具转换成HTML 文件。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Kotlin for android</title><link>https://sun227454.online/blog/posts/note-android-ba8c8749a55d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ba8c8749a55d/</guid><description>下面就我们就开始一个入门级别的demo吧，现在谷歌已经推出了android studio3.0已经支持了Kotlin这门语言，下载地址：https://developer.android.google.cn/studio/preview/index.html ，只需要在这里新建一个工程，然后在是否要加入kotlin的选项上面勾一下就可以了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>TextView跑马灯效果</title><link>https://sun227454.online/blog/posts/note-android-bbc6601516b3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-bbc6601516b3/</guid><description>当TextView内容过多时默认会采用截取的方式以...来截取。如何能够实现内容过多时的跑马灯效果。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RxJava详解(三)</title><link>https://sun227454.online/blog/posts/note-android-bbcf1771e82b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-bbcf1771e82b/</guid><description>这些变换虽然功能各有不同，但实质上都是针对事件序列的处理和再发送。而在RxJava的内部，它们是基于同一个基础的变换方法：lift()。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>7.Snackbar简介</title><link>https://sun227454.online/blog/posts/note-android-bbdf6a07af28/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-bbdf6a07af28/</guid><description>Snackbar显示在所有屏幕其它元素之上(屏幕最顶层)，同一时间只能显示一个snackbar。Snackbar的基本使用很简单，与Toast类似。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>PathMeasure</title><link>https://sun227454.online/blog/posts/note-android-bbe253ad1deb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-bbe253ad1deb/</guid><description>PathMeasure是一个测量Path的路径的一个方法，我们今天的demo就是要做这样一个小东西，它会反复测量，运动的路径，并且沿着路径运行。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>获取今后多少天后的日期</title><link>https://sun227454.online/blog/posts/note-android-bcd82097d31f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-bcd82097d31f/</guid><description>获取今后多少天后的日期，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>如何实现Activity切换的动画</title><link>https://sun227454.online/blog/posts/note-android-bce2bfa4fa4b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-bce2bfa4fa4b/</guid><description>android中设置activity切换动画有 两种实现方式</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android WebRTC简介</title><link>https://sun227454.online/blog/posts/note-android-bdc3a3890c65/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-bdc3a3890c65/</guid><description>WebRTC名称源自网页实时通信(Web Real-Time Communication)的缩写，是一个支持网页浏览器进行实时语音对话或视频对话的技术，是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术。Google于2011年6月3日开源的即时通讯项目，旨在使其成为客户端视频通话的标准。其实在Google将Web</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Git简介</title><link>https://sun227454.online/blog/posts/note-android-bdf2169dd57c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-bdf2169dd57c/</guid><description>Git和其他版本控制系统(包括Subversion及其他相似的工具)的主要差别在于Git对待数据的方法。概念上来区分，其它大部分系统以文件 变更列表的方式存储信息。 这类系统(CVS、Subversion、Perforce、Bazaar等等)将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。 存储每个文件与初始版本的差异。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Volley源码分析</title><link>https://sun227454.online/blog/posts/note-android-be90bfab629e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-be90bfab629e/</guid><description>到这里我们就简单的介绍了它的使用，当然还有一些其他的Request对象例如JsonRequest等，他们的使用方法都是一样的，这里就不再说明了。当然Volley里面还提供了对图片的处理，例如NetworkImageView空间和ImageRequest等，因为这里图片用到的不太多，所以暂时不去分析了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2. LeetCode_两数相加</title><link>https://sun227454.online/blog/posts/note-android-beded20b091b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-beded20b091b/</guid><description>给你两个非空的链表，表示两个非负的整数。它们每位数字都是按照逆序的方式存储的，并且每个节点只能存储一位数字。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ListView源码分析</title><link>https://sun227454.online/blog/posts/note-android-c02820c52591/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c02820c52591/</guid><description>一直都想写一篇文章分析下ListView的实现，总是忙，一直拖到现在，快到年底了，写出来希望能帮助一些面试跳槽的人。当然写这篇文章也是有原因的，当时有同事在面试的时候，被对方要求当场实现一个ListView，同事简单的答了一些实现原理后，很显然对方不满意，经过几轮PK后，就有了不河蟹的结局。不欢而散，哈哈。听说后当时我想着要把ListView源码仔细分析后，</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>16.色温、色调、饱和度</title><link>https://sun227454.online/blog/posts/note-android-c0be22359409/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c0be22359409/</guid><description>色温可以影响图像的分为和情感表达。简单理解就是色彩的温度，越低越冷如蓝色，越高越暖如红色。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>启动优化</title><link>https://sun227454.online/blog/posts/note-android-c0ebacecebac/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c0ebacecebac/</guid><description>一个应用App的启动速度能够影响用户的首次体验，启动速度较慢(感官上)的应用可能导致用户再次开启App的意图下降，或者卸载放弃该应用程序。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>安卓中实现圆形头像~</title><link>https://sun227454.online/blog/posts/note-android-c18246473219/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c18246473219/</guid><description>大方向上讲,实现圆形图片的展示，在安卓中分 为两种大情况， 一种是自定义一个view+bitmapShader,另外一种方式我们可以重写一 个drawable。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.View 绘制流程</title><link>https://sun227454.online/blog/posts/note-android-c1ad88c3c50b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c1ad88c3c50b/</guid><description>ViewGroup也是继承于View，下面看看绘制过程中依次会调用哪些函数。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MAT内存分析</title><link>https://sun227454.online/blog/posts/note-android-c2e5064fd19b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c2e5064fd19b/</guid><description>Eclipse Memory Analyzer（MAT）是著名的跨平台集成开发环境Eclipse Galileo版本的33个组成项目中之一，它是一个功能丰富的JAVA 堆转储文件分析工具，可以帮助你发现内存漏洞和减少内存消耗。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>VideoView源码分析</title><link>https://sun227454.online/blog/posts/note-android-c351cabb9624/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c351cabb9624/</guid><description>基于Android4.4源码进行分析</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.简介</title><link>https://sun227454.online/blog/posts/note-android-c3543aa9569d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c3543aa9569d/</guid><description>行为组件可帮助开发者的应用与标准Android服务（如通知、权限、分享和Google助理）相集成。它包含如下组件库:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Service保活</title><link>https://sun227454.online/blog/posts/note-android-c3b5ed5f95f0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c3b5ed5f95f0/</guid><description>一、onStartCommand方法，返回START_STICKY</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Handler</title><link>https://sun227454.online/blog/posts/note-android-c3fa78a5c9f9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c3fa78a5c9f9/</guid><description>Message类是个final类，就是说不能被继承，同时Message类实现了Parcelable接口，我们知道android提供了一种新的类型：Parcel。**本类被用作封装数据的容器，是链表结构，**有个属性next和sPool，这两个变量是不同的，具体什么不同看下文。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Gradle专题</title><link>https://sun227454.online/blog/posts/note-android-c62800f65267/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c62800f65267/</guid><description>Gradle是一个开源的自动化构建工具。现在Android项目构建编译都是通过Gradle进行的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>LeakCanary源码分析</title><link>https://sun227454.online/blog/posts/note-android-c65332d52c2e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c65332d52c2e/</guid><description>LeakCanary是一个用于检测内存泄漏的工具，可以用于Java和Android，是由著名开源组织Square贡献。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>5. ExoPlayer源码分析之PlayerView</title><link>https://sun227454.online/blog/posts/note-android-c7269d697c7f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c7269d697c7f/</guid><description>前面两篇文章大体看了一下ExoPlayer.prepare()部分，接下来，我们要看一下UI部分的封装，PlayerView:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CameraX结合OpenGL</title><link>https://sun227454.online/blog/posts/note-android-c7b688b61f24/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c7b688b61f24/</guid><description>CameraX 是一个 Jetpack 库，旨在帮助您更轻松地开发相机应用。如果您要开发新应用，我们建议您从 CameraX 开始。它提供了一个一致且易于使用的 API，该 API 适用于绝大多数 Android 设备，并向后兼容 Android 5.0（API 级别 21）。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>InstantRun详解</title><link>https://sun227454.online/blog/posts/note-android-c7d807ca2a3e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c7d807ca2a3e/</guid><description>之前在写AndroidStudio提高Build速度]这篇文章的时候写到，想要快，就用Instant Run。最近有朋友发来邮件讨论它的原理，最近项目不忙，索性就来系统的学习下。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Touchable系列组建讲解</title><link>https://sun227454.online/blog/posts/note-android-c862bfff125c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c862bfff125c/</guid><description>本文出自《React Native学习笔记》系列文章。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ListView专题</title><link>https://sun227454.online/blog/posts/note-android-c94d086d67af/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c94d086d67af/</guid><description>有时调用setEmptyView没有效果，这是因为我们设置的这个EmptyView必须和该ListView在同一个布局体系中如：下面这样的代码有些时候会没有效果</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>BroadcastReceiver的定义</title><link>https://sun227454.online/blog/posts/note-android-c9839750cdfc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-c9839750cdfc/</guid><description>广播是一种广泛运用的在应用程序之间传输信息的机制，主要用来监听系统或者应用发出的广播信息，然后根据广播信息作为相应的逻辑处理，也可以用来传输少量、频率低的数据。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>二次贝塞尔曲线</title><link>https://sun227454.online/blog/posts/note-android-cbbf972eb024/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-cbbf972eb024/</guid><description>贝塞尔曲线(Bézier curve)，又称贝兹曲线或贝济埃曲线，是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线，贝兹曲线由线段与节点组成，节点是可拖动的支点，线段像可伸缩的皮筋，我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。贝塞尔曲线是计算机图形学中相当重要的参数曲线，在一些比较成熟的位图软件中也有贝塞尔曲线工具，如Ph</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC——MeidaStreamTrack解析</title><link>https://sun227454.online/blog/posts/note-android-cc105e773af3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-cc105e773af3/</guid><description>WebRTC——MeidaStreamTrack解析，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Activity启动过程</title><link>https://sun227454.online/blog/posts/note-android-cc37224f95c2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-cc37224f95c2/</guid><description>前两天面试了天猫的开发，被问到了Activity启动过程，不懂啊....</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>自定义view基础入门——实现饼状图</title><link>https://sun227454.online/blog/posts/note-android-cc8ba9441871/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-cc8ba9441871/</guid><description>其实这个自定义view还是挺简单的，只需要让用户传入一个list，然后根据list里面的数据，找出不同数据占的权重，然后在绘制扇形的过程中，上不同的色就可以了，当然这只是一个入门级的自定义view。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Zipalign优化</title><link>https://sun227454.online/blog/posts/note-android-cd12978d90c7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-cd12978d90c7/</guid><description>Zipalign优化工具是SDK中自带的优化工具,在android-sdk-windows\build-tools\23.0.1，在我们上传Google Pay的时候都会遇到您上传的Apk没有经过Zipalign处理 的失败提示，就是说如果你的apk没有使用zipalign优化，那google play是拒绝给你上架的，从这里能看出zipalign优化是多么</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android常见面试题</title><link>https://sun227454.online/blog/posts/note-android-cd51eedb21cc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-cd51eedb21cc/</guid><description>A、ArithmeticException B、IllegalArgumentException C、NullPointerException D、BufferUnderflowException</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>3.GLSurfaceView源码解析</title><link>https://sun227454.online/blog/posts/note-android-cd72b9d4dcec/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-cd72b9d4dcec/</guid><description>我感觉还是先看一下源码，了解一下内部的流程，再接着学习其他的OpenGL部分会更合适。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>横向ListView</title><link>https://sun227454.online/blog/posts/note-android-ce26df7e3bf7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ce26df7e3bf7/</guid><description>横向ListView，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>网络请求相关内容总结</title><link>https://sun227454.online/blog/posts/note-android-cec0db32c999/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-cec0db32c999/</guid><description>网络数据传输，熟悉多线程、Socket网络编程、熟悉TCP、UDP、HTTP等协议</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>12.Navigation简介</title><link>https://sun227454.online/blog/posts/note-android-ceeafaf56acd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ceeafaf56acd/</guid><description>单个Activity嵌套多个Fragment的UI架构模式，已经被大多数Android工程师所接受和采用。但是，对Fragment的管理一直是一件比较麻烦的事情。工程师需要通过FragmentManager和FragmentTransaction来管理Fragment之间的切换。页面的切换通常还包括对应用程序App bar的管理、Fragment间的切换动画</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android应用发布</title><link>https://sun227454.online/blog/posts/note-android-cfa9b5cbd47b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-cfa9b5cbd47b/</guid><description>需要身份证扫描件、手持身份证正面照、图标(96x96、512x512)、应用截图(一般480x800,6张)进行每个网站的开发者注册(需要审核，有的比较慢，尽量提前审核)</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>数据存储</title><link>https://sun227454.online/blog/posts/note-android-cffb8c18dc90/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-cffb8c18dc90/</guid><description>数据存储，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android跟随手指移动的view</title><link>https://sun227454.online/blog/posts/note-android-d091c49db2a8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d091c49db2a8/</guid><description>实现的主要思想，就是利用onTouchListener，然后判断出手指按下的点，同时监听移动的事件，然后稍微计算一下就可以求出来view最终应该呈现的位置了，然后通过改变LayoutParams的值就可以是实现view的跟随手指拖拽的效果了，当然还可以优化，例如通过计算如果移到屏幕边缘就停下来之类的，或者哪里是不能移到地方。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ReactNative入门</title><link>https://sun227454.online/blog/posts/note-android-d0cfaa573dfd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d0cfaa573dfd/</guid><description>ReactNative旨在开发过程的高效，它具有一些原生App所不具备的优势，它的跨平台性非常强，代码的复用程度非常的高，并且可以具有热更新的能力，其次就是它的社区也在日趋的强大起来。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>crash分析</title><link>https://sun227454.online/blog/posts/note-android-d1d05e4599d4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d1d05e4599d4/</guid><description>1、首先发生crash所在进程，在创建之初便准备好了defaultUncaughtHandler，用来处理Uncaught Exception，并输出当前crash的基本信息；</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>5.Android消息获取</title><link>https://sun227454.online/blog/posts/note-android-d1d082c23dc8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d1d082c23dc8/</guid><description>在Android 2.0及以前的所有版本中，获取用户消息的方式基本上都是相同的，具体如下:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>算法</title><link>https://sun227454.online/blog/posts/note-android-d22aa8253911/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d22aa8253911/</guid><description>算法（algorithm）是在有限时间内解决特定问题的一组指令或操作步骤，它具有以下特性:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>权限机制</title><link>https://sun227454.online/blog/posts/note-android-d285c9c4bff1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d285c9c4bff1/</guid><description>Android 使用权限机制来保护用户隐私和设备安全。每个应用运行时都是被隔离的，无法直接访问系统资源或其他应用的数据，除非获得明确授权。权限机制是 Android 的一种“沙箱”设计体现。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>OKHttp</title><link>https://sun227454.online/blog/posts/note-android-d28e6ce03bcc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d28e6ce03bcc/</guid><description>OKHttp内部的大致请求流程图如下所示：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>3. LeetCode_无重复字符的最长子串</title><link>https://sun227454.online/blog/posts/note-android-d42f61171d20/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d42f61171d20/</guid><description>给定一个字符串s，请你找出其中不含有重复字符的 最长子串 的长度。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android开发工具及类库</title><link>https://sun227454.online/blog/posts/note-android-d44b77e630a1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d44b77e630a1/</guid><description>在项目开发过程中，总有一些必要的工具和类库。下面就简单介绍下我常用的一些(还在用Eclipse的请无视)。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>FLV</title><link>https://sun227454.online/blog/posts/note-android-d48ae5a39adf/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d48ae5a39adf/</guid><description>在网络的直播与点播场景中，FLV也是一种常见的格式，FLV是Adobe发布的一种可以作为直播也可以作为点播的封装格式，其封装格式非常简单，均以FLVTAG的形式存在，并且每一个TAG都是独立存在的.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>View绘制过程详解</title><link>https://sun227454.online/blog/posts/note-android-d5788e071070/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d5788e071070/</guid><description>界面窗口的根布局是DecorView，该类继承自FrameLayout.说到View绘制，想到的就是从这里入手，而FrameLayout继承自ViewGroup。感觉绘制肯定会在ViewGroup或者View中， 但是木有找到。发现ViewGroup实现ViewParent接口，而ViewParent有一个实现类是ViewRootImpl， ViewGruo</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>实现原理</title><link>https://sun227454.online/blog/posts/note-android-d751f07bfdcc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d751f07bfdcc/</guid><description>把不需要实时更新的数据缓存下来，通过时间或者其他因素 来判别是读缓存还是网络请求，这样可以缓解服务器压力，一定程度上提高应用响应速度，并且支持离线阅读。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>性能优化</title><link>https://sun227454.online/blog/posts/note-android-d826ae5b7ddf/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d826ae5b7ddf/</guid><description>性能优化，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>快捷方式工具类</title><link>https://sun227454.online/blog/posts/note-android-d865850c4bea/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d865850c4bea/</guid><description>快捷方式工具类，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java中Error和Exception</title><link>https://sun227454.online/blog/posts/note-android-d945c8aef3be/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d945c8aef3be/</guid><description>Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类或其子类之一的实例时，才能通过 Java 虚拟机或者 Java throw 语句抛出，才可以是 catch 子句中的参数类型。 Throwable 类及其子类有两个构造方法，一个不带参数，另一个带有 String 参数，此参数可用于生成详细消息。 Throwable 包含了其线程</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第七弹)</title><link>https://sun227454.online/blog/posts/note-android-d9511757e6a3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-d9511757e6a3/</guid><description>本文讲解一下Gradle的应用，大家都知道Gradle使用起来非常方便，那他究竟方便在哪里？</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>6.CollapsingToolbarLayout简介</title><link>https://sun227454.online/blog/posts/note-android-da60e70aa0f5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-da60e70aa0f5/</guid><description>CollapsingToolbarLayout is a wrapper for Toolbar which implements a collapsing app bar. It is designed to be used as a direct child of a AppBarLayout.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2.系统播放器MediaPlayer</title><link>https://sun227454.online/blog/posts/note-android-dac481b4b182/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-dac481b4b182/</guid><description>2.系统播放器MediaPlayer，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>搜索框</title><link>https://sun227454.online/blog/posts/note-android-db1fbf945ea1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-db1fbf945ea1/</guid><description>搜索框，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>17.EGL和GL线程</title><link>https://sun227454.online/blog/posts/note-android-db2735dd86e9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-db2735dd86e9/</guid><description>EGL是连接OpenGL ES与本地窗口系统的桥梁。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>6.文件管理</title><link>https://sun227454.online/blog/posts/note-android-dc822068992d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-dc822068992d/</guid><description>操作系统为磁盘提供的抽象就是：文件及文件系统，或者说，文件系统就是磁盘的抽象。它是一个子虚乌有的东西，看不见、摸不着，但却可以使用的介于磁盘与用户之间的界面。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ARouter解析</title><link>https://sun227454.online/blog/posts/note-android-dc9ed19d2859/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-dc9ed19d2859/</guid><description>简单的说: 它是一个路由系统 ——— 给无依赖的组件提供通信和路由的能力。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>强引用、软引用、弱引用、虚引用</title><link>https://sun227454.online/blog/posts/note-android-ddeb2e931729/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ddeb2e931729/</guid><description>在JDK1.2以前的版本中，当一个对象不被任何变量引用，那么程序就无法再使用这个对象。也就是说，只有对象处于可触及状态，程序才能使用它。这就像在日常生活中，从商店购买了某样物品后，如果有用，就一直保留它，否则就把它扔到垃圾箱，由清洁工人收走。一般说来，如果物品已经被扔到垃圾箱，想再把它捡回来使用就不可能了。但有时候情况并不这么简单，你可能会遇到类似鸡肋一样的</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android项目总结3</title><link>https://sun227454.online/blog/posts/note-android-de7eb8549513/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-de7eb8549513/</guid><description>LoadingBase.java</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>短信广播接收者</title><link>https://sun227454.online/blog/posts/note-android-df6c7ad1f21a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-df6c7ad1f21a/</guid><description>Android系统在收到短信的时候会发送一条有序广播，我们如果定义一个接收者接收这个广播，就可以得到短信内容，也可以拦截短信。定义广播接收者接收广播android.provider.Telephony.SMS_RECEIVED需要接收短信权限：&lt;uses-permission android:name=&quot;android.permission.RECEIVE_</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>RecyclerView专题</title><link>https://sun227454.online/blog/posts/note-android-dfd8b668e27e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-dfd8b668e27e/</guid><description>RecyclerView是Android 5.0提供的新控件，已经用了很长时间了，但是一直没有时间去仔细的梳理一下。现在项目不太紧，决定来整理下。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>volatile和Synchronized</title><link>https://sun227454.online/blog/posts/note-android-dff36682ba9d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-dff36682ba9d/</guid><description>内存模型：英文名 Memory Model，它是一个老古董了。它是与计算机硬件有关的一个概念。那么，我先介绍下它和硬件到底有啥关系。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>使用Jenkins实现自动化打包</title><link>https://sun227454.online/blog/posts/note-android-e39ab833a109/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-e39ab833a109/</guid><description>Jenkins个开源的持续集成工具，不仅可以用来进行Android打包，也可以用来进行iOS打包、NodeJs打包、Java服务打包等。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>性能优化相关工具</title><link>https://sun227454.online/blog/posts/note-android-e471c3e4c543/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-e471c3e4c543/</guid><description>性能优化相关工具 有关性能优化的文章请参考性能优化和布局优化</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第七弹)</title><link>https://sun227454.online/blog/posts/note-android-e501dcd01e5d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-e501dcd01e5d/</guid><description>本文为转载文章：原文地址：https://github.com/CharonChui/AndroidNote</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android工程项目结构</title><link>https://sun227454.online/blog/posts/note-android-e53225ad5366/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-e53225ad5366/</guid><description>在Android 中，Activity 的生命周期交给操作系统统一管理。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>M3U8</title><link>https://sun227454.online/blog/posts/note-android-e6627585be28/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-e6627585be28/</guid><description>M3U8是一种常见的流媒体格式，主要以文件列表的形式存在，既支持直播又支持点播，尤其在Android、iOS等平台最为常用，下面就来看一下M3U8的最简单的例子：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>通过Hardware Layer提高动画性能</title><link>https://sun227454.online/blog/posts/note-android-e8a23ba3b343/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-e8a23ba3b343/</guid><description>项目中越来越多的动画，越来越多的效果导致了应用性能越来越低。该如何提升。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>搭建nginx+rtmp服务器</title><link>https://sun227454.online/blog/posts/note-android-ea5cfb5c08b8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ea5cfb5c08b8/</guid><description>为了更好的进行直播功能的开发，我们需要本地搭建nginx+rtmp服务器，下面就是介绍如何在Mac上的搭建步骤:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android入门介绍</title><link>https://sun227454.online/blog/posts/note-android-ecdea43891b6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ecdea43891b6/</guid><description>Android入门介绍，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>获取联系人</title><link>https://sun227454.online/blog/posts/note-android-ed2e83cdb6d3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ed2e83cdb6d3/</guid><description>Android系统中的联系人也是通过ContentProvider来对外提供数据的 数据库路径为：/data/data/com.android.providers.contacts/database/contacts2.db 我们需要关注的有3张表</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java内存模型</title><link>https://sun227454.online/blog/posts/note-android-edf0cf739294/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-edf0cf739294/</guid><description>Java虚拟机(Java Virtual Machine)在执行Java程序的过程中，会把它管理的内存划分为五个不同的数据区域(Heap Memory、 Stack Memory、Method Area、PC、Native Stack Memory)，这些区域都有各自的用途、创建时间、销毁时间:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>9.App Startup简介</title><link>https://sun227454.online/blog/posts/note-android-ee5dc4ad1631/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ee5dc4ad1631/</guid><description>App Startup库提供了一种直接，高效的方法，可以在应用程序启动时初始化组件。第三方库开发人员和应用程序开发人员都可以使用App Startup来简化启动顺序并显式设置初始化顺序。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MP4格式详解</title><link>https://sun227454.online/blog/posts/note-android-ef043d57f1b7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ef043d57f1b7/</guid><description>MP4是一套用于音频、视频信息的压缩编码标准，由国际标准化组织（ISO）和国际电工委员会（IEC）下属的“动态图像专家组”（Moving Picture Experts Group，即MPEG）制定。MP4 实际代表的含义是MPEG-4 Part 14。它只是MPEG标准中的14部分。它主要参考ISO/IEC标准来制定的。MP4主要作用是可以实现快进快放，边</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>AndroidStudio使用教程(第一弹)</title><link>https://sun227454.online/blog/posts/note-android-ef503a1352f0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ef503a1352f0/</guid><description>Android Studio是一套面世不久的IDE（即集成开发环境），免费向谷歌及Android的开发人员发放。Android Studio以IntelliJ IDEA为基础, 旨在取代Eclipse和ADT（Android开发者工具）为开发者提供更好的开发工具。运行相应速度、智能提示、布局文件适时多屏预览等都比Eclipse要强，但也不能说全部都是有点现在</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>常用命令行大全</title><link>https://sun227454.online/blog/posts/note-android-f183ab0e8c37/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-f183ab0e8c37/</guid><description>文件名选项是find命令最常用的选项，要么单独使用该选项，要么和其他选项一起使用。 可以使用某种文件名模式来匹配文件，记住要用引号将文件名模式引起来。不管当前路径是什么， 如果想要在自己的根目录HOME中查找文件名符合`*.log`的文件，使用~作为`pathname`参数，波浪号`~`代表了当前用户的`HOME`目录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>动态代理</title><link>https://sun227454.online/blog/posts/note-android-f2fef4edd3e4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-f2fef4edd3e4/</guid><description>有关代理模式已经动态代理和静态代理的区别请查看另一篇文章设计模式</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>8.GLES类及Matrix类</title><link>https://sun227454.online/blog/posts/note-android-f363b9b70c10/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-f363b9b70c10/</guid><description>GLES作为我们与着色器连接的工具类提供了丰富的api。了解一些常用API的意思能更方便后面的学习，这里就简单整理列了一些常用的部分:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MediaMetadataRetriever</title><link>https://sun227454.online/blog/posts/note-android-f47323dcd89f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-f47323dcd89f/</guid><description>MediaMetadataRetriever是Android中用于从媒体文件中提取元数据的类，可以获取音频、视频和图片文件的各种信息，例如时长、标题、封面等。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2.FFmpeg常用命令行</title><link>https://sun227454.online/blog/posts/note-android-f6052135cdc8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-f6052135cdc8/</guid><description>主要参数：-i 设定输入流 -f 设定输出格式 -ss 开始时间视频参数：-b 设定视频流量，默认为200Kbit/s -r 设定帧速率，默认为25 -s 设定画面的宽与高 -aspect 设定画面的比例 -vn 不处理视频 -vcodec 设定视频编解码器，未设定时则使用与输入流相同的编解码器音频参数：-ar 设定采样率 -ac 设定声音的Channel数</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>1.简介</title><link>https://sun227454.online/blog/posts/note-android-f690ecc6f09f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-f690ecc6f09f/</guid><description>在大多数情况下，桌面应用程序在启动器快捷方式中有一个单一的入口并且作为单独的独立进程运行，与桌面应用程序不同的是Android应用具有更复杂的结构。一个典型的Android应用是由多个应用程序组件构成的，包括activity，fragment，service，content provider和broadcast receiver。 这些应用程序组件中的大部分</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>单例的最佳实现方式</title><link>https://sun227454.online/blog/posts/note-android-f8df3dbbd14e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-f8df3dbbd14e/</guid><description>单例的最佳实现方式，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>15.美颜滤镜</title><link>https://sun227454.online/blog/posts/note-android-f98c4ce2141e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-f98c4ce2141e/</guid><description>美颜的基本原理就是深度学习加计算机图形学。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>流媒体协议</title><link>https://sun227454.online/blog/posts/note-android-f9de55478415/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-f9de55478415/</guid><description>流媒体(Streaming Media)又叫流式媒体。是指把连续的影像和声音信息经过压缩处理后放上网站服务器,由视频服务器向用户计算机顺序或实时地传送各个压缩包，让用户一边下载一边观看、收听，而不要等整个压缩文件下载到自己的计算机上才可以观看的网络传输技术。该技术先在使用者端的计算机上创建一个缓冲区，客户端在播放前并不需要下载整个媒体⽂文件，而是在将缓存区中</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>项目总结</title><link>https://sun227454.online/blog/posts/note-android-f9ff8bd31cee/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-f9ff8bd31cee/</guid><description>最近在公司做了一个非常轻量级别的app，不过里面还是有一些知识点，是查了资料之后才会的，现在app基本做完了，整体总结一下。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Android Studio你可能不知道的操作</title><link>https://sun227454.online/blog/posts/note-android-faa04c272c79/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-faa04c272c79/</guid><description>今天看在Youtube看视频，看到Reto Meier在讲解Studio， 一查才知道他现在是Studio的开发人员。 想起刚开始学Android时买的他写的书Professional Android 4 Application Development， 当时很多内容没看懂。不过看了这个视频才发现大神写代码如此之快…</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Markdown学习手册</title><link>https://sun227454.online/blog/posts/note-android-fb35fd6e4682/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-fb35fd6e4682/</guid><description>在需要换行的地方敲击两次空格和一个回车键即可，如:</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>三阶贝塞尔曲线</title><link>https://sun227454.online/blog/posts/note-android-fb65b348074c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-fb65b348074c/</guid><description>如果您对贝塞尔曲线还不是很了解的话，可以看一下二阶贝塞尔曲线，下面我们看一下三阶曲线的效果图：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>DLNA</title><link>https://sun227454.online/blog/posts/note-android-fbe5f1978078/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-fbe5f1978078/</guid><description>DLNA成立于2003年6月24日,其前身是DHWG（Digital Home Working Group 数字家庭工作组），由Sony、Intel、Microsoft等发起成立、旨在解决个人PC ，消费电器，移动设备在内的无线网络和有线网络的互联互通，使得数字媒体和内容服务的无限制的共享和增长成为可能,目前成员公司已达280多家。DLN全称为DIGITAL</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>WebRTC——PeerConnectionFactory-java解析</title><link>https://sun227454.online/blog/posts/note-android-fcc4f94460ee/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-fcc4f94460ee/</guid><description>以上便是rtc中的peerConnection类~ 以上便是博主的一点点的小见解，欢迎大家和我讨论~~</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式(Design Patterns)</title><link>https://sun227454.online/blog/posts/note-android-fcecc933644e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-fcecc933644e/</guid><description>设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他 人理解、保证代码可靠性。 毫无疑问，设计模式于己于他人于系统都是多赢的，设计模式使代码编制真正工程化，设计模式是软件工程的基石，如同大厦的一块块砖石一样。 项目中合理的运用设计模式可以完美的解决很多问题，</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Scroller简介</title><link>https://sun227454.online/blog/posts/note-android-fdc631f40d5a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-fdc631f40d5a/</guid><description>在SlidingMenu项目中为了实现控件的滑动，需要用到Scroller类来实现缓慢的滑动过程，至于有人说View类可以直接调用scrollTo()方法， 这里scrollTo()方法也能实现移动，但是它的移动是很快一下子就移过去了，就像穿越一样，直接从现实回到了过去，而Scroller类能够实现过程的移动。 可以理解为一步步的走。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>P2P原理_NAT穿透</title><link>https://sun227454.online/blog/posts/note-android-ff03132a5773/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ff03132a5773/</guid><description>NAT（Network Address Translation，网络地址转换），也叫做网络掩蔽或者IP掩蔽。NAT是一种网络地址翻译技术，主要是将内部的私有IP地址（private IP）转换成可以在公网使用的公网IP（public IP）。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>死锁</title><link>https://sun227454.online/blog/posts/note-android-ffa7778c00cf/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-android-ffa7778c00cf/</guid><description>死锁，Android相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机组成原理</title><link>https://sun227454.online/blog/posts/note-architecture-424b790516f2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-architecture-424b790516f2/</guid><description>把人们编好的程序和原始数据送到计算机中去，并且将它们转换成计算机内部所能识别和接受的信息方式。常用的有键盘、鼠标、扫描仪等。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Chapter 1 概论</title><link>https://sun227454.online/blog/posts/note-architecture-52cdae32d8a8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-architecture-52cdae32d8a8/</guid><description>计算机由==运算器、存储器、控制器、输入设备和输出设备==五大基本部件组成</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机体系结构</title><link>https://sun227454.online/blog/posts/note-architecture-96386e9e9843/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-architecture-96386e9e9843/</guid><description>计算机体系结构，计算机组成与体系结构相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>考试内容</title><link>https://sun227454.online/blog/posts/note-bigdata-c03d3a4c7260/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-bigdata-c03d3a4c7260/</guid><description>本次考试的重点内容是基本原理和实验，所列出的内容要深入理解基本概念（没有列出的内容基本不考），这些基本概念包括实验中的很多内容，如：如何设置NameNode。除此之外，还要求掌握HDFS、HBase的基本操作命令。请大家在准备考试时按下面内容进行，特别是实验部分。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>第1章 概述</title><link>https://sun227454.online/blog/posts/note-compiler-5acf6a3e0c22/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-compiler-5acf6a3e0c22/</guid><description>**编译程序（Compiler）**是将一种语言编写的程序翻译成另一种语言程序的软件。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>第1章 编译引论</title><link>https://sun227454.online/blog/posts/note-compiler-9a7bf966eb84/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-compiler-9a7bf966eb84/</guid><description>**编译程序（Compiler）**是将一种语言编写的程序翻译成另一种语言程序的软件。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>数据库系统原理</title><link>https://sun227454.online/blog/posts/note-database-104d70ebe5a3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-database-104d70ebe5a3/</guid><description>事务指的是满足 ACID 特性的一组操作，可以通过 Commit 提交一个事务，也可以使用 Rollback 进行回滚。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MySQL Shell</title><link>https://sun227454.online/blog/posts/note-database-3e32c060788e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-database-3e32c060788e/</guid><description>MySQL Shell（mysqlsh）是 MySQL 官方提供的新一代命令行工具，支持多种语言（SQL、JavaScript、Python）和更现代化的交互方式。相比传统的 mysql 客户端，MySQL Shell 功能更强大，特别适合开发者和管理员。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>云服务器linux下安装MySQL</title><link>https://sun227454.online/blog/posts/note-database-44863b336c03/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-database-44863b336c03/</guid><description>1.linux下安装mysql：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>基础</title><link>https://sun227454.online/blog/posts/note-database-45ad2ab52d61/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-database-45ad2ab52d61/</guid><description>模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息，数据库和表都有模式。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ERROR-1045-(28000)--Access-denied-for-user-&apos;debian-sys-maint&apos;@&apos;localho</title><link>https://sun227454.online/blog/posts/note-database-46064261d4ef/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-database-46064261d4ef/</guid><description>其实这里面提供了，我们可以登录的账号密码，只需要暂时用这个登录，然后再授权一个新用户就行。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>数据库基本概念</title><link>https://sun227454.online/blog/posts/note-database-496749da1bc8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-database-496749da1bc8/</guid><description>数据库（Database）指长期存储在计算机内的、有组织的、可共享的数据集合</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>数据库 MOC</title><link>https://sun227454.online/blog/posts/note-database-6dafab2d9dd7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-database-6dafab2d9dd7/</guid><description>数据库 MOC，数据库相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Error--ER_TRUNCATED_WRONG_VALUE_FOR_FIELD</title><link>https://sun227454.online/blog/posts/note-database-96655ba947f2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-database-96655ba947f2/</guid><description>解决方法是改变数据库的编码格式：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>mysql基础操作</title><link>https://sun227454.online/blog/posts/note-database-adf1f1289207/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-database-adf1f1289207/</guid><description>mysql基础操作，数据库相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>数据库课程笔记</title><link>https://sun227454.online/blog/posts/note-database-becc1f4f2f93/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-database-becc1f4f2f93/</guid><description>数据管理：对数据分类、组织、编码、存储、检索、维护</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>SQL 练习</title><link>https://sun227454.online/blog/posts/note-database-ceca16daaa56/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-database-ceca16daaa56/</guid><description>https://leetcode.com/problems/big-countries/description/</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>MySQL</title><link>https://sun227454.online/blog/posts/note-database-fad189814592/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-database-fad189814592/</guid><description>B Tree 指的是 Balance Tree，也就是平衡树。平衡树是一颗查找树，并且所有叶子节点位于同一层。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>html面试知识点</title><link>https://sun227454.online/blog/posts/note-frontend-0ea6ef1a8040/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-frontend-0ea6ef1a8040/</guid><description>本部分主要是笔者在复习 HTML 相关知识和一些相关面试题时所做的笔记，如果出现错误，希望大家指出！</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Vue3 项目说明</title><link>https://sun227454.online/blog/posts/note-frontend-2f11c1e37a56/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-frontend-2f11c1e37a56/</guid><description>Vue 3 项目由多个文件和文件夹组成，每个部分都有其特定的作用。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>css面试知识点</title><link>https://sun227454.online/blog/posts/note-frontend-3af88ef75e64/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-frontend-3af88ef75e64/</guid><description>本部分主要是笔者在复习 CSS 相关知识和一些相关面试题时所做的笔记，如果出现错误，希望大家指出！</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>前端开发 MOC</title><link>https://sun227454.online/blog/posts/note-frontend-44472d6ac82b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-frontend-44472d6ac82b/</guid><description>前端开发 MOC，前端开发相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>css</title><link>https://sun227454.online/blog/posts/note-frontend-e7a3f7a29f6f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-frontend-e7a3f7a29f6f/</guid><description>css，前端开发相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>JavaScript面试知识点</title><link>https://sun227454.online/blog/posts/note-frontend-fa129cda4c83/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-frontend-fa129cda4c83/</guid><description>本部分主要是笔者在复习 JavaScript 相关知识和一些相关面试题时所做的笔记，如果出现错误，希望大家指出！</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>如何启动 &amp; 基本运行</title><link>https://sun227454.online/blog/posts/note-languages-02634623aef8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-02634623aef8/</guid><description>GNU调试器（GNU Debugger，简称GDB）是GNU项目开发的一款功能强大的命令行调试工具，主要用于C、C++等编程语言的调试。作为Linux/Unix系统下最常用的调试器之一，GDB可以帮助开发者：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>C++面向对象</title><link>https://sun227454.online/blog/posts/note-languages-0b251082b728/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-0b251082b728/</guid><description>带有 const 的成员函数表示：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day02——面向对象高级</title><link>https://sun227454.online/blog/posts/note-languages-0d3bd816f360/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-0d3bd816f360/</guid><description>今天我们继续学习面向对象的语法知识，我们今天学习的主要内容是：多态、抽象、接口。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day06——Java编程案例（专题）</title><link>https://sun227454.online/blog/posts/note-languages-0ea0af8a94de/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-0ea0af8a94de/</guid><description>各位同学，前面我们已经学习过很多Java的基础知识了，主要有变量、数组、运算符、流程控制、方法等。但是对于这些知识点的运用，掌握得还不是很熟练，所以今天我们专门花一天时间，给同学们讲几个专项练习题，把前面所学习的知识巩固一下。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>J2SE</title><link>https://sun227454.online/blog/posts/note-languages-0faba552bdd2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-0faba552bdd2/</guid><description>八种基本数据类型的大小，以及他们的封装类。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day05-算法和数据结构</title><link>https://sun227454.online/blog/posts/note-languages-11631c7af96c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-11631c7af96c/</guid><description>接下来我们学习的类叫做Arrays，其实Arrays并不是重点，但是我们通过Arrays这个类的学习有助于我们理解下一个知识点Lambda的学习。所以我们这里先学习Arrays，再通过Arrays来学习Lamdba这样学习会更丝滑一些^_^.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day09——Java基础项目（ATM系统）</title><link>https://sun227454.online/blog/posts/note-languages-13c83ea1623b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-13c83ea1623b/</guid><description>各位同学，恭喜大家，学完前面的课程内容之后，就算对Java语言开发程序成功入门了。接下来我们就可以使用Java语言开发一个小项目了——ATM系统。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java基础面试题</title><link>https://sun227454.online/blog/posts/note-languages-188b1824555a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-188b1824555a/</guid><description>本部分全部内容是根据张孝祥老师的Word文档整理而来。只不过是为了方便观看，把代码部分用markdown来展示。整理时脑海中不断回忆起张老师上课的情景，真是怀念。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day03——面向对象高级</title><link>https://sun227454.online/blog/posts/note-languages-29eeabdc1c1a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-29eeabdc1c1a/</guid><description>各位同学，前面两天我们已经把面向对象最主要的内容学习完了，剩下的这些语法知识学完，那么Java语法知识就算全齐活了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java利用ExecutorService实现同步执行大量线程</title><link>https://sun227454.online/blog/posts/note-languages-2bd800d883bd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-2bd800d883bd/</guid><description>这样，我们就看到了，数据肯定是乱了的，当然这个时候我们可以加上一个synchronized的关键字，但是这样也会出现点小问题的</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java 并发</title><link>https://sun227454.online/blog/posts/note-languages-2e2155f5a00b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-2e2155f5a00b/</guid><description>实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务，不是真正意义上的线程，因此最后还需要通过 Thread 来调用。可以理解为任务是通过线程驱动从而执行的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day13-网络编程</title><link>https://sun227454.online/blog/posts/note-languages-3642e882bc67/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-3642e882bc67/</guid><description>同学们，今天我们学习的课程内容叫网络编程。意思就是编写的应用程序可以与网络上其他设备中的应用程序进行数据交互。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day08-Map集合、Stream流、File类</title><link>https://sun227454.online/blog/posts/note-languages-3727c20a5a5e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-3727c20a5a5e/</guid><description>同学们，在前面几节课我们已经学习了Map集合的常用方法，以及遍历方式。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day04——Java数组</title><link>https://sun227454.online/blog/posts/note-languages-398df9655629/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-398df9655629/</guid><description>各位同学，今天我们学习一个Java中非常重要的技术——数组。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day01 ——Java基础入门</title><link>https://sun227454.online/blog/posts/note-languages-3efe5e1fafa7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-3efe5e1fafa7/</guid><description>Hello，各位小伙伴大家好，欢迎来到Java的世界，咱们正式开干！！！</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day09-字符集、IO流（一）</title><link>https://sun227454.online/blog/posts/note-languages-408d65cd43db/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-408d65cd43db/</guid><description>各位同学，前面我们已经学习了File类，通过File类的对象可以对文件进行操作，但是不能操作文件中的内容。要想操作文件中的内容，我们还得学习IO流。但是在正式学习IO流之前，我们还需要学习一个前置知识叫做字符集，只有我们把字符集搞明白了，再学习IO流才会更加丝滑。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>虚拟机类加载机制</title><link>https://sun227454.online/blog/posts/note-languages-4aa1a9a8d4e7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-4aa1a9a8d4e7/</guid><description>虚拟机把描述类的数据从Class文件加载到内存，并对数据进行校验、转换解析和初始化，最终形成可以被Java虚拟机直接使用的Java类型，这就是虚拟机的类加载机制。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>算法题常用</title><link>https://sun227454.online/blog/posts/note-languages-4c68bb309d88/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-4c68bb309d88/</guid><description>在 Python 中解决算法问题时，可以利用其简洁的语法和丰富的内置库来大幅简化代码。以下是一些常用技巧和工具，帮助你高效编写算法代码：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>2day07——面向对象基础</title><link>https://sun227454.online/blog/posts/note-languages-5a43b68b91af/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-5a43b68b91af/</guid><description>各位同学，恭喜大家！！！大家学习完前面的课程后，说明Java的基础语法就全掌握了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>面向对象思想</title><link>https://sun227454.online/blog/posts/note-languages-5b1d2d4b9f2e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-5b1d2d4b9f2e/</guid><description>利用抽象数据类型将数据和基于数据的操作封装在一起，使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部，尽可能地隐藏内部的细节，只保留一些对外的接口使其与外部发生联系。用户无需关心对象内部的细节，但可以通过对象对外提供的接口来访问该对象。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>main函数</title><link>https://sun227454.online/blog/posts/note-languages-5e506bb891a6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-5e506bb891a6/</guid><description>main函数执行之前，主要就是初始化系统相关资源：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java回调机制</title><link>https://sun227454.online/blog/posts/note-languages-5f060d5b7d41/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-5f060d5b7d41/</guid><description>这两种实现方式本质上是类似的，应用场景略有不同，如果有熟知安卓的朋友应该可以知道，在为一个view添加点击实现的时候是有两种方式的</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java语言基础</title><link>https://sun227454.online/blog/posts/note-languages-6b892f4249eb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-6b892f4249eb/</guid><description>像其他语言一样，Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java注解的编写与Java的反射机制</title><link>https://sun227454.online/blog/posts/note-languages-6cce1e93994b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-6cce1e93994b/</guid><description>想了解注解标签的原理，我们最好先搞懂，java的反射机制。所以可能这篇文章的篇幅较长，希望大家可以认真的读完。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java 容器</title><link>https://sun227454.online/blog/posts/note-languages-6d196871ce4c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-6d196871ce4c/</guid><description>容器主要包括 Collection 和 Map 两种，Collection 存储着对象的集合，而 Map 存储着键值对（两个对象）的映射表。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day01——面向对象高级</title><link>https://sun227454.online/blog/posts/note-languages-74aaa011a66b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-74aaa011a66b/</guid><description>各位同学，接下来的三天课程中，我们继续学习面向对象的相关课程。面向对象是写Java程序的核心套路，如何你不懂面向对象，那就相当于Java你白学了。所以在接下来的三天时间里，各位同学也需要克服重重困难好好学习。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Des加密算法</title><link>https://sun227454.online/blog/posts/note-languages-7865072fc70a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-7865072fc70a/</guid><description>Des加密算法，语言相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>中英对照表</title><link>https://sun227454.online/blog/posts/note-languages-7d6b86dd7df6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-7d6b86dd7df6/</guid><description>\2. 面向对象的三个基本特征是封装、继承、和多态</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java 基础</title><link>https://sun227454.online/blog/posts/note-languages-7e7dfd32030d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-7e7dfd32030d/</guid><description>boolean 只有两个值：true、false，可以使用 1 bit 来存储，但是具体大小没有明确规定。JVM 会在编译时期将 boolean 类型的数据转换为 int，使用 1 来表示 true，0 表示 false。JVM 支持 boolean 数组，但是是通过读写 byte 数组来实现的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java 虚拟机</title><link>https://sun227454.online/blog/posts/note-languages-8508fbfe6708/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-8508fbfe6708/</guid><description>本文大部分内容参考 周志明《深入理解 Java 虚拟机》 ，想要深入学习的话请看原书。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day11-特殊文件、日志技术、多线程</title><link>https://sun227454.online/blog/posts/note-languages-8d2c8c4880ce/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-8d2c8c4880ce/</guid><description>同学们，前面我们学习了IO流，我们知道IO流是用来读、写文件中的数据。但是我们接触到的文件都是普通的文本文件，普通的文本文件里面的数据是没有任何格式规范的，用户可以随意编写，如下图所示。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day07——集合进阶（Set、Map集合）</title><link>https://sun227454.online/blog/posts/note-languages-910f91063c6d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-910f91063c6d/</guid><description>Set集合是属于Collection体系下的另一个分支，它的特点如下图所示</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day10-多线程</title><link>https://sun227454.online/blog/posts/note-languages-9767d35a9260/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-9767d35a9260/</guid><description>下面我们演示一下getName()、setName(String name)、currentThread()、sleep(long time)这些方法的使用效果。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>平时练习Go的代码</title><link>https://sun227454.online/blog/posts/note-languages-99e6cde308cc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-99e6cde308cc/</guid><description>平时练习Go的代码，语言相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day05——方法</title><link>https://sun227454.online/blog/posts/note-languages-9b4b8dbfb91d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-9b4b8dbfb91d/</guid><description>各位同学，今天我们学习的内容是方法。方法也是Java语言中一个很重要的组成部分，在实际开发中几乎每时每刻都在使用方法。所以对于今天的课程一定要搞清楚。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day03——程序流程控制</title><link>https://sun227454.online/blog/posts/note-languages-a20b40732bbe/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-a20b40732bbe/</guid><description>各位同学，今天我们学习一个全新的知识——程序流程控制。什么是流程控制呢？说白了就是控制程序的执行顺序。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java IO</title><link>https://sun227454.online/blog/posts/note-languages-b16d350894ab/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-b16d350894ab/</guid><description>Java 的 I/O 大概可以分成以下几类：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day14-单元测试、反射</title><link>https://sun227454.online/blog/posts/note-languages-b2840de8db35/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-b2840de8db35/</guid><description>恭喜同学们，Java主要的知识我们其实已经学习得差不多了。今天同学们再把单元测试、反射、注解、动态代理学习完。Java的基础知识就算全齐活了。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Cpp MOC</title><link>https://sun227454.online/blog/posts/note-languages-b7d8572a1734/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-b7d8572a1734/</guid><description>Cpp MOC，语言相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>simpread-【2025 蓝桥杯 Python 备赛】知识点 _ 算法模板整理 - CSDN 博客</title><link>https://sun227454.online/blog/posts/note-languages-b8008d7a03de/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-b8008d7a03de/</guid><description>通过系统性地学习和练习这些知识点，再加上适量的真题训练，建议每天保持 3-5 小时的专注练习时间，省一等奖乃至国奖都还是非常有希望的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>C++ 文件操作</title><link>https://sun227454.online/blog/posts/note-languages-b850570dcda4/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-b850570dcda4/</guid><description>下面是整理后的文章，并加上了适当的补充内容：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>HashTable和HashMap的异同</title><link>https://sun227454.online/blog/posts/note-languages-c6e98f60b0e0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-c6e98f60b0e0/</guid><description>备注：程序在对 collection 进行迭代时，某个线程对该 collection 在结构上对其做了修改，这时迭代器就会抛出 ConcurrentModificationException 异常信息，从而产生 fail-fast。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java回调的原理与实现</title><link>https://sun227454.online/blog/posts/note-languages-c7db0e52a971/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-c7db0e52a971/</guid><description>##回调 回调的概念：举个例子就是，我们想要问别人一道题，我们把题跟对方说了一下，对方说好，等我做完这道题，我就告诉你，这个时候就用到了回调，因为我们并不知道对方什么时候会做完，而是对方做完了来主动找我们。 ####同步回调 代码运行到某一个位置的时候，如果遇到了需要回调的代码，会在这里等待，等待回调结果返回后再继续执行。 ####异步回调 代码执行到需要回</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day10-IO流（二）</title><link>https://sun227454.online/blog/posts/note-languages-cbf07d24b0dc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-cbf07d24b0dc/</guid><description>同学们，前面我们学习了字节流，使用字节流可以读取文件中的字节数据。但是如果文件中有中文，使用字节流来读取，就有可能读到半个汉字的情况，这样会导致乱码。虽然使用读取全部字节的方法不会出现乱码，但是如果文件过大又不太合适。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>JVM</title><link>https://sun227454.online/blog/posts/note-languages-d12d37d31fa6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-d12d37d31fa6/</guid><description>内存模型以及分区，需要详细到每个区放什么。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day04——常用API</title><link>https://sun227454.online/blog/posts/note-languages-d4199906bd61/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-d4199906bd61/</guid><description>1.1 StringBuilder方法演示</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Java MOC</title><link>https://sun227454.online/blog/posts/note-languages-d9166d4e0e7b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-d9166d4e0e7b/</guid><description>Java MOC，语言相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day06—集合进阶（异常、集合）</title><link>https://sun227454.online/blog/posts/note-languages-dde09058ed57/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-dde09058ed57/</guid><description>接下来，我们学习一下异常，学习异常有利于我们处理程序中可能出现的问题。我先带着同学们认识一下，什么是异常？</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>发布jar包到Maven中央仓库</title><link>https://sun227454.online/blog/posts/note-languages-e691b88d8667/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-e691b88d8667/</guid><description>需要注册一个Sonatype的账号，然后在上面提交一个工单，注册链接，注册之后我们需要提交一个工单，点击Create就可以创建工单了，然后我们需要填写一些它的描述信息，描述信息类似下图：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>考试</title><link>https://sun227454.online/blog/posts/note-languages-ec9b31b6b758/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-ec9b31b6b758/</guid><description>考试，语言相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>ArrayList、LinkedList、Vector的异同</title><link>https://sun227454.online/blog/posts/note-languages-f3747d063690/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-f3747d063690/</guid><description>我们可以看出ArrayList、LinkedList、Vector都实现了List的接口。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>day02——数据类型、运算符</title><link>https://sun227454.online/blog/posts/note-languages-fe987d0dab52/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-languages-fe987d0dab52/</guid><description>小伙伴们，又是元气满满的一天，今天继续开干！！！</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>第0章 Overview</title><link>https://sun227454.online/blog/posts/note-network-0111005d839d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-0111005d839d/</guid><description>网络层不可靠传递：尽力而为，可能丢包</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>HTTP</title><link>https://sun227454.online/blog/posts/note-network-145d29e973d3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-145d29e973d3/</guid><description>客户端发送一个请求报文给服务器，服务器根据请求报文中的信息进行处理，并将处理结果放入响应报文中返回给客户端。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机网络</title><link>https://sun227454.online/blog/posts/note-network-15d4c8fb7cdd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-15d4c8fb7cdd/</guid><description>本课程的考试题面为英文，可以用中英文作答，因此对计网中各类概念的英文理解还是非常必要的</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>客户端网络面试速记</title><link>https://sun227454.online/blog/posts/note-network-31cf9bbc0aea/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-31cf9bbc0aea/</guid><description>客户端开发岗位（尤其是大厂）对计算机网络的要求通常集中在 TCP/IP 基础 + 常见网络机制 + 实际工程理解。面试不会像网络方向那样深入，但一些基础问题几乎必问。下面整理一套 客户端岗位必须掌握的核心知识点，理解到能解释原理即可。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机网络 - 应用层</title><link>https://sun227454.online/blog/posts/note-network-34219c1989c0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-34219c1989c0/</guid><description>DNS 是一个分布式数据库，提供了主机名和 IP 地址之间相互转换的服务。这里的分布式数据库是指，每个站点只保留它自己的那部分数据。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机网络 - 链路层</title><link>https://sun227454.online/blog/posts/note-network-3dc90dbd948a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-3dc90dbd948a/</guid><description>将网络层传下来的分组添加首部和尾部，用于标记帧的开始和结束。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机网络概述</title><link>https://sun227454.online/blog/posts/note-network-6b68fdeb6ac6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-6b68fdeb6ac6/</guid><description>计算机网络由若干结点node和连接这些节点的链路link组成</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机网络 - 概述</title><link>https://sun227454.online/blog/posts/note-network-7b71dbc8d294/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-7b71dbc8d294/</guid><description>网络把主机连接起来，而互连网（internet）是把多种不同的网络连接起来，因此互连网是网络的网络。而互联网（Internet）是全球范围的互连网。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机网络 - 传输层</title><link>https://sun227454.online/blog/posts/note-network-84b4bb6e5bb5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-84b4bb6e5bb5/</guid><description>网络层只把分组发送到目的主机，但是真正通信的并不是主机而是主机中的进程。传输层提供了进程间的逻辑通信，传输层向高层用户屏蔽了下面网络层的核心细节，使应用程序看起来像是在两个传输层实体之间有一条端到端的逻辑通信信道。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机网络 - 网络层</title><link>https://sun227454.online/blog/posts/note-network-87e4b2d862d1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-87e4b2d862d1/</guid><description>因为网络层是整个互联网的核心，因此应当让网络层尽可能简单。网络层向上只提供简单灵活的、无连接的、尽最大努力交互的数据报服务。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>浅析Hessian协议</title><link>https://sun227454.online/blog/posts/note-network-8b0586cb325b/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-8b0586cb325b/</guid><description>Hessian支持很多种语言，例如Java，Flash/Flex,python,c++,.net/c#,D,Erlang,PHP,Ruby,Object C等</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>网络体系的分层结构</title><link>https://sun227454.online/blog/posts/note-network-96108a1229db/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-96108a1229db/</guid><description>http 请求由三部分组成，分别是：请求行、请求头、请求体</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机网络 - 物理层</title><link>https://sun227454.online/blog/posts/note-network-a9c3d3812b30/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-a9c3d3812b30/</guid><description>根据信息在传输线上的传送方向，分为以下三种通信方式：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机网络 MOC</title><link>https://sun227454.online/blog/posts/note-network-abc309bed01a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-abc309bed01a/</guid><description>计算机网络 MOC，计算机网络相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>浅谈Socket协议</title><link>https://sun227454.online/blog/posts/note-network-c5c4ffa6fbeb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-c5c4ffa6fbeb/</guid><description>Socket 是对 TCP/IP 协议族的一种封装，是应用层与TCP/IP协议族通信的中间软件抽象层。从设计模式的角度看来，Socket其实就是一个门面模式，它把复杂的TCP/IP协议族隐藏在Socket接口后面，对用户来说，一组简单的接口就是全部，让Socket去组织数据，以符合指定的协议。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>浅析Dubbo服务</title><link>https://sun227454.online/blog/posts/note-network-e3ba2b76b5d3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-e3ba2b76b5d3/</guid><description>当网站流量小时，只需一个应用，可以将所有功能都部署在一起，这样可以减少部署的节点和成本。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>SSH原理与应用</title><link>https://sun227454.online/blog/posts/note-network-f19e79079616/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-f19e79079616/</guid><description>ssh在程序员的生活中还是非常常见的，ssh具有很多种功能，也可以用在很多种场合。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机网络</title><link>https://sun227454.online/blog/posts/note-network-f8c418c5a215/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-f8c418c5a215/</guid><description>计算机网络，计算机网络相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>浅析RPC协议</title><link>https://sun227454.online/blog/posts/note-network-f981d10565e7/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-network-f981d10565e7/</guid><description>1.调用客户端句柄；执行传送参数 2.调用本地系统内核发送网络消息 3.消息传送到远程主机 4.服务器句柄得到消息并取得参数 5.执行远程过程 6.执行的过程将结果返回服务器句柄 7.服务器句柄返回结果，调用远程系统内核 8.消息传回本地主机 9.客户句柄由内核接收消息 10.客户接收句柄返回的数据</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>第六章作业</title><link>https://sun227454.online/blog/posts/note-os-0a946e3bc563/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-0a946e3bc563/</guid><description>详见教材第6章习题6-6、6-13。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>操作系统</title><link>https://sun227454.online/blog/posts/note-os-22d1ecd0ab99/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-22d1ecd0ab99/</guid><description>目前对于操作系统没有明确的定义。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>第四章作业</title><link>https://sun227454.online/blog/posts/note-os-2a91be9ab098/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-2a91be9ab098/</guid><description>考虑有一个可变分区系统，含有如下顺序的空闲区：10K，40K，20K，18K，7K，9K，12K 和 15K，现有请求分配存储空间的序列：(1) 12K，(2) 10K，(3) 9K。若采用首次适应时，将分配哪些空闲区；若采用最佳适应和最坏适应算法呢？</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>操作系统面试速记</title><link>https://sun227454.online/blog/posts/note-os-3ad30a0e94ee/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-3ad30a0e94ee/</guid><description>多个进程互相等待资源，导致永远无法执行。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机操作系统</title><link>https://sun227454.online/blog/posts/note-os-4465b12dbcac/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-4465b12dbcac/</guid><description>操作系统是运行在内核态的软件，它执行两个基本上独立的任务。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机操作系统 - 死锁</title><link>https://sun227454.online/blog/posts/note-os-5b883f6fefa1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-5b883f6fefa1/</guid><description>把头埋在沙子里，假装根本没发生问题。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机操作系统 - 进程管理</title><link>https://sun227454.online/blog/posts/note-os-60821f85522f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-60821f85522f/</guid><description>进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态，所谓的创建进程和撤销进程，都是指对 PCB 的操作。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机操作系统 - 概述</title><link>https://sun227454.online/blog/posts/note-os-6a7b5280172a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-6a7b5280172a/</guid><description>并发是指宏观上在一段时间内能同时运行多个程序，而并行则指同一时刻能运行多个指令。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>第五章作业</title><link>https://sun227454.online/blog/posts/note-os-73dfa5c0c3ef/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-73dfa5c0c3ef/</guid><description>详见教材第5章习题5-9、5-10、5-13、5-14、5-15。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>一、程序结构和执行</title><link>https://sun227454.online/blog/posts/note-os-76a31f2db2c3/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-76a31f2db2c3/</guid><description>大多数计算机使用8位的块（字节byte）作为最小的可寻址的内存单位。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机操作系统</title><link>https://sun227454.online/blog/posts/note-os-7f9d5cb7a3a9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-7f9d5cb7a3a9/</guid><description>计算机操作系统，操作系统相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>操作系统 MOC</title><link>https://sun227454.online/blog/posts/note-os-90a6dd66078c/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-90a6dd66078c/</guid><description>操作系统 MOC，操作系统相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机操作系统 - 链接</title><link>https://sun227454.online/blog/posts/note-os-a5ab43f3a5d9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-a5ab43f3a5d9/</guid><description>以下是一个 hello.c 程序：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>补充题</title><link>https://sun227454.online/blog/posts/note-os-e0b4100ebf85/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-e0b4100ebf85/</guid><description>详见教材第3章习题3-7、3-8、3-9、3-14、3-15、3-16、3-17、3-18、3-19、3-20、3-21。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机操作系统 - 设备管理</title><link>https://sun227454.online/blog/posts/note-os-e6d0f6d3e58d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-e6d0f6d3e58d/</guid><description>读写一个磁盘块的时间的影响因素有：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>计算机操作系统 - 内存管理</title><link>https://sun227454.online/blog/posts/note-os-edd8e72a0637/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-os-edd8e72a0637/</guid><description>虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存，从而让程序获得更多的可用内存。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 解释器</title><link>https://sun227454.online/blog/posts/note-patterns-0843209542a1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-0843209542a1/</guid><description>为语言创建解释器，通常由语言的语法和语法分析来定义。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 策略</title><link>https://sun227454.online/blog/posts/note-patterns-10ced0b0e916/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-10ced0b0e916/</guid><description>定义一系列算法，封装每个算法，并使它们可以互换。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 外观</title><link>https://sun227454.online/blog/posts/note-patterns-1a2e06b65e09/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-1a2e06b65e09/</guid><description>提供了一个统一的接口，用来访问子系统中的一群接口，从而让子系统更容易使用。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 中介者</title><link>https://sun227454.online/blog/posts/note-patterns-1a54b2d915dc/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-1a54b2d915dc/</guid><description>集中相关对象之间复杂的沟通和控制方式。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 组合</title><link>https://sun227454.online/blog/posts/note-patterns-29fe0da20094/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-29fe0da20094/</guid><description>将对象组合成树形结构来表示“整体/部分”层次关系，允许用户以相同的方式处理单独对象和组合对象。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 空对象</title><link>https://sun227454.online/blog/posts/note-patterns-2b76c4af8518/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-2b76c4af8518/</guid><description>一个方法返回 NULL，意味着方法的调用端需要去检查返回值是否是 NULL，这么做会导致非常多的冗余的检查代码。并且如果某一个调用端忘记了做这个检查返回值，而直接使用返回的对象，那么就有可能抛出空指针异常。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 状态</title><link>https://sun227454.online/blog/posts/note-patterns-2e78a3df4e72/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-2e78a3df4e72/</guid><description>允许对象在内部状态改变时改变它的行为，对象看起来好像修改了它所属的类。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>单例模式</title><link>https://sun227454.online/blog/posts/note-patterns-3ae42f3e1561/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-3ae42f3e1561/</guid><description>单例模式，比较重要的应用是，我们可以确保我们的线程安全，因为如果我们用多个对象来操作我们的线程池的时候是很为危险的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 桥接</title><link>https://sun227454.online/blog/posts/note-patterns-3d01a49662e1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-3d01a49662e1/</guid><description>将抽象与实现分离开来，使它们可以独立变化。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 抽象工厂</title><link>https://sun227454.online/blog/posts/note-patterns-3d3842046ec5/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-3d3842046ec5/</guid><description>提供一个接口，用于创建 相关的对象家族 。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式分类</title><link>https://sun227454.online/blog/posts/note-patterns-40f96651a89d/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-40f96651a89d/</guid><description>BitmapFactory.java</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>面向对象的六大原则</title><link>https://sun227454.online/blog/posts/note-patterns-45edb388f93f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-45edb388f93f/</guid><description>所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变，那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。通俗的说，即一个类只负责一项职责，将一组相关性很高的函数、数据封装到一个类中。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 生成器</title><link>https://sun227454.online/blog/posts/note-patterns-464ba83f89d1/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-464ba83f89d1/</guid><description>封装一个对象的构造过程，并允许按步骤构造。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>观察者模式</title><link>https://sun227454.online/blog/posts/note-patterns-49f589fea2ff/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-49f589fea2ff/</guid><description>实现方式：观察者模式（Observer）完美的将观察者和被观察的对象分离开。举个例子，用户界面可以作为一个观察者，业务数据是被观察者，用户界面观察业务数据的变化，发现数据变化后，就显示在界面上。面向对象设计的一个原则是：系统中的每个类将重点放在某一个功能上，而不是其他方面。一个对象只做一件事情，并且将他做好。观察者模式在模块之间划定了清晰的界限，提高了应用程</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 工厂方法</title><link>https://sun227454.online/blog/posts/note-patterns-524b292b75ea/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-524b292b75ea/</guid><description>定义了一个创建对象的接口，但由子类决定要实例化哪个类。工厂方法把实例化操作推迟到子类。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 代理</title><link>https://sun227454.online/blog/posts/note-patterns-54edcddb3262/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-54edcddb3262/</guid><description>以下是一个虚拟代理的实现，模拟了图片延迟加载的情况下使用与图片大小相等的临时内容去替换原始图片，直到图片加载完成才将图片显示出来。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 装饰</title><link>https://sun227454.online/blog/posts/note-patterns-695d28524682/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-695d28524682/</guid><description>装饰者（Decorator）和具体组件（ConcreteComponent）都继承自组件（Component），具体组件的方法实现不需要依赖于其它对象，而装饰者组合了一个组件，这样它可以装饰其它装饰者或者具体组件。所谓装饰，就是把这个装饰者套在被装饰者之上，从而动态扩展被装饰者的功能。装饰者的方法有一部分是自己的，这属于它的功能，然后调用被装饰者的方法实现，</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 MOC</title><link>https://sun227454.online/blog/posts/note-patterns-6bfde3ab1856/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-6bfde3ab1856/</guid><description>设计模式 MOC，设计模式相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 备忘录</title><link>https://sun227454.online/blog/posts/note-patterns-7613acccd071/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-7613acccd071/</guid><description>在不违反封装的情况下获得对象的内部状态，从而在需要时可以将对象恢复到最初状态。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 访问者</title><link>https://sun227454.online/blog/posts/note-patterns-8c4164c28ceb/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-8c4164c28ceb/</guid><description>为一个对象结构（比如组合结构）增加新能力。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式目录</title><link>https://sun227454.online/blog/posts/note-patterns-8c6e4df3067f/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-8c6e4df3067f/</guid><description>设计模式是解决问题的方案，学习现有的设计模式可以做到经验复用。拥有设计模式词汇，在沟通时就能用更少的词汇来讨论，并且不需要了解底层细节。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 观察者</title><link>https://sun227454.online/blog/posts/note-patterns-936e5f0b3064/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-936e5f0b3064/</guid><description>定义对象之间的一对多依赖，当一个对象状态改变时，它的所有依赖都会收到通知并且自动更新状态。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式概括</title><link>https://sun227454.online/blog/posts/note-patterns-9f6d58ebfe6a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-9f6d58ebfe6a/</guid><description>设计模式总共有六大原则： 1、开闭原则（Open Close Principle）</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 命令</title><link>https://sun227454.online/blog/posts/note-patterns-ab3ef9cb4d12/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-ab3ef9cb4d12/</guid><description>将命令封装成对象中，具有以下作用：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 迭代器</title><link>https://sun227454.online/blog/posts/note-patterns-b69984a0c511/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-b69984a0c511/</guid><description>提供一种顺序访问聚合对象元素的方法，并且不暴露聚合对象的内部表示。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 责任链</title><link>https://sun227454.online/blog/posts/note-patterns-c8149d1fc8b8/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-c8149d1fc8b8/</guid><description>使多个对象都有机会处理请求，从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链，并沿着这条链发送该请求，直到有一个对象处理它为止。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>单例模式的四种实现方式</title><link>https://sun227454.online/blog/posts/note-patterns-c857a06222a9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-c857a06222a9/</guid><description>单例模式的四种实现方式，设计模式相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 享元</title><link>https://sun227454.online/blog/posts/note-patterns-cf3fbb0f8fbd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-cf3fbb0f8fbd/</guid><description>利用共享的方式来支持大量细粒度的对象，这些对象一部分内部状态是相同的。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 简单工厂</title><link>https://sun227454.online/blog/posts/note-patterns-d4786355f7c2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-d4786355f7c2/</guid><description>在创建一个对象时不向客户暴露内部细节，并提供一个创建对象的通用接口。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 适配器</title><link>https://sun227454.online/blog/posts/note-patterns-d7d9743fd67a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-d7d9743fd67a/</guid><description>把一个类接口转换成另一个用户需要的接口。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式  - 单例</title><link>https://sun227454.online/blog/posts/note-patterns-dc5d69df56d6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-dc5d69df56d6/</guid><description>确保一个类只有一个实例，并提供该实例的全局访问点。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 原型模式</title><link>https://sun227454.online/blog/posts/note-patterns-ddc1e5d6c743/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-ddc1e5d6c743/</guid><description>使用原型实例指定要创建对象的类型，通过复制这个原型来创建新对象。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>设计模式 - 模板方法</title><link>https://sun227454.online/blog/posts/note-patterns-e7b5192bac26/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-patterns-e7b5192bac26/</guid><description>定义算法框架，并将一些步骤的实现延迟到子类。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>lab说明</title><link>https://sun227454.online/blog/posts/note-systems-00aaf96ee4b9/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-systems-00aaf96ee4b9/</guid><description>《计算机系统导论》也就是csapp的8个lab非常耗时，其每个lab平均要花20h+（也有简单的比如lab3用个位数小时就能完成），所以如果lab等到ddl那天做，那大概率是写不完的</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Chapter 2 程序结构和执行</title><link>https://sun227454.online/blog/posts/note-systems-53336c515146/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-systems-53336c515146/</guid><description>bit（比特）：每一个比特是0或1，被称为”位“</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CSAPP实验3:Attack</title><link>https://sun227454.online/blog/posts/note-systems-567764f9a2dd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-systems-567764f9a2dd/</guid><description>这篇文章旨在帮助同学在做lab找不到思路时可以来这里寻找思路，默认读者已经详细的读过实验平台提供的实验文档</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>CSAPP实验五:Cache</title><link>https://sun227454.online/blog/posts/note-systems-77c43a21e117/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-systems-77c43a21e117/</guid><description>在这个Part中我们要写一个&quot;Cache&quot;，但是仔细分析实验的需求，我们只需要输出正确的hit, miss, eviction数即可，那么也就可以知道，我们不需要真的对数据做Load等操作，只需要根据地址来模拟即可</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>第三章</title><link>https://sun227454.online/blog/posts/note-systems-939e31c56391/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-systems-939e31c56391/</guid><description>已知 MIN_INT = 1000…0 MAX_INT = 0111…1 两者相加得到：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>介绍</title><link>https://sun227454.online/blog/posts/note-systems-fda18693bfe0/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-systems-fda18693bfe0/</guid><description>本次作业作为第4章处理器体系结构的配套实验，以Y86-64顺序和流水线处理器仿真器为基础，</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Git全面教程</title><link>https://sun227454.online/blog/posts/note-tools-0781922f6ae6/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-tools-0781922f6ae6/</guid><description>Linus在1991年创建了开源的Linux，但是一直没有一个合适的版本管理工具，在2002年以前，世界各地的志愿者都是通过把源代码文件通过diff的方式给Linus，然后他本人通过手工的方式进行合并代码。后来在2002年BitMover公司同意BitKeeper免费给Linux社区使用，但是2005年，社区里的同学们试图破解BitKeeper的协议，被发现</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Docker</title><link>https://sun227454.online/blog/posts/note-tools-0edf72f13808/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-tools-0edf72f13808/</guid><description>Docker 是一个开源的应用容器引擎，它允许开发者将应用及其依赖打包进一个轻量级、可移植的容器中，然后在任何支持 Docker 的平台上运行。 它的核心目标是“一次构建，到处运行”。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>一篇文章学懂Shell脚本</title><link>https://sun227454.online/blog/posts/note-tools-3850cd368de2/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-tools-3850cd368de2/</guid><description>Shell可以被称作是脚本语言，因为它本身是不需要编译的，而是通过解释器解释之后再编译执行，和传统语言相比多了解释的过程所以效率会略差于传统的直接编译的语言。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>git</title><link>https://sun227454.online/blog/posts/note-tools-4ff5127aa51e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-tools-4ff5127aa51e/</guid><description>Linus在1991年创建了开源的Linux，但是一直没有一个合适的版本管理工具，在2002年以前，世界各地的志愿者都是通过把源代码文件通过diff的方式给Linus，然后他本人通过手工的方式进行合并代码。后来在2002年BitMover公司同意BitKeeper免费给Linux社区使用，但是2005年，社区里的同学们试图破解BitKeeper的协议，被发现</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>构建工具</title><link>https://sun227454.online/blog/posts/note-tools-700cdf15c20a/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-tools-700cdf15c20a/</guid><description>构建一个项目通常包含了依赖管理、测试、编译、打包、发布等流程，构建工具可以自动化进行这些操作，从而为我们减少这些繁琐的工作。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>工具 MOC</title><link>https://sun227454.online/blog/posts/note-tools-74f46a2bf573/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-tools-74f46a2bf573/</guid><description>工具 MOC，工具相关学习记录。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Gradle知识点汇总</title><link>https://sun227454.online/blog/posts/note-tools-8bf79c360b56/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-tools-8bf79c360b56/</guid><description>Gradle 是一个现代化的构建工具，广泛应用于 Java、Kotlin、Android 等项目的构建、依赖管理和自动化任务。它结合了 Maven 和 Ant 的优点，提供了高性能、灵活的构建能力。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>攻击技术</title><link>https://sun227454.online/blog/posts/note-tools-ba65d4630139/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-tools-ba65d4630139/</guid><description>跨站脚本攻击（Cross-Site Scripting, XSS），可以将代码注入到用户浏览的网页上，这种代码包括 HTML 和 JavaScript。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>GitHub基础操作</title><link>https://sun227454.online/blog/posts/note-tools-dd5ae98f532e/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-tools-dd5ae98f532e/</guid><description>以上就是总结给自己看的吧，如果大家有什么疑问也可以留言问，我有空也会介绍一下原理和与其它版本控制工具的对比</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Linux</title><link>https://sun227454.online/blog/posts/note-tools-ff8512841fee/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/note-tools-ff8512841fee/</guid><description>为了便于理解，本文从常用操作和概念开始讲起。虽然已经尽量做到简化，但是涉及到的内容还是有点多。在面试中，Linux 知识点相对于网络和操作系统等知识点而言不是那么重要，只需要重点掌握一些原理和命令即可。为了方便大家准备面试，在此先将一些比较重要的知识点列出来：</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>PyTorch：张量与自动微分</title><link>https://sun227454.online/blog/posts/pytorch-tensors-autograd/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/pytorch-tensors-autograd/</guid><description>张量形状、设备迁移、梯度累积，以及 detach、no_grad 和 eval 的适用范围。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>PyTorch 训练流程与验证</title><link>https://sun227454.online/blog/posts/pytorch-training-workflow/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/pytorch-training-workflow/</guid><description>数据划分、DataLoader、训练循环、检查点与评估指标的整理。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>结构化输出与 Schema 校验</title><link>https://sun227454.online/blog/posts/structured-output-validation/</link><guid isPermaLink="true">https://sun227454.online/blog/posts/structured-output-validation/</guid><description>合法 JSON、Schema 校验与业务校验的区别，以及截断、重试和显式失败的处理。</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item></channel></rss>