<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>又一天过去了</title>
  
  <subtitle>思考，再思考，直到能创造。</subtitle>
  <link href="https://anotherday99.github.io/atom.xml" rel="self"/>
  
  <link href="https://anotherday99.github.io/"/>
  <updated>2026-04-04T08:37:33.436Z</updated>
  <id>https://anotherday99.github.io/</id>
  
  <author>
    <name>anotherday99</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>最新LOS_gsi构建指南</title>
    <link href="https://anotherday99.github.io/2026/01/24/%E6%9C%80%E6%96%B0LOS-gsi%E6%9E%84%E5%BB%BA%E6%8C%87%E5%8D%97/"/>
    <id>https://anotherday99.github.io/2026/01/24/%E6%9C%80%E6%96%B0LOS-gsi%E6%9E%84%E5%BB%BA%E6%8C%87%E5%8D%97/</id>
    <published>2026-01-23T16:13:03.000Z</published>
    <updated>2026-04-04T08:37:33.436Z</updated>
    
    <content type="html"><![CDATA[<p><strong>本系列所有文章</strong></p><ol class="series-items"><li><a href="/2025/05/16/%E6%90%AD%E5%BB%BAlineageos%E7%BC%96%E8%AF%91%E7%8E%AF%E5%A2%83/" title="lineageOS编译环境及构建指南">lineageOS编译环境及构建指南</a></li><li><a href="/2026/01/24/%E6%9C%80%E6%96%B0LOS-gsi%E6%9E%84%E5%BB%BA%E6%8C%87%E5%8D%97/" title="最新LOS_gsi构建指南">最新LOS_gsi构建指南</a></li></ol><table><tr><td bgcolor=MistyRose>你可以通过使用右下角的小齿轮，来开启黑夜模式和阅读模式。<p><strong>如果你发现文章内容有错漏、你对文章内容有任何改进意见或者你阅读文章遇到了困难，都可以通过博客首页的邮箱联系我。</strong></p></td></tr></table><hr><h1 id="LineageOS-GSI-构建指南（优化版）"><a href="#LineageOS-GSI-构建指南（优化版）" class="headerlink" title="LineageOS GSI 构建指南（优化版）"></a>LineageOS GSI 构建指南（优化版）</h1><h2 id="📋-环境要求"><a href="#📋-环境要求" class="headerlink" title="📋 环境要求"></a>📋 环境要求</h2><ul><li><strong>操作系统</strong>: Debian 12（建议纯净安装）</li><li><strong>CPU</strong>: 建议内核数至少8核心。</li><li><strong>内存</strong>: 建议至少16GB RAM，并配置16GB以上swap空间</li><li><strong>存储</strong>: 建议至少350GB+可用空间（SSD更佳）</li><li><strong>网络</strong>: 稳定连接，建议使用代理或国内镜像加速</li></ul><hr><h2 id="一、环境配置"><a href="#一、环境配置" class="headerlink" title="一、环境配置"></a>一、环境配置</h2><h3 id="1-1-更新系统并安装依赖"><a href="#1-1-更新系统并安装依赖" class="headerlink" title="1.1 更新系统并安装依赖"></a>1.1 更新系统并安装依赖</h3><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 更新系统</span></span><br><span class="line"><span class="built_in">sudo</span> apt update &amp;&amp; <span class="built_in">sudo</span> apt upgrade -y</span><br><span class="line"></span><br><span class="line"><span class="comment"># 安装编译依赖包（适配Debian 12）</span></span><br><span class="line"><span class="built_in">sudo</span> apt install -y \</span><br><span class="line">  bc bison build-essential ccache curl flex g++-multilib gcc-multilib \</span><br><span class="line">  git git-lfs gnupg gperf imagemagick lib32ncurses-dev lib32z1-dev \</span><br><span class="line">  liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.2-dev \</span><br><span class="line">  libxml2 libxml2-utils lzop maven pngcrush python3 python-is-python3 \</span><br><span class="line">  rsync schedtool squashfs-tools tmux unzip wget zip zlib1g-dev \</span><br><span class="line">  openjdk-17-jdk android-sdk-platform-tools-common protobuf-compiler \</span><br><span class="line">  python3-protobuf lib32readline-dev libdw-dev libelf-dev lz4 \</span><br><span class="line">  xsltproc libncurses5 libtinfo5 p7zip-full</span><br></pre></td></tr></table></figure><h3 id="1-2-配置Git"><a href="#1-2-配置Git" class="headerlink" title="1.2 配置Git"></a>1.2 配置Git</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 请替换为你的实际信息</span><br><span class="line">git config --global user.email &quot;your-email@example.com&quot;</span><br><span class="line">git config --global user.name &quot;Your Name&quot;</span><br><span class="line">git lfs install</span><br><span class="line">git config --global trailer.changeid.key &quot;Change-Id&quot;</span><br></pre></td></tr></table></figure><h3 id="1-3-创建目录结构"><a href="#1-3-创建目录结构" class="headerlink" title="1.3 创建目录结构"></a>1.3 创建目录结构</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">mkdir -p ~/bin</span><br><span class="line">mkdir -p ~/lineageos</span><br></pre></td></tr></table></figure><h3 id="1-4-安装和配置Repo工具"><a href="#1-4-安装和配置Repo工具" class="headerlink" title="1.4 安装和配置Repo工具"></a>1.4 安装和配置Repo工具</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 下载repo工具</span><br><span class="line">curl https://storage.googleapis.com/git-repo-downloads/repo &gt; ~/bin/repo</span><br><span class="line">chmod a+x ~/bin/repo</span><br><span class="line"></span><br><span class="line"># 添加到PATH</span><br><span class="line">echo &#x27;export PATH=&quot;$HOME/bin:$PATH&quot;&#x27; &gt;&gt; ~/.bashrc</span><br><span class="line">source ~/.bashrc</span><br></pre></td></tr></table></figure><hr><h2 id="二、使用Tmux管理会话（推荐）"><a href="#二、使用Tmux管理会话（推荐）" class="headerlink" title="二、使用Tmux管理会话（推荐）"></a>二、使用Tmux管理会话（推荐）</h2><h3 id="2-1-Tmux基本操作"><a href="#2-1-Tmux基本操作" class="headerlink" title="2.1 Tmux基本操作"></a>2.1 Tmux基本操作</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 创建新会话（建议在开始编译前执行）</span><br><span class="line">tmux new -s lineage_build</span><br><span class="line"></span><br><span class="line"># 分离会话（保持后台运行）：</span><br><span class="line">Ctrl+b, 然后按 d</span><br><span class="line"></span><br><span class="line"># 重新连接会话</span><br><span class="line">tmux attach -t lineage_build</span><br><span class="line"></span><br><span class="line"># 列出所有会话</span><br><span class="line">tmux ls</span><br><span class="line"></span><br><span class="line"># 结束会话（在会话内部）</span><br><span class="line">exit</span><br><span class="line"># 或从外部结束</span><br><span class="line">tmux kill-session -t lineage_build</span><br></pre></td></tr></table></figure><hr><h2 id="三、获取源代码"><a href="#三、获取源代码" class="headerlink" title="三、获取源代码"></a>三、获取源代码</h2><h3 id="3-1-初始化仓库"><a href="#3-1-初始化仓库" class="headerlink" title="3.1 初始化仓库"></a>3.1 初始化仓库</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">cd ~/lineageos</span><br><span class="line"></span><br><span class="line">*可选参数 --no-clone-bundle*</span><br><span class="line"># LineageOS 23.0</span><br><span class="line">repo init -u https://github.com/LineageOS/android.git -b lineage-23.0 --git-lfs</span><br><span class="line"></span><br><span class="line"># LineageOS 21.0</span><br><span class="line">repo init -u https://github.com/LineageOS/android.git -b lineage-21.0 --git-lfs --no-clone-bundle</span><br><span class="line"></span><br><span class="line"># 如果需要LineageOS 22.2，使用：</span><br><span class="line"># repo init -u https://github.com/LineageOS/android.git -b lineage-22.2 --git-lfs</span><br></pre></td></tr></table></figure><h3 id="3-2-添加GSI专用Manifest，不同的分支请自行替换为对应的los版本manifest分支"><a href="#3-2-添加GSI专用Manifest，不同的分支请自行替换为对应的los版本manifest分支" class="headerlink" title="3.2 添加GSI专用Manifest，不同的分支请自行替换为对应的los版本manifest分支"></a>3.2 添加GSI专用Manifest，不同的分支请自行替换为对应的los版本manifest分支</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">git clone https://github.com/MisterZtr/treble_manifest.git .repo/local_manifests -b lineage-23.0</span><br></pre></td></tr></table></figure><h3 id="3-3-同步aosp代码"><a href="#3-3-同步aosp代码" class="headerlink" title="3.3 同步aosp代码"></a>3.3 同步aosp代码</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 建议使用较少线程</span><br><span class="line">repo sync --force-sync --optimized-fetch --no-tags --no-clone-bundle --prune -j4</span><br><span class="line"></span><br><span class="line"># 同步失败时可尝试清理后重试</span><br><span class="line"># repo forall -c &#x27;git reset --hard&#x27; &amp;&amp; repo sync --force-sync</span><br></pre></td></tr></table></figure><h3 id="3-4-应用补丁"><a href="#3-4-应用补丁" class="headerlink" title="3.4 应用补丁"></a>3.4 应用补丁</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">bash LineageOS_gsi/patches/apply-patches.sh .</span><br></pre></td></tr></table></figure><hr><h2 id="四、配置编译环境"><a href="#四、配置编译环境" class="headerlink" title="四、配置编译环境"></a>四、配置编译环境</h2><h3 id="4-1-设置ccache缓存"><a href="#4-1-设置ccache缓存" class="headerlink" title="4.1 设置ccache缓存"></a>4.1 设置ccache缓存</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 编辑bash配置文件</span><br><span class="line">vim ~/.bashrc</span><br><span class="line"></span><br><span class="line"># 这是在 ~/.bashrc 文件末尾添加的内容：</span><br><span class="line">export USE_CCACHE=1</span><br><span class="line">export CCACHE_COMPRESS=1</span><br><span class="line"></span><br><span class="line"># 设置缓存大小（建议50G以上），这是在命令行运行的指令</span><br><span class="line">ccache -M 50G</span><br><span class="line">ccache -o compression=true</span><br><span class="line"></span><br><span class="line"># 使配置生效</span><br><span class="line">source ~/.bashrc</span><br><span class="line"></span><br><span class="line"># 验证ccache配置</span><br><span class="line">ccache -s</span><br></pre></td></tr></table></figure><hr><h2 id="五、开始编译"><a href="#五、开始编译" class="headerlink" title="五、开始编译"></a>五、开始编译</h2><h3 id="5-1-初始化编译环境"><a href="#5-1-初始化编译环境" class="headerlink" title="5.1 初始化编译环境"></a>5.1 初始化编译环境</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">cd ~/lineageos</span><br><span class="line">source build/envsetup.sh</span><br><span class="line"></span><br><span class="line"># 确认缓存设置</span><br><span class="line">ccache -M 50G -F 0</span><br></pre></td></tr></table></figure><h3 id="5-2-编译选项说明"><a href="#5-2-编译选项说明" class="headerlink" title="5.2 编译选项说明"></a>5.2 编译选项说明</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">目标命名规则解释：</span><br><span class="line">- bvNE: VANILLA版（无GApps）+ erofs文件系统</span><br><span class="line">- bvN4: VANILLA版（无GApps）+ ext4文件系统  </span><br><span class="line">- bgNE: GAPPS版（包含GApps）+ erofs文件系统</span><br><span class="line">- bgN4: GAPPS版（包含GApps）+ ext4文件系统</span><br></pre></td></tr></table></figure><h3 id="5-3-编译命令"><a href="#5-3-编译命令" class="headerlink" title="5.3 编译命令"></a>5.3 编译命令</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">- 推荐erofs文件系统版本【但是erofs文件系统要求启动内核5.4+及相应的fstab条目】</span><br><span class="line"></span><br><span class="line"># VANILLA版本（erofs文件系统） </span><br><span class="line">breakfast lineage_arm64_bvNE-bp2a-userdebug</span><br><span class="line">make systemimage -j$(nproc --all)</span><br><span class="line"></span><br><span class="line"># VANILLA版本（ext4文件系统）</span><br><span class="line">breakfast lineage_arm64_bvN4-bp2a-userdebug</span><br><span class="line">make systemimage -j$(nproc --all)</span><br><span class="line"></span><br><span class="line"># GAPPS版本（erofs文件系统）</span><br><span class="line">breakfast lineage_arm64_bgNE-bp2a-userdebug</span><br><span class="line">make systemimage -j$(nproc --all)</span><br><span class="line"></span><br><span class="line"># GAPPS版本（ext4文件系统）</span><br><span class="line">breakfast lineage_arm64_bgN4-bp2a-userdebug</span><br><span class="line">make systemimage -j$(nproc --all)</span><br></pre></td></tr></table></figure><h3 id="5-4-编译过程监控"><a href="#5-4-编译过程监控" class="headerlink" title="5.4 编译过程监控"></a>5.4 编译过程监控</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 查看ccache命中率</span><br><span class="line">watch -n 5 ccache -s</span><br><span class="line"></span><br><span class="line"># 查看系统资源使用</span><br><span class="line">htop</span><br></pre></td></tr></table></figure><hr><h2 id="六、编译后处理"><a href="#六、编译后处理" class="headerlink" title="六、编译后处理"></a>六、编译后处理</h2><h3 id="6-1-定位生成的镜像文件"><a href="#6-1-定位生成的镜像文件" class="headerlink" title="6.1 定位生成的镜像文件"></a>6.1 定位生成的镜像文件</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 通常路径为（根据实际编译目标可能不同）</span><br><span class="line">cd out/target/product/tdgsi_arm64_ab</span><br><span class="line"></span><br><span class="line"># 验证文件存在</span><br><span class="line">ls -lh system.img</span><br><span class="line"></span><br><span class="line"># 检查镜像信息</span><br><span class="line">file system.img</span><br></pre></td></tr></table></figure><h3 id="6-2-压缩镜像（可选）"><a href="#6-2-压缩镜像（可选）" class="headerlink" title="6.2 压缩镜像（可选）"></a>6.2 压缩镜像（可选）</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 使用7z压缩</span><br><span class="line">7z a  system.img.xz system.img</span><br><span class="line"></span><br><span class="line"># 验证压缩文件完整性</span><br><span class="line">7z t system.img.xz</span><br></pre></td></tr></table></figure><hr><h2 id="七、常见问题与解决方法"><a href="#七、常见问题与解决方法" class="headerlink" title="七、常见问题与解决方法"></a>七、常见问题与解决方法</h2><h3 id="7-1-同步失败"><a href="#7-1-同步失败" class="headerlink" title="7.1 同步失败"></a>7.1 同步失败</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 方案1：重试同步</span><br><span class="line">repo sync --force-sync -j2</span><br><span class="line"></span><br><span class="line"># 方案2：清理并重新同步</span><br><span class="line">rm -rf .repo/project-objects</span><br><span class="line">repo sync --force-sync --no-clone-bundle -j2</span><br></pre></td></tr></table></figure><h3 id="7-2-编译失败"><a href="#7-2-编译失败" class="headerlink" title="7.2 编译失败"></a>7.2 编译失败</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 1. 清理编译环境</span><br><span class="line">make clean</span><br><span class="line"># 或</span><br><span class="line">mka clean</span><br><span class="line"></span><br><span class="line"># 2. 检查错误日志</span><br><span class="line">cat out/error.log | tail -100</span><br><span class="line"></span><br><span class="line"># 3. 重新开始编译</span><br><span class="line">source build/envsetup.sh</span><br><span class="line">breakfast [你的目标]</span><br><span class="line">make systemimage -j4  # 先用较少线程测试</span><br></pre></td></tr></table></figure><h3 id="7-3-内存不足"><a href="#7-3-内存不足" class="headerlink" title="7.3 内存不足"></a>7.3 内存不足</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 创建交换文件，这里的范例创建了24G的交换文件（如果内存不足）</span><br><span class="line">sudo dd if=/dev/zero of=/mnt/swap bs=1M count=24576</span><br><span class="line">sudo mkswap /mnt/swap</span><br><span class="line">sudo chmod 0600 /mnt/swap</span><br><span class="line">sudo swapon /mnt/swap</span><br><span class="line"></span><br><span class="line"># 永久添加（重启后生效）</span><br><span class="line">echo &#x27;/mnt/swap none swap sw 0 0&#x27; | sudo tee -a /etc/fstab</span><br><span class="line"></span><br><span class="line"># 卸载和删除swap</span><br><span class="line">卸载swap文件： sudo swapoff /mnt/swap</span><br><span class="line">删除swap文件：  rm -rf /mnt/swap</span><br></pre></td></tr></table></figure><h3 id="7-4-磁盘空间不足"><a href="#7-4-磁盘空间不足" class="headerlink" title="7.4 磁盘空间不足"></a>7.4 磁盘空间不足</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 清理ccache缓存</span><br><span class="line">ccache -C</span><br><span class="line"></span><br><span class="line"># 清理编译中间文件</span><br><span class="line">make clean</span><br><span class="line"></span><br><span class="line"># 查看磁盘使用</span><br><span class="line">df -h</span><br><span class="line">du -sh ~/lineageos/</span><br></pre></td></tr></table></figure><h3 id="7-5-应用补丁失败"><a href="#7-5-应用补丁失败" class="headerlink" title="7.5 应用补丁失败"></a>7.5 应用补丁失败</h3><p><strong>请尝试手动应用补丁。</strong></p><hr><h2 id="八、高级技巧"><a href="#八、高级技巧" class="headerlink" title="八、高级技巧"></a>八、高级技巧</h2><h3 id="8-1-使用国内镜像加速，请参考修改指南（可选）"><a href="#8-1-使用国内镜像加速，请参考修改指南（可选）" class="headerlink" title="8.1 使用国内镜像加速，请参考修改指南（可选）"></a>8.1 使用国内镜像加速，请参考修改<a href="https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/">指南</a>（可选）</h3><h3 id="8-2-增量编译"><a href="#8-2-增量编译" class="headerlink" title="8.2 增量编译"></a>8.2 增量编译</h3><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 修改代码后重新编译</span><br><span class="line">make systemimage -j$(nproc --all)</span><br></pre></td></tr></table></figure><h3 id="8-3-编译时间预估"><a href="#8-3-编译时间预估" class="headerlink" title="8.3 编译时间预估"></a>8.3 编译时间预估</h3><ul><li>首次编译：4-8小时（取决于硬件）</li><li>后续编译：30分钟-2小时（使用ccache）</li></ul><hr><h2 id="📝-使用建议"><a href="#📝-使用建议" class="headerlink" title="📝 使用建议"></a>📝 使用建议</h2><ol><li><strong>要想使用erofs系统，要求系统启动内核5.4+及相应的fstab条目</strong></li><li><strong>编译和同步源码过程中建议保持网络稳定</strong>，避免中断</li><li><strong>记得定期同步aosp源码</strong>，</li><li><strong>记录编译日志</strong>便于问题排查</li><li><strong>如果发现本文内容有严重的事实错误或内容上的错漏、过时</strong>，可以通过博客首页的邮箱联系我取得帮助或让我及时修改文章内容。</li></ol>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;strong&gt;本系列所有文章&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&quot;series-items&quot;&gt;&lt;li&gt;&lt;a href=&quot;/2025/05/16/%E6%90%AD%E5%BB%BAlineageos%E7%BC%96%E8%AF%91%E7%8E%AF%E5%</summary>
      
    
    
    
    <category term="lineageOS编译" scheme="https://anotherday99.github.io/categories/lineageOS%E7%BC%96%E8%AF%91/"/>
    
    
    <category term="lineageOS" scheme="https://anotherday99.github.io/tags/lineageOS/"/>
    
  </entry>
  
  <entry>
    <title>termux备份和恢复</title>
    <link href="https://anotherday99.github.io/2025/12/09/termux%E5%A4%87%E4%BB%BD%E5%92%8C%E6%81%A2%E5%A4%8D/"/>
    <id>https://anotherday99.github.io/2025/12/09/termux%E5%A4%87%E4%BB%BD%E5%92%8C%E6%81%A2%E5%A4%8D/</id>
    <published>2025-12-09T04:27:53.000Z</published>
    <updated>2025-12-09T04:41:38.056Z</updated>
    
    <content type="html"><![CDATA[<p><strong>本系列所有文章</strong></p><ol class="series-items"><li><a href="/2025/12/09/termux%E5%A4%87%E4%BB%BD%E5%92%8C%E6%81%A2%E5%A4%8D/" title="termux备份和恢复">termux备份和恢复</a></li></ol><table><tr><td bgcolor=MistyRose>你可以通过使用右下角的小齿轮，来开启黑夜模式和阅读模式。<p><strong>如果你发现文章内容有错漏、你对文章内容有任何改进意见或者你阅读文章遇到了困难，都可以通过博客首页的邮箱联系我。</strong></p></td></tr></table><hr><h1 id="备份"><a href="#备份" class="headerlink" title="备份"></a>备份</h1><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">termux-setup-storage</span><br><span class="line">tar -zcvf /sdcard/termux-backup.tar.gz -C /data/data/com.termux/files ./home ./usr</span><br></pre></td></tr></table></figure><h1 id="恢复"><a href="#恢复" class="headerlink" title="恢复"></a>恢复</h1><p>1.<strong>重置termux数据</strong><br>2.更新软件数据</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">apt update &amp;&amp; apt upgrade -y</span><br></pre></td></tr></table></figure><p>3.还原数据</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">cd /data/data/com.termux/files</span><br><span class="line">tar -zvxf /sdcard/termux-backup.tar.gz</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;strong&gt;本系列所有文章&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&quot;series-items&quot;&gt;&lt;li&gt;&lt;a href=&quot;/2025/12/09/termux%E5%A4%87%E4%BB%BD%E5%92%8C%E6%81%A2%E5%A4%8D/&quot; titl</summary>
      
    
    
    
    <category term="termux" scheme="https://anotherday99.github.io/categories/termux/"/>
    
    
    <category term="termux基础" scheme="https://anotherday99.github.io/tags/termux%E5%9F%BA%E7%A1%80/"/>
    
  </entry>
  
  <entry>
    <title>给编译的lineageOS进行签名</title>
    <link href="https://anotherday99.github.io/2025/06/03/%E7%BB%99%E7%BC%96%E8%AF%91%E7%9A%84lineageOS%E7%AD%BE%E5%90%8D/"/>
    <id>https://anotherday99.github.io/2025/06/03/%E7%BB%99%E7%BC%96%E8%AF%91%E7%9A%84lineageOS%E7%AD%BE%E5%90%8D/</id>
    <published>2025-06-03T03:19:07.000Z</published>
    <updated>2025-10-04T04:04:48.553Z</updated>
    
    <content type="html"><![CDATA[<p><strong>本系列所有文章</strong></p><ol class="series-items"><li><a href="/2025/06/03/%E7%BB%99%E7%BC%96%E8%AF%91%E7%9A%84lineageOS%E7%AD%BE%E5%90%8D/" title="给编译的lineageOS进行签名">给编译的lineageOS进行签名</a></li></ol><table><tr><td bgcolor=MistyRose>你可以通过使用右下角的小齿轮，来开启黑夜模式和阅读模式。<p><strong>如果你发现文章内容有错漏、你对文章内容有任何改进意见或者你阅读文章遇到了困难，都可以通过博客首页的邮箱联系我。</strong></p></td></tr></table><hr><p><em><strong>在使用文档前，我希望你有点基础，能够判断出哪些是完整的执行命令。<br>部分指令有注解，请耐心将一整段的指令内容看完后再执行。<br>强烈建议你完整过一遍文档再进行签名操作！！！</strong></em></p><h1 id="对编译的文件进行签名"><a href="#对编译的文件进行签名" class="headerlink" title="对编译的文件进行签名"></a>对编译的文件进行签名</h1><p>使用终端进入到下载Android源代码的根目录，运行以下命令，<strong>请按需自行修改subject</strong></p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">subject=&#x27;/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com&#x27;</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">mkdir ~/.android-certs</span><br><span class="line">for cert in bluetooth cyngn-app media networkstack nfc platform releasekey sdk_sandbox shared testcert testkey verity; do \</span><br><span class="line">    ./development/tools/make_key ~/.android-certs/$cert &quot;$subject&quot;; \</span><br><span class="line">done</span><br></pre></td></tr></table></figure><h2 id="示例：生成并将test-keys替换成你生成的正式密钥"><a href="#示例：生成并将test-keys替换成你生成的正式密钥" class="headerlink" title="示例：生成并将test-keys替换成你生成的正式密钥"></a>示例：生成并将test-keys替换成你生成的正式密钥</h2><p><strong>自定义主题（替换组织信息）</strong></p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">subject=&#x27;/C=CN/ST=Beijing/L=Beijing/O=MyCompany/OU=Android/CN=Android/emailAddress=dev@mycompany.com&#x27;</span><br></pre></td></tr></table></figure><p><strong>生成密钥</strong></p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">mkdir ~/.android-certs</span><br><span class="line">for cert in bluetooth cyngn-app media networkstack nfc platform releasekey sdk_sandbox shared testcert testkey verity; do \</span><br><span class="line">    ./development/tools/make_key ~/.android-certs/$cert &quot;$subject&quot;; \</span><br><span class="line">done</span><br></pre></td></tr></table></figure><h1 id="编译时使用自定义密钥"><a href="#编译时使用自定义密钥" class="headerlink" title="编译时使用自定义密钥"></a>编译时使用自定义密钥</h1><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">export DEFAULT_SYSTEM_DEV_CERTIFICATE=~/.android-certs/releasekey</span><br><span class="line">source build/envsetup.sh</span><br><span class="line">lunch lineage_kebab-userdebug</span><br><span class="line">brunch kebab​</span><br></pre></td></tr></table></figure><p><strong>注解：<br>这是在定义一个 ​​X.509 证书的主题（Subject）​​，用于所有生成的密钥。<br>C&#x3D;US：国家代码（美国）。<br>ST&#x3D;California：州&#x2F;省（加利福尼亚）。<br>L&#x3D;Mountain View：地区（山景城）。<br>O&#x3D;Android：组织名称（Android）。<br>OU&#x3D;Android：组织单位（Android）。<br>CN&#x3D;Android：通用名称（证书持有者名称）。<br>emailAddress&#x3D;<a href="mailto:&#x61;&#x6e;&#100;&#x72;&#111;&#x69;&#100;&#64;&#97;&#110;&#x64;&#x72;&#x6f;&#105;&#x64;&#46;&#x63;&#x6f;&#x6d;">android@android.com</a>：联系邮箱。</strong></p><p><strong>LineageOS 19.1 及更高版本要求对 APEX 进行重新签名。 每个 APEX 文件都使用两个密钥进行签名：一个用于 APEX 中的微型文件系统映像，另一个用于整个 APEX。</strong></p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">cp ./development/tools/make_key ~/.android-certs/</span><br><span class="line">sed -i &#x27;s|2048|4096|g&#x27; ~/.android-certs/make_key</span><br></pre></td></tr></table></figure><p><strong>然后生成 APEX 密钥，更改下面的行以反映您的信息。【注意下列命令中也有subject，请按需自行修改】</strong><br><em><strong>生成没有密码的密钥，您需要为生成的每个 APEX 密钥输入两次空白密码</strong></em></p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">for apex in com.android.adbd com.android.adservices com.android.adservices.api com.android.appsearch com.android.appsearch.apk com.android.art com.android.bluetooth com.android.btservices com.android.cellbroadcast com.android.compos com.android.configinfrastructure com.android.connectivity.resources com.android.conscrypt com.android.devicelock com.android.extservices com.android.graphics.pdf com.android.hardware.authsecret com.android.hardware.biometrics.face.virtual com.android.hardware.biometrics.fingerprint.virtual com.android.hardware.boot com.android.hardware.cas com.android.hardware.neuralnetworks com.android.hardware.rebootescrow com.android.hardware.wifi com.android.healthfitness com.android.hotspot2.osulogin com.android.i18n com.android.ipsec com.android.media com.android.media.swcodec com.android.mediaprovider com.android.nearby.halfsheet com.android.networkstack.tethering com.android.neuralnetworks com.android.nfcservices com.android.ondevicepersonalization com.android.os.statsd com.android.permission com.android.profiling com.android.resolv com.android.rkpd com.android.runtime com.android.safetycenter.resources com.android.scheduling com.android.sdkext com.android.support.apexer com.android.telephony com.android.telephonymodules com.android.tethering com.android.tzdata com.android.uwb com.android.uwb.resources com.android.virt com.android.vndk.current com.android.vndk.current.on_vendor com.android.wifi com.android.wifi.dialog com.android.wifi.resources com.google.pixel.camera.hal com.google.pixel.vibrator.hal com.qorvo.uwb; do \</span><br><span class="line">    subject=&#x27;/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=&#x27;$apex&#x27;/emailAddress=android@android.com&#x27;; \</span><br><span class="line">    ~/.android-certs/make_key ~/.android-certs/$apex &quot;$subject&quot;; \</span><br><span class="line">    openssl pkcs8 -in ~/.android-certs/$apex.pk8 -inform DER -nocrypt -out ~/.android-certs/$apex.pem; \</span><br><span class="line">done</span><br></pre></td></tr></table></figure><p><em><strong>生成使用密码的密钥，您需要为生成的每个 APEX 密钥输入两次密码。</strong></em></p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">for apex in com.android.adbd com.android.adservices com.android.adservices.api com.android.appsearch com.android.appsearch.apk com.android.art com.android.bluetooth com.android.btservices com.android.cellbroadcast com.android.compos com.android.configinfrastructure com.android.connectivity.resources com.android.conscrypt com.android.devicelock com.android.extservices com.android.graphics.pdf com.android.hardware.authsecret com.android.hardware.biometrics.face.virtual com.android.hardware.biometrics.fingerprint.virtual com.android.hardware.boot com.android.hardware.cas com.android.hardware.neuralnetworks com.android.hardware.rebootescrow com.android.hardware.wifi com.android.healthfitness com.android.hotspot2.osulogin com.android.i18n com.android.ipsec com.android.media com.android.media.swcodec com.android.mediaprovider com.android.nearby.halfsheet com.android.networkstack.tethering com.android.neuralnetworks com.android.nfcservices com.android.ondevicepersonalization com.android.os.statsd com.android.permission com.android.profiling com.android.resolv com.android.rkpd com.android.runtime com.android.safetycenter.resources com.android.scheduling com.android.sdkext com.android.support.apexer com.android.telephony com.android.telephonymodules com.android.tethering com.android.tzdata com.android.uwb com.android.uwb.resources com.android.virt com.android.vndk.current com.android.vndk.current.on_vendor com.android.wifi com.android.wifi.dialog com.android.wifi.resources com.google.pixel.camera.hal com.google.pixel.vibrator.hal com.qorvo.uwb; do \</span><br><span class="line">    subject=&#x27;/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=&#x27;$apex&#x27;/emailAddress=android@android.com&#x27;; \</span><br><span class="line">    ~/.android-certs/make_key ~/.android-certs/$apex &quot;$subject&quot;; \</span><br><span class="line">    openssl pkcs8 -in ~/.android-certs/$apex.pk8 -inform DER -out ~/.android-certs/$apex.pem; \</span><br><span class="line">done</span><br></pre></td></tr></table></figure><h2 id="生成安装包"><a href="#生成安装包" class="headerlink" title="生成安装包"></a>生成安装包</h2><p>生成目标文件并对其进行签名，按照设备的构建说明操作后，不要运行构建命令 ，而是改成以下命令：</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">breakfast &lt;codename&gt;</span><br><span class="line">mka target-files-package otatools</span><br></pre></td></tr></table></figure><p>请坐下来等待一段时间。这可能需要一段时间，具体取决于您计算机的规格。当它完成了，你只需要签署所有 APK 和 APEX。</p><h2 id="LineageOS-版本-18-1-及更低版本的签名过程："><a href="#LineageOS-版本-18-1-及更低版本的签名过程：" class="headerlink" title="LineageOS 版本 18.1 及更低版本的签名过程："></a>LineageOS 版本 18.1 及更低版本的签名过程：</h2><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">croot</span><br><span class="line">sign_target_files_apks -o -d ~/.android-certs \</span><br><span class="line">    $OUT/obj/PACKAGING/target_files_intermediates/*-target_files-*.zip \</span><br><span class="line">    signed-target_files.zip</span><br></pre></td></tr></table></figure><h2 id="LineageOS-版本-19-1-及更高版本的签名过程："><a href="#LineageOS-版本-19-1-及更高版本的签名过程：" class="headerlink" title="LineageOS 版本 19.1 及更高版本的签名过程："></a>LineageOS 版本 19.1 及更高版本的签名过程：</h2><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">croot</span><br><span class="line">sign_target_files_apks -o -d ~/.android-certs \</span><br><span class="line">    --extra_apks AdServicesApk.apk=$HOME/.android-certs/releasekey \</span><br><span class="line">    --extra_apks FederatedCompute.apk=$HOME/.android-certs/releasekey \</span><br><span class="line">    --extra_apks HalfSheetUX.apk=$HOME/.android-certs/releasekey \</span><br><span class="line">    --extra_apks HealthConnectBackupRestore.apk=$HOME/.android-certs/releasekey \</span><br><span class="line">    --extra_apks HealthConnectController.apk=$HOME/.android-certs/releasekey \</span><br><span class="line">    --extra_apks OsuLogin.apk=$HOME/.android-certs/releasekey \</span><br><span class="line">    --extra_apks SafetyCenterResources.apk=$HOME/.android-certs/releasekey \</span><br><span class="line">    --extra_apks ServiceConnectivityResources.apk=$HOME/.android-certs/releasekey \</span><br><span class="line">    --extra_apks ServiceUwbResources.apk=$HOME/.android-certs/releasekey \</span><br><span class="line">    --extra_apks ServiceWifiResources.apk=$HOME/.android-certs/releasekey \</span><br><span class="line">    --extra_apks WifiDialog.apk=$HOME/.android-certs/releasekey \</span><br><span class="line">    --extra_apks com.android.adbd.apex=$HOME/.android-certs/com.android.adbd \</span><br><span class="line">    --extra_apks com.android.adservices.apex=$HOME/.android-certs/com.android.adservices \</span><br><span class="line">    --extra_apks com.android.adservices.api.apex=$HOME/.android-certs/com.android.adservices.api \</span><br><span class="line">    --extra_apks com.android.appsearch.apex=$HOME/.android-certs/com.android.appsearch \</span><br><span class="line">    --extra_apks com.android.appsearch.apk.apex=$HOME/.android-certs/com.android.appsearch.apk \</span><br><span class="line">    --extra_apks com.android.art.apex=$HOME/.android-certs/com.android.art \</span><br><span class="line">    --extra_apks com.android.bluetooth.apex=$HOME/.android-certs/com.android.bluetooth \</span><br><span class="line">    --extra_apks com.android.btservices.apex=$HOME/.android-certs/com.android.btservices \</span><br><span class="line">    --extra_apks com.android.cellbroadcast.apex=$HOME/.android-certs/com.android.cellbroadcast \</span><br><span class="line">    --extra_apks com.android.compos.apex=$HOME/.android-certs/com.android.compos \</span><br><span class="line">    --extra_apks com.android.configinfrastructure.apex=$HOME/.android-certs/com.android.configinfrastructure \</span><br><span class="line">    --extra_apks com.android.connectivity.resources.apex=$HOME/.android-certs/com.android.connectivity.resources \</span><br><span class="line">    --extra_apks com.android.conscrypt.apex=$HOME/.android-certs/com.android.conscrypt \</span><br><span class="line">    --extra_apks com.android.devicelock.apex=$HOME/.android-certs/com.android.devicelock \</span><br><span class="line">    --extra_apks com.android.extservices.apex=$HOME/.android-certs/com.android.extservices \</span><br><span class="line">    --extra_apks com.android.graphics.pdf.apex=$HOME/.android-certs/com.android.graphics.pdf \</span><br><span class="line">    --extra_apks com.android.hardware.authsecret.apex=$HOME/.android-certs/com.android.hardware.authsecret \</span><br><span class="line">    --extra_apks com.android.hardware.biometrics.face.virtual.apex=$HOME/.android-certs/com.android.hardware.biometrics.face.virtual \</span><br><span class="line">    --extra_apks com.android.hardware.biometrics.fingerprint.virtual.apex=$HOME/.android-certs/com.android.hardware.biometrics.fingerprint.virtual \</span><br><span class="line">    --extra_apks com.android.hardware.boot.apex=$HOME/.android-certs/com.android.hardware.boot \</span><br><span class="line">    --extra_apks com.android.hardware.cas.apex=$HOME/.android-certs/com.android.hardware.cas \</span><br><span class="line">    --extra_apks com.android.hardware.neuralnetworks.apex=$HOME/.android-certs/com.android.hardware.neuralnetworks \</span><br><span class="line">    --extra_apks com.android.hardware.rebootescrow.apex=$HOME/.android-certs/com.android.hardware.rebootescrow \</span><br><span class="line">    --extra_apks com.android.hardware.wifi.apex=$HOME/.android-certs/com.android.hardware.wifi \</span><br><span class="line">    --extra_apks com.android.healthfitness.apex=$HOME/.android-certs/com.android.healthfitness \</span><br><span class="line">    --extra_apks com.android.hotspot2.osulogin.apex=$HOME/.android-certs/com.android.hotspot2.osulogin \</span><br><span class="line">    --extra_apks com.android.i18n.apex=$HOME/.android-certs/com.android.i18n \</span><br><span class="line">    --extra_apks com.android.ipsec.apex=$HOME/.android-certs/com.android.ipsec \</span><br><span class="line">    --extra_apks com.android.media.apex=$HOME/.android-certs/com.android.media \</span><br><span class="line">    --extra_apks com.android.media.swcodec.apex=$HOME/.android-certs/com.android.media.swcodec \</span><br><span class="line">    --extra_apks com.android.mediaprovider.apex=$HOME/.android-certs/com.android.mediaprovider \</span><br><span class="line">    --extra_apks com.android.nearby.halfsheet.apex=$HOME/.android-certs/com.android.nearby.halfsheet \</span><br><span class="line">    --extra_apks com.android.networkstack.tethering.apex=$HOME/.android-certs/com.android.networkstack.tethering \</span><br><span class="line">    --extra_apks com.android.neuralnetworks.apex=$HOME/.android-certs/com.android.neuralnetworks \</span><br><span class="line">    --extra_apks com.android.nfcservices.apex=$HOME/.android-certs/com.android.nfcservices \</span><br><span class="line">    --extra_apks com.android.ondevicepersonalization.apex=$HOME/.android-certs/com.android.ondevicepersonalization \</span><br><span class="line">    --extra_apks com.android.os.statsd.apex=$HOME/.android-certs/com.android.os.statsd \</span><br><span class="line">    --extra_apks com.android.permission.apex=$HOME/.android-certs/com.android.permission \</span><br><span class="line">    --extra_apks com.android.profiling.apex=$HOME/.android-certs/com.android.profiling \</span><br><span class="line">    --extra_apks com.android.resolv.apex=$HOME/.android-certs/com.android.resolv \</span><br><span class="line">    --extra_apks com.android.rkpd.apex=$HOME/.android-certs/com.android.rkpd \</span><br><span class="line">    --extra_apks com.android.runtime.apex=$HOME/.android-certs/com.android.runtime \</span><br><span class="line">    --extra_apks com.android.safetycenter.resources.apex=$HOME/.android-certs/com.android.safetycenter.resources \</span><br><span class="line">    --extra_apks com.android.scheduling.apex=$HOME/.android-certs/com.android.scheduling \</span><br><span class="line">    --extra_apks com.android.sdkext.apex=$HOME/.android-certs/com.android.sdkext \</span><br><span class="line">    --extra_apks com.android.support.apexer.apex=$HOME/.android-certs/com.android.support.apexer \</span><br><span class="line">    --extra_apks com.android.telephony.apex=$HOME/.android-certs/com.android.telephony \</span><br><span class="line">    --extra_apks com.android.telephonymodules.apex=$HOME/.android-certs/com.android.telephonymodules \</span><br><span class="line">    --extra_apks com.android.tethering.apex=$HOME/.android-certs/com.android.tethering \</span><br><span class="line">    --extra_apks com.android.tzdata.apex=$HOME/.android-certs/com.android.tzdata \</span><br><span class="line">    --extra_apks com.android.uwb.apex=$HOME/.android-certs/com.android.uwb \</span><br><span class="line">    --extra_apks com.android.uwb.resources.apex=$HOME/.android-certs/com.android.uwb.resources \</span><br><span class="line">    --extra_apks com.android.virt.apex=$HOME/.android-certs/com.android.virt \</span><br><span class="line">    --extra_apks com.android.vndk.current.apex=$HOME/.android-certs/com.android.vndk.current \</span><br><span class="line">    --extra_apks com.android.vndk.current.on_vendor.apex=$HOME/.android-certs/com.android.vndk.current.on_vendor \</span><br><span class="line">    --extra_apks com.android.wifi.apex=$HOME/.android-certs/com.android.wifi \</span><br><span class="line">    --extra_apks com.android.wifi.dialog.apex=$HOME/.android-certs/com.android.wifi.dialog \</span><br><span class="line">    --extra_apks com.android.wifi.resources.apex=$HOME/.android-certs/com.android.wifi.resources \</span><br><span class="line">    --extra_apks com.google.pixel.camera.hal.apex=$HOME/.android-certs/com.google.pixel.camera.hal \</span><br><span class="line">    --extra_apks com.google.pixel.vibrator.hal.apex=$HOME/.android-certs/com.google.pixel.vibrator.hal \</span><br><span class="line">    --extra_apks com.qorvo.uwb.apex=$HOME/.android-certs/com.qorvo.uwb \</span><br><span class="line">    --extra_apex_payload_key com.android.adbd.apex=$HOME/.android-certs/com.android.adbd.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.adservices.apex=$HOME/.android-certs/com.android.adservices.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.adservices.api.apex=$HOME/.android-certs/com.android.adservices.api.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.appsearch.apex=$HOME/.android-certs/com.android.appsearch.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.appsearch.apk.apex=$HOME/.android-certs/com.android.appsearch.apk.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.art.apex=$HOME/.android-certs/com.android.art.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.bluetooth.apex=$HOME/.android-certs/com.android.bluetooth.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.btservices.apex=$HOME/.android-certs/com.android.btservices.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.cellbroadcast.apex=$HOME/.android-certs/com.android.cellbroadcast.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.compos.apex=$HOME/.android-certs/com.android.compos.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.configinfrastructure.apex=$HOME/.android-certs/com.android.configinfrastructure.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.connectivity.resources.apex=$HOME/.android-certs/com.android.connectivity.resources.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.conscrypt.apex=$HOME/.android-certs/com.android.conscrypt.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.devicelock.apex=$HOME/.android-certs/com.android.devicelock.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.extservices.apex=$HOME/.android-certs/com.android.extservices.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.graphics.pdf.apex=$HOME/.android-certs/com.android.graphics.pdf.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.hardware.authsecret.apex=$HOME/.android-certs/com.android.hardware.authsecret.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.hardware.biometrics.face.virtual.apex=$HOME/.android-certs/com.android.hardware.biometrics.face.virtual.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.hardware.biometrics.fingerprint.virtual.apex=$HOME/.android-certs/com.android.hardware.biometrics.fingerprint.virtual.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.hardware.boot.apex=$HOME/.android-certs/com.android.hardware.boot.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.hardware.cas.apex=$HOME/.android-certs/com.android.hardware.cas.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.hardware.neuralnetworks.apex=$HOME/.android-certs/com.android.hardware.neuralnetworks.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.hardware.rebootescrow.apex=$HOME/.android-certs/com.android.hardware.rebootescrow.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.hardware.wifi.apex=$HOME/.android-certs/com.android.hardware.wifi.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.healthfitness.apex=$HOME/.android-certs/com.android.healthfitness.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.hotspot2.osulogin.apex=$HOME/.android-certs/com.android.hotspot2.osulogin.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.i18n.apex=$HOME/.android-certs/com.android.i18n.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.ipsec.apex=$HOME/.android-certs/com.android.ipsec.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.media.apex=$HOME/.android-certs/com.android.media.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.media.swcodec.apex=$HOME/.android-certs/com.android.media.swcodec.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.mediaprovider.apex=$HOME/.android-certs/com.android.mediaprovider.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.nearby.halfsheet.apex=$HOME/.android-certs/com.android.nearby.halfsheet.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.networkstack.tethering.apex=$HOME/.android-certs/com.android.networkstack.tethering.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.neuralnetworks.apex=$HOME/.android-certs/com.android.neuralnetworks.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.nfcservices.apex=$HOME/.android-certs/com.android.nfcservices.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.ondevicepersonalization.apex=$HOME/.android-certs/com.android.ondevicepersonalization.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.os.statsd.apex=$HOME/.android-certs/com.android.os.statsd.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.permission.apex=$HOME/.android-certs/com.android.permission.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.profiling.apex=$HOME/.android-certs/com.android.profiling.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.resolv.apex=$HOME/.android-certs/com.android.resolv.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.rkpd.apex=$HOME/.android-certs/com.android.rkpd.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.runtime.apex=$HOME/.android-certs/com.android.runtime.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.safetycenter.resources.apex=$HOME/.android-certs/com.android.safetycenter.resources.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.scheduling.apex=$HOME/.android-certs/com.android.scheduling.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.sdkext.apex=$HOME/.android-certs/com.android.sdkext.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.support.apexer.apex=$HOME/.android-certs/com.android.support.apexer.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.telephony.apex=$HOME/.android-certs/com.android.telephony.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.telephonymodules.apex=$HOME/.android-certs/com.android.telephonymodules.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.tethering.apex=$HOME/.android-certs/com.android.tethering.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.tzdata.apex=$HOME/.android-certs/com.android.tzdata.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.uwb.apex=$HOME/.android-certs/com.android.uwb.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.uwb.resources.apex=$HOME/.android-certs/com.android.uwb.resources.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.virt.apex=$HOME/.android-certs/com.android.virt.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.vndk.current.apex=$HOME/.android-certs/com.android.vndk.current.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.vndk.current.on_vendor.apex=$HOME/.android-certs/com.android.vndk.current.on_vendor.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.wifi.apex=$HOME/.android-certs/com.android.wifi.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.wifi.dialog.apex=$HOME/.android-certs/com.android.wifi.dialog.pem \</span><br><span class="line">    --extra_apex_payload_key com.android.wifi.resources.apex=$HOME/.android-certs/com.android.wifi.resources.pem \</span><br><span class="line">    --extra_apex_payload_key com.google.pixel.camera.hal.apex=$HOME/.android-certs/com.google.pixel.camera.hal.pem \</span><br><span class="line">    --extra_apex_payload_key com.google.pixel.vibrator.hal.apex=$HOME/.android-certs/com.google.pixel.vibrator.hal.pem \</span><br><span class="line">    --extra_apex_payload_key com.qorvo.uwb.apex=$HOME/.android-certs/com.qorvo.uwb.pem \</span><br><span class="line">    $OUT/obj/PACKAGING/target_files_intermediates/*-target_files*.zip \</span><br><span class="line">    signed-target_files.zip</span><br></pre></td></tr></table></figure><h2 id="生成安装包。现在，要生成可安装的-zip，请运行："><a href="#生成安装包。现在，要生成可安装的-zip，请运行：" class="headerlink" title="生成安装包。现在，要生成可安装的 zip，请运行："></a>生成安装包。现在，要生成可安装的 zip，请运行：</h2><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">ota_from_target_files -k ~/.android-certs/releasekey \</span><br><span class="line">    --block --backup=true \</span><br><span class="line">    signed-target_files.zip \</span><br><span class="line">    signed-ota_update.zip</span><br></pre></td></tr></table></figure><p>然后，像往常一样在 recovery 中安装 zip。</p><hr><h1 id="指令注解："><a href="#指令注解：" class="headerlink" title="指令注解："></a>指令注解：</h1><p><strong>mka target-files-package otatools</strong>是用于 Android 系统编译的命令，其作用可分为两部分：</p><h2 id="target-files-package"><a href="#target-files-package" class="headerlink" title="target-files-package"></a>target-files-package</h2><p>​​功能​​：生成一个名为 ​​target-files.zip​​ 的中间文件包，包含构建完整 OTA 更新包所需的全部内容：</p><ul><li>系统镜像：system.img、vendor.img、boot.img 等。</li><li>设备文件：内核、设备树（dtbo）、专有二进制文件（Blobs）。</li><li>元数据：构建指纹（Build Fingerprint）、文件系统结构（META&#x2F; 目录）。</li></ul><h3 id="用途："><a href="#用途：" class="headerlink" title="用途："></a>用途：</h3><ul><li>生成OTA增量包（如 incremental_ota_update.zip）。</li><li>签名系统镜像（例如用于发布官方固件）。</li></ul><h2 id="otatools"><a href="#otatools" class="headerlink" title="otatools"></a>otatools</h2><p>​​功能​​：编译与 OTA 相关的工具链，包括：<br>​​- ota_from_target_files​​：将 target-files.zip 转换为最终 OTA 包的脚本。<br>​​- sign_target_files_apks​​：签名系统镜像的工具。<br>​​- img2simg&#x2F;simg2img​​：处理稀疏镜像（Sparse Image）的工具。<br>​​路径​​：编译后的工具默认存放在 out&#x2F;host&#x2F;linux-x86&#x2F;bin&#x2F;（Linux 环境下）。</p><h2 id="完整命令的作用"><a href="#完整命令的作用" class="headerlink" title="完整命令的作用"></a>完整命令的作用</h2><p>同时执行以下两个任务：</p><ul><li>生成 target-files.zip（位于 out&#x2F;target&#x2F;product&#x2F;<device>&#x2F;obj&#x2F;PACKAGING&#x2F;target_files_intermediates&#x2F;）。</li><li>编译 OTA 工具链（生成 otatools 相关二进制文件）。</li></ul><h2 id="典型使用场景"><a href="#典型使用场景" class="headerlink" title="典型使用场景"></a>典型使用场景</h2><h3 id="生成完整-OTA包"><a href="#生成完整-OTA包" class="headerlink" title="生成完整 OTA包"></a>生成完整 OTA包</h3><ol><li>生成 target-files.zip</li></ol><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">mka target-files-package</span><br></pre></td></tr></table></figure><ol start="2"><li>生成完整 OTA 包（-k 指定签名密钥）</li></ol><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">./out/host/linux-x86/bin/ota_from_target_files -k ./keys/releasekey \</span><br><span class="line">  out/target/product/kebab/obj/PACKAGING/target_files_intermediates/*.zip \</span><br><span class="line">  lineage-21.0-unsigned-kebab-ota.zip</span><br></pre></td></tr></table></figure><h3 id="生成增量-OTA-包"><a href="#生成增量-OTA-包" class="headerlink" title="生成增量 OTA 包"></a>生成增量 OTA 包</h3><ol><li>生成旧版本 target-files.zip（例如旧系统版本）<br><strong>切换到旧版本代码分支</strong></li></ol><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">git checkout old-release-branch</span><br></pre></td></tr></table></figure><p>清理旧构建产物（确保无残留）</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">mka clean</span><br></pre></td></tr></table></figure><p>设置构建环境</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">source build/envsetup.sh</span><br><span class="line">lunch &lt;product_name&gt;-userdebug  --&gt;替换为具体设备名</span><br></pre></td></tr></table></figure><p>构建 target-files.zip</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">mka target-files-package</span><br></pre></td></tr></table></figure><ol start="2"><li>生成新版本 target-files.zip（例如新系统版本）<br>切换到新版本代码分支</li></ol><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">git checkout new-release-branch</span><br></pre></td></tr></table></figure><p>清理构建环境（关键！避免旧版本干扰）</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">mka installclean</span><br></pre></td></tr></table></figure><p>重新设置环境</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">source build/envsetup.sh</span><br><span class="line">lunch &lt;product_name&gt;-userdebug  #这里需要确保与旧版本同一设备名</span><br></pre></td></tr></table></figure><p>构建 target-files.zip</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">mka target-files-package</span><br></pre></td></tr></table></figure><ol start="3"><li>生成增量包（需指定新旧两个 target-files.zip）</li></ol><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"># 1. 进入AOSP构建目录</span><br><span class="line">cd &lt;path-to-android-source&gt;</span><br><span class="line"># 2. 初始化构建环境</span><br><span class="line">source build/envsetup.sh</span><br><span class="line">lunch &lt;product_name&gt;-userdebug  --&gt; 选择相同的设备名</span><br><span class="line"># 3. 执行增量包生成（关键步骤）</span><br><span class="line">./out/host/linux-x86/bin/ota_from_target_files \</span><br><span class="line">  -k vendor/releasekeys/releasekey \    --&gt; 签名密钥（必须指定）</span><br><span class="line">  -i old-target_files.zip \             --&gt; 旧版本target-files</span><br><span class="line">  new-target_files.zip \                --&gt; 新版本target-files</span><br><span class="line">  incremental-ota_update.zip            --&gt; 输出的增量包名</span><br></pre></td></tr></table></figure><ol start="4"><li>验证生成的增量包</li></ol><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">unzip -l incremental-ota_update.zip</span><br></pre></td></tr></table></figure><p>请确认包含以下关键文件：</p><ul><li>META-INF&#x2F;com&#x2F;google&#x2F;android&#x2F;update-binary</li><li>patch&#x2F;</li><li>system.new.dat</li></ul><ol start="5"><li>注意事项​​<br>​​1.依赖关系​​：执行此命令前需确保已完成完整系统编译（例如已执行 brunch kebab）。<br>​​2.签名密钥​​：发布正式 OTA 包需使用私钥签名（-k 参数），测试时可跳过签名步骤。<br>​​3.路径适配​​：根据实际设备代号（如 kebab）和编译环境（如 linux-x86）调整路径。<br>⚠️ 注意：两个版本的 lunch 必须选择相同的 <product_name>-userdebug，否则会导致 OTA 包生成失败。<br><strong>注解：<br>linux-x86 表示你的主机是 ​​Linux 操作系统 + x86 架构的 CPU​​。<br>如果你在 macOS 上编译，目录会变成 darwin-x86 或 darwin-arm64（Apple Silicon）。<br>这一目录是 Android 编译系统自动生成的，无需手动干预。</strong></li></ol><hr><p>target-files.zip 结构示例​​：<br>├── BOOT&#x2F;<br>├── IMAGES&#x2F;          –&gt;系统镜像（system.img, vendor.img 等）<br>├── META&#x2F;            –&gt; 元数据（构建信息、文件列表）<br>├── OTA&#x2F;             –&gt; OTA 更新脚本<br>└── SYSTEM&#x2F;          –&gt; 系统文件（未打包成镜像的原始文件）</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;strong&gt;本系列所有文章&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&quot;series-items&quot;&gt;&lt;li&gt;&lt;a href=&quot;/2025/06/03/%E7%BB%99%E7%BC%96%E8%AF%91%E7%9A%84lineageOS%E7%AD%BE%E5%</summary>
      
    
    
    
    <category term="lineageOS编译" scheme="https://anotherday99.github.io/categories/lineageOS%E7%BC%96%E8%AF%91/"/>
    
    
    <category term="lineageOS" scheme="https://anotherday99.github.io/tags/lineageOS/"/>
    
  </entry>
  
  <entry>
    <title>lineageOS编译环境及构建指南</title>
    <link href="https://anotherday99.github.io/2025/05/16/%E6%90%AD%E5%BB%BAlineageos%E7%BC%96%E8%AF%91%E7%8E%AF%E5%A2%83/"/>
    <id>https://anotherday99.github.io/2025/05/16/%E6%90%AD%E5%BB%BAlineageos%E7%BC%96%E8%AF%91%E7%8E%AF%E5%A2%83/</id>
    <published>2025-05-16T06:38:14.000Z</published>
    <updated>2026-01-23T16:18:18.289Z</updated>
    
    <content type="html"><![CDATA[<p><strong>本系列所有文章</strong></p><ol class="series-items"><li><a href="/2025/05/16/%E6%90%AD%E5%BB%BAlineageos%E7%BC%96%E8%AF%91%E7%8E%AF%E5%A2%83/" title="lineageOS编译环境及构建指南">lineageOS编译环境及构建指南</a></li><li><a href="/2026/01/24/%E6%9C%80%E6%96%B0LOS-gsi%E6%9E%84%E5%BB%BA%E6%8C%87%E5%8D%97/" title="最新LOS_gsi构建指南">最新LOS_gsi构建指南</a></li></ol><table><tr><td bgcolor=MistyRose>你可以通过使用右下角的小齿轮，来开启黑夜模式和阅读模式。<p><strong>如果你发现文章内容有错漏、你对文章内容有任何改进意见或者你阅读文章遇到了困难，都可以通过博客首页的邮箱联系我。</strong></p></td></tr></table><hr><p>操作系统Debian12<br>*需要root权限</p><p>【核心硬件建议：</p><ul><li>CPU<br>核心数：至少 8 核以上。<br>性能优先级：多核性能 &gt; 单核性能（编译过程高度并行化）。</li><li>内存（RAM）<br>最低要求：16GB（勉强可用，但可能因设备代码量不同而频繁卡顿），需要扩展swap，不然进程会被kill。<br>推荐配置：32GB 或更高（避免因内存不足导致编译中断）。</li><li>存储（硬盘）<br>容量：至少 500GB 可用空间（源码 + 编译产物可能占用 300GB 以上，内存不够得开swap、后续加速编译要开ccache，也得个大几十GB）。<br>类型：NVMe SSD（编译过程涉及大量文件读写，SSD 速度直接影响效率）。</li><li>操作系统<br>官方支持：Debian Stable（如 本文档使用的就是Debian12）或 Ubuntu LTS（如 22.04&#x2F;24.04）。<br>其他系统：可尝试 Arch Linux 或 Fedora，但需自行解决依赖兼容性问题。<br>尽量避免使用 Windows，WSL 2虽然可行，但性能和兼容性较差。<br>】</li></ul><hr><p>云编译建议使用tmux，避免由于网络差丢失ssh连接，从而被杀进程。基础使用:</p><ul><li>创建会话 tmux new -s ‘这里输入你想创建的会话名称’ 示例： tmux new -s lineage_build </li><li>若需要离开tmux窗口，先按 Ctrl+b再按d，即可退出会话</li><li>列出tmux后台会话进程，tmux ls</li><li>重新连接后进入tmux会话或者查看编译进度，tmux attach -t  ‘这里输入你创建的会话名称’ 示例：tmux attach -t lineage_build</li></ul><hr><h1 id="配置编译环境，安装软件包、编译依赖、编译工具以及同步lineageOS源代码"><a href="#配置编译环境，安装软件包、编译依赖、编译工具以及同步lineageOS源代码" class="headerlink" title="配置编译环境，安装软件包、编译依赖、编译工具以及同步lineageOS源代码"></a>配置编译环境，安装软件包、编译依赖、编译工具以及同步lineageOS源代码</h1><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">sudo apt update &amp;&amp; sudo apt upgrade -y</span><br><span class="line">sudo apt install -y bc bison build-essential ccache curl flex g++-multilib gcc-multilib git git-lfs gnupg gperf imagemagick lib32ncurses-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.2-dev libxml2 libxml2-utils lzop maven pngcrush python3 python-is-python3 rsync schedtool squashfs-tools tmux unzip wget zip zlib1g-dev openjdk-17-jdk android-sdk-platform-tools-common protobuf-compiler python3-protobuf lib32readline-dev libdw-dev libelf-dev lz4  xsltproc libncurses5 libtinfo5</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">mkdir -p ~/bin</span><br><span class="line">mkdir -p ~/android/lineage</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">mkdir ~/.ccache</span><br><span class="line">echo &#x27;export USE_CCACHE=1&#x27; &gt;&gt; ~/.bashrc</span><br><span class="line">echo &#x27;export CCACHE_DIR=~/.ccache&#x27; &gt;&gt; ~/.bashrc</span><br><span class="line">source ~/.bashrc</span><br><span class="line">ccache -M 50G  # 设置缓存大小为 50GB，可以按需求自行调整，但是就算只编译一种设备的映像文件也建议25G起步。</span><br><span class="line">ccache -o compression=true</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">curl https://storage.googleapis.com/git-repo-downloads/repo &gt; ~/bin/repo</span><br><span class="line">chmod a+x ~/bin/repo</span><br><span class="line">echo &#x27;export PATH=&quot;$HOME/bin:$PATH&quot;&#x27; &gt;&gt; ~/.bashrc</span><br><span class="line">source ~/.bashrc</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">git config --global user.email &quot;you@example.com&quot;</span><br><span class="line">git config --global user.name &quot;Your Name&quot;</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">git lfs install</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">git config --global trailer.changeid.key &quot;Change-Id&quot;</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">cd ~/android/lineage</span><br><span class="line">repo init -u https://github.com/LineageOS/android.git -b lineage-21.0 --git-lfs 【可选参数--no-clone-bundle】  #自行修改要拉取的lineage版本</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">repo sync</span><br></pre></td></tr></table></figure><hr><p><em><strong>编译lineageOS通用镜像【可以自行选择编译的lineageos的对应脚本】</strong></em><br>注意，安卓15的td编译脚本，推荐使用MisterZtr的lineageOS编译脚本。github上可以找到仓库。</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">git clone https://github.com/AndyCGYan/lineage_build_unified lineage_build_unified -b lineage-21-light</span><br><span class="line">git clone https://github.com/AndyCGYan/lineage_patches_unified lineage_patches_unified -b lineage-21-light</span><br></pre></td></tr></table></figure><ul><li>td即TD-based，应用TrebleDroid的全量补丁集，对旧设备、mtk处理器、三星等手机有更好的兼容性。</li><li>light脚本应用的补丁则少得多，几乎只对一般的现代设备有用，编译出来的系统映像文件兼容性比td的要差些。</li><li>请按自己的实际情况来选择，一般而言，除了老旧的设备和奇怪的冷门设备，一般可以使用light脚本构建的系统映像文件。</li></ul><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">bash lineage_build_unified/buildbot_unified.sh treble 64VN 64VS 64GN #按需要选择参数编译</span><br></pre></td></tr></table></figure><hr><h1 id="编译指定设备的lineageos，需要到github下载设备树、驱动、内核"><a href="#编译指定设备的lineageos，需要到github下载设备树、驱动、内核" class="headerlink" title="编译指定设备的lineageos，需要到github下载设备树、驱动、内核"></a>编译指定设备的lineageos，需要到github下载设备树、驱动、内核</h1><p>以oneplus 8t为例：<br>手动下载设备树、内核、专有文件（或通过local_manifest.xml自动拉取）<br>设备树路径：device&#x2F;oneplus&#x2F;kebab<br>内核路径：kernel&#x2F;oneplus&#x2F;sm8250<br>专有文件路径：vendor&#x2F;oneplus&#x2F;kebab 和 vendor&#x2F;oneplus&#x2F;sm8250-common<br>硬件支持路径：hardware&#x2F;oplus</p><p>一加8T 设备树 <a href="https://github.com/LineageOS/android_device_oneplus_kebab">https://github.com/LineageOS/android_device_oneplus_kebab</a> 文件放置路径 device&#x2F;oneplus&#x2F;kebab<br>SM8250 一加通用设备树：<a href="https://github.com/LineageOS/android_device_oneplus_sm8250">https://github.com/LineageOS/android_device_oneplus_sm8250</a> 文件放置路径device&#x2F;oneplus&#x2F;sm8250-common<br>SM8250 一加内核：<a href="https://github.com/LineageOS/android_kernel_oneplus_sm8250">https://github.com/LineageOS/android_kernel_oneplus_sm8250</a>  文件放置路径 kernel&#x2F;oneplus&#x2F;sm8250<br>SM8250 一加通用专有文件：<a href="https://github.com/TheMuppets/proprietary_vendor_oneplus_sm8250-common">https://github.com/TheMuppets/proprietary_vendor_oneplus_sm8250-common</a> 文件放置路径 vendor&#x2F;oneplus&#x2F;kebab&#x2F;sm8250-common<br>一加8T专有文件：<a href="https://github.com/TheMuppets/proprietary_vendor_oneplus_kebab">https://github.com/TheMuppets/proprietary_vendor_oneplus_kebab</a> 文件放置路径 vendor&#x2F;oneplus&#x2F;kebab<br>一加硬件支持：<a href="https://github.com/LineageOS/android_hardware_oplus">https://github.com/LineageOS/android_hardware_oplus</a> 文件放置路径 hardware&#x2F;oplus</p><p>推荐通过 local_manifest.xml 自动拉取</p><ul><li>在源码根目录创建 .repo&#x2F;local_manifests&#x2F;roomservice.xml</li><li>添加设备树、内核、专有文件的仓库定义<br><em>以下是local_manifest.xml参考内容:</em></li></ul><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span><br><span class="line">&lt;manifest&gt;</span><br><span class="line">  &lt;!-- 一加8T 设备树 --&gt;</span><br><span class="line">  &lt;project name=&quot;LineageOS/android_device_oneplus_kebab&quot; path=&quot;device/oneplus/kebab&quot; remote=&quot;github&quot; /&gt;</span><br><span class="line">  &lt;!-- SM8250 通用设备树 --&gt;</span><br><span class="line">  &lt;project name=&quot;LineageOS/android_device_oneplus_sm8250-common&quot; path=&quot;device/oneplus/sm8250-common&quot; remote=&quot;github&quot; /&gt;</span><br><span class="line">  &lt;!-- SM8250 内核 --&gt;</span><br><span class="line">  &lt;project name=&quot;LineageOS/android_kernel_oneplus_sm8250&quot; path=&quot;kernel/oneplus/sm8250&quot; remote=&quot;github&quot; /&gt;</span><br><span class="line">  &lt;!-- 一加8T 专有文件 --&gt;</span><br><span class="line">  &lt;project name=&quot;TheMuppets/proprietary_vendor_oneplus_kebab&quot; path=&quot;vendor/oneplus/kebab&quot; remote=&quot;github&quot; /&gt;</span><br><span class="line">  &lt;!-- SM8250 通用专有文件 --&gt;</span><br><span class="line">  &lt;project name=&quot;TheMuppets/proprietary_vendor_oneplus_sm8250-common&quot; path=&quot;vendor/oneplus/sm8250-common&quot; remote=&quot;github&quot; /&gt;</span><br><span class="line">  &lt;!-- 一加硬件支持 --&gt;</span><br><span class="line">  &lt;project name=&quot;LineageOS/android_hardware_oplus&quot; path=&quot;hardware/oplus&quot; remote=&quot;github&quot; /&gt;</span><br><span class="line">&lt;/manifest&gt;</span><br></pre></td></tr></table></figure><hr><h1 id="编译lineageOS映像文件"><a href="#编译lineageOS映像文件" class="headerlink" title="编译lineageOS映像文件"></a>编译lineageOS映像文件</h1><p>1】对于编译通用镜像GSI，命令行进入lineageOS源码根目录，使用脚本指令</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">bash lineage_build_unified/buildbot_unified.sh treble 64VN</span><br></pre></td></tr></table></figure><p>即可<br>输出文件在用户主目录下，build-output里面</p><p>2】对于编译指定设备的lineageOS,命令行进入lineageOS源码根目录，依次输入下列指令</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">source build/envsetup.sh</span><br><span class="line">breakfast kebab</span><br><span class="line">croot</span><br><span class="line">brunch kebab</span><br></pre></td></tr></table></figure><p>进入输出文件夹（假设构建完成并且没有错误）</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">cd $OUT</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;strong&gt;本系列所有文章&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&quot;series-items&quot;&gt;&lt;li&gt;&lt;a href=&quot;/2025/05/16/%E6%90%AD%E5%BB%BAlineageos%E7%BC%96%E8%AF%91%E7%8E%AF%E5%</summary>
      
    
    
    
    <category term="lineageOS编译" scheme="https://anotherday99.github.io/categories/lineageOS%E7%BC%96%E8%AF%91/"/>
    
    
    <category term="lineageOS" scheme="https://anotherday99.github.io/tags/lineageOS/"/>
    
  </entry>
  
  <entry>
    <title>FreeBSD安装后的简单配置</title>
    <link href="https://anotherday99.github.io/2024/09/15/FreeBSD%E5%AE%89%E8%A3%85%E5%90%8E%E7%9A%84%E7%AE%80%E5%8D%95%E9%85%8D%E7%BD%AE/"/>
    <id>https://anotherday99.github.io/2024/09/15/FreeBSD%E5%AE%89%E8%A3%85%E5%90%8E%E7%9A%84%E7%AE%80%E5%8D%95%E9%85%8D%E7%BD%AE/</id>
    <published>2024-09-15T11:51:31.000Z</published>
    <updated>2025-10-04T04:04:48.553Z</updated>
    
    <content type="html"><![CDATA[<p><strong>本系列所有文章</strong> </p><ol class="series-items"><li><a href="/2024/09/15/FreeBSD%E5%AE%89%E8%A3%85%E5%90%8E%E7%9A%84%E7%AE%80%E5%8D%95%E9%85%8D%E7%BD%AE/" title="FreeBSD安装后的简单配置">FreeBSD安装后的简单配置</a></li><li><a href="/2024/09/13/%E7%BB%99FreeBSD%E7%9A%84%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8pkg%E9%85%8D%E7%BD%AE%E5%9B%BD%E5%86%85%E6%9B%B4%E6%96%B0%E6%BA%90/" title="给FreeBSD的包管理器pkg配置国内更新源">给FreeBSD的包管理器pkg配置国内更新源</a></li></ol><table><tr><td bgcolor=MistyRose>你可以通过使用右下角的小齿轮，来开启黑夜模式和阅读模式。</td></tr></table><hr><h1 id="如果提示无法解析域名"><a href="#如果提示无法解析域名" class="headerlink" title="如果提示无法解析域名"></a>如果提示无法解析域名</h1><p><strong>修改 &#x2F;etc&#x2F;resolv.conf，添加</strong></p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">nameserver 114.114.114.114</span><br><span class="line">nameserver 114.114.114.115</span><br></pre></td></tr></table></figure><hr><h1 id="修改pkg包管理器安装源"><a href="#修改pkg包管理器安装源" class="headerlink" title="修改pkg包管理器安装源"></a>修改pkg包管理器安装源</h1><p><strong>新建路径&#x2F;usr&#x2F;local&#x2F;etc&#x2F;pkg&#x2F;repos&#x2F;ustc.conf</strong><br>文章内容如下：</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">ustc: &#123;</span><br><span class="line">    url: &quot;http://mirrors.ustc.edu.cn/freebsd-pkg/$&#123;ABI&#125;/quarterly&quot;,</span><br><span class="line">    mirror_type: &quot;none&quot;,</span><br><span class="line">    signature_type: &quot;none&quot;,</span><br><span class="line">    fingerprints: &quot;/usr/share/keys/pkg&quot;,</span><br><span class="line">    enabled: yes</span><br><span class="line">&#125;</span><br><span class="line">FreeBSD: &#123; enabled: no &#125;</span><br></pre></td></tr></table></figure><h2 id="执行pkg-update-f-即可刷新源"><a href="#执行pkg-update-f-即可刷新源" class="headerlink" title="执行pkg update -f 即可刷新源"></a>执行pkg update -f 即可刷新源</h2><h1 id="修改npm源，如果下载了nodejs"><a href="#修改npm源，如果下载了nodejs" class="headerlink" title="修改npm源，如果下载了nodejs"></a>修改npm源，如果下载了nodejs</h1><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">npm config set registry=https://registry.npmmirror.com</span><br></pre></td></tr></table></figure><hr><h1 id="修改pip源，如果下载了python和pip"><a href="#修改pip源，如果下载了python和pip" class="headerlink" title="修改pip源，如果下载了python和pip"></a>修改pip源，如果下载了python和pip</h1><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple</span><br></pre></td></tr></table></figure><hr><h1 id="安装桌面"><a href="#安装桌面" class="headerlink" title="安装桌面"></a>安装桌面</h1><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">pkg install xorg gnome3 noto-sc</span><br></pre></td></tr></table></figure><p><strong>桌面安装完成之后，在 &#x2F;etc&#x2F;fstab 添加以下内容</strong></p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">proc /proc procfs rw 0 0</span><br></pre></td></tr></table></figure><p>可以使用tab缩进，对齐本来就有的配置就行。<br><strong>在&#x2F;etc&#x2F;rc.conf 添加以下内容</strong></p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">dbus_enable=&quot;YES&quot;</span><br><span class="line">gdm_enable=&quot;YES&quot;</span><br><span class="line">gnome_enable=&quot;YES&quot;</span><br><span class="line">snd_hda=&quot;YES&quot;</span><br></pre></td></tr></table></figure><p><strong>汉化 gnome ，在 &#x2F;usr&#x2F;local&#x2F;etc&#x2F;gdm&#x2F;locale.conf添加以下内容</strong></p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">LANG=&quot;zh_CN.UTF-8&quot;</span><br><span class="line">LC_CTYPE=&quot;zh_CN.UTF-8&quot;</span><br><span class="line">LC_MESSAGES=&quot;zh_CN.UTF-8&quot;</span><br><span class="line">LC_ALL=&quot;zh_CN.UTF-8&quot;</span><br></pre></td></tr></table></figure><p><strong>安装输入法引擎和 sudo 。</strong></p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">pkg install zh-ibus-libpinyin </span><br><span class="line">pkg install sudo</span><br></pre></td></tr></table></figure><p><strong>安装完成之后，在 &#x2F;usr&#x2F;local&#x2F;etc&#x2F;sudoers 把光标所在行的 %wheel ALL&#x3D;(ALL) ALL 前面的 # 去掉，再把用户名添加到此行的行下面。按照范例格式添加。</strong></p><p><strong>输入 init 6 重启系统，登入桌面在终端里输入 echo “&#x2F;usr&#x2F;local&#x2F;bin&#x2F;gnome-session” &gt; ~&#x2F;.xinitrc 并回车重启系统</strong></p><p><strong>设置输入法，打开设置，在左侧栏目找到并点击键盘，点输入源下的+号，选择汉语（中国），选择中文智能拼音。再点击英文的旁边三个小点，可选下移或者移除。确保中文智能拼音是第一个就行。</strong></p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;strong&gt;本系列所有文章&lt;/strong&gt; &lt;/p&gt;
&lt;ol class=&quot;series-items&quot;&gt;&lt;li&gt;&lt;a href=&quot;/2024/09/15/FreeBSD%E5%AE%89%E8%A3%85%E5%90%8E%E7%9A%84%E7%AE%80%E5%8</summary>
      
    
    
    
    <category term="FreeBSD" scheme="https://anotherday99.github.io/categories/FreeBSD/"/>
    
    
    <category term="BSD知识分享" scheme="https://anotherday99.github.io/tags/BSD%E7%9F%A5%E8%AF%86%E5%88%86%E4%BA%AB/"/>
    
  </entry>
  
  <entry>
    <title>termux安装archlinux教程</title>
    <link href="https://anotherday99.github.io/2024/09/14/termux%E5%AE%89%E8%A3%85archlinux%E6%95%99%E7%A8%8B/"/>
    <id>https://anotherday99.github.io/2024/09/14/termux%E5%AE%89%E8%A3%85archlinux%E6%95%99%E7%A8%8B/</id>
    <published>2024-09-14T03:08:12.000Z</published>
    <updated>2025-10-04T04:04:48.553Z</updated>
    
    <content type="html"><![CDATA[<p><strong>本系列所有文章</strong></p><ol class="series-items"><li><a href="/2024/09/14/termux%E5%AE%89%E8%A3%85archlinux%E6%95%99%E7%A8%8B/" title="termux安装archlinux教程">termux安装archlinux教程</a></li></ol><table><tr><td bgcolor=MistyRose>你可以通过使用右下角的小齿轮，来开启黑夜模式和阅读模式。</td></tr></table><hr><h1 id="termux安装archlinux"><a href="#termux安装archlinux" class="headerlink" title="termux安装archlinux"></a>termux安装archlinux</h1><p><em>已经全部本地化。</em><br><strong>请注意，ArchLinux的系统较大，在解压后还会占用更多空间，请保证至少有2.0GB空间储备。</strong></p><p><em><strong>在解压时可能会出现此问题：tar:lgnoring unknown extended header keyword ‘SCHILY.fflags’，这并不会造成任何问题，请无视。</strong></em></p><p>请复制下面的指令:</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">pkg install wget openssl-tool proot -y &amp;&amp; hash -r &amp;&amp; wget https://sourceforge.net/projects/anotherday99/files/arch.sh &amp;&amp; bash arch.sh</span><br></pre></td></tr></table></figure><p>这将安装Archlinux到您的设备，您稍后可以使用.&#x2F;start-arch.sh指令来启动系统。</p><p><strong>启动后，您必须执行以下指令：chomd 755 additional.sh &amp;&amp; .&#x2F;additional.sh 来设置reslov.conf和pacman-key，否则网络连接和pacman将无法使用！（仅第一次启动需要！！！）</strong></p><p><strong>注意：之后你必须使用.&#x2F;start-arch.sh指令来启动系统。</strong></p><p>本教程使用的所有脚本均托管在sourceforge<br><strong><a href="https://sourceforge.net/projects/anotherday99/files/">https://sourceforge.net/projects/anotherday99/files/</a></strong></p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;strong&gt;本系列所有文章&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&quot;series-items&quot;&gt;&lt;li&gt;&lt;a href=&quot;/2024/09/14/termux%E5%AE%89%E8%A3%85archlinux%E6%95%99%E7%A8%8B/&quot; titl</summary>
      
    
    
    
    <category term="termux" scheme="https://anotherday99.github.io/categories/termux/"/>
    
    
    <category term="termux进阶" scheme="https://anotherday99.github.io/tags/termux%E8%BF%9B%E9%98%B6/"/>
    
  </entry>
  
  <entry>
    <title>给FreeBSD的包管理器pkg配置国内更新源</title>
    <link href="https://anotherday99.github.io/2024/09/13/%E7%BB%99FreeBSD%E7%9A%84%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8pkg%E9%85%8D%E7%BD%AE%E5%9B%BD%E5%86%85%E6%9B%B4%E6%96%B0%E6%BA%90/"/>
    <id>https://anotherday99.github.io/2024/09/13/%E7%BB%99FreeBSD%E7%9A%84%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8pkg%E9%85%8D%E7%BD%AE%E5%9B%BD%E5%86%85%E6%9B%B4%E6%96%B0%E6%BA%90/</id>
    <published>2024-09-13T09:23:10.000Z</published>
    <updated>2025-10-04T04:04:48.553Z</updated>
    
    <content type="html"><![CDATA[<p><strong>本系列所有文章</strong></p><ol class="series-items"><li><a href="/2024/09/15/FreeBSD%E5%AE%89%E8%A3%85%E5%90%8E%E7%9A%84%E7%AE%80%E5%8D%95%E9%85%8D%E7%BD%AE/" title="FreeBSD安装后的简单配置">FreeBSD安装后的简单配置</a></li><li><a href="/2024/09/13/%E7%BB%99FreeBSD%E7%9A%84%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8pkg%E9%85%8D%E7%BD%AE%E5%9B%BD%E5%86%85%E6%9B%B4%E6%96%B0%E6%BA%90/" title="给FreeBSD的包管理器pkg配置国内更新源">给FreeBSD的包管理器pkg配置国内更新源</a></li></ol><table><tr><td bgcolor=MistyRose>你可以通过使用右下角的小齿轮，来开启黑夜模式和阅读模式。</td></tr></table><hr><h1 id="适用于FreeBSD13-0版本及以上"><a href="#适用于FreeBSD13-0版本及以上" class="headerlink" title="适用于FreeBSD13.0版本及以上"></a><strong>适用于FreeBSD13.0版本及以上</strong></h1><p>FreeBSD包管理器pkg的官方源配置是&#x2F;etc&#x2F;pkg&#x2F;FreeBSD.conf，请先检查该文件内容。注意其中的url参数配置了官方仓库的地址，我们需要把它替换为镜像站的地址。</p><p>请注意，由于该配置文件是FreeBSD基本系统的一部分，会随着freebsd-update更新，请不要直接修改，我们需要创建&#x2F;usr&#x2F;local&#x2F;etc&#x2F;pkg&#x2F;repos&#x2F;ustc.conf覆盖配置，文件内容如下：</p><figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">ustc: &#123;</span><br><span class="line">  url: &quot;http://mirrors.ustc.edu.cn/freebsd-pkg/$&#123;ABI&#125;/quarterly&quot;,</span><br><span class="line">  mirror_type: &quot;none&quot;,</span><br><span class="line">  signature_type: &quot;none&quot;,</span><br><span class="line">  fingerprints: &quot;/usr/share/keys/pkg&quot;,</span><br><span class="line">  enabled: yes</span><br><span class="line">&#125;</span><br><span class="line">FreeBSD: &#123; enabled: no &#125;</span><br></pre></td></tr></table></figure><p><strong>如果要使用滚动更新的latest仓库，把url配置最后的quarterly换成latest即可。</strong></p><p><strong>修改配置后，运行pkg update -f更新索引。</strong></p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;strong&gt;本系列所有文章&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&quot;series-items&quot;&gt;&lt;li&gt;&lt;a href=&quot;/2024/09/15/FreeBSD%E5%AE%89%E8%A3%85%E5%90%8E%E7%9A%84%E7%AE%80%E5%8D</summary>
      
    
    
    
    <category term="FreeBSD" scheme="https://anotherday99.github.io/categories/FreeBSD/"/>
    
    
    <category term="BSD知识分享" scheme="https://anotherday99.github.io/tags/BSD%E7%9F%A5%E8%AF%86%E5%88%86%E4%BA%AB/"/>
    
  </entry>
  
  <entry>
    <title>计算机资源超集合(持续更新)</title>
    <link href="https://anotherday99.github.io/2024/09/11/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%B5%84%E6%BA%90%E8%B6%85%E9%9B%86%E5%90%88/"/>
    <id>https://anotherday99.github.io/2024/09/11/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%B5%84%E6%BA%90%E8%B6%85%E9%9B%86%E5%90%88/</id>
    <published>2024-09-11T02:12:30.000Z</published>
    <updated>2026-01-23T16:22:31.099Z</updated>
    
    <content type="html"><![CDATA[<p><strong>本系列所有文章</strong></p><ol class="series-items"><li><a href="/2024/09/11/%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7/" title="在线工具(持续更新)">在线工具(持续更新)</a></li><li><a href="/2024/09/11/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%B5%84%E6%BA%90%E8%B6%85%E9%9B%86%E5%90%88/" title="计算机资源超集合(持续更新)">计算机资源超集合(持续更新)</a></li></ol><table><tr><td bgcolor=MistyRose>你可以通过使用右下角的小齿轮，来开启黑夜模式和阅读模式。</td></tr></table><hr><h1 id="为什么会有这个页面"><a href="#为什么会有这个页面" class="headerlink" title="为什么会有这个页面"></a><strong>为什么会有这个页面</strong></h1><hr><blockquote><p> 本页面是自学编程资源和分享内容的大聚合。</p><p> 旨在为编程自学者提供一系列：</p><ul><li><strong>清晰的编程自学路线</strong></li><li><strong>各编程岗位方向的知识点梳理</strong></li><li><strong>靠谱的资源</strong></li><li><strong>高效的工具</strong></li><li><strong>务实的技术文章</strong></li></ul><p>方便自己也方便他人。本页面会保持<strong>持续更新</strong>，欢迎收藏品鉴！</p></blockquote><hr><h1 id="编程自学路线-知识大梳理"><a href="#编程自学路线-知识大梳理" class="headerlink" title="编程自学路线+知识大梳理"></a><strong>编程自学路线+知识大梳理</strong></h1><hr><blockquote><p> 本页面目前整理收录了6个大方向（岗位）的学习路线+知识点大梳理，分别为：</p><ul><li><strong>Java后端开发</strong></li><li><strong>前端开发</strong></li><li><strong>C&#x2F;C++后台开发</strong></li><li><strong>大数据开发</strong></li><li><strong>嵌入式开发</strong></li><li><strong>网络安全方向</strong></li></ul></blockquote><p>后续本站也会持续更新和增加更多的内容…</p><hr><h1 id="常用编程软件和工具"><a href="#常用编程软件和工具" class="headerlink" title="常用编程软件和工具"></a><strong>常用编程软件和工具</strong></h1><hr><blockquote><p><strong>工欲善其事，必先利其器！</strong></p></blockquote><p>一个易上手、好用、高效的软件工具对于程序员工作效率的提升是不言而喻的，这些常用开发软件和工具比如：</p><blockquote><ul><li>基础的软件开发环境和设施</li><li>好用高效的在线工具和网站</li><li>本地常用的一些编程软件</li><li>Linux操作系统</li><li>版本控制工具</li><li>高效的IDE和编辑器</li><li>API管理工具&#x2F;文档管理工具</li><li>CI守护系统</li><li>…… 等等</li></ul></blockquote><hr><h2 id="常用在线工具集"><a href="#常用在线工具集" class="headerlink" title="常用在线工具集"></a>常用在线工具集</h2><hr><blockquote><p>程序员在平时的日常<strong>工作</strong>、<strong>学习</strong>、<strong>开发</strong>、<strong>做笔记</strong>、<strong>写博客</strong>等过程中还是有很多好用并且高效的<strong>在线工具推荐</strong>的，毕竟我们不是每时每刻我们都需要那种很重量级的本地软件。下面将分成<strong>16个大类</strong>，共整理了约<strong>130+个</strong>常用的在线工具和网站供大家食用。</p></blockquote><hr><!-- tabs:start --><h4 id="在线画图工具"><a href="#在线画图工具" class="headerlink" title="在线画图工具"></a><strong>在线画图工具</strong></h4><p>程序员经常接触的无非也就是流程图、思维导图、原型图、UML图、网络拓扑图、组织结构图等等这些。下面这3个在线画图网站我想应该足够了，其中那个processon是我用得最多的，历史文章中几乎所有相关的图形都是用它绘制，然后导出图片的。</p><ul><li><a href="https://www.processon.com/"><strong>在线画图工具ProcessOn</strong></a></li><li><a href="https://app.diagrams.net/"><strong>在线画图工具Draw.io</strong></a></li><li><a href="http://www.mindline.cn/webapp"><strong>在线思维导图工具MindLine</strong></a></li></ul><h4 id="在线编解码工具"><a href="#在线编解码工具" class="headerlink" title="在线编解码工具"></a><strong>在线编解码工具</strong></h4><ul><li><a href="https://base64.supfree.net/"><strong>BASE64编解码工具</strong></a></li><li><a href="https://www.zxgj.cn/g/md5"><strong>MD5编码工具</strong></a></li><li><a href="http://www.fly63.com/tool/cipher/"><strong>AES&#x2F;DES加解密</strong></a></li><li><a href="http://jwt.calebb.net/"><strong>JWT解码工具</strong></a></li><li><a href="https://www.matools.com/code-convert-ascii"><strong>ASCII编解码工具</strong></a></li><li><a href="https://www.zxgj.cn/g/unicode"><strong>Unicode编解码工具</strong></a></li><li><a href="https://www.zxgj.cn/g/utf8"><strong>UTF-8编解码工具</strong></a></li><li><a href="https://www.zxgj.cn/g/enstring"><strong>字符串编解码工具</strong></a></li><li><a href="http://tool.chinaz.com/tools/urlencode.aspx?jdfwkey=lbixz1"><strong>URL编解码工具</strong></a></li></ul><h4 id="在线转换工具"><a href="#在线转换工具" class="headerlink" title="在线转换工具"></a><strong>在线转换工具</strong></h4><ul><li><a href="http://www.fly63.com/tool/ascii/"><strong>在线ASCII码对照表</strong></a></li><li><a href="https://www.zxgj.cn/g/jinzhi"><strong>通用进制转换工具</strong></a></li><li><a href="http://www.binaryconvert.com/"><strong>在线浮点数十进制转换</strong></a></li><li><a href="https://www.zxgj.cn/g/yansezhi"><strong>RGB颜色转换</strong></a></li><li><a href="https://www.zxgj.cn/g/unix"><strong>时间戳转换工具</strong></a></li><li><a href="http://www.fly63.com/tool/unitable/"><strong>计量单位换算工具</strong></a></li><li><a href="http://www.json.cn/"><strong>在线JSON解析</strong></a></li><li><a href="https://prettier.io/playground/"><strong>在线JS代码格式化工具</strong></a></li><li><a href="https://www.zxgj.cn/g/sqlformat"><strong>SQL压缩&#x2F;格式化工具</strong></a></li><li><a href="https://www.zxgj.cn/g/jsonxml"><strong>JSON和XML在线转换</strong></a></li><li><a href="http://www.fly63.com/tool/jsonyaml/"><strong>JSON&#x2F;YAML在线转换</strong></a></li><li><a href="http://www.fly63.com/tool/renmingbi/"><strong>人民币大小写转换工具</strong></a></li></ul><h4 id="正则表达式工具"><a href="#正则表达式工具" class="headerlink" title="正则表达式工具"></a><strong>正则表达式工具</strong></h4><ul><li><a href="https://regexr.com/"><strong>正则表达式调试工具</strong></a></li><li><a href="https://jex.im/regulex/"><strong>正则表达式可视化工具</strong></a></li></ul><h4 id="网络工具"><a href="#网络工具" class="headerlink" title="网络工具"></a><strong>网络工具</strong></h4><ul><li><a href="https://www.ip138.com/"><strong>IP地址归属地查询</strong></a></li><li><a href="https://www.ipip.net/ip.html"><strong>IP地址查询</strong></a></li><li><a href="http://www.fly63.com/php/http/"><strong>HTTP在线接口测试工具</strong></a></li></ul><h4 id="在线编译运行工具"><a href="#在线编译运行工具" class="headerlink" title="在线编译运行工具"></a><strong>在线编译运行工具</strong></h4><ul><li><a href="https://rextester.com/"><strong>C#在线编译运行</strong></a></li><li><a href="https://www.onlinegdb.com/"><strong>C&#x2F;C++在线编译调试</strong></a></li><li><a href="https://c.runoob.com/"><strong>在线编译工具套装</strong></a></li></ul><h4 id="可视化-格式化工具"><a href="#可视化-格式化工具" class="headerlink" title="可视化&#x2F;格式化工具"></a><strong>可视化&#x2F;格式化工具</strong></h4><ul><li><a href="https://codepen.io/"><strong>在线前端编辑器</strong></a></li><li><a href="https://flourish.studio/"><strong>在线数据可视化</strong></a></li><li><a href="http://www.json.cn/"><strong>在线JSON解析</strong></a></li><li><a href="https://enjoycss.com/"><strong>在线CSS代码可视化工具</strong></a></li><li><a href="https://www.zxgj.cn/g/xmlformat"><strong>XML格式化工具</strong></a></li><li><a href="https://prettier.io/playground/"><strong>在线JS代码格式化工具</strong></a></li><li><a href="https://www.zxgj.cn/g/sqlformat"><strong>SQL压缩&#x2F;格式化工具</strong></a></li><li><a href="https://www.zxgj.cn/g/jsonxml"><strong>JSON和XML在线转换</strong></a></li><li><a href="http://www.fly63.com/tool/jsonyaml/"><strong>JSON&#x2F;YAML在线转换</strong></a></li></ul><h4 id="在线生成器"><a href="#在线生成器" class="headerlink" title="在线生成器"></a><strong>在线生成器</strong></h4><ul><li><a href="https://www.zxgj.cn/g/uuid"><strong>UUID在线生成器</strong></a></li><li><a href="https://www.zxgj.cn/g/suijishu"><strong>随机数生成器</strong></a></li></ul><h4 id="其他常用在线开发相关工具"><a href="#其他常用在线开发相关工具" class="headerlink" title="其他常用在线开发相关工具"></a><strong>其他常用在线开发相关工具</strong></h4><ul><li><a href="https://nginxconfig.io/"><strong>在线Nginx配置工具</strong></a></li><li><a href="http://www.fly63.com/tool/textdiff/"><strong>在线文本代码比对工具</strong></a></li><li><a href="https://www.crx4chrome.com/"><strong>在线Chrome浏览器插件</strong></a></li><li><a href="http://www.docway.net/"><strong>在线接口文档管理工具</strong></a></li></ul><h4 id="在线素材工具"><a href="#在线素材工具" class="headerlink" title="在线素材工具"></a><strong>在线素材工具</strong></h4><blockquote><ul><li>如果你也写文章，或者做视频，那就一定少不了要找素材，包括各种图片、背景、emoji表情、表情包、壁纸、视频、gif图等等。</li><li>如此一来，那些好用的在线素材工具就必不可少了，比如像各种表情包工具、icon图标库、矢量图库、图片素材库、壁纸库等等。</li></ul></blockquote><ul><li><a href="http://pngimg.com/"><strong>免费透明背景图片素材</strong></a></li><li><a href="https://emojiisland.com/"><strong>Emoji表情包下载</strong></a></li><li><a href="https://feathericons.com/"><strong>open source icons</strong></a></li><li><a href="https://www.iconfont.cn/"><strong>阿里巴巴矢量图标库</strong></a></li><li><a href="https://fabiaoqing.com/"><strong>表情包在线网站</strong></a></li><li><a href="https://pluspng.com/"><strong>免费PNG图片库</strong></a></li><li><a href="https://www.iconfinder.com/"><strong>ICON图标在线下载</strong></a></li><li><a href="https://bz.zzzmh.cn/"><strong>极简壁纸</strong></a></li><li><a href="https://wall.alphacoders.com/"><strong>Wallpaper Abyss壁纸</strong></a></li><li><a href="https://pixabay.com/zh/"><strong>Pixabay图片素材库</strong></a></li><li><a href="https://unsplash.com/"><strong>Unsplash图片素材库</strong></a></li><li><a href="http://www.pexels.com/"><strong>Pexels图片素材库</strong></a></li><li><a href="https://images.nasa.gov/"><strong>NASA图片视频素材库</strong></a></li></ul><h4 id="设计制作类工具"><a href="#设计制作类工具" class="headerlink" title="设计制作类工具"></a><strong>设计制作类工具</strong></h4><blockquote><ul><li>对于那些文章创作者和视频创作者而言，设计封面，做海报，设计LOGO，图片美化等等基本也是刚需。</li><li>这样大概率日常会用到一些简易好上手的在线设计制作类工具，比如在线P图、音&#x2F;视频轻量化剪辑、logo制作、海报设计制作、图片美化、在线图片转换或生成等等，毕竟不是每时每刻我们都需要那种重量级的本地软件。</li></ul></blockquote><ul><li><a href="https://www.uupoop.com/"><strong>在线PS</strong></a></li><li><a href="https://www.weixinsyt.com/"><strong>在线音频剪辑</strong></a></li><li><a href="https://www.kapwing.com/"><strong>在线视频剪辑</strong></a></li><li><a href="http://www.uugai.com/"><strong>免费logo在线制作</strong></a></li><li><a href="https://www.qt86.com/"><strong>艺术字体在线生成</strong></a></li><li><a href="https://tableconvert.com/"><strong>在线表格转换工具</strong></a></li><li><a href="https://www.designcap.com/"><strong>在线海报设计工具</strong></a></li><li><a href="https://bigjpg.com/"><strong>图片智能放大工具</strong></a></li><li><a href="https://mh.cli.im/"><strong>二维码美化器</strong></a></li><li><a href="https://carbon.now.sh/"><strong>在线代码截图工具</strong></a></li><li><a href="https://www.remove.bg/zh"><strong>在线抠图工具</strong></a></li><li><a href="http://www.fly63.com/php/ico/"><strong>ICO图标在线生成</strong></a></li><li><a href="http://www.fly63.com/tool/svg2img/"><strong>SVG转PNG工具</strong></a></li><li><a href="http://www.fly63.com/tool/giftxt/"><strong>视频转GIF工具</strong></a></li><li><a href="http://www.fly63.com/tool/ewm/"><strong>二维码在线生成器</strong></a></li><li><a href="http://www.fly63.com/php/decoder/"><strong>二维码在线解码</strong></a></li></ul><h4 id="写作辅助工具"><a href="#写作辅助工具" class="headerlink" title="写作辅助工具"></a><strong>写作辅助工具</strong></h4><blockquote><ul><li>在写文章的过程中经常会用到和写作相关的辅助工具，比方说：字数统计工具、Markdown格式的文章排版工具、图床网站、代码截图工具等等，所以下面这些在线工具就能很好地满足需求。</li></ul></blockquote><ul><li><a href="https://www.eteste.com/"><strong>在线字数统计</strong></a></li><li><a href="https://mdnice.com/"><strong>mdnice markdown排版工具</strong></a></li><li><a href="http://md.aclickall.com/"><strong>md2all markdown排版工具</strong></a></li><li><a href="https://picx.xpoet.cn/"><strong>在线图床神器</strong></a></li><li><a href="https://sm.ms/"><strong>在线免费图床</strong></a></li><li><a href="https://imgkr.com/"><strong>图壳图床</strong></a></li><li><a href="https://carbon.now.sh/"><strong>在线代码截图工具</strong></a></li><li><a href="https://urlify.cn/"><strong>在线短链接工具</strong></a></li><li><a href="http://www.fly63.com/tool/textreplace/"><strong>在线文本替换</strong></a></li></ul><h4 id="在线办公工具"><a href="#在线办公工具" class="headerlink" title="在线办公工具"></a><strong>在线办公工具</strong></h4><blockquote><ul><li>这部分在线工具主要用来处理一些和文档以及文稿相关的事情，经常用到的比如：在线的全套pdf处理和转换工具、各种各样多媒体文件间的相互转换工具、在线识别工具、在线压缩工具等等。</li></ul></blockquote><ul><li><a href="https://smallpdf.com/cn/pdf-tools"><strong>pdf在线处理工具套装1</strong></a></li><li><a href="https://tools.pdf24.org/zh/"><strong>pdf在线处理工具套装2</strong></a></li><li><a href="https://www.pdftoword.com/"><strong>pdf转word在线工具</strong></a></li><li><a href="https://cn.office-converter.com/"><strong>在线多媒体转换器合集</strong></a></li><li><a href="https://ocr.wdku.net/"><strong>在线文字识别工具</strong></a></li><li><a href="https://docsmall.com/"><strong>在线文件压缩工具</strong></a></li></ul><h4 id="文档笔记工具"><a href="#文档笔记工具" class="headerlink" title="文档笔记工具"></a><strong>文档笔记工具</strong></h4><blockquote><ul><li>好记性不如烂笔头，作为一个学习者，我觉得记笔记是必不可少的步骤。当然现在基本都做电子笔记和电子文档比较多。</li><li>现如今各式各样优秀的文档工具和笔记软件鳞次栉比，好用的也有很多，整理成如下列表，这东西各有长处，使用哪个最合意还得看个人习惯和需求了。</li></ul></blockquote><ul><li><a href="https://www.yinxiang.com/"><strong>印象笔记</strong></a></li><li><a href="https://note.youdao.com/"><strong>有道笔记</strong></a></li><li><a href="https://www.onenote.com/"><strong>OneNote</strong></a></li><li><a href="https://mubu.com/"><strong>幕布</strong></a></li><li><a href="https://www.wiz.cn/"><strong>为知笔记</strong></a></li><li><a href="https://shimo.im/"><strong>石墨文档</strong></a></li><li><a href="https://simplenote.com/"><strong>Simplenote</strong></a></li><li><a href="https://www.yuque.com/"><strong>语雀</strong></a></li></ul><h4 id="编程学习网"><a href="#编程学习网" class="headerlink" title="编程学习网"></a><strong>编程学习网</strong></h4><ul><li><a href="https://www.bilibili.com/"><strong>哔哩哔哩</strong></a></li><li><a href="https://www.dotcpp.com/"><strong>C语言网</strong></a></li><li><a href="http://zh.cppreference.com/"><strong>cppreference</strong></a></li><li><a href="https://www.icourse163.org/"><strong>中国大学MOOC</strong></a></li><li><a href="www.nowcoder.com"><strong>牛客网</strong></a></li><li><a href="https://open.163.com/"><strong>网易公开课</strong></a></li><li><a href="https://codegym.cc/"><strong>CodeGym</strong></a></li><li><a href="https://beginnersbook.com/"><strong>BeginnersBook</strong></a></li><li><a href="http://www.javased.com/"><strong>JavaSED</strong></a></li><li><a href="https://www.codecademy.com/"><strong>codecademy</strong></a></li><li><a href="https://www.coursera.org/"><strong>Coursera</strong></a></li><li><a href="https://stackoverflow.com/"><strong>StackOverFlow</strong></a></li><li><a href="https://leetcode-cn.com/"><strong>LeetCode</strong></a></li><li><a href="https://www.lintcode.com/"><strong>LintCode</strong></a></li></ul><h4 id="在线教程和文档"><a href="#在线教程和文档" class="headerlink" title="在线教程和文档"></a><strong>在线教程和文档</strong></h4><blockquote><ul><li>这部分主要集中了在做开发过程中随手参考所要用到的几乎所有在线教程和官方文档，有中文版文档的我基本都优先列出来了，但更多时候是英文的官方文档。</li></ul></blockquote><!-- panels:start --><!-- div:left-panel --><ul><li><a href="https://git-scm.com/book/zh/v2"><strong>Git中文教程</strong></a></li><li><a href="http://svnbook.red-bean.com/nightly/zh/index.html"><strong>SVN中文手册</strong></a></li><li><a href="https://jquery.cuishifeng.cn/"><strong>jQuery API中文文档</strong></a></li><li><a href="https://www.nginx.cn/doc/index.html"><strong>Nginx中文文档</strong></a></li><li><a href="https://kafka.apachecn.org/"><strong>Kafka中文文档</strong></a></li><li><a href="https://mybatis.org/mybatis-3/zh/index.html"><strong>Mybatis中文文档</strong></a></li><li><a href="https://developers.weixin.qq.com/miniprogram/dev/framework/"><strong>微信小程序官方文档</strong></a></li><li><a href="http://nodejs.cn/learn"><strong>Nodejs中文教程文档</strong></a></li><li><a href="http://httpd.apache.org/docs/"><strong>Apache Web Server文档</strong></a></li><li><a href="https://www.springcloud.cc/spring-reference.html"><strong>Spring文档中文版</strong></a></li><li><a href="https://studygolang.com/pkgdoc"><strong>Golang标准库文档中文版</strong></a></li><li><a href="https://docs.oracle.com/javase/8/docs/api/index.html"><strong>Java 8官方文档</strong></a></li><li><a href="http://maven.apache.org/guides/"><strong>Maven官方文档</strong></a></li><li><a href="http://tomcat.apache.org/tomcat-8.0-doc/index.html"><strong>Tomcat 8官方文档</strong></a></li></ul><!-- div:right-panel --><ul><li><a href="https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/"><strong>Spring Boot官方文档</strong></a></li><li><a href="https://www.rabbitmq.com/documentation.html"><strong>RabbitMQ官方文档</strong></a></li><li><a href="http://rocketmq.apache.org/docs/quick-start/"><strong>RocketMQ官方文档</strong></a></li><li><a href="https://dubbo.apache.org/zh/docs/"><strong>Dubbo中文文档</strong></a></li><li><a href="https://netty.io/wiki/index.html"><strong>Netty官方文档</strong></a></li><li><a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html"><strong>Elasticsearch官方文档</strong></a></li><li><a href="https://spring.io/projects/spring-cloud"><strong>Spring Cloud官方文档</strong></a></li><li><a href="https://docs.docker.com/get-started/"><strong>Docker官方文档</strong></a></li><li><a href="https://kubernetes.io/zh/docs/home/"><strong>Kubernetes中文文档</strong></a></li><li><a href="https://www.thymeleaf.org/documentation.html"><strong>Thymeleaf官方文档</strong></a></li><li><a href="https://cn.vuejs.org/v2/guide/"><strong>Vue.js中文文档</strong></a></li><li><a href="https://reactjs.org/docs/getting-started.html"><strong>React.js官方文档</strong></a></li><li><a href="https://www.jenkins.io/zh/doc/"><strong>Jenkins中文文档</strong></a></li></ul><!-- panels:end --><!-- tabs:end --><hr><h2 id="常用本地软件"><a href="#常用本地软件" class="headerlink" title="常用本地软件"></a>常用本地软件</h2><hr><p align="left">        <img src="https://cdn.jsdelivr.net/gh/justacoder99/r2coding@master/img/localsoftware.2x9vakmja2g.png" width=""/>    </a></p><p>这里将常用软件分为了5大类，包括：</p><blockquote><ul><li>社交&#x2F;娱乐&#x2F;上网</li><li>办公软件</li><li>效率和美化软件</li><li>UP主必备</li><li>程序员生产力工具</li></ul></blockquote><hr><h2 id="基础软件开发环境和设施"><a href="#基础软件开发环境和设施" class="headerlink" title="基础软件开发环境和设施"></a>基础软件开发环境和设施</h2><hr><blockquote><p> <strong>什么叫基础软件开发环境？</strong></p><p> 很好理解。学Java得要装JDK吧？学Python得要Python环境吧？学数据库得要MySQL吧？等等，这些在学习编程之前都是应该提前在自己的电脑上准备好的，而且尽量把全套都先备好，后面直接就用了。</p></blockquote><p>内容包含常见基础开发环境和设施的安装部署，包括：</p><blockquote><ul><li>Linux操作系统</li><li>Git工具</li><li>Java环境JDK</li><li>Node基础环境</li><li>Python基础环境</li><li>Maven项目构建和管理</li><li>MySQL数据库</li><li>Redis缓存</li><li>RabbitMQ消息队列</li><li>Tomcat应用服务器</li><li>Nginx Web服务器</li><li>Docker环境</li><li>Kubernetes环境</li><li>Elasticsearch搜索引擎</li><li>ZooKeeer环境</li><li>Kafka消息队列</li></ul></blockquote><hr><h2 id="Linux操作系统"><a href="#Linux操作系统" class="headerlink" title="Linux操作系统"></a>Linux操作系统</h2><hr><blockquote><p> 实际企业级开发和项目部署，大部分情况下基本都是基于Linux环境进行的，所以掌握常用的命令、配置、网络和系统管理、基本的Shell编程等尽量还是要熟练一些，对后续项目实践都大有裨益。</p></blockquote><hr><h2 id="版本控制工具"><a href="#版本控制工具" class="headerlink" title="版本控制工具"></a>版本控制工具</h2><hr><p align="left">        <img src="https://cdn.jsdelivr.net/gh/justacoder99/r2coding@master/img/gcm.1sv6s8asfzc0.jpeg" width=""/>    </a></p><ul><li><a href="https://mp.weixin.qq.com/s/xDYSG4uDz9rgNCuk0RxLjg">资源下载 → 豆瓣9.1分的Pro Git学习手册YYDS！</a></li><li><a href="https://mp.weixin.qq.com/s/bUYz9JwqAYH_Fn6nHPSmTg">科普篇：Git和SVN对比</a></li><li><a href="https://mp.weixin.qq.com/s/VvpjFUXd6jcatACHyFPHfg">科普篇：5分钟了解Git的前世今生</a></li><li><a href="https://mp.weixin.qq.com/s/swnwBiuyVmhs5iPqv3H6BQ">科普篇：Git操作与常用命令集锦</a></li><li><a href="https://mp.weixin.qq.com/s/DRCeDhYiwQQToKukk4RM4g">原理篇：图解Git中的最常用命令</a></li><li><a href="https://mp.weixin.qq.com/s/DQVVYOWdOPuRsy3m0fg6Xg">原理篇：从原理角度理解记忆Git常见命令</a></li><li><a href="https://mp.weixin.qq.com/s/sp1YUQ2vnQaIGH4tO3j1Vw">实践篇：从实践中彻底上手Git</a></li><li><a href="https://mp.weixin.qq.com/s/touo-rygtz0tG6y8NKw65A">实践篇：Git分支开发</a></li><li><a href="https://mp.weixin.qq.com/s/JMNQi3BSTmKpF9vXMEdKHw">实践篇：如何使用GitHub Flow给开源项目贡献代码</a></li><li><a href="https://mp.weixin.qq.com/s/SYR4zvjhAH1mX9fxdp8cbA">技巧篇：一招搞定GitHub下载加速！</a></li><li><a href="https://mp.weixin.qq.com/s/Qt4bqReZU3ydIsMtCVC0eA">技巧篇：如何在同一台电脑上同时使用多个Git账号</a></li></ul><hr><h2 id="IDE-编辑器"><a href="#IDE-编辑器" class="headerlink" title="IDE&#x2F;编辑器"></a>IDE&#x2F;编辑器</h2><p align="left">        <img src="https://cdn.jsdelivr.net/gh/justacoder99/r2coding@master/img/ide.720nw0czwbs0.png" width=""/>    </a></p><ul><li><a href="https://mp.weixin.qq.com/s/WQiHpAv4bjEIz3fghzamEA">IDEA 2021.2升级体验</a></li><li><a href="https://mp.weixin.qq.com/s/dojfVvkrxru1eH8Pep7irw">IDEA 2021.1升级体验</a></li><li><a href="https://mp.weixin.qq.com/s/FhURpMKa9oi2FrV_0woOtw">IDEA 2020.3升级体验</a></li><li><a href="https://mp.weixin.qq.com/s/Ua4TYlcNntLr-x9WQirHyg">IDEA 2020.1升级体验</a></li><li><a href="https://mp.weixin.qq.com/s/xMwGAL_7sGkmnFvWZroVPw">IDEA插件分享：开发必备的IDEA神级插件大分享</a></li><li><a href="https://mp.weixin.qq.com/s/V2uAxmdq2e0Hl-y5GaD-Qw">我的IDEA写代码小技巧：幸福感+效率爆棚</a></li><li><a href="https://mp.weixin.qq.com/s/KNk04dv6Z-ERrHiY03qdAw">为啥我的IDEA Maven依赖下载总是失败？</a></li><li><a href="https://mp.weixin.qq.com/s/RK_ygHgMjayL5-qTnlHbeg">试水JetBrains官方新编程字体</a></li><li><a href="https://mp.weixin.qq.com/s/WLTfgkPnJYJf9PZM8d8w4Q">如何使用IDEA远程调试线上代码</a></li><li><a href="https://mp.weixin.qq.com/s/ZDVYk188oPLugRI6oeVYIQ">利用VS Code进行远程开发教程</a></li><li><a href="https://mp.weixin.qq.com/s/_3mwj5_MNln__3SSI8BJ3Q">VS Code常用插件+快捷键整理</a></li></ul><hr><h2 id="API管理-文档管理"><a href="#API管理-文档管理" class="headerlink" title="API管理&#x2F;文档管理"></a>API管理&#x2F;文档管理</h2><hr><p align="left">        <img src="https://cdn.jsdelivr.net/gh/justacoder99/r2coding@master/img/apidocs.2qlxsrvx2vy0.png" width=""/>    </a></p><ul><li><a href="https://mp.weixin.qq.com/s/Ahs6fnIfFVVPOn3NZpIsNA">科普篇：前后端都分离了，有哪些好用的API管理系统？</a></li><li><a href="https://mp.weixin.qq.com/s/G6-6gqYnTvEsWOGIoj16ZQ">科普篇：几款常用的在线文档神器</a></li><li><a href="https://mp.weixin.qq.com/s/I_pH1V9iUu-IUayMA5oQSg">一款零注解API接口文档生成工具</a></li></ul><hr><h2 id="CI系统"><a href="#CI系统" class="headerlink" title="CI系统"></a>CI系统</h2><hr><p align="left">        <img src="https://cdn.jsdelivr.net/gh/justacoder99/r2coding@master/img/ci.3iokn4xypxy0.png" width=""/>    </a></p><ul><li><a href="https://mp.weixin.qq.com/s/PgoXJcJX_sm5132VGQoZ1w">常用CI工具大盘点</a></li><li><a href="https://mp.weixin.qq.com/s/Y2gxBmBK2HPvr1uKUUxRYA">Jenkins Pipeline使用入门</a></li><li><a href="https://mp.weixin.qq.com/s/4NlLEyy2QXX5_snX4r7FSw">讨论：你们公司用啥CI守护系统？</a></li></ul><h2 id="其他软件-工具-网站"><a href="#其他软件-工具-网站" class="headerlink" title="其他软件&#x2F;工具&#x2F;网站"></a>其他软件&#x2F;工具&#x2F;网站</h2><ul><li><a href="https://mp.weixin.qq.com/s/f9dfQQbpKjMopH6m2Gjiiw">自学数据结构和算法的9大工具和网站</a></li><li><a href="https://mp.weixin.qq.com/s/jFc-6QK2Mv1zHuhuFrqhog">12个常见的编程开发自学网站汇总</a></li><li><a href="https://mp.weixin.qq.com/s/J1XjIwtEKjaltqWH-0qmgw">常用Web服务器软件大盘点</a></li><li><a href="https://mp.weixin.qq.com/s/VB1jGIWWp4XdsLwXe-PKlQ">9款最佳编程字体推荐</a></li><li><a href="https://mp.weixin.qq.com/s/71Cr9UxvQc6CdmguQIh-IA">5款时间管理工具推荐</a></li><li><a href="https://mp.weixin.qq.com/s/oMAJaKDfr_bmgCVD0CX1oA">一个程序员的常用在线工具网站分享</a></li><li><a href="https://mp.weixin.qq.com/s/VtmcuYGt96S4750UFYKnXQ">2020年度开发者工具Top 100名单</a></li><li><a href="https://mp.weixin.qq.com/s/zWIv5yBTD0Tvt8txb8znrA">Linux服务器上几个常用的监控小工具整理</a></li><li><a href="https://mp.weixin.qq.com/s/LUPa_uSEd91Pj08VwxsxEQ">效率神器PowerToys使用攻略</a></li><li><a href="https://mp.weixin.qq.com/s/k19ZT_yH4lzNLUYkH2GUJA">22款适合程序员的终端生产力小工具推荐</a></li><li><a href="https://mp.weixin.qq.com/s/IU5mmLxflgswICEo3BCWLA">9款优秀的代码比对工具推荐</a></li><li><a href="https://mp.weixin.qq.com/s/HZRz_A8bLcOTuzcezYEFZg">几款提升效率的软件神器</a></li><li><a href="https://mp.weixin.qq.com/s/0f6JpBiPqCY8cZ2Ich0Lmg">命令行效率神器 NuShell ！</a></li></ul><hr><h1 id="计算机基础"><a href="#计算机基础" class="headerlink" title="计算机基础"></a><strong>计算机基础</strong></h1><hr><blockquote><p> <strong>计算机基础是最最重要的！<strong>即使后面的东西都没学（或者来不及学），基础部分是肯定需要完成的，这也是后面所有应用框架学习和做项目的基石；反之，在应用框架的学习或者做项目时如果感觉吃力，那就可能非常有必要回过头再来巩固对应的基础知识。<br> 计算机基础的学习不是一蹴而就的，需要一定的反复和回炉才能做到真正的融会贯通，需要一个过程。珍惜每一次回顾和复习基础的机会，应扎实精进，步步为营。<br> 那我们口口声声所说的编程基础（计算机基础）到底指是什么呢？<br> 此处整理为</strong>六大方面：</strong></p><ul><li>一两门你最熟悉的编程语言（不求多，但求精！）</li><li>数据结构和算法</li><li>计算机网络</li><li>操作系统（计组）</li><li>数据库&#x2F;SQL</li><li>设计模式</li></ul></blockquote><hr><h2 id="编程语言"><a href="#编程语言" class="headerlink" title="编程语言"></a>编程语言</h2><hr><blockquote><p> 语言在精不在多，切记！完全掌握了一门语言，上手其他的都不难！</p></blockquote><hr><!-- tabs:start --><h4 id="Java"><a href="#Java" class="headerlink" title="Java"></a><strong>Java</strong></h4><ul><li><p><strong>基本功趣味学习（精讲）</strong></p><ul><li><a href="https://mp.weixin.qq.com/s/jn7oraFlhRkOmiv3rh74WA">资源下载 → Java基础核心知识大总结pdf笔记下载</a></li><li><a href="https://mp.weixin.qq.com/s/aZg9SZT3DWkCkEsjlUjTtQ">夯实基本功之：Java程序员找对象攻虐！</a></li><li><a href="https://mp.weixin.qq.com/s/LVpvmBO0GY6TC4gwL_12Yw">夯实基本功之：浮点数在计算机中是如何表示的</a></li><li><a href="https://mp.weixin.qq.com/s/UyYDt3HB8IO_AoSDLndhxA">夯实基本功之：flaot和double使用时的大坑</a></li><li><a href="https://mp.weixin.qq.com/s/Dg9LcKJBrabcnvC_6wga-A">夯实基本功之：为什么要面向接口编程</a></li><li><a href="https://mp.weixin.qq.com/s/DgOr7cat8SP0zoY7Ke3toQ">夯实基本功之：枚举精讲</a></li><li><a href="https://mp.weixin.qq.com/s/ypCIMGxyp7AX5cxG5UJ1Hg">夯实基本功之：深拷贝&#x2F;浅拷贝精讲</a></li><li><a href="https://mp.weixin.qq.com/s/0EfIUB9E-0Oh_Clwuxswuw">夯实基本功之：序列化和反序列化精讲</a></li><li><a href="https://mp.weixin.qq.com/s/yI82juBiirJ56BZfGJezLw">夯实基本功之：函数式编程例析</a></li><li><a href="https://mp.weixin.qq.com/s/ufRf8DQQRYQI0q2VxG3hQg">夯实基本功之：如何去掉冗长的if&#x2F;else代码</a></li><li><a href="https://mp.weixin.qq.com/s/gdYysBB3aD_HmPyvEThFXw">夯实基本功之：注解精讲</a></li><li><a href="https://mp.weixin.qq.com/s/v-Va_GuSUGr9HVAW84kloQ">夯实基本功之：为什么不要用Date表示时间</a></li><li><a href="https://mp.weixin.qq.com/s/RsC7peRsFaJAEcG2eTJb0Q">夯实基本功之：去除烦人的NullPointerException空指针异常</a></li><li><a href="https://mp.weixin.qq.com/s/QZPezSruj0qvBUJEM4jB0g">夯实基本功之：为什么要重写hashcode和equals方法</a></li><li><a href="https://mp.weixin.qq.com/s/eJy74CbzthHMgRPOA_4wEA">夯实基本功之：Object类精讲</a></li><li><a href="https://mp.weixin.qq.com/s/9bw2-pkuYSKEnstb4KGsqQ">夯实基本功之：List使用踩坑记录</a></li><li><a href="https://mp.weixin.qq.com/s/D21mcfI4cxNf4D9ukjESog">夯实基本功之：Map使用踩坑记录</a></li><li><a href="https://mp.weixin.qq.com/s/cnpfLL4TeL2oyEcHia6Bmg">夯实基本功之：面试必问的ConcurrentHashMap精讲</a></li><li><a href="https://mp.weixin.qq.com/s/xzV0uiQ0Q2ii5I54f8DPWQ">夯实基本功之：死磕Java I&#x2F;O流知识</a></li><li><a href="https://mp.weixin.qq.com/s/d93H9TwJKSnpkSBMYJ7QWQ">夯实基本功之：你一般是怎么遍历HashMap的</a></li><li><a href="https://mp.weixin.qq.com/s/AbZH57nUtePC728XfCvrcw">夯实基本功之：try-catch的使用姿势</a></li><li><a href="https://mp.weixin.qq.com/s/YbXBWhSlZTwY_bBqpNP2YA">夯实基本功之：if和swictch性能例析</a></li><li><a href="https://mp.weixin.qq.com/s/xv0GmAU8fVlS_sxWKWUWYw">夯实基本功之：Java HashMap源码剖析</a></li><li><a href="https://mp.weixin.qq.com/s/KRRLt0EaIwDEPCTGvqnWJA">夯实基本功之：String性能提升10倍的几个用法</a></li><li><a href="https://mp.weixin.qq.com/s/K0ehqbxrzSz07nqnqRvn5A">实践篇：Java源码编译实战</a></li><li><a href="https://mp.weixin.qq.com/s/oBDrFnuk1lbfuNHkrhAC5w">面试篇：这10道基础Java面试题，虐哭了多少人</a></li><li><a href="https://mp.weixin.qq.com/s/f-qIQGbzwHcW5Ur51rCqgg">面试篇：Java基础知识面试题大集合</a></li><li><a href="https://mp.weixin.qq.com/s/kNMQp-vjVK6Fq07xalZkng">Java 11新特性例析</a></li><li><a href="https://mp.weixin.qq.com/s/1SVao6dMMLhNoFTOvnLy8g">Java 15新特性例析</a></li><li><a href="https://mp.weixin.qq.com/s/QrWASACHkMGVop7gNe2DOA">科普：Java收不收费跟我们有毛关系吗？</a></li></ul></li><li><p><strong>多线程和并发</strong></p><ul><li><a href="https://mp.weixin.qq.com/s/EGQAuvITVJT3fZUdQG84sw">资源下载 → Java多线程+并发编程知识点详细总结PDF文档下载！</a></li><li><a href="https://mp.weixin.qq.com/s/30__VavtpJxEojUjYglGhQ">夯实基本功之：Java并发之原子性、有序性、可见性</a></li><li><a href="https://mp.weixin.qq.com/s/ND-nUCGvXTHkEClKqN1qrQ">夯实基本功之：ThreadLocal源码剖析</a></li><li><a href="https://mp.weixin.qq.com/s/TF04dB-i0q0-dOTqlprmYA">夯实基本功之：Java线程池使用例析</a></li><li><a href="https://mp.weixin.qq.com/s/fxl3od5UObRrPGe2AVvAPA">夯实基本功之：彻底搞懂多线程中的volatile</a></li><li><a href="https://mp.weixin.qq.com/s/cnpfLL4TeL2oyEcHia6Bmg">夯实基本功之：面试必问的ConcurrentHashMap精讲</a></li><li><a href="https://mp.weixin.qq.com/s/Sb1tZC_6CWE57TKvJeMmkA">夯实基本功之：详解Java并发编程中的各种锁</a></li><li><a href="https://mp.weixin.qq.com/s/pIVf97W4DuAPNxq6zgRvsQ">Java并发和多线程基础面试题大集合</a></li><li><a href="https://mp.weixin.qq.com/s/ykQ8wkBr-jHzbcD-7HGMEQ">科普向：Java线程和操作系统的线程到底有啥区别？</a></li></ul></li><li><p><strong>JVM虚拟机</strong></p><ul><li><a href="https://mp.weixin.qq.com/s/lEgHPertXyguZIkv61LlKQ">夯实基本功之：Java内存模型精讲</a></li><li><a href="https://mp.weixin.qq.com/s/bHkgpznnqixDNyDKwdAbOg">夯实基本功之：面试必问的JVM GC机制</a></li><li><a href="https://mp.weixin.qq.com/s/XsZUF2nBUSEJoGIA8RimJw">夯实基本功之：JVM垃圾回收硬核18问（附答案）</a></li><li><a href="https://mp.weixin.qq.com/s/TlX81xJ9fnuDIOTkDxrd1Q">夯实基本功之：搞懂JVM的三大参数类型</a></li><li><a href="https://mp.weixin.qq.com/s/KASLkkZnjGwVgm_1jbe-mA">夯实基本功之：了解G1垃圾收集器</a></li><li><a href="https://mp.weixin.qq.com/s/MDM6w2Dw_HYc9XzZevQNeA">实践篇：JDK源码编译上手实践</a></li><li><a href="https://mp.weixin.qq.com/s/-8xYoAkBUoavcSl69I0XJw">实践篇：线上服务的YGC问题排查例析</a></li><li><a href="https://mp.weixin.qq.com/s/Sjh9qFPKF250vLQGZig6nw">实践篇：线上服务的FGC问题排查例析</a></li><li><a href="https://mp.weixin.qq.com/s/T2DqgJ9-0QiRZQYUeR3c8w">面试题：Java虚拟机（JVM）面试题大集合1</a></li><li><a href="https://mp.weixin.qq.com/s/ZYoeC8yyfReEJDFSqiW8hw">面试题：Java虚拟机（JVM）面试题大集合2</a></li></ul></li></ul><h4 id="C语言"><a href="#C语言" class="headerlink" title="C语言"></a><strong>C语言</strong></h4><ul><li>待更新…</li></ul><h4 id="C"><a href="#C" class="headerlink" title="C++"></a><strong>C++</strong></h4><ul><li>待更新…</li></ul><h4 id="Golang"><a href="#Golang" class="headerlink" title="Golang"></a><strong>Golang</strong></h4><ul><li>待更新…</li></ul><!-- tabs:end --><hr><h2 id="数据结构-算法题"><a href="#数据结构-算法题" class="headerlink" title="数据结构+算法题"></a>数据结构+算法题</h2><hr><blockquote><p> 数据结构和算法题对于程序员的重要性不言而喻。参加过笔试或者面试过的小伙伴应该知道，可以说这个东西某一程度上直接决定了面试的成败，现在的互联网公司技术岗面试，数据结构+算法题基本都是必选项。除了几种基础数据结构类型得烂熟于心，基本的几大算法(或者说算法思想)也要了如指掌之外，参加求职前，不论是校招还是社招，非常有必要好好刷一刷LeetCode上的数据结构和算法题，以保持题感。</p></blockquote><hr><ul><li><a href="https://mp.weixin.qq.com/s/EaDLaLy3YjrNiSoNofwMMA">资源下载 → LeetCode算法刷题Golang版答案PDF文档</a></li><li><a href="https://mp.weixin.qq.com/s/qR6KTfldk41lsOj1Ghp6Og">资源下载 → LeetCode算法刷题C++版答案PDF文档</a></li><li><a href="https://mp.weixin.qq.com/s/kWTJ9640mPegr5wqVE0GMg">资源下载 → LeetCode算法刷题Java版答案PDF文档</a></li><li><a href="https://mp.weixin.qq.com/s/gXH98f1p5cCYVETCn9w9kA">资源下载 → 谷歌学长的数据结构+算法题代码笔记手册</a></li><li><a href="https://mp.weixin.qq.com/s/ZVwIUN-xf9FuxOFXW8H3Nw">数据结构：24张图详解九大数据结构</a></li><li><a href="https://mp.weixin.qq.com/s/UanDueZi3MwlcKYGMNQPGg">数据结构：哈希表详解</a></li><li><a href="https://mp.weixin.qq.com/s/v6rr0M9AW_kSMEtjkc-Mqw">数据结构：栈Stack的几种含义理解</a></li><li><a href="https://mp.weixin.qq.com/s/k4-RaW4ROlo6chSXsO_4AA">数据结构：各种树详解</a></li><li><a href="https://mp.weixin.qq.com/s/czkZcQL8mEqG2xeX8huqsA">数据结构：跳表精讲</a></li><li><a href="https://mp.weixin.qq.com/s/iG9zNHYLkEyHF3M4RpoWKw">数据结构：数组和链表的性能对比</a></li><li><a href="https://mp.weixin.qq.com/s/ekGdneZrMa23ALxt5mvKpQ">算法：十大经典排序算法大梳理 (动图+代码)</a></li><li><a href="https://mp.weixin.qq.com/s/za_MJY3-r9Gfiu3BJfej7Q">算法：排序算法趣味对比</a></li><li><a href="https://mp.weixin.qq.com/s/1ExIav9uK4bvVnnf4t0H2Q">算法：二分法及其变种</a></li><li><a href="https://mp.weixin.qq.com/s/H1ttBFuBY5n3Dbh3YaTmlw">算法：10张图搞定KMP算法</a></li><li><a href="https://mp.weixin.qq.com/s/FYx3acRh9JXAIb7y97G39A">算法：面试官最爱的字符串匹配算法精讲</a></li><li><a href="https://mp.weixin.qq.com/s/vGjcX4nHv6QT2-qKHZM8Dw">算法：8大常见算法思想总结</a></li><li><a href="https://mp.weixin.qq.com/s/JLbjzCdVlJ_de2uGgBsUzw">算法：一文彻底学会递归思路解题</a></li><li><a href="https://mp.weixin.qq.com/s/uuNaZfzhG3KaoEtez8Migw">算法：10张动图理解递归</a></li><li><a href="https://mp.weixin.qq.com/s/a3_bMRmTqZxMBruYsPC9-w">算法：分治算法详解</a></li><li><a href="https://mp.weixin.qq.com/s/tqGKHZzSyDBgEp-oWsOztQ">算法：递归算法详解</a></li><li><a href="https://mp.weixin.qq.com/s/bGH_o1BsJtgnC2rFugtsRw">算法：动态规划常见算法题例析</a></li><li><a href="https://mp.weixin.qq.com/s/mBTyBkeNHoW7-Rcbv2Exwg">算法：搞定算法复杂度分析</a></li><li><a href="https://mp.weixin.qq.com/s/U6D1PNjuBAcRd5UZRr0F3w">算法：常用算法复杂度速查表</a></li><li><a href="https://mp.weixin.qq.com/s/JhHPAaOInIi4lZ-UrCLdgg">算法：常见刷题模式套路分析</a></li><li><a href="https://mp.weixin.qq.com/s/Gz9-f_G6P-0tKrReAinw0A">算法：算法题刷题的心得和建议</a></li><li><a href="https://mp.weixin.qq.com/s/HUS12phrTbNzAE6uFHO9lg">算法：求职必刷算法题大集锦</a></li><li><a href="https://mp.weixin.qq.com/s/f9dfQQbpKjMopH6m2Gjiiw">工具推荐：自学数据结构和算法的9大工具和网站</a></li></ul><hr><h2 id="计算机网络"><a href="#计算机网络" class="headerlink" title="计算机网络"></a>计算机网络</h2><hr><blockquote><p> 为什么一定要学好计算机网络？原因很简单，因为计算机网络中的各种协议栈是当下繁荣的互联网通信的基石，尤其建议要牢固熟练地掌握TCP&#x2F;IP协议栈。</p></blockquote><hr><ul><li><a href="https://www.bilibili.com/video/BV1U4411M71p">视频科普：计算机网络该怎么学</a></li><li><a href="https://mp.weixin.qq.com/s/v34D8xWGPW8LgENy3G2QZA">概念科普：如何系统地学习计算机网络</a></li><li><a href="https://mp.weixin.qq.com/s/t8Dz-4D6BuBevZYz5Jhklg">概念科普：计算机网络的89个核心概念</a></li><li><a href="https://mp.weixin.qq.com/s/hZF2P4oQE6dsuXKWLEgDKA">工具科普：学网络时，可以先落实这几款利器工具</a></li><li><a href="https://mp.weixin.qq.com/s/t2Csrl7idUXISKW54cpV1g">探究原理：浏览器输入网址一回车，后面到底发生了什么</a></li><li><a href="https://mp.weixin.qq.com/s/AjcW7ELOTTqqdnUHpMbccQ">探究原理：你可能没有细究过的TCP&#x2F;IP</a></li><li><a href="https://mp.weixin.qq.com/s/07zloKKMUl-RHN6tWqZIJQ">探究原理：一个数据包在网络中到底是怎么游走的</a></li><li><a href="https://mp.weixin.qq.com/s/ZCddesfN0qISh3Rqo2jbWA">探究原理：两台计算机之间究竟是如何通信的</a></li><li><a href="https://mp.weixin.qq.com/s/55bbQX2-SUNe6PEI9My5fA">探究原理：ping命令用得这么6，原理知道不</a></li><li><a href="https://mp.weixin.qq.com/s/QuCxkSjdM_E12lXlpnhKIQ">探究原理：一台Linux服务器最多能支撑多少个TCP连接</a></li><li><a href="https://mp.weixin.qq.com/s/EZwOUGMrGKEF_POisJKmuw">探究原理：都说HTTP协议无状态，这里的「状态」到底指什么</a></li><li><a href="https://mp.weixin.qq.com/s/5oFKdbFWgZrwqESNTZn77w">探究原理：Session&#x2F;Cookie&#x2F;Token</a></li><li><a href="https://mp.weixin.qq.com/s/u242LSHnePBg_KbMc0ioTA">探究原理：三次握手底层深度理解</a></li><li><a href="https://mp.weixin.qq.com/s/21Tk-8gxpDoH9DNWNYCWmA">知识总结：计网IP部分知识总结</a></li><li><a href="https://mp.weixin.qq.com/s/vk_QZDpJLVEXXNe1jYzd8w">知识总结：图解HTTP的前世今生</a></li><li><a href="https://mp.weixin.qq.com/s/8HJ-V1BbV9wp89HS-XulXw">知识总结：HTTP和HTTPS协议大总结</a></li><li><a href="https://mp.weixin.qq.com/s/H4gbg7bfnw61jZQcapTnMw">面试相关：GET和POST到底有什么区别</a></li><li><a href="https://mp.weixin.qq.com/s/lFnyBaaP3f0eNcKGW5RtCg">面试相关：面试最爱问的三次握手和四次挥手问题</a></li><li><a href="https://mp.weixin.qq.com/s/FJGKObVnU61ve_ioejLrtw">面试相关：HTTP常见面试题集合</a></li><li><a href="https://mp.weixin.qq.com/s/doxVJZ1G6187B4AOXb0JlA">面试相关：计网TCP&#x2F;UDP部分高频面试题集合</a></li><li><a href="https://mp.weixin.qq.com/s/PIGfhMaAx9R5C4x5eJQnIw">面试相关：计算机网络高频12问</a></li><li><a href="https://mp.weixin.qq.com/s/L8jmABzoI_e4dCcECenHtQ">实践系列：网络排错思路大总结</a></li><li><a href="https://mp.weixin.qq.com/s/_fB7r53BGZRvpG9YAPRQ8A">实践系列：抓个包看一看浏览器里的HTTP请求到底是如何完成的</a></li></ul><hr><h2 id="操作系统"><a href="#操作系统" class="headerlink" title="操作系统"></a>操作系统</h2><hr><blockquote><p> 学好操作系统有利于我们深入理解计算机底层，这样平时在遇到疑难杂症时，能够更容易看到问题的本质，并高效解决；另外操作系统里的很多优秀的设计思想、经典的架构、算法、思路也值得我们反复理解和思考，很多思想在平时的工作中也可以借鉴和运用。</p></blockquote><hr><ul><li><a href="https://mp.weixin.qq.com/s/ttncekujB82g88GRx3a6lQ">知识总结：学编程要懂的操作系统基础</a></li><li><a href="https://mp.weixin.qq.com/s/VsQ7IpP-jnXSjJhOAzl-ew">知识总结：程序员必知的89个操作系统核心概念</a></li><li><a href="https://mp.weixin.qq.com/s/1Rzvu9uCTef5l_8Qw3ff0A">知识总结：操作系统主要概念硬核讲解</a></li><li><a href="https://mp.weixin.qq.com/s/m-AmxDVUfko7OTUsCapnPA">知识总结：20张图详解操作系统内存管理部分知识点</a></li><li><a href="https://mp.weixin.qq.com/s/FoYiPB-2LuIpnTW8gck2EQ">知识总结：这才是对进程和线程最通俗易懂的解释</a></li><li><a href="https://mp.weixin.qq.com/s/Pfc31qoWfL6_uva6ePBmVA">知识总结：操作系统并发三剑客之进程&#x2F;线程&#x2F;协程</a></li><li><a href="https://mp.weixin.qq.com/s/yXMgpAhz3JhtCtutMQnXvQ">知识总结：操作系统高并发服务模型大科普</a></li><li><a href="https://mp.weixin.qq.com/s/7AHS5AlY2OaiLO4ag6zVMQ">知识总结：这可能是讲死锁最通俗的一篇文章</a></li><li><a href="https://mp.weixin.qq.com/s/vwJ5T7x1Jv4wa_x7nwr54Q">知识总结：一举拿下网络IO模型</a></li><li><a href="https://mp.weixin.qq.com/s/iFIt8t-q6hU-Ghwlj0hohw0">知识总结：用一个故事来感受一下什么叫NIO</a></li><li><a href="https://mp.weixin.qq.com/s/xIfxzxCfbvBvQ2c0aUuA0A">知识总结：多路复用、非阻塞、线程与协程</a></li><li><a href="https://mp.weixin.qq.com/s/laP7Vxl6o40mIYBS7Cuj7A">知识总结：搞懂原码&#x2F;反码&#x2F;补码</a></li><li><a href="https://mp.weixin.qq.com/s/a2Q1DQqOHdhtGEjJ4QxPew">知识总结：30张图解高并发服务模型哪家强</a></li><li><a href="https://mp.weixin.qq.com/s/vMvAgo9IWaLtDwxW1627YA">原理探究：新建一个空文件到底会占用多少磁盘空间？</a></li><li><a href="https://mp.weixin.qq.com/s/lR_A3jbfRiRjchz_lyyKxw">面试相关：2.5w字+36张图+1周时间：爆肝操作系统面试题！</a></li><li><a href="https://mp.weixin.qq.com/s/oTEMOQY1xcG8uVceW-kLDA">面试相关：1.3w字的操作系统高频面试题大分享</a></li><li><a href="https://mp.weixin.qq.com/s/5f3ku77xSO8UlaOsTkOnHQ">面试相关：学完操作系统内存管理，能回答这8个问题吗</a></li></ul><hr><h2 id="数据库-SQL"><a href="#数据库-SQL" class="headerlink" title="数据库&#x2F;SQL"></a>数据库&#x2F;SQL</h2><ul><li><a href="https://mp.weixin.qq.com/s/OnGaqyUpB58pC2rqqzIzgw">原理探究：详解一条SQL的执行过程</a></li><li><a href="https://mp.weixin.qq.com/s/36Jaj79Y8BxFoDB3Bwe7mg">原理探究：MySQL的数据存在磁盘上到底长什么样</a></li><li><a href="https://mp.weixin.qq.com/s/WMuxdG3ymNMWWDk1XhLwZQ">原理探究：数据库索引到底是什么</a></li><li><a href="https://mp.weixin.qq.com/s/d7Zfat2fP6IX5DMKKtEIjQ">原理探究：为什么MySQL索引要用B+ tree</a></li><li><a href="https://mp.weixin.qq.com/s/-mOOchaXx_pKI6qWhohEnA">原理探究：为什么用了索引，SQL查询还是慢</a></li><li><a href="https://mp.weixin.qq.com/s/4K3borSZXt-yc5t5UJnJpQ">原理探究：数据库索引的原理和使用准则</a></li><li><a href="https://mp.weixin.qq.com/s/iBnav_WPrX5vjR-NbdNeQg">原理探究：为什么你写的SQL那么慢</a></li><li><a href="https://mp.weixin.qq.com/s/lyAFcnZIoyhACw78Nf9xQg">原理探究：count(1)和count(*)到底哪个效率高</a></li><li><a href="https://mp.weixin.qq.com/s/7vN9Nf20NGnvLKALHw_O1Q">原理探究：为什么阿里规定超过三张表禁止join</a></li><li><a href="https://mp.weixin.qq.com/s/aPVs9Jrk07KsXcXdPOpx5A">原理研究：什么是MySQL索引下推？</a></li><li><a href="https://mp.weixin.qq.com/s/yflzIQFiNa3tDJm7U9P8ig">原理探究：为什么大公司后台数据库都要搞分库分表？</a></li><li><a href="https://mp.weixin.qq.com/s/QBeyJz2gVq1p7wBxcY1Gfw">原理探究：MySQL不会丢失数据的奥秘就藏在这里</a></li><li><a href="https://mp.weixin.qq.com/s/CCLsmKSsodtkz4iX84Cdig">原理探究：MySQL主从复制那些事儿</a></li><li><a href="https://mp.weixin.qq.com/s/caBYeVtZvNzbSs4q-6710Q">实践应用：常见的SQL错误（不当）写法例析</a></li><li><a href="https://mp.weixin.qq.com/s/hl11JYMwl30FsDVZ40CLVQ">实践应用：SQL优化的几个角度</a></li><li><a href="https://mp.weixin.qq.com/s/hE2uKE2ffNCmeHLRn2KSTQ">实践应用：数据库、数据表设计规范例析</a></li><li><a href="https://mp.weixin.qq.com/s/jl0j-T6XldN6Nq-jYoQ-gA">实践应用：梳理开发中常用的SQL优化途径</a></li><li><a href="https://mp.weixin.qq.com/s/SPgtpfgv6bz2AfPa1CYYeQ">实践应用：先更新数据库还是先更新缓存？</a></li><li><a href="https://mp.weixin.qq.com/s/EplL3kBx5vOXGDhDOP8NjQ">实践应用：百亿级数据分表后如何分页查</a></li><li><a href="https://mp.weixin.qq.com/s/mnZT0Z5L6Hi6gRgEO1C9tg">实践应用：什么是SQL注入攻击</a></li><li><a href="https://mp.weixin.qq.com/s/4K3borSZXt-yc5t5UJnJpQ">实践应用：用对这些场景下的数据库索引，领导说我有点东西</a></li><li><a href="https://mp.weixin.qq.com/s/MA7FVeJDMg8WDJABiBWpBA">实践应用：一个遗留项目的SQL优化实战录</a></li><li><a href="https://mp.weixin.qq.com/s/UYZZkrbAetgnPUjGa71fJA">实践应用：误删数据库后该如何恢复</a></li><li><a href="https://mp.weixin.qq.com/s/eQKphrkPeN_-EcWIxETz9Q">实践应用：如何科学根治慢SQL？</a></li><li><a href="https://mp.weixin.qq.com/s/MLvJsJuFAHHcllqvk1nVRQ">面试相关：面试官最爱的数据库索引连环问</a></li><li><a href="https://mp.weixin.qq.com/s/aBboeqEphejICklAKLqS2Q">面试相关：30道保底的MySQL数据库面试题集合</a></li><li><a href="https://mp.weixin.qq.com/s/WqM5mhnLOqZhcdzPLeWh5w">面试相关：数据库自增ID用完了会怎样</a></li><li><a href="https://mp.weixin.qq.com/s/RDOKLnG7P1j5Ehu3EyrsCQ">面试相关：如何保证缓存和数据库的一致性问题？</a></li><li><a href="https://mp.weixin.qq.com/s/8ddEzG-NzzFD35ehvbER7A">面试相关：面试官最爱的MySQL连环问</a></li><li><a href="https://mp.weixin.qq.com/s/1VCC3i6ZCk7sb9kVRZ1czQ">面试相关：如何实现丝滑的数据库扩容</a></li></ul><hr><h2 id="设计模式"><a href="#设计模式" class="headerlink" title="设计模式"></a>设计模式</h2><ul><li><a href="https://mp.weixin.qq.com/s/miV4SH1Eb_FMogQ2XYvPuA">资源下载 → 23种设计模式学习笔记PDF文档</a></li><li><a href="https://mp.weixin.qq.com/s/dXUgiMacKjwTBwX16cXNBA">单例模式详解</a></li><li><a href="https://mp.weixin.qq.com/s/8TfJ1uhMiKHnTmlF9D0L2Q">工厂模式讲解, 引入Spring IOC</a></li><li><a href="https://mp.weixin.qq.com/s/GT1-yrxJ5KF0xeMydbJDCQ">什么是动态代理模式</a></li><li><a href="https://mp.weixin.qq.com/s/ZcKqGT2Sn4wVScExSF9Alg">经典面试题：Spring用到了哪些设计模式</a></li></ul><h2 id="其他"><a href="#其他" class="headerlink" title="其他"></a>其他</h2><ul><li><a href="https://mp.weixin.qq.com/s/7-CTSWN-VLYgPH5H2nPU8w">每个开发人员都应该了解一点的UML规范</a></li><li><a href="https://mp.weixin.qq.com/s/VFUg1S0ApuFzlTNYSCLkMQ">计算机时间到底是怎么来的</a></li><li><a href="https://mp.weixin.qq.com/s/kTADQtTeOWPuXsvR9HsUIg">乱码问题科普：“锟斤拷”的前世今生~</a></li><li><a href="https://mp.weixin.qq.com/s/dVgDv1bNH8ivO0Ft0FtmZg">从一个面试题看程序员的几项基本功</a></li></ul><hr><h1 id="应用框架和工具"><a href="#应用框架和工具" class="headerlink" title="应用框架和工具"></a><strong>应用框架和工具</strong></h1><hr><blockquote><ul><li><p>计算机基础聊完了，接下来就是应用和实践的环节了。这部分通常会涉及到一些<strong>工具</strong>、<strong>编程环境</strong>、以及<strong>应用框架</strong>。</p></li><li><p>企业级开发不同于个人自学，出于<strong>可复用性</strong>、<strong>稳定性</strong>、<strong>开发成本</strong>、<strong>开发效率</strong>、<strong>质量保证</strong>等一系列因素的考量，不可能每一个功能、每一个组件都从0开始徒手造轮子，所以这时候各种应用框架和工具的出现就非常有帮助了。</p></li><li><p>其实框架讲白了就是别人经过多年迭代写好的一套<strong>工具</strong>、<strong>代码库</strong>、<strong>逻辑</strong>、亦或是<strong>流程</strong>，把原本都需要从0开始手写的基本功能和组件都给封装进去，用户只要符合框架约定的规则进行编码，或者调用框架提供的方法或者工具，就能快速拉起业务功能，创造实际经济价值。</p></li><li><p>所以框架的出现从不同的角度看也是有多面性的：对于企业级开发效率提升而言肯定是有帮助的，但是对于程序员个人思考编码能力提升却未必是好事，所以多注重基础、深挖原理，提升自身竞争力还是非常有必要的。</p></li></ul></blockquote><h2 id="Spring系列框架"><a href="#Spring系列框架" class="headerlink" title="Spring系列框架"></a>Spring系列框架</h2><!-- panels:start --><!-- div:left-panel --><ul><li><a href="https://mp.weixin.qq.com/s/-MYQ-meSUcr-wZhfUbGq3Q">原理探究：Spring Boot项目究竟是怎么启动的？源码剖析</a></li><li><a href="https://mp.weixin.qq.com/s/NqG7GzsPhwI76h3nujTCgQ">原理探究：SpringBoot中@SpringBootApplication注解探秘</a></li><li><a href="https://mp.weixin.qq.com/s/uYNpoxcZ22goiev3uSus2w">原理探究：Spring @Autowired注解详解</a></li><li><a href="https://mp.weixin.qq.com/s/LGYSChfDLKuCQVMYGi0Omg">原理探究：Spring @Value注解详解</a></li><li><a href="https://mp.weixin.qq.com/s/m2DrtDxBzShtNF2Uk6zSAg">原理探究：Spring框架是如何解决循环依赖问题的</a></li><li><a href="https://mp.weixin.qq.com/s/YZT7NURQsNBSoSNsWBciQg">原理探究：Spring中竟然有12种定义Bean的方法</a></li><li><a href="https://mp.weixin.qq.com/s/PNmlpv786kgk5Pyhr5XSsw">原理探究：Spring的Controller究竟是单例还是多例，如何保证并发安全</a></li><li><a href="https://mp.weixin.qq.com/s/uQxxGpJJo4XfkLfHHp8nHw">原理探究：为什么Spring的Bean默认是单例的</a></li><li><a href="https://mp.weixin.qq.com/s/8brVERYV-XMIGB0Qly_mOg">原理探究：单点登录(SSO)原理和实现</a></li><li><a href="https://mp.weixin.qq.com/s/0zRks2Cz36S8N70Uonb0OA">原理探究：面试常问的Spring IoC原理解析</a></li><li><a href="https://mp.weixin.qq.com/s/yXKPNB2dB99K_9gOWw6UHg">原理探究：了解这些，就可以在Spring启动时为所欲为了</a></li><li><a href="https://mp.weixin.qq.com/s/uVqkLkkxot-zsoVPo1ri1A">实践应用：Spring Boot日志框架实践</a></li><li><a href="https://mp.weixin.qq.com/s/NH7ck79I3U0bJTEv37aECw">实践应用：利用神器BTrace追踪线上Spring Boot应用运行时信息</a></li><li><a href="https://mp.weixin.qq.com/s/GGeavPrGAzF1YOxCSk3YrQ">实践应用：Spring Boot项目集成全局唯一ID生成器UidGenerator</a></li><li><a href="https://mp.weixin.qq.com/s/jdV8X_R9eeZRus5bfoSNNg">实践应用：Spring Boot Admin2.0开箱体验</a></li><li><a href="https://mp.weixin.qq.com/s/WQ-2fPOxk0GvSHiRR5-kQw">实践应用：Spring Boot项目传参校验最佳实践</a></li><li><a href="https://mp.weixin.qq.com/s/AdtUX9davFH-C60gBypnoA">实践应用：Spring Boot项目优雅传参方式讨论与实践</a></li><li><a href="hhttps://mp.weixin.qq.com/s/ZLUOWYVsf6gDcT94X_saJg">实践应用：基于Spring Security Oauth2的SSO单点登录+JWT权限控制实践</a></li><li><a href="https://mp.weixin.qq.com/s/AEWjwIEjVMf_cRixiIb7-Q">实践应用：封装一个好用的流水号ID生成器id-spring-boot-starter</a></li><li><a href="https://mp.weixin.qq.com/s/V2jGlNn4EsM-_RheIk0TYg">实践应用：封装一个好用的elasticsearch-spring-boot-starter</a></li><li><a href="https://mp.weixin.qq.com/s/CTDEFxTKdk0qxK9VNSEIqw">实践应用：Spring Boot项目集成jasypt-spring-boot加密组件</a></li><li><a href="https://mp.weixin.qq.com/s/sMi1__Rw_s75YDaIdmTWKw">实践应用：基于Spring Security+JWT的权限系统设计</a></li></ul><!-- div:right-panel --><ul><li><a href="https://mp.weixin.qq.com/s/u3ioahBPOno81dp3f2IDJA">实践应用：Spring Boot项目集成全局唯一ID生成器Vesta</a></li><li><a href="https://mp.weixin.qq.com/s/SeXKbp9ee-FMNKfuSqpZFw">实践应用：Spring Boot项目集成Mybatis-Plus</a></li><li><a href="https://mp.weixin.qq.com/s/J0UcedPhgHiTndk80CNikA">实践应用：如何自制一个Spring Boot Starter并推到远端公服</a></li><li><a href="https://mp.weixin.qq.com/s/OWX-hsk1F11Bvk2PWmnzxA">实践应用：Spring Boot项目集成Ehcache缓存</a></li><li><a href="https://mp.weixin.qq.com/s/2-HdLggtBSmiyJI449cLow">实践应用：Spring Boot项目集成自然语言处理工具包HanLP</a></li><li><a href="https://mp.weixin.qq.com/s/PGFDNoNuzlOR0m-tiIQGWw">实践应用：基于Spring Boot实现图片上传&#x2F;加水印一把梭操作</a></li><li><a href="https://mp.weixin.qq.com/s/d7do5NZeu4-yRo2RfJK7uA">实践应用：Spring Boot项目集成EVCache缓存实践</a></li><li><a href="https://mp.weixin.qq.com/s/C4VBAm4N3AjvXJ303wdV5A">实践应用：Spring Boot项目集成Guava Cache本地缓存实践</a></li><li><a href="https://mp.weixin.qq.com/s/ehe7Ub5RAYAql_oPZmerAQ">实践应用：Spring Boot项目集成MyBatis Generator进行数据层代码自动生成</a></li><li><a href="http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484900&idx=2&sn=45df41412575afb244f75de08b6bbe7f&chksm=fdded320caa95a36e85c510a1a72951b97a579511db7bd58aba2270020434b5579b8c3ce578f&scene=21#wechat_redirect">实践应用：初探Kotlin+SpringBoot联合编程</a></li><li><a href="http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247485020&idx=1&sn=3c3405807f96a597398f513c48bb094e&chksm=fdded098caa9598e6159bd7315180e149e6a789a3ee75d42b4acaaae96669504e08378eeddae&scene=21#wechat_redirect">实践应用：Spring Boot项目集成神器Lombok实践</a></li><li><a href="https://mp.weixin.qq.com/s/7pv9TwWHzF624sVMFDypvQ">实践应用：Spring项目集成Lombok插件的优缺点分析</a></li><li><a href="https://mp.weixin.qq.com/s/dt2B8Pku1dSXQuzDJYiEgQ">实践应用：Spring Boot应用监控实战</a></li><li><a href="https://mp.weixin.qq.com/s/UvFWTyFUUwfRXi1ZqmZdGA">实践应用：Spring Boot项目部署于外置Tomcat容器</a></li><li><a href="https://mp.weixin.qq.com/s/M5Y1VInGRkx_RHJn9KWBpA">实践应用：Spring Boot热部署加持</a></li><li><a href="https://mp.weixin.qq.com/s/N7hzj4IR-di_KEgOts5OBg">实践应用：Spring Boot高效数据聚合之道</a></li><li><a href="https://mp.weixin.qq.com/s/p5LTCPgsGoEjuKL0F65PAg">实践应用：Spring项目日志打印常见问题</a></li><li><a href="https://mp.weixin.qq.com/s/euzbHPpQG2BSKl93N5L1Hg">面试相关：Spring面试夺命连环10连问</a></li><li><a href="https://mp.weixin.qq.com/s/q4CajkpSUC8TCgv55VK5aQ">面试相关：Spring经典面试题集合</a></li><li><a href="https://mp.weixin.qq.com/s/cLh9xCDkVG0KV-uaX8PkNw">面试相关：Spring Boot基础面试题集合</a></li><li><a href="https://mp.weixin.qq.com/s/g0br3PfTmm8C_nkKbzE_ig">面试相关：Spring Cloud基础面试题集合</a></li><li><a href="https://mp.weixin.qq.com/s/ZcKqGT2Sn4wVScExSF9Alg">面试相关：说说Spring用到了哪些设计模式？</a></li><li>内容持续更新中…</li></ul><h2 id="前后端分离"><a href="#前后端分离" class="headerlink" title="前后端分离"></a>前后端分离</h2><ul><li><a href="https://mp.weixin.qq.com/s/um5kDYBscf5sy7FUhmP7ww">概念科普：到底什么是RESTful ？</a></li><li><a href="https://mp.weixin.qq.com/s/lrFQUEITm_3zASIBR1mcQw">概念科普：RESTful风格的前世今生</a></li><li><a href="https://mp.weixin.qq.com/s/Y0z-3r_Mdm-etCwa0GmQmQ">概念科普：为什么需要前后端分离？</a></li><li><a href="https://mp.weixin.qq.com/s/zAOYAcR-6DEJU_s0qXe91g">实践应用：前后端分离的接口规范，我们是如何做的？</a></li><li><a href="https://mp.weixin.qq.com/s/niYHlrCDIkA1NqPVI_VJ8w">实践应用：前后端分离式开发：高效协作10条准则</a></li><li><a href="https://mp.weixin.qq.com/s/TqSQ21nNvV5WwWDY_WItQA">实践应用：前后端分离后，接口联调总是甩锅怎么办？</a></li><li><a href="https://mp.weixin.qq.com/s/B-mJjBeJy5W7s2O79Iitqg">实践应用：前后端分离项目接口优雅数据交互例析</a></li><li><a href="https://mp.weixin.qq.com/s/Sjrgf3Tp3vR5zsNIiYzdpA">实践应用：前后端分离实践中常遇到的跨域问题</a></li><li><a href="https://mp.weixin.qq.com/s/Ahs6fnIfFVVPOn3NZpIsNA">工具推荐：前后端都分离了，该搞个好用的API管理系统了</a></li></ul><!-- div:right-panel --><h2 id="分布式-微服务"><a href="#分布式-微服务" class="headerlink" title="分布式&#x2F;微服务"></a>分布式&#x2F;微服务</h2><ul><li><a href="https://mp.weixin.qq.com/s/NJFJ5UrzGk0cMGL1oZe0Bg">科普篇：企业里常用的软件架构剖析</a></li><li><a href="https://mp.weixin.qq.com/s/kfhCEDSUGwnNUbtGDL_rvQ">科普篇：单体→分布式→微服务，这些年的软件架构是如何发育的</a></li><li><a href="https://mp.weixin.qq.com/s/Iy1dguNFkU73r1FxYIvlIQ">科普篇：微服务架构的全局图景分析</a></li><li><a href="https://mp.weixin.qq.com/s/8CvoGCtGDvMHR91Lx89pxQ">科普篇：分布式架构负载均衡的几种方式</a></li><li><a href="https://mp.weixin.qq.com/s/iTnKumgre3SzrBuWf8KB6g">科普篇：RPC 技术(框架) 大科普</a></li><li><a href="https://mp.weixin.qq.com/s/_56jq_p_nDUiBwaI2MTlmA">原理探究：什么是分布式事务</a></li><li><a href="https://mp.weixin.qq.com/s/RViDM1WHE61SDLNKzUmTAg">原理探究：Redis分布式锁保姆级无死角分析</a></li><li><a href="https://mp.weixin.qq.com/s/fLLd-ml-gdo3-700iJso_A">原理探究：如何设计一个高并发的秒杀架构？</a></li><li><a href="https://mp.weixin.qq.com/s/J0aSVry1-Ss1OTA-jQAX3w">原理探究：亿级流量网关设计思路</a></li><li><a href="https://mp.weixin.qq.com/s/pg6lyAkgAaqSAZjiPgQTWA">原理探究：分布式架构的几个常见的坑</a></li><li><a href="https://mp.weixin.qq.com/s/iCw-CHa5ITz6zoQI78Wb3w">实践应用：RPC框架实践之：Apache Thrift</a></li><li><a href="https://mp.weixin.qq.com/s/LdzkBUzvyjMVW7pgzkA23w">实践应用：RPC框架实践之：Google gRPC</a></li><li><a href="https://mp.weixin.qq.com/s/U4eustBBu9N-6B1SRsYc7w">实践应用：Spring Cloud Feign的两种使用姿势</a></li><li><a href="https://mp.weixin.qq.com/s/oMsZquaphqEJqoGt1dt9WA">实践应用：Spring Cloud Eureka Server高可用之：在线扩容</a></li><li><a href="https://mp.weixin.qq.com/s/tRRwG1jnWi5r1XlbeBlv8g">实践应用：Eureka Server 开启Spring Security Basic认证</a></li><li><a href="https://mp.weixin.qq.com/s/EAi7F3lBQ7ZrjSjNnFkj4g">实践应用：Eureka Server启用 https服务指北</a></li><li><a href="https://mp.weixin.qq.com/s/c55ejzWEU6SQBdcmTTRC1g">实践应用：微服务调用链追踪中心搭建</a></li><li><a href="https://mp.weixin.qq.com/s/wQRBxBBXCnP0YKPvtIPRcA">实践应用：利用Zipkin追踪Mysql数据库调用链</a></li><li><a href="https://mp.weixin.qq.com/s/VjBiUmQNQPpSHeSVjK1C2A">实践应用：一个小团队的微服务架构改造之路</a></li><li>内容持续更新中…</li></ul><!-- div:left-panel --><h2 id="容器-集群"><a href="#容器-集群" class="headerlink" title="容器&#x2F;集群"></a>容器&#x2F;集群</h2><ul><li><a href="https://mp.weixin.qq.com/s/hVNMfh9nWdilXHSqvyS9ng">知识总结：常用虚拟化技术（VMware&#x2F;KVM&#x2F;Docker）对比</a></li><li><a href="https://mp.weixin.qq.com/s/YlcvlUQ-xkz25PuYkeEQqw">知识总结：Docker从入门到干活，看这一篇入门</a></li><li><a href="https://mp.weixin.qq.com/s/jf4qWaEYfn0CH5A6fG6MKw">知识总结：Docker Swarm的前世今生</a></li><li><a href="https://mp.weixin.qq.com/s/MDGvWKkk4npWtqo2k4tsfg">知识总结：编写高效Dockerfile的几条准则</a></li><li><a href="https://my.oschina.net/hansonwang99/blog/1603378">实践应用：Docker Swarm集群初探</a></li><li><a href="https://mp.weixin.qq.com/s/sO9_TixS0XrKoCKIS9oETw">实践应用：利用ELK搭建Docker容器化应用日志中心</a></li><li><a href="https://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483763&idx=1&sn=6ceb9e73540b5016dadfb212636b3855&scene=21#wechat_redirect">实践应用：Docker容器可视化监控中心搭建</a></li><li><a href="https://mp.weixin.qq.com/s/evxiE6nhK6_y6zLMFWHTKQ">实践应用：Docker容器跨主机通信之直接路由方式</a></li><li><a href="https://mp.weixin.qq.com/s/-54IZbsX2nQIHaMZ1y6fTQ">实践应用：利用TICK搭建Docker容器可视化监控中心</a></li><li><a href="https://mp.weixin.qq.com/s/wx68Chw1XaKQ1cb57jTiOw">实践应用：利用Kubeadm部署Kubernetes 1.13.1集群实践录</a></li><li><a href="http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483699&idx=1&sn=57b84f4ec72c8a578934cdb4225e6fe7&chksm=fdded7f7caa95ee198652c295b48b74565fd244afc4dccc0551b036c8216caab0397a1342d99&scene=21#wechat_redirect">实践应用：利用K8S技术栈打造个人私有云（连载之：初章）</a></li><li><a href="http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483755&idx=1&sn=92a547c579aeacf1db9a8f0e56601b52&chksm=fdded7afcaa95eb9d6aa6cf323bff1df46692fc6a6672e0a483105f091ddf9670fb06d034e2a&scene=21#wechat_redirect">实践应用：利用K8S技术栈打造个人私有云（连载之：K8S集群搭建）</a></li><li><a href="http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483758&idx=1&sn=629b6219a06374b2050703b9549037fa&chksm=fdded7aacaa95ebc9a3e88e839515b13109752c26c586032ae60219d2c3b24e13385e1bcd37c&scene=21#wechat_redirect">实践应用：利用K8S技术栈打造个人私有云（连载之：K8S环境理解和练手）</a></li><li><a href="http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483759&idx=1&sn=8403d42fe1769a252f9ee2997fc2f561&chksm=fdded7abcaa95ebd8cdae86f4d692f1f6e92daab74dbbd8c56c6db8fe6aa2a3616ccce1eebb1&scene=21#wechat_redirect">实践应用：利用K8S技术栈打造个人私有云（连载之：基础镜像制作与实验）</a></li><li><a href="http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483760&idx=1&sn=d44f2c744ccdc965fb6c7e4d9efe9f92&chksm=fdded7b4caa95ea278d7363b4b4788d84914b915422a9cc98e7936c3bce0c7ce1197abfac13f&scene=21#wechat_redirect">实践应用：利用K8S技术栈打造个人私有云（连载之：K8S资源控制）</a></li><li>内容持续更新中…</li></ul><!-- div:right-panel --><h2 id="缓存-MQ-中间件-服务器"><a href="#缓存-MQ-中间件-服务器" class="headerlink" title="缓存&#x2F;MQ&#x2F;中间件&#x2F;服务器"></a>缓存&#x2F;MQ&#x2F;中间件&#x2F;服务器</h2><ul><li><a href="https://mp.weixin.qq.com/s/tL2HVoeEH9hnalb9-tuoXg">缓存：Redis字符串类型内部编码剖析</a></li><li><a href="https://mp.weixin.qq.com/s/TdPcIMnv4iKIx3dRjei95A">缓存：Redis哈希结构内存模型剖析</a></li><li><a href="https://mp.weixin.qq.com/s/0R0Evh1QX5BPOQt9233vpQ">缓存：15张图解：为什么Redis这么快</a></li><li><a href="https://mp.weixin.qq.com/s/6NobACeeKCcUy98Ikanryg">缓存：Redis面试全攻略、面试题大集合</a></li><li><a href="https://mp.weixin.qq.com/s/aNdWL3xKtjOd_briXL6Bjg">缓存：把Redis当作队列来用，真的合适吗？</a></li><li><a href="https://mp.weixin.qq.com/s/RDOKLnG7P1j5Ehu3EyrsCQ">缓存：缓存和数据库一致性问题，看这个就够了</a></li><li><a href="https://mp.weixin.qq.com/s/lxMP4-Z3DzQg5fRqLs9XNA">缓存：面试官爱问的Redis高频面试题大集合</a></li><li><a href="https://mp.weixin.qq.com/s/m9trzqE3Zd0KHC1cA3PlZQ">缓存：1分钟科普：什么是缓存穿透、缓存雪崩、缓存击穿？</a></li><li><a href="https://mp.weixin.qq.com/s/x1AobPWpMufNWqrBnc5sZg">缓存：如何构建一个稳定的高性能Redis集群？</a></li><li><a href="https://mp.weixin.qq.com/s/Fgg2bNhdOTRfHIzGX86X3Q">缓存：轻量级memcached缓存代理twemproxy初探实践</a></li><li><a href="https://mp.weixin.qq.com/s/SPgtpfgv6bz2AfPa1CYYeQ">缓存：先更新数据库还是先更新缓存</a></li><li><a href="https://mp.weixin.qq.com/s/WMriUm27CZkiSWEt1f4lig">MQ：消息队列RabbitMQ快速入门上手</a></li><li><a href="https://mp.weixin.qq.com/s/bUNAD2fkGTD73jVLw8rDHg">MQ：Kafka快速入门上手</a></li><li><a href="https://mp.weixin.qq.com/s/o-rqnOH4FHeHaz0VqoHnFg">MQ：从面试角度一文学完Kafka</a></li><li><a href="https://mp.weixin.qq.com/s/vC0YbMJxHqs0JfcdAxjhHg">MQ：为什么Kafka用得这么多？</a></li><li><a href="https://mp.weixin.qq.com/s/PDvG5vSuA_NCkJ3mMUua5w">MQ：刨根问底之Kafka到底会不会丢消息</a></li><li><a href="https://mp.weixin.qq.com/s/u6_WH-r1bRc4m7CUm21Tew">MQ：大厂面试必备之消息队列连环问</a></li><li><a href="https://mp.weixin.qq.com/s/wM0Vj_YMh7881NwK-AwKSw">MQ：后端岗面试必备之Dubbo九连问</a></li><li><a href="https://mp.weixin.qq.com/s/mif0NmY1Ij6lapHppb6LFg">服务器：Nginx服务器开箱体验</a></li><li><a href="https://mp.weixin.qq.com/s/099PJZE89JVNnaF0kwePDQ">服务器：从一份配置清单详解Nginx服务器配置</a></li><li><a href="https://mp.weixin.qq.com/s/VR1jEhJVXCfja3Pmo_kKkw">服务器：为什么Nginx能轻松撑起几万并发</a></li><li><a href="https://mp.weixin.qq.com/s/pdQNDMQQnXpoVKIA8JpyQQ">搜索引擎：CentOS7上搭建多节点Elasticsearch集群</a></li><li><a href="https://mp.weixin.qq.com/s/BE8LrpviJNXGV41bhzGFTw">搜索引擎：一文上手Elasticsearch常用可视化管理工具</a></li><li><a href="https://mp.weixin.qq.com/s/d2maG61HB2_rU56DYD2A9w">搜索引擎：从一份定义文件详解ELK中Logstash插件结构</a></li><li><a href="https://mp.weixin.qq.com/s/C8JTxdjeSCR22xeAiLHHGg">搜索引擎：Elasticsearch索引的映射配置详解</a></li><li><a href="https://mp.weixin.qq.com/s/ir0uurwo95hB3g__vTceJQ">其他中间件：ZooKeeper面试常见十二问</a></li><li><a href="https://mp.weixin.qq.com/s/3L5PcA0dGlrqJ2FjM_C77Q">其他中间件：基于代理的数据库分库分表框架Mycat实践</a></li><li>内容持续更新中…</li></ul><hr><h1 id="书籍-资料推荐"><a href="#书籍-资料推荐" class="headerlink" title="书籍&#x2F;资料推荐"></a><strong>书籍&#x2F;资料推荐</strong></h1><hr><blockquote><ul><li><p>毫无疑问的是，对于上文提到的 <strong>「编程基础」</strong> 部分，有大量经典的书籍值得阅读，每一本都是大师们若干年经验的汇聚，所以学好编程基础，对于我们普通人来说，看书是一个非常直接有效的方式。</p></li><li><p>很多经典书看一遍可能远远不够，正所谓 <strong>「初看懵、再看迷、三看发现有点小意思」</strong> 讲的就是这个道理，这事急不得，而且有些东西的确需要一个反反复复的过程，有些甚至是在工作后的实践中才会遇到，所以珍惜每一次回炉重造的过程吧。</p></li></ul></blockquote><hr><p>书籍资料推荐：</p><ul><li><a href="https://mp.weixin.qq.com/s/voNG467kSVfR-yjwelQhow">Java开发：我的Java后端开发小书架</a></li><li><a href="https://mp.weixin.qq.com/s/OislKcvk-YSFstIl2PcrbA">Java开发：一份Java程序员的珍藏书单</a></li><li><a href="https://www.bilibili.com/video/BV1ob411m76i">C&#x2F;C++开发：自学C&#x2F;C++书籍整理</a></li><li><a href="https://mp.weixin.qq.com/s/JFmj5cMhpJ2BKFq2p4IQGw">前端开发：前端开发学习资料+书籍盘点</a></li><li><a href="https://mp.weixin.qq.com/s/nkBsUgbuMK3ArHfFc2417w">嵌入式开发：嵌入式开发学习资料+书籍推荐</a></li><li><a href="https://www.bilibili.com/video/BV1kJ411W7pi">视频：我的计算机编程书单</a></li></ul><p>互联网开源教程推荐：</p><ul><li><a href="https://mp.weixin.qq.com/s/f9dfQQbpKjMopH6m2Gjiiw">羊哥当时自学数据结构和算法的9大工具</a></li><li><a href="https://mp.weixin.qq.com/s/-Xp84QH5zQvvHaGWTJF9MA">拜访了这位小哥的GitHub后，我失眠了</a></li><li><a href="https://mp.weixin.qq.com/s/C48HcLYlLbYx1O82U0mpyg">GitHub上这份计算机自学指南火了~</a></li><li><a href="https://mp.weixin.qq.com/s/V_Dfs44C3wtzlMGdUgY7qg">GitHub 40000星！收下这份宇宙最强「程序员生存指南」</a></li></ul><hr><h2 id="开源项目"><a href="#开源项目" class="headerlink" title="开源项目"></a>开源项目</h2><ul><li><a href="https://mp.weixin.qq.com/s/ojGRSWSaJutAsBC0i5_6jA">开源协议：开源软件的许可协议，先了解一下</a></li><li><a href="https://mp.weixin.qq.com/s/5Ar5B9Ah2BdO8i9YjMQ7Qg">Java开源项目：看完这篇，别人的Java开源项目结构应该能看懂</a></li><li><a href="https://mp.weixin.qq.com/s/PmxVlkI9LUmnqqSk0Frqeg">Java开源项目：Java领域学习和练手的开源项目分享：第一弹</a></li><li><a href="https://mp.weixin.qq.com/s/y59hmDbQj1QglVj90viZqw">Java开源项目：Java领域学习和练手的开源项目分享：第二弹</a></li><li><a href="https://mp.weixin.qq.com/s/jjugnXIr3G0u7i9krbmmqg">Java开源项目：Java领域学习和练手的开源项目分享：第三弹</a></li><li><a href="https://mp.weixin.qq.com/s/bRNiqhZZXaoRwPEt8GIpLg">C&#x2F;C++开源项目：几款适合初学者学习和练手的C&#x2F;C++开源项目</a></li><li><a href="https://mp.weixin.qq.com/s/fNgOqKlITKa4yTbULO2Atw">C&#x2F;C++开源项目：几款适合进阶学习和练手的C&#x2F;C++开源项目</a></li><li><a href="https://mp.weixin.qq.com/s/I9lr_SEg70OO_v-GOIUgjQ">人工智能开源项目：AI领域几款标杆开源项目大巡礼</a></li><li><a href="https://mp.weixin.qq.com/s/Fu4OMojTJK0MrZohsLOx4w">Python开源项目：几个炫酷的Python开源项目</a></li><li><a href="https://mp.weixin.qq.com/s/eWN7I8eHGE2exrdF3xziIA">读源码的7大心得总结</a></li></ul><!-- div:right-panel --><h2 id="实际项目需求和问题例析"><a href="#实际项目需求和问题例析" class="headerlink" title="实际项目需求和问题例析"></a>实际项目需求和问题例析</h2><ul><li><a href="https://mp.weixin.qq.com/s/gqvgysyGcP3yr0of_GwaTw">实践案例：实际项目业务接口的幂等性问题</a></li><li><a href="https://mp.weixin.qq.com/s/KPUuCU-q1SqnHzeyQeQzhw">实践案例：URL短链接服务如何设计</a></li><li><a href="https://mp.weixin.qq.com/s/A-ZwcxlkB7Groe4k4Vq1Ew">实践案例：亿行数据超大文件如何高效导入生产数据库</a></li><li><a href="https://mp.weixin.qq.com/s/-3g1ljoIrYWhhTHTF2RmLw">实践案例：订单系统一般怎么设计</a></li><li><a href="https://mp.weixin.qq.com/s/EplL3kBx5vOXGDhDOP8NjQ">实践案例：百亿级数据分表后如何分页查</a></li><li><a href="https://mp.weixin.qq.com/s/-8xYoAkBUoavcSl69I0XJw">实践案例：线上服务的YGC问题排查例析</a></li><li><a href="https://mp.weixin.qq.com/s/Sjh9qFPKF250vLQGZig6nw">实践案例：线上服务的FGC问题排查例析</a></li><li><a href="https://mp.weixin.qq.com/s/VjBiUmQNQPpSHeSVjK1C2A">实践案例：一个小团队的微服务架构改造之路</a></li><li><a href="https://mp.weixin.qq.com/s/MA7FVeJDMg8WDJABiBWpBA">实践案例：一个遗留项目的SQL优化实战录</a></li><li><a href="https://mp.weixin.qq.com/s/OhkdQJ10biLOIezXc_vhkA">实践案例：分布式锁使用不当导致的业务损失例析</a></li><li><a href="https://mp.weixin.qq.com/s/0p44f213fYdtr5LPJlrfLQ">实践案例：定时任务的几种简单方案</a></li><li><a href="https://mp.weixin.qq.com/s/3zXdH2MALmWj57MWt0dImw">实践案例：项目常用的6种URL去重方案汇总</a></li><li><a href="https://mp.weixin.qq.com/s/pg6lyAkgAaqSAZjiPgQTWA">实践案例：分布式系统架构的几个常见的坑</a></li><li><a href="https://mp.weixin.qq.com/s/NJFJ5UrzGk0cMGL1oZe0Bg">项目架构科普：企业里常用的软件架构剖析</a></li><li><a href="https://mp.weixin.qq.com/s/kfhCEDSUGwnNUbtGDL_rvQ">项目架构科普：单体→分布式→微服务，这些年的软件架构是如何发育的</a></li><li><a href="https://mp.weixin.qq.com/s/Iy1dguNFkU73r1FxYIvlIQ">项目架构科普：微服务架构的全局图景分析</a></li><li><a href="https://mp.weixin.qq.com/s/fLLd-ml-gdo3-700iJso_A">原理解析：如何设计一个高并发的秒杀架构？</a></li><li><a href="https://mp.weixin.qq.com/s/ZzxmDbs08waUCtO7PeUhqw">原理解析：高并发系统设计的常见问题小结</a></li><li><a href="https://mp.weixin.qq.com/s/J0aSVry1-Ss1OTA-jQAX3w">原理解析：亿级流量网关设计思路</a></li><li><a href="https://mp.weixin.qq.com/s/Fd3cUDrqr0CsCl7FvZgd7Q">原理解析：实际网站用户密码是如何存储的</a></li><li><a href="https://mp.weixin.qq.com/s/Q1rZYvgklC_mBqfmIEC0Dw">原理解析：死磕搜索引擎背后的故事</a></li><li><a href="https://mp.weixin.qq.com/s/1lG-aAyVycO4zTbOqdy6BA">原理解析：用微信扫码登录的背后发生了什么</a></li><li><a href="https://mp.weixin.qq.com/s/RjVLsAhiMIYzsMhXJiReNg">原理解析：扫码付款背后的原理解析</a></li><li><a href="https://mp.weixin.qq.com/s/1b9jBfwM9_RLkMPquqAuMw">原理解析：收款码背后的原理剖析</a></li><li><a href="https://mp.weixin.qq.com/s/Kske9ahRcIUM5XEs2ZIN3A">原理解析：支付掉单背后的几个问题</a></li><li><a href="https://mp.weixin.qq.com/s/VROp_0M3mz5Zhhnz0ZSmKQ">原理解析：手机没网却能支付成功的背后原理</a></li><li><a href="https://mp.weixin.qq.com/s/1FDb63R_OMbSJo9VOWSr3Q">原理解析：高并发场景下，先更新缓存还是先更新数据库？</a></li><li><a href="https://mp.weixin.qq.com/s/RDOKLnG7P1j5Ehu3EyrsCQ">原理解析：如何保证缓存和数据库的一致性问题？</a></li><li><a href="https://mp.weixin.qq.com/s/_56jq_p_nDUiBwaI2MTlmA">原理解析：什么是分布式事务？</a></li><li><a href="https://mp.weixin.qq.com/s/RViDM1WHE61SDLNKzUmTAg">原理解析：Redis分布式锁实践分析</a></li><li><a href="https://mp.weixin.qq.com/s/QgliAGeUAISQVR4VNWqdgA">原理解析：高并发下如何保证接口的幂等性？</a></li><li><a href="https://mp.weixin.qq.com/s/1VCC3i6ZCk7sb9kVRZ1czQ">原理解析：如何实现丝滑的数据库扩容</a></li><li><a href="https://mp.weixin.qq.com/s/x1AobPWpMufNWqrBnc5sZg">原理解析：如何构建一个稳定的高性能Redis集群？</a></li><li>内容持续更新中…</li></ul><!-- panels:end --><hr><h1 id="面试准备和求职"><a href="#面试准备和求职" class="headerlink" title="面试准备和求职"></a><strong>面试准备和求职</strong></h1><hr><blockquote><p> 该板块会持续更新各技术方向的求职面试题集合、面经、以及一些小伙伴的求职心得与经历感悟。</p></blockquote><h2 id="简历相关"><a href="#简历相关" class="headerlink" title="简历相关"></a>简历相关</h2><ul><li><a href="https://mp.weixin.qq.com/s/-qlU2-a-vvXWOHXzKHRm6A">资源下载 → 简历模板下载（word版）</a></li><li><a href="https://mp.weixin.qq.com/s/q5gPSIiJqVvbI6Xa4dMXwA">程序员写简历时必须注意的技术词汇拼写</a></li><li><a href="https://mp.weixin.qq.com/s/VJsp5SzGuOCGl-mWdbtCxQ">国内程序员最容易发音错误的单词集合</a></li></ul><h2 id="工作岗位科普"><a href="#工作岗位科普" class="headerlink" title="工作岗位科普"></a>工作岗位科普</h2><ul><li><a href="https://mp.weixin.qq.com/s/LEWBkJ5wkAIIcuv98g1Yhg">科普：学C++的以后能从事哪些岗位</a></li><li><a href="https://mp.weixin.qq.com/s/AtSMfjq0GXQdVxo2o6s3-g">科普：物联网行业的岗位、技能</a></li><li><a href="https://mp.weixin.qq.com/s/EA_iYwpSIMQGgpCrvvVOzA">科普：学Linux的以后能做什么</a></li><li>持续更新中 …</li></ul><h2 id="面试题集合"><a href="#面试题集合" class="headerlink" title="面试题集合"></a>面试题集合</h2><!-- panels:start --><!-- div:left-panel --><ul><li><a href="https://mp.weixin.qq.com/s/7mx58Idw1pL0MjPIFBUB1Q">C&#x2F;C++：C语言&#x2F;C++基础面试知识大集合</a></li><li><a href="https://mp.weixin.qq.com/s/BRQ-3uvstdZPO-cnLGCVzA">C&#x2F;C++：68道C语言&#x2F;C++常见面试题集合</a></li><li><a href="https://mp.weixin.qq.com/s/p1zxnGVeTDJiyjgowRIoBA">Java：Java面试题硬核全梳理 ~</a></li><li><a href="https://mp.weixin.qq.com/s/oBDrFnuk1lbfuNHkrhAC5w">Java：10道精选Java基础面试题集合</a></li><li><a href="https://mp.weixin.qq.com/s/f-qIQGbzwHcW5Ur51rCqgg">Java：Java基础知识面试题大集合</a></li><li><a href="https://mp.weixin.qq.com/s/si_V6J_6ZZn4Akc12mMk2g">Java：Java集合硬核面试50问（附答案）</a></li><li><a href="https://mp.weixin.qq.com/s/bHkgpznnqixDNyDKwdAbOg">Java：面试必问的JVM GC机制精讲</a></li><li><a href="https://mp.weixin.qq.com/s/T2DqgJ9-0QiRZQYUeR3c8w">Java：JVM虚拟机面试题大集合</a></li><li><a href="https://mp.weixin.qq.com/s/XsZUF2nBUSEJoGIA8RimJw">Java：JVM垃圾回收硬核18问</a></li><li><a href="https://mp.weixin.qq.com/s/ZYoeC8yyfReEJDFSqiW8hw">Java：面试官常问的一些JVM面试题</a></li><li><a href="https://mp.weixin.qq.com/s/pIVf97W4DuAPNxq6zgRvsQ">Java：Java并发和多线程基础面试题大集合</a></li><li><a href="https://mp.weixin.qq.com/s/ND-nUCGvXTHkEClKqN1qrQ">Java：面试常问的ThreadLocal源码剖析</a></li><li><a href="https://mp.weixin.qq.com/s/TF04dB-i0q0-dOTqlprmYA">Java：面试常问的线程池例析</a></li><li><a href="https://mp.weixin.qq.com/s/kQ498ifh4OUEDd829JIhnQ">Java：面试常问的volatile剖析</a></li><li><a href="https://mp.weixin.qq.com/s/cnpfLL4TeL2oyEcHia6Bmg">Java：面试必问的ConcurrentHashMap精讲</a></li><li><a href="https://mp.weixin.qq.com/s/lEgHPertXyguZIkv61LlKQ">Java：说说什么是Java内存模型</a></li><li><a href="https://mp.weixin.qq.com/s/VXRRMabz_fvwnZeLWT-ybg">Java：浮点数精度问题面试例析</a></li><li><a href="https://mp.weixin.qq.com/s/lFnyBaaP3f0eNcKGW5RtCg">计网：面试最爱问的三次握手和四次挥手问题</a></li><li><a href="https://mp.weixin.qq.com/s/PIGfhMaAx9R5C4x5eJQnIw">计网：计算机网络高频12问</a></li><li><a href="https://mp.weixin.qq.com/s/H4gbg7bfnw61jZQcapTnMw">计网：GET和POST到底有什么区别</a></li><li><a href="https://mp.weixin.qq.com/s/doxVJZ1G6187B4AOXb0JlA">计网：TCP&#x2F;UDP 部分高频面试题大集合</a></li><li><a href="https://mp.weixin.qq.com/s/FJGKObVnU61ve_ioejLrtw">计网：HTTP常见面试题集合</a></li><li><a href="https://mp.weixin.qq.com/s/t2Csrl7idUXISKW54cpV1g">计网：浏览器输入网址并回车，后面到底发生了什么</a></li><li><a href="https://mp.weixin.qq.com/s/EZwOUGMrGKEF_POisJKmuw">计网：都说HTTP协议是无状态的，这里的「状态」到底指什么？</a></li><li><a href="https://mp.weixin.qq.com/s/lR_A3jbfRiRjchz_lyyKxw">操作系统：操作系统面试题集合</a></li><li><a href="https://mp.weixin.qq.com/s/5f3ku77xSO8UlaOsTkOnHQ">操作系统：内存管理部分8个常见面试题汇总</a></li><li><a href="https://mp.weixin.qq.com/s/oTEMOQY1xcG8uVceW-kLDA">操作系统：操作系统面试题大分享</a></li><li><a href="https://mp.weixin.qq.com/s/3NI4FWuOfYMJBiKqqnpqMA">操作系统：面试常问的20个Linux命令</a></li><li><a href="https://mp.weixin.qq.com/s/euzbHPpQG2BSKl93N5L1Hg">应用框架：Spring夺命连环10连问</a></li><li><a href="https://mp.weixin.qq.com/s/q4CajkpSUC8TCgv55VK5aQ">应用框架：Spring 经典面试题大集合</a></li><li><a href="https://mp.weixin.qq.com/s/cLh9xCDkVG0KV-uaX8PkNw">应用框架：Spring Boot基础面试题大集合</a></li><li><a href="https://mp.weixin.qq.com/s/g0br3PfTmm8C_nkKbzE_ig">应用框架：Spring Cloud基础面试题大集合</a></li></ul><!-- div:right-panel --><ul><li><a href="https://mp.weixin.qq.com/s/vdOOVQtZhrJXsvRUjq0HqQ">数据库：MySQL面试硬核25问（附答案）</a></li><li><a href="https://mp.weixin.qq.com/s/SPgtpfgv6bz2AfPa1CYYeQ">数据库：先更新数据库还是先更新缓存？</a></li><li><a href="https://mp.weixin.qq.com/s/RDOKLnG7P1j5Ehu3EyrsCQ">数据库：如何保证缓存和数据库的一致性问题？</a></li><li><a href="https://mp.weixin.qq.com/s/8ddEzG-NzzFD35ehvbER7A">数据库：面试官最爱的MySQL连环问</a></li><li><a href="https://mp.weixin.qq.com/s/1VCC3i6ZCk7sb9kVRZ1czQ">数据库：如何实现丝滑的数据库扩容</a></li><li><a href="https://mp.weixin.qq.com/s/WMuxdG3ymNMWWDk1XhLwZQ">数据库：数据库索引到底是什么</a></li><li><a href="https://mp.weixin.qq.com/s/d7Zfat2fP6IX5DMKKtEIjQ">数据库：为什么MySQL索引要用B+ tree</a></li><li><a href="https://mp.weixin.qq.com/s/-mOOchaXx_pKI6qWhohEnA">数据库：为什么用了索引，SQL查询还是慢</a></li><li><a href="https://mp.weixin.qq.com/s/iBnav_WPrX5vjR-NbdNeQg">数据库：慢SQL背后的原理是什么</a></li><li><a href="https://mp.weixin.qq.com/s/aBboeqEphejICklAKLqS2Q">数据库：30道保底的MySQL数据库面试题汇总</a></li><li><a href="https://mp.weixin.qq.com/s/JQCtqM6aep3jtgiRL_9J5g">数据库：用心整理的9道MySQL面试题</a></li><li><a href="https://mp.weixin.qq.com/s/lxMP4-Z3DzQg5fRqLs9XNA">中间件：面试官爱问的Redis高频面试题集合</a></li><li><a href="https://mp.weixin.qq.com/s/6NobACeeKCcUy98Ikanryg">中间件：Redis面试全攻略、面试题大集合</a></li><li><a href="https://mp.weixin.qq.com/s/m9trzqE3Zd0KHC1cA3PlZQ">中间件：什么是缓存穿透、缓存雪崩、缓存击穿？</a></li><li><a href="https://mp.weixin.qq.com/s/0R0Evh1QX5BPOQt9233vpQ">中间件：说说为什么Redis能这么快？</a></li><li><a href="https://mp.weixin.qq.com/s/x1AobPWpMufNWqrBnc5sZg">中间件：如何构建一个稳定的高性能Redis集群？</a></li><li><a href="https://mp.weixin.qq.com/s/aNdWL3xKtjOd_briXL6Bjg">中间件：把Redis当作队列来用，真的合适吗？</a></li><li><a href="https://mp.weixin.qq.com/s/RViDM1WHE61SDLNKzUmTAg">中间件：Redis分布式锁的详细分析</a></li><li><a href="https://mp.weixin.qq.com/s/ir0uurwo95hB3g__vTceJQ">中间件：ZooKeeper面试十二连问</a></li><li><a href="https://mp.weixin.qq.com/s/xpSel2nsLkf3yck5edNMJQ">中间件：消息队列面试连环问总结</a></li><li><a href="https://mp.weixin.qq.com/s/o-rqnOH4FHeHaz0VqoHnFg">中间件：Kafka面试要点梳理</a></li><li><a href="https://mp.weixin.qq.com/s/iTnKumgre3SzrBuWf8KB6g">中间件：说说你对RPC技术是怎么理解的？</a></li><li><a href="https://mp.weixin.qq.com/s/wM0Vj_YMh7881NwK-AwKSw">中间件：后端岗面试必备之Dubbo九连问</a></li><li><a href="https://mp.weixin.qq.com/s/VR1jEhJVXCfja3Pmo_kKkw">中间件：为什么Nginx能轻松撑起几万并发？</a></li><li><a href="https://mp.weixin.qq.com/s/NJFJ5UrzGk0cMGL1oZe0Bg">系统架构：企业里常用的软件架构科普</a></li><li><a href="https://mp.weixin.qq.com/s/kfhCEDSUGwnNUbtGDL_rvQ">系统架构：单体→分布式→微服务，这些年的软件架构是怎么发展的</a></li><li><a href="https://mp.weixin.qq.com/s/fLLd-ml-gdo3-700iJso_A">系统架构：如何设计一个高并发的秒杀架构？</a></li><li><a href="https://mp.weixin.qq.com/s/pg6lyAkgAaqSAZjiPgQTWA">系统架构：分布式架构的几个常见的坑</a></li><li><a href="https://mp.weixin.qq.com/s/8CvoGCtGDvMHR91Lx89pxQ">系统架构：说说分布式架构负载均衡的几种方式</a></li><li><a href="https://mp.weixin.qq.com/s/_56jq_p_nDUiBwaI2MTlmA">系统架构：说说什么是分布式事务？</a></li><li><a href="https://mp.weixin.qq.com/s/J0aSVry1-Ss1OTA-jQAX3w">系统架构：亿级流量网关的设计思路</a></li><li><a href="https://mp.weixin.qq.com/s/ZcKqGT2Sn4wVScExSF9Alg">设计模式：说说Spring用到了哪些设计模式？</a></li></ul><!-- panels:end --><h2 id="求职经历分享"><a href="#求职经历分享" class="headerlink" title="求职经历分享"></a>求职经历分享</h2><ul><li><a href="https://mp.weixin.qq.com/s/joFBDntI9PmyVRiKPHwpRg">小伙伴经历分享：Linux后台开发该如何准备</a></li><li><a href="https://mp.weixin.qq.com/s/V0nRwXQlkNBnBneERZQURQ">二本无实习上岸滴滴京东58复盘(一)</a></li><li><a href="https://mp.weixin.qq.com/s/BnbBQGL-S2sGdRtNh7DN1A">二本无实习上岸滴滴京东58复盘(二)</a></li><li><a href="https://mp.weixin.qq.com/s/3YfKHo2lW-NC1tEA_u-mlQ">小伙伴面经分享(一)：深信服(含答案)</a></li><li><a href="https://mp.weixin.qq.com/s/sc-7rc6obYZNFcc1mjNPAg">小伙伴面经分享(二)：京东(含答案)</a></li><li><a href="https://mp.weixin.qq.com/s/jAPYcMULqQl6AE_Vv7BZhQ">一位程序媛的秋招软件开发岗面试经历</a></li><li><a href="https://mp.weixin.qq.com/s/0RoFVAezxW8cl3bjlAHbQg">写简历→面试→谈薪：一绿向北</a></li><li><a href="https://mp.weixin.qq.com/s/4L3J45Wj81yjoZIQ3ZVSog">小红书后台开发岗面试经历复盘~</a></li><li><a href="https://mp.weixin.qq.com/s/34SdkDyMvpVmoCFEB4UF-g">国企和银行：面试都问些啥？如何准备？</a></li><li><a href="https://mp.weixin.qq.com/s/4hP8s7TzsOv_tdQtOdCdig">招银网络（银行科技岗）面试都问了些啥？</a></li><li><a href="https://mp.weixin.qq.com/s/jy0g3ohLzbtD-6JeCeMVvw">准备提前批？还是去实习？还是准备秋招？</a></li><li><a href="https://mp.weixin.qq.com/s/9Fb8w2XwkXQpj8agBtdmFg">7面Google，面经分享</a></li><li><a href="https://mp.weixin.qq.com/s/j6poLkiomb80jTE7EaFVJA">化学专业大二转码的抉择之路</a></li><li><a href="https://mp.weixin.qq.com/s/-27fvvzBpmwwuAFANRoeIA">拿到腾讯实习Offer的经历分享</a></li><li><a href="https://mp.weixin.qq.com/s/YP4qafQ8gPbB7W0CkfACug">怎么准备国企和银行？</a></li><li><a href="https://mp.weixin.qq.com/s/u_jIpGfmH4BHYS7hIlQk9w">去银行当程序员是一种什么体验</a></li></ul><h2 id="城市-公司选择"><a href="#城市-公司选择" class="headerlink" title="城市&#x2F;公司选择"></a>城市&#x2F;公司选择</h2><ul><li><a href="https://mp.weixin.qq.com/s/VFocc914mGTrDzodI-MF1A">一二线城市知名IT互联网公司总名单</a></li><li><a href="https://mp.weixin.qq.com/s/5gtu7B05EKbPDXvhha5uNQ">常见互联网公司职级和薪资一览</a></li><li><a href="https://mp.weixin.qq.com/s/wvdzBTcLLaeEtCqZI6T_Qg">常见互联网公司时薪排行榜</a></li></ul><hr><ul><li><a href="https://mp.weixin.qq.com/s/UDWHt3QwsZBfZ25-pddwhQ">成都有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/bjHmAtPrSKQCDjfr9Mu0_Q">武汉有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/kskE2wJx_QtT6vCgsrUgIA">南京有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/tBNWFJbkjkV0bEPh4t9VQg">合肥有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/dtJBi4QXXTrGkKTPM0y7VA">深圳有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/t4L45znsZRmWQ7MIQQtvhg">成都有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/eD3tjUC4qASHH0WSWhz57Q">西安有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/UQHJ-iZDvQb3RLwQsELbUQ">长沙有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/6dh1jbmuDqnHBoM7beTQbg">武汉有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/Ks9XLLUh099wSHWG0OBf1g">天津有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/8-uZUrG8_ziR5tKl1K8YNw">郑州有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/Bwu0MDQhZiaY0vj3HsEsLg">杭州有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/s5UhdFyj9-8bqwQyZUMvVA">广州有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/Miu3eC6hqJlK8fi8Qr-DtQ">青岛有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/zYI8qW3Zfu2ySeO-PDqwZA">上海有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/12inr2oRTULf7NhYOBGMYw">大连有哪些知名的IT&#x2F;互联网公司？</a></li><li><a href="https://mp.weixin.qq.com/s/529Zv24uToDW4xxEOFdiqw">苏州有哪些知名的IT&#x2F;互联网公司？</a></li></ul><h2 id="其他求职相关问题"><a href="#其他求职相关问题" class="headerlink" title="其他求职相关问题"></a>其他求职相关问题</h2><ul><li><a href="https://mp.weixin.qq.com/s/QUJzl1ZG77DDnQNK0OAsHg">为什么有些大公司技术却弱爆了？</a></li><li><a href="https://mp.weixin.qq.com/s/iV7DMApxhEw5YL-upIowVA">嵌入式行业到底有没有搞头？</a></li><li><a href="https://mp.weixin.qq.com/s/9XMAvP_t0B1Ev57-ZC42yw">找工作时，公司所说的「给期权」到底是什么东西？</a></li><li><a href="https://mp.weixin.qq.com/s/cu7mDeU2q2uEG8Q0CPzDEA">入职一家公司，应该选择新业务还是老业务？</a></li><li><a href="https://mp.weixin.qq.com/s/NGJc71cW2TKEONe6jhIUSg">采访了一位技术总监：聊了聊跳槽的心态问题</a></li><li><a href="https://mp.weixin.qq.com/s/4_MB3L511h7qoXNxPRdOvQ">程序员从技术→管理，要走哪些路？</a></li></ul><hr><h1 id="资源汇总和下载"><a href="#资源汇总和下载" class="headerlink" title="资源汇总和下载"></a><strong>资源汇总和下载</strong></h1><hr><blockquote><p> 该版块会持续更新那些优秀的编程资源，**包括但不限于：**各种硬核的PDF笔记、软件包、技术手册、自制文档、题解解析、简历模板、面试题文档 等等。</p></blockquote><hr><h2 id="编程学习资源大整理"><a href="#编程学习资源大整理" class="headerlink" title="编程学习资源大整理"></a>编程学习资源大整理</h2><ul><li>下载链接：<a href="https://pan.baidu.com/s/1jEjcF96iVAXEXaadE1V6RQ">https://pan.baidu.com/s/1jEjcF96iVAXEXaadE1V6RQ</a></li><li>提取码：f23d</li></ul><h2 id="PDF干货笔记下载"><a href="#PDF干货笔记下载" class="headerlink" title="PDF干货笔记下载"></a>PDF干货笔记下载</h2><ul><li><a href="https://mp.weixin.qq.com/s/EaDLaLy3YjrNiSoNofwMMA">下载 → LeetCode算法刷题Golang版答案PDF文档</a></li><li><a href="https://mp.weixin.qq.com/s/qR6KTfldk41lsOj1Ghp6Og">下载 → LeetCode算法刷题C++版答案PDF文档</a></li><li><a href="https://mp.weixin.qq.com/s/kWTJ9640mPegr5wqVE0GMg">下载 → LeetCode算法刷题Java版答案PDF文档</a></li><li><a href="https://mp.weixin.qq.com/s/gXH98f1p5cCYVETCn9w9kA">下载 → 谷歌学长的数据结构+算法题代码笔记手册</a></li><li><a href="https://mp.weixin.qq.com/s/JUJ6qu_ec3s1JmTxQt_V3g">下载 → 再肝两夜，写了个「服务器项目部署」实战PDF手册</a></li><li><a href="https://mp.weixin.qq.com/s/YNOZSQ5smo1uGE5ZttUZ_w">下载 → 熬10天夜，肝出了这个PDF版「软件安装手册」</a></li><li><a href="https://mp.weixin.qq.com/s/GJYVt376C_g4406ux5uw0Q">下载 → 熬了7天夜，羊哥肝了个Linux速查备忘手册！</a></li><li><a href="https://mp.weixin.qq.com/s/x9E7ogAxFNpODXkAXCZZ3w">下载 → Java后端开发学习路线+知识点梳理总结</a></li><li><a href="https://mp.weixin.qq.com/s/xUKlD-Ro4x55NfANAwxJUw">下载 → 前端开发学习路线+知识点梳理总结</a></li><li><a href="https://mp.weixin.qq.com/s/vBCwU-BCsGVNpjJM__LheQ">下载 → 大数据开发学习路线+知识点梳理总结</a></li><li><a href="https://mp.weixin.qq.com/s/nkBsUgbuMK3ArHfFc2417w">下载 → 嵌入式开发学习路线+知识点梳理总结</a></li><li><a href="https://mp.weixin.qq.com/s/ac8vgjob8nDqM1Q7FGLRiA">下载 → C&#x2F;C++后台开发学习路线+知识点梳理总结</a></li><li><a href="https://mp.weixin.qq.com/s/EKBRCNr_3n0y8CCSUNPdPg">下载 → 找工作简历模板集(word格式) </a></li><li><a href="https://mp.weixin.qq.com/s/q5gPSIiJqVvbI6Xa4dMXwA">下载 → 程序员写简历时的技术词汇拼写规范PDF手册</a></li><li><a href="https://mp.weixin.qq.com/s/jn7oraFlhRkOmiv3rh74WA">下载 → Java基础核心知识大总结PDF文档</a></li><li><a href="https://mp.weixin.qq.com/s/BRQ-3uvstdZPO-cnLGCVzA">下载 → C&#x2F;C++常见面试题（含答案）PDF文档</a></li><li><a href="https://mp.weixin.qq.com/s/miV4SH1Eb_FMogQ2XYvPuA">下载 → 设计模式学习笔记PDF文档</a></li><li><a href="https://mp.weixin.qq.com/s/EGQAuvITVJT3fZUdQG84sw">下载 → Java多线程+并发编程知识点详细总结PDF</a></li><li><a href="https://mp.weixin.qq.com/s/J-vlX5tIuXWdglXWewK0FQ">下载 → 阿里Java开发手册PDF全套</a></li></ul><h2 id="其他资源下载"><a href="#其他资源下载" class="headerlink" title="其他资源下载"></a>其他资源下载</h2><ul><li><a href="https://mp.weixin.qq.com/s/xDYSG4uDz9rgNCuk0RxLjg">下载 → 豆瓣9.1分的Pro Git学习手册YYDS！</a></li><li><a href="https://mp.weixin.qq.com/s/3rV556_0piRNsSpDYwuZ8g">下载 → 《Linux命令行大全》.pdf手册</a></li></ul><hr><blockquote><p> <strong>我们所应该热爱的，就是自己的生活！</strong></p></blockquote><hr><ul><li><a href="https://www.processon.com/">在线画图工具ProcessOn</a></li><li><a href="https://app.diagrams.net/">在线画图工具Draw.io</a></li><li><a href="http://www.mindline.cn/webapp">在线思维导图工具MindLine</a></li><li><a href="https://www.eteste.com/">在线字数统计工具</a></li><li><a href="https://mdnice.com/">mdnice markdown排版工具</a></li><li><a href="http://md.aclickall.com/">md2all markdown排版工具</a></li><li><a href="https://carbon.now.sh/">在线代码截图工具</a></li></ul><h2 id="摸鱼时间"><a href="#摸鱼时间" class="headerlink" title="摸鱼时间"></a>摸鱼时间</h2><ul><li><a href="https://www.bilibili.com/">0x00000001</a></li></ul><hr><h1 id="持续更新中…"><a href="#持续更新中…" class="headerlink" title="持续更新中…"></a>持续更新中…</h1><p>页面内容会持续保持更新，欢迎收藏品鉴！</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;strong&gt;本系列所有文章&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&quot;series-items&quot;&gt;&lt;li&gt;&lt;a href=&quot;/2024/09/11/%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7/&quot; title=&quot;在线工具(持续更新)&quot;&gt;</summary>
      
    
    
    
    <category term="资源超集合" scheme="https://anotherday99.github.io/categories/%E8%B5%84%E6%BA%90%E8%B6%85%E9%9B%86%E5%90%88/"/>
    
    
    <category term="资源超集合" scheme="https://anotherday99.github.io/tags/%E8%B5%84%E6%BA%90%E8%B6%85%E9%9B%86%E5%90%88/"/>
    
  </entry>
  
  <entry>
    <title>在线工具(持续更新)</title>
    <link href="https://anotherday99.github.io/2024/09/11/%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7/"/>
    <id>https://anotherday99.github.io/2024/09/11/%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7/</id>
    <published>2024-09-11T02:07:30.000Z</published>
    <updated>2026-01-23T16:22:47.813Z</updated>
    
    <content type="html"><![CDATA[<p><strong>本系列所有文章</strong></p><ol class="series-items"><li><a href="/2024/09/11/%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7/" title="在线工具(持续更新)">在线工具(持续更新)</a></li><li><a href="/2024/09/11/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%B5%84%E6%BA%90%E8%B6%85%E9%9B%86%E5%90%88/" title="计算机资源超集合(持续更新)">计算机资源超集合(持续更新)</a></li></ol><table><tr><td bgcolor=MistyRose>你可以通过使用右下角的小齿轮，来开启黑夜模式和阅读模式。</td></tr></table><hr><h1 id="开发必备"><a href="#开发必备" class="headerlink" title="开发必备"></a>开发必备</h1><ul><li><a href="http://www.fly63.com/tool/ascii/"><strong>在线ASCII码表</strong></a></li><li><a href="https://regexr.com/"><strong>正则表达式调试工具</strong></a></li><li><a href="https://jex.im/regulex/"><strong>正则表达式可视化</strong></a></li><li><a href="https://nginxconfig.io/"><strong>在线Nginx配置</strong></a></li><li><a href="https://base64.supfree.net/"><strong>BASE64编解码工具</strong></a></li><li><a href="https://www.zxgj.cn/g/md5"><strong>MD5编码工具</strong></a></li><li><a href="http://www.fly63.com/tool/cipher/"><strong>AES&#x2F;DES加解密</strong></a></li><li><a href="http://jwt.calebb.net/"><strong>JWT解码工具</strong></a></li><li><a href="https://www.matools.com/code-convert-ascii"><strong>ASCII编解码工具</strong></a></li><li><a href="https://www.zxgj.cn/g/unicode"><strong>Unicode编解码工具</strong></a></li><li><a href="https://www.zxgj.cn/g/utf8"><strong>UTF-8编解码工具</strong></a></li><li><a href="https://www.zxgj.cn/g/enstring"><strong>字符串编解码工具</strong></a></li><li><a href="https://www.zxgj.cn/g/jinzhi"><strong>通用进制转换工具</strong></a></li><li><a href="http://www.binaryconvert.com/"><strong>浮点数十进制转换</strong></a></li><li><a href="https://www.zxgj.cn/g/yansezhi"><strong>RGB颜色转换</strong></a></li><li><a href="https://www.zxgj.cn/g/unix"><strong>时间戳转换工具</strong></a></li><li><a href="http://www.json.cn/"><strong>在线JSON解析</strong></a></li><li><a href="https://prettier.io/playground/"><strong>在线JS代码格式化工具</strong></a></li><li><a href="https://enjoycss.com/"><strong>CSS可视化工具</strong></a></li><li><a href="https://www.zxgj.cn/g/xmlformat"><strong>XML格式化工具</strong></a></li><li><a href="https://www.zxgj.cn/g/sqlformat"><strong>SQL压缩&#x2F;格式化工具</strong></a></li><li><a href="https://www.zxgj.cn/g/jsonxml"><strong>JSON&#x2F;XML在线转换</strong></a></li><li><a href="http://www.fly63.com/tool/jsonyaml/"><strong>JSON&#x2F;YAML在线转换</strong></a></li><li><a href="https://www.ipip.net/ip.html"><strong>IP地址查询</strong></a></li><li><a href="http://www.fly63.com/php/http/"><strong>HTTP在线接口测试</strong></a></li><li><a href="https://www.zxgj.cn/g/uuid"><strong>UUID在线生成器</strong></a></li><li><a href="https://www.zxgj.cn/g/suijishu"><strong>随机数生成器</strong></a></li><li><a href="https://c.runoob.com/"><strong>在线编译套装</strong></a></li><li><a href="http://www.fly63.com/tool/textdiff/"><strong>在线文本比对</strong></a></li></ul><h1 id="创作必备"><a href="#创作必备" class="headerlink" title="创作必备"></a>创作必备</h1><ul><li><a href="https://www.processon.com/"><strong>在线画图工具</strong></a></li><li><a href="http://www.mindline.cn/webapp"><strong>在线思维导图</strong></a></li><li><a href="https://www.eteste.com/"><strong>在线字数统计</strong></a></li><li><a href="https://mdnice.com/"><strong>在线MD排版</strong></a></li><li><a href="https://sm.ms/"><strong>在线免费图床</strong></a></li><li><a href="https://carbon.now.sh/"><strong>在线代码截图</strong></a></li><li><a href="http://mrw.so/"><strong>在线短链接生成</strong></a></li><li><a href="http://www.fly63.com/tool/textreplace/"><strong>在线文本替换</strong></a></li><li><a href="https://docsmall.com/"><strong>在线文件压缩工具</strong></a></li><li><a href="https://cn.office-converter.com/"><strong>在线多媒体转换器</strong></a></li><li><a href="https://smallpdf.com/cn/pdf-tools"><strong>在线PDF工具</strong></a></li><li><a href="https://www.uupoop.com/"><strong>在线PS</strong></a></li><li><a href="http://www.uugai.com/"><strong>logo在线制作</strong></a></li><li><a href="https://www.designcap.com/"><strong>在线海报设计工具</strong></a></li><li><a href="https://feathericons.com/"><strong>Open Source Icons</strong></a></li><li><a href="https://fabiaoqing.com/"><strong>表情包在线网站</strong></a></li><li><a href="https://bigjpg.com/"><strong>图片智能放大工具</strong></a></li><li><a href="https://www.remove.bg/zh"><strong>在线抠图工具</strong></a></li><li><a href="http://www.fly63.com/php/ico/"><strong>ICO图标在线生成</strong></a></li><li><a href="http://www.fly63.com/tool/giftxt/"><strong>视频转GIF工具</strong></a></li><li><a href="https://pixabay.com/zh/"><strong>Pixabay图片素材库</strong></a></li><li><a href="https://unsplash.com/"><strong>Unsplash图片素材库</strong></a></li><li><a href="http://www.pexels.com/"><strong>Pexels图片素材库</strong></a></li><li><a href="https://www.yinxiang.com/"><strong>印象笔记</strong></a></li><li><a href="https://note.youdao.com/"><strong>有道笔记</strong></a></li><li><a href="https://www.onenote.com/"><strong>OneNote</strong></a></li><li><a href="https://mubu.com/"><strong>幕 布</strong></a></li><li><a href="ttps://shimo.im/"><strong>石墨文档</strong></a></li><li><a href="https://www.wiz.cn/"><strong>为知笔记</strong></a></li><li><a href="https://www.yuque.com/"><strong>语 雀</strong></a></li></ul><h1 id="划水必备"><a href="#划水必备" class="headerlink" title="划水必备"></a>划水必备</h1><ul><li><a href="https://www.bilibili.com/"><strong>0x00000001</strong></a></li><li>内容持续更新中…</li></ul><h1 id="在线技术文档"><a href="#在线技术文档" class="headerlink" title="在线技术文档"></a>在线技术文档</h1><ul><li><a href="https://git-scm.com/book/zh/v2"><strong>Git中文教程</strong></a></li><li><a href="http://svnbook.red-bean.com/nightly/zh/index.html"><strong>SVN中文手册</strong></a></li><li><a href="https://jquery.cuishifeng.cn/"><strong>jQuery API中文文档</strong></a></li><li><a href="https://www.nginx.cn/doc/index.html"><strong>Nginx中文文档</strong></a></li><li><a href="https://kafka.apachecn.org/"><strong>Kafka中文文档</strong></a></li><li><a href="https://mybatis.org/mybatis-3/zh/index.html"><strong>Mybatis中文文档</strong></a></li><li><a href="https://developers.weixin.qq.com/miniprogram/dev/framework/"><strong>微信小程序官方文档</strong></a></li><li><a href="http://nodejs.cn/learn"><strong>Nodejs中文教程文档</strong></a></li><li><a href="http://httpd.apache.org/docs/"><strong>Apache Web Server文档</strong></a></li><li><a href="https://www.springcloud.cc/spring-reference.html"><strong>Spring文档中文版</strong></a></li><li><a href="https://studygolang.com/pkgdoc"><strong>Golang标准库文档中文版</strong></a></li><li><a href="https://docs.oracle.com/javase/8/docs/api/index.html"><strong>Java 8官方文档</strong></a></li><li><a href="http://maven.apache.org/guides/"><strong>Maven官方文档</strong></a></li><li><a href="http://tomcat.apache.org/tomcat-8.0-doc/index.html"><strong>Tomcat 8官方文档</strong></a></li><li><a href="https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/"><strong>Spring Boot官方文档</strong></a></li><li><a href="https://www.rabbitmq.com/documentation.html"><strong>RabbitMQ官方文档</strong></a></li><li><a href="http://rocketmq.apache.org/docs/quick-start/"><strong>RocketMQ官方文档</strong></a></li><li><a href="https://dubbo.apache.org/zh/docs/"><strong>Dubbo中文文档</strong></a></li><li><a href="https://netty.io/wiki/index.html"><strong>Netty官方文档</strong></a></li><li><a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html"><strong>Elasticsearch官方文档</strong></a></li><li><a href="https://spring.io/projects/spring-cloud"><strong>Spring Cloud官方文档</strong></a></li><li><a href="https://docs.docker.com/get-started/"><strong>Docker官方文档</strong></a></li><li><a href="https://kubernetes.io/zh/docs/home/"><strong>Kubernetes中文文档</strong></a></li><li><a href="https://www.thymeleaf.org/documentation.html"><strong>Thymeleaf官方文档</strong></a></li><li><a href="https://cn.vuejs.org/v2/guide/"><strong>Vue.js中文文档</strong></a></li><li><a href="https://reactjs.org/docs/getting-started.html"><strong>React.js官方文档</strong></a></li><li><a href="https://www.jenkins.io/zh/doc/"><strong>Jenkins中文文档</strong></a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;&lt;strong&gt;本系列所有文章&lt;/strong&gt;&lt;/p&gt;
&lt;ol class=&quot;series-items&quot;&gt;&lt;li&gt;&lt;a href=&quot;/2024/09/11/%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7/&quot; title=&quot;在线工具(持续更新)&quot;&gt;</summary>
      
    
    
    
    <category term="资源超集合" scheme="https://anotherday99.github.io/categories/%E8%B5%84%E6%BA%90%E8%B6%85%E9%9B%86%E5%90%88/"/>
    
    
    <category term="在线工具" scheme="https://anotherday99.github.io/tags/%E5%9C%A8%E7%BA%BF%E5%B7%A5%E5%85%B7/"/>
    
  </entry>
  
</feed>
