add:linux_android

This commit is contained in:
dichgrem
2025-11-20 14:18:37 +08:00
parent a5a811608d
commit c883e002ad
34 changed files with 892 additions and 301 deletions

View File

@@ -0,0 +1,182 @@
+++
title = "Linux-Android开发环境部署"
date = 2025-11-20
[taxonomies]
tags = ["Linux"]
+++
前言 本文记录Android命令行开发环境在Linux上的部署用以替代Android-studio。
<!-- more -->
## Ubuntu方案
- 首先安装依赖包:
```bash
sudo apt install openjdk-17-jdk nodejs
```
- 安装Command-tools
```bash
mkdir -p ~/Android/cmdline-tools/latest
## 下载链接https://developer.android.com/studio?hl=zh-cn#command-tools
cd ~/Android/cmdline-tools/latest
wget https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip
unzip ./commandlinetools-linux-13114758_latest.zip
```
- 使用官方脚本安装Sdkman包管理器
```bash
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
```
- 随后使用Sdkman下载并安装gradle/kotlin
```bash
sdk install gradle
sdk install kotlin
```
- 设置环境变量:
```bash
export ANDROID_HOME=$HOME/Android
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
export PATH=$PATH:$ANDROID_HOME/build-tools/34.0.0
source ~/.bashrc
```
- 继续下载一些SDK平台与构建工具
```bash
sdkmanager "platforms;android-34" "build-tools;34.0.0" "platform-tools"
sdkmanager "emulator" //虚拟机中调试
```
- 查看版本
```bash
(base) dich@uos:~$ sdk version
SDKMAN!
script: 5.20.0
native: 0.7.14 (linux x86_64)
(base) dich@uos:~$ gradle -v
------------------------------------------------------------
Gradle 8.10.2
------------------------------------------------------------
Build time: 2024-09-23 21:28:39 UTC
Revision: 415adb9e06a516c44b391edff552fd42139443f7
Kotlin: 1.9.24
Groovy: 3.0.22
Ant: Apache Ant(TM) version 1.10.14 compiled on August 16 2023
Launcher JVM: 17.0.16 (Ubuntu 17.0.16+8-Ubuntu-0ubuntu124.04.1)
Daemon JVM: /usr/lib/jvm/java-17-openjdk-amd64 (no JDK specified, using current Java home)
OS: Linux 6.14.0-35-generic amd64
(base) dich@uos:~/Git/android-templates$ kotlin -version
Kotlin version 1.6.21-release-334 (JRE 21.0.8+9-Ubuntu-0ubuntu124.04.1)
(base) dich@uos:~/Git/android-templates/template-compose$ kscript -v
Copyright : 2022 Holger Brandl
License : MIT
Version : v4.0.3
Website : https://github.com/holgerbrandl/kscript
A new version (v4.2.0) of kscript is available.
Kotlin : 2.1.10-release-473
Java : JRE 17.0.16+8
```
## Key方案
构建Release包需要密钥签名验证可以使用传统的明文配置或者使用密钥管理器.
### 相同部分
- 生成密钥
```bash
keytool -genkey -v \
-keystore ~/.android/jetlagged-release.keystore \
-alias jetlagged \
-keyalg RSA \
-keysize 2048 \
-validity 10000
```
- 修改app/build.gradle.kts
```bash
signingConfigs {
create("release") {
storeFile = System.getenv("KEYSTORE_FILE")?.let { file(it) }
storePassword = System.getenv("KEYSTORE_PASSWORD")
keyAlias = System.getenv("KEY_ALIAS")
keyPassword = System.getenv("KEY_PASSWORD")
}
}
buildTypes {
release {
signingConfig = signingConfigs.getByName("release") // 添加这行
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
```
### 传统方法
- 创建配置文件
```bash
cat > ~/.android-signing-secrets << 'EOF'
export KEYSTORE_FILE="$HOME/.android/jetlagged-release.keystore"
export KEYSTORE_PASSWORD="你的keystore密码"
export KEY_ALIAS="jetlagged"
export KEY_PASSWORD="你的key密码"
EOF
# 设置权限
chmod 600 ~/.android-signing-secrets
# 添加到 gitignore (全局)
echo ".android-signing-secrets" >> ~/.gitignore_global
```
- flake配置
```bash
# Auto load Key
if [ -f "$HOME/.android-signing-secrets" ]; then
source "$HOME/.android-signing-secrets"
echo "KeyOK"
fi
```
### 现代方法
- 安装libsecret包
- keepassxc新建Android群组添加条目``android_key_password``和``android_keystore_password``
- 设置密码,和上面生成的相同;
- 在条目的高级-属性中添加``name/android_key_password``和``name/android_keystore_password``
- 打开设置-保密服务集成公开Android文件夹
- flake中写
```bash
# Release Key
export KEYSTORE_FILE="$HOME/.android/jetlagged-release.keystore"
export KEY_ALIAS="jetlagged"
export KEYSTORE_PASSWORD="$(secret-tool lookup name android_keystore_password)"
export KEY_PASSWORD="$(secret-tool lookup name android_key_password)"
```
---
**Done.**

View File

@@ -110,6 +110,16 @@
<ul><li class="post-list">
<a href="https://blog.dich.bid/linux-3-android-dev/">
<span class="post-date">2025-11-20</span>
:: <span class="post-list-title">Linux-Android开发环境部署</span></a>
<span class="post-tags-inline">
::
<a class="post-tag" href="https://blog.dich.bid/tags/linux/">#Linux</a></span>
</li>
<li class="post-list">
<a href="https://blog.dich.bid/linux-2-stm32/">
<span class="post-date">2025-07-20</span>
:: <span class="post-list-title">Linux-STM32开发环境部署</span></a>

View File

@@ -6,8 +6,27 @@
<link rel="self" type="application/atom+xml" href="https://blog.dich.bid/atom.xml"/>
<link rel="alternate" type="text/html" href="https://blog.dich.bid"/>
<generator uri="https://www.getzola.org/">Zola</generator>
<updated>2025-07-20T00:00:00+00:00</updated>
<updated>2025-11-20T00:00:00+00:00</updated>
<id>https://blog.dich.bid/atom.xml</id>
<entry xml:lang="en">
<title>Linux-Android开发环境部署</title>
<published>2025-11-20T00:00:00+00:00</published>
<updated>2025-11-20T00:00:00+00:00</updated>
<author>
<name>
Unknown
</name>
</author>
<link rel="alternate" type="text/html" href="https://blog.dich.bid/linux-3-android-dev/"/>
<id>https://blog.dich.bid/linux-3-android-dev/</id>
<summary type="html">&lt;p&gt;前言 本文记录Android命令行开发环境在Linux上的部署用以替代Android-studio。&lt;&#x2F;p&gt;</summary>
</entry>
<entry xml:lang="en">
<title>Linux-STM32开发环境部署</title>
<published>2025-07-20T00:00:00+00:00</published>

View File

@@ -107,6 +107,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/linux-3-android-dev/">Linux-Android开发环境部署</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-11-20
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/linux/">#Linux</a></span>
<div class="post-content">
<p>前言 本文记录Android命令行开发环境在Linux上的部署用以替代Android-studio。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/linux-3-android-dev/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/linux-2-stm32/">Linux-STM32开发环境部署</a></h1>
<div class="post-meta-inline">
@@ -236,39 +269,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-baci/">乱七八糟:Baci实验笔记</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-04-23
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 BACI是一个简化的并发程序模拟器这里对其语法与运行环境进行说明。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-baci/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -423,6 +423,13 @@
</a>
</span>
<span class="button next">
<a href="https://blog.dich.bid/linux-3-android-dev/">
<span class="button__text">Linux-Android开发环境部署</span>&nbsp;
<span class="button__icon"></span>
</a>
</span>
</div>
</div>

View File

@@ -0,0 +1,326 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Dich&#x27;s Blog</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noodp"/>
<!-- 字体预加载 - 减少布局偏移 CLS -->
<link rel="preload" href="https://blog.dich.bid/fonts/hack-regular.woff2?sha=3114f1256" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://blog.dich.bid/fonts/hack-bold.woff2?sha=3114f1256" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://blog.dich.bid/fonts/hack-italic.woff2?sha=3114f1256" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://blog.dich.bid/fonts/hack-bolditalic.woff2?sha=3114f1256" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="https://blog.dich.bid/style.css">
<link rel="stylesheet" href="https://blog.dich.bid/color/blue.css">
<link rel="stylesheet" href="https://blog.dich.bid/font-hack-subset.css">
<meta name="description" content="">
<meta property="og:description" content="">
<meta property="og:title" content="Dich's Blog">
<meta property="og:type" content="article">
<meta property="og:url" content="https://blog.dich.bid/linux-3-android-dev/">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:description" content="">
<meta name="twitter:title" content="Dich's Blog">
<meta property="twitter:domain" content="blog.dich.bid">
<meta property="twitter:url" content="https://blog.dich.bid/linux-3-android-dev/">
<link rel="alternate" type="application/atom+xml" title="Dich&#x27;s Blog Atom Feed" href="https://blog.dich.bid/atom.xml" />
<link rel="shortcut icon" type="image/webp" href="/dich.webp">
<!-- ✅ Added center alignment styles -->
<style>
.footer {
text-align: center;
padding: 1rem 0;
}
.footer__inner {
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
.copyright {
text-align: center;
}
</style>
</head>
<body class="">
<div class="container">
<header class="header">
<div class="header__inner">
<div class="header__logo">
<a href="https://blog.dich.bid" style="text-decoration: none;">
<div class="logo">
Dich&#x27;s Blog
</div>
</a>
</div>
</div>
<nav class="menu">
<ul class="menu__inner">
<li class="active"><a href="https://blog.dich.bid">Blog</a></li>
<li><a href="https://blog.dich.bid/archive">Archive</a></li>
<li><a href="https://blog.dich.bid/weekly">Weekly</a></li>
<li><a href="https://blog.dich.bid/tags">Tags</a></li>
<li><a href="https://blog.dich.bid/search">Search</a></li>
<li><a href="https://blog.dich.bid/links">Links</a></li>
<li><a href="https://blog.dich.bid/atom.xml">Rss</a></li>
<li><a href="https://blog.dich.bid/about">About me</a></li>
<li><a href="https://github.com/Dichgrem" target="_blank" rel="noopener noreferrer">My github</a></li>
<li><a href="https://github.com/getzola/zola" target="_blank" rel="noopener noreferrer">Zola frame</a></li>
</ul>
</nav>
</header>
<div class="content">
<div class="post" data-pagefind-body>
<h1 class="post-title"><a href="https://blog.dich.bid/linux-3-android-dev/">Linux-Android开发环境部署</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-11-20
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/linux/">#Linux</a></span>
<div class="post-content">
<p>前言 本文记录Android命令行开发环境在Linux上的部署用以替代Android-studio。</p>
<span id="continue-reading"></span><h2 id="ubuntufang-an">Ubuntu方案</h2>
<ul>
<li>首先安装依赖包:</li>
</ul>
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#ffb964;">sudo</span><span> apt install openjdk-17-jdk nodejs
</span></code></pre>
<ul>
<li>安装Command-tools</li>
</ul>
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#ffb964;">mkdir -p ~</span><span>/Android/cmdline-tools/latest
</span><span style="color:#888888;">## 下载链接https://developer.android.com/studio?hl=zh-cn#command-tools
</span><span>cd </span><span style="color:#ffb964;">~</span><span>/Android/cmdline-tools/latest
</span><span style="color:#ffb964;">wget</span><span> https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip
</span><span style="color:#ffb964;">unzip</span><span> ./commandlinetools-linux-13114758_latest.zip
</span></code></pre>
<ul>
<li>使用官方脚本安装Sdkman包管理器</li>
</ul>
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#ffb964;">curl -s </span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">https://get.sdkman.io</span><span style="color:#556633;">&quot; </span><span>| </span><span style="color:#ffb964;">bash
</span><span>source </span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">$</span><span style="color:#ffb964;">HOME</span><span style="color:#99ad6a;">/.sdkman/bin/sdkman-init.sh</span><span style="color:#556633;">&quot;
</span></code></pre>
<ul>
<li>随后使用Sdkman下载并安装gradle/kotlin</li>
</ul>
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#ffb964;">sdk</span><span> install gradle
</span><span style="color:#ffb964;">sdk</span><span> install kotlin
</span></code></pre>
<ul>
<li>设置环境变量:</li>
</ul>
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#8fbfdc;">export </span><span style="color:#ffb964;">ANDROID_HOME</span><span>=</span><span style="color:#99ad6a;">$</span><span style="color:#ffb964;">HOME</span><span style="color:#99ad6a;">/Android
</span><span style="color:#8fbfdc;">export </span><span style="color:#ffb964;">PATH</span><span>=</span><span style="color:#99ad6a;">$</span><span style="color:#ffb964;">PATH</span><span style="color:#99ad6a;">:$</span><span style="color:#ffb964;">ANDROID_HOME</span><span style="color:#99ad6a;">/emulator
</span><span style="color:#8fbfdc;">export </span><span style="color:#ffb964;">PATH</span><span>=</span><span style="color:#99ad6a;">$</span><span style="color:#ffb964;">PATH</span><span style="color:#99ad6a;">:$</span><span style="color:#ffb964;">ANDROID_HOME</span><span style="color:#99ad6a;">/platform-tools
</span><span style="color:#8fbfdc;">export </span><span style="color:#ffb964;">PATH</span><span>=</span><span style="color:#99ad6a;">$</span><span style="color:#ffb964;">PATH</span><span style="color:#99ad6a;">:$</span><span style="color:#ffb964;">ANDROID_HOME</span><span style="color:#99ad6a;">/cmdline-tools/latest/bin
</span><span style="color:#8fbfdc;">export </span><span style="color:#ffb964;">PATH</span><span>=</span><span style="color:#99ad6a;">$</span><span style="color:#ffb964;">PATH</span><span style="color:#99ad6a;">:$</span><span style="color:#ffb964;">ANDROID_HOME</span><span style="color:#99ad6a;">/build-tools/34.0.0
</span><span>source </span><span style="color:#ffb964;">~</span><span>/.bashrc
</span></code></pre>
<ul>
<li>继续下载一些SDK平台与构建工具</li>
</ul>
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#ffb964;">sdkmanager </span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">platforms;android-34</span><span style="color:#556633;">&quot; &quot;</span><span style="color:#99ad6a;">build-tools;34.0.0</span><span style="color:#556633;">&quot; &quot;</span><span style="color:#99ad6a;">platform-tools</span><span style="color:#556633;">&quot;
</span><span style="color:#ffb964;">sdkmanager </span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">emulator</span><span style="color:#556633;">&quot;</span><span> //虚拟机中调试
</span></code></pre>
<ul>
<li>查看版本</li>
</ul>
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span>(</span><span style="color:#ffb964;">base</span><span>) dich@uos:</span><span style="color:#ffb964;">~</span><span>$ sdk version
</span><span>
</span><span style="color:#ffb964;">SDKMAN!
</span><span style="color:#ffb964;">script:</span><span> 5.20.0
</span><span style="color:#ffb964;">native:</span><span> 0.7.14 (linux x86_64)
</span><span>
</span><span>(</span><span style="color:#ffb964;">base</span><span>) dich@uos:</span><span style="color:#ffb964;">~</span><span>$ gradle</span><span style="color:#ffb964;"> -v
</span><span>
</span><span style="color:#ffb964;">------------------------------------------------------------
</span><span style="color:#ffb964;">Gradle</span><span> 8.10.2
</span><span style="color:#ffb964;">------------------------------------------------------------
</span><span>
</span><span style="color:#ffb964;">Build</span><span> time: 2024-09-23 21:28:39 UTC
</span><span style="color:#ffb964;">Revision:</span><span> 415adb9e06a516c44b391edff552fd42139443f7
</span><span>
</span><span style="color:#ffb964;">Kotlin:</span><span> 1.9.24
</span><span style="color:#ffb964;">Groovy:</span><span> 3.0.22
</span><span style="color:#ffb964;">Ant:</span><span> Apache Ant(TM) </span><span style="color:#ffb964;">version</span><span> 1.10.14 compiled on August 16 2023
</span><span style="color:#ffb964;">Launcher</span><span> JVM: 17.0.16 (Ubuntu 17.0.16+8-Ubuntu-0ubuntu124.04.1)
</span><span style="color:#ffb964;">Daemon</span><span> JVM: /usr/lib/jvm/java-17-openjdk-amd64 (no JDK specified, using current Java home)
</span><span style="color:#ffb964;">OS:</span><span> Linux 6.14.0-35-generic amd64
</span><span>
</span><span>(</span><span style="color:#ffb964;">base</span><span>) dich@uos:</span><span style="color:#ffb964;">~</span><span>/Git/android-templates$ kotlin</span><span style="color:#ffb964;"> -version
</span><span style="color:#ffb964;">Kotlin</span><span> version 1.6.21-release-334 (JRE 21.0.8+9-Ubuntu-0ubuntu124.04.1)
</span><span>(</span><span style="color:#ffb964;">base</span><span>) dich@uos:</span><span style="color:#ffb964;">~</span><span>/Git/android-templates/template-compose$ kscript</span><span style="color:#ffb964;"> -v
</span><span style="color:#ffb964;">Copyright</span><span> : 2022 Holger Brandl
</span><span style="color:#ffb964;">License</span><span> : MIT
</span><span style="color:#ffb964;">Version</span><span> : v4.0.3
</span><span style="color:#ffb964;">Website</span><span> : https://github.com/holgerbrandl/kscript
</span><span style="color:#ffb964;">A</span><span> new version (v4.2.0) </span><span style="color:#ffb964;">of</span><span> kscript is available.
</span><span style="color:#ffb964;">Kotlin</span><span> : 2.1.10-release-473
</span><span style="color:#ffb964;">Java</span><span> : JRE 17.0.16+8
</span></code></pre>
<h2 id="keyfang-an">Key方案</h2>
<p>构建Release包需要密钥签名验证可以使用传统的明文配置或者使用密钥管理器.</p>
<h3 id="xiang-tong-bu-fen">相同部分</h3>
<ul>
<li>生成密钥</li>
</ul>
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#ffb964;">keytool -genkey -v </span><span>\
</span><span style="color:#ffb964;"> -keystore ~</span><span>/.android/jetlagged-release.keystore \
</span><span style="color:#ffb964;"> -alias</span><span> jetlagged \
</span><span style="color:#ffb964;"> -keyalg</span><span> RSA \
</span><span style="color:#ffb964;"> -keysize</span><span> 2048 \
</span><span style="color:#ffb964;"> -validity</span><span> 10000
</span></code></pre>
<ul>
<li>修改app/build.gradle.kts</li>
</ul>
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span> </span><span style="color:#ffb964;">signingConfigs </span><span>{
</span><span> create(</span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">release</span><span style="color:#556633;">&quot;</span><span>) {
</span><span> storeFile = System.getenv(</span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">KEYSTORE_FILE</span><span style="color:#556633;">&quot;</span><span>)?.let { file(it) }
</span><span> storePassword = System.getenv(</span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">KEYSTORE_PASSWORD</span><span style="color:#556633;">&quot;</span><span>)
</span><span> keyAlias = System.getenv(</span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">KEY_ALIAS</span><span style="color:#556633;">&quot;</span><span>)
</span><span> keyPassword = System.getenv(</span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">KEY_PASSWORD</span><span style="color:#556633;">&quot;</span><span>)
</span><span> }
</span><span> }
</span><span>
</span><span> </span><span style="color:#ffb964;">buildTypes </span><span>{
</span><span> release {
</span><span> signingConfig = signingConfigs.getByName(</span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">release</span><span style="color:#556633;">&quot;</span><span>) // 添加这行
</span><span> isMinifyEnabled = true
</span><span> proguardFiles(
</span><span> getDefaultProguardFile(</span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">proguard-android-optimize.txt</span><span style="color:#556633;">&quot;</span><span>),
</span><span> </span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">proguard-rules.pro</span><span style="color:#556633;">&quot;
</span><span> )
</span><span> }
</span><span> }
</span></code></pre>
<h3 id="chuan-tong-fang-fa">传统方法</h3>
<ul>
<li>创建配置文件</li>
</ul>
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#ffb964;">cat </span><span>&gt; </span><span style="color:#ffb964;">~</span><span>/.android-signing-secrets </span><span style="color:#99ad6a;">&lt;&lt; </span><span style="color:#556633;">&#39;</span><span style="color:#8fbfdc;">EOF</span><span style="color:#556633;">&#39;
</span><span style="color:#99ad6a;">export KEYSTORE_FILE=&quot;$HOME/.android/jetlagged-release.keystore&quot;
</span><span style="color:#99ad6a;">export KEYSTORE_PASSWORD=&quot;你的keystore密码&quot;
</span><span style="color:#99ad6a;">export KEY_ALIAS=&quot;jetlagged&quot;
</span><span style="color:#99ad6a;">export KEY_PASSWORD=&quot;你的key密码&quot;
</span><span style="color:#8fbfdc;">EOF
</span><span>
</span><span style="color:#888888;"># 设置权限
</span><span style="color:#ffb964;">chmod</span><span> 600 </span><span style="color:#ffb964;">~</span><span>/.android-signing-secrets
</span><span>
</span><span style="color:#888888;"># 添加到 gitignore (全局)
</span><span>echo </span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">.android-signing-secrets</span><span style="color:#556633;">&quot; </span><span>&gt;&gt; </span><span style="color:#ffb964;">~</span><span>/.gitignore_global
</span></code></pre>
<ul>
<li>flake配置</li>
</ul>
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#888888;"># Auto load Key
</span><span style="color:#8fbfdc;">if </span><span>[ </span><span style="color:#ffb964;">-f </span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">$</span><span style="color:#ffb964;">HOME</span><span style="color:#99ad6a;">/.android-signing-secrets</span><span style="color:#556633;">&quot; </span><span>]; </span><span style="color:#8fbfdc;">then
</span><span> source </span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">$</span><span style="color:#ffb964;">HOME</span><span style="color:#99ad6a;">/.android-signing-secrets</span><span style="color:#556633;">&quot;
</span><span> echo </span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">KeyOK</span><span style="color:#556633;">&quot;
</span><span style="color:#8fbfdc;">fi
</span></code></pre>
<h3 id="xian-dai-fang-fa">现代方法</h3>
<ul>
<li>安装libsecret包</li>
<li>keepassxc新建Android群组添加条目<code>android_key_password</code><code>android_keystore_password</code></li>
<li>设置密码,和上面生成的相同;</li>
<li>在条目的高级-属性中添加<code>name/android_key_password</code><code>name/android_keystore_password</code></li>
<li>打开设置-保密服务集成公开Android文件夹</li>
<li>flake中写</li>
</ul>
<pre data-lang="bash" style="background-color:#151515;color:#e8e8d3;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#888888;"># Release Key
</span><span style="color:#8fbfdc;">export </span><span style="color:#ffb964;">KEYSTORE_FILE</span><span>=</span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">$</span><span style="color:#ffb964;">HOME</span><span style="color:#99ad6a;">/.android/jetlagged-release.keystore</span><span style="color:#556633;">&quot;
</span><span style="color:#8fbfdc;">export </span><span style="color:#ffb964;">KEY_ALIAS</span><span>=</span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">jetlagged</span><span style="color:#556633;">&quot;
</span><span style="color:#8fbfdc;">export </span><span style="color:#ffb964;">KEYSTORE_PASSWORD</span><span>=</span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">$(</span><span style="color:#ffb964;">secret-tool</span><span style="color:#99ad6a;"> lookup name android_keystore_password)</span><span style="color:#556633;">&quot;
</span><span style="color:#8fbfdc;">export </span><span style="color:#ffb964;">KEY_PASSWORD</span><span>=</span><span style="color:#556633;">&quot;</span><span style="color:#99ad6a;">$(</span><span style="color:#ffb964;">secret-tool</span><span style="color:#99ad6a;"> lookup name android_key_password)</span><span style="color:#556633;">&quot;
</span></code></pre>
<hr />
<p><strong>Done.</strong></p>
</div>
<div class="pagination">
<div class="pagination__title">
<span class="pagination__title-h">Thanks for reading! Read other posts?</span>
<hr />
</div>
<div class="pagination__buttons">
<span class="button previous">
<a href="https://blog.dich.bid/linux-2-stm32/">
<span class="button__icon"></span>&nbsp;
<span class="button__text">Linux-STM32开发环境部署</span>
</a>
</span>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="footer__inner">
<div class="copyright">
<span>©
2025
Dichgrem</span>
<span class="copyright-theme">
<span class="copyright-theme-sep"> :: CC BY-SA 4.0 :: A friend comes from distant lands</span>
</a>
</span>
</div>
</div>
</footer>
</div>
</body>
</html>

View File

@@ -107,6 +107,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/awesome-openwrt/">综合工程:OpenWrt路由部署与软件编译</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2023-08-12
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/zong-he-gong-cheng/">#综合工程</a></span>
<div class="post-content">
<p>前言 openwrt 是一个自由的、兼容性好的嵌入式 linux 发行版。作为软路由玩家必备的一款神器可以实现诸如去广告多拨和科学上网等多种功能。本文介绍openwrt在各种平台上的部署流程。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/awesome-openwrt/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/awesome-pve-mcsm/">综合工程:PVE安装与MC服务器搭建</a></h1>
<div class="post-meta-inline">

View File

@@ -107,6 +107,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-baci/">乱七八糟:Baci实验笔记</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-04-23
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 BACI是一个简化的并发程序模拟器这里对其语法与运行环境进行说明。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-baci/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-lazyvim/">乱七八糟:lazyvim快速上手</a></h1>
<div class="post-meta-inline">
@@ -235,39 +268,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-markdown/">乱七八糟:Markdown使用快速教程</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-04-08
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 本文为 Markdown 教程,内容涵盖 Markdown 的历史、作用、基本语法和显示效果可以在github将本文的源码拷贝供大家参考和学习。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-markdown/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -107,6 +107,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-markdown/">乱七八糟:Markdown使用快速教程</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-04-08
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 本文为 Markdown 教程,内容涵盖 Markdown 的历史、作用、基本语法和显示效果可以在github将本文的源码拷贝供大家参考和学习。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-markdown/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-gfs/">乱七八糟:GFS项目考量笔记</a></h1>
<div class="post-meta-inline">
@@ -235,39 +268,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-homenet-1/">家庭组网系列(1):方案与设备选购</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-01-21
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 本文介绍一些家庭组网方案和家庭网络升级方案。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-homenet-1/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -107,6 +107,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-homenet-1/">家庭组网系列(1):方案与设备选购</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2025-01-21
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 本文介绍一些家庭组网方案和家庭网络升级方案。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-homenet-1/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-2024/">乱七八糟:2024年度总结</a></h1>
<div class="post-meta-inline">
@@ -235,39 +268,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-cslearning/">乱七八糟:计算机科学优质视频</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-05-31
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 CSdiy珠玉在前,为CS教育做出了极大贡献.这里分享一些优质的CS学习相关视频.</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-cslearning/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -107,6 +107,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-cslearning/">乱七八糟:计算机科学优质视频</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-05-31
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 CSdiy珠玉在前,为CS教育做出了极大贡献.这里分享一些优质的CS学习相关视频.</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-cslearning/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/windows-5-py/">Windows系列(5):Python开发配置</a></h1>
<div class="post-meta-inline">
@@ -235,39 +268,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/windows-2-set/">Windows系列(2):常用操作与配置</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-05-25
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/windows/">#Windows</a></span>
<div class="post-content">
<p>前言 Windows操作系统作为全球最为普及的桌面操作系统之一其用户界面的设计非常经典但存在许多不足之处本篇记录一些常用脚本。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/windows-2-set/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -107,6 +107,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/windows-2-set/">Windows系列(2):常用操作与配置</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-05-25
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/windows/">#Windows</a></span>
<div class="post-content">
<p>前言 Windows操作系统作为全球最为普及的桌面操作系统之一其用户界面的设计非常经典但存在许多不足之处本篇记录一些常用脚本。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/windows-2-set/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/windows-1-install/">Windows系列(1):系统安装与设置</a></h1>
<div class="post-meta-inline">
@@ -235,39 +268,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-opensource/">乱七八糟:开源软件与协议</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-03-03
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 本文旨在介绍开源以及开源许可证,这些许可证规定了使用、修改和分发开源软件的条件。通过了解不同类型的开源许可证及其特点,读者将能够更好地理解在开发和使用开源软件时的法律和道德责任。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-opensource/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -107,6 +107,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-opensource/">乱七八糟:开源软件与协议</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-03-03
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 本文旨在介绍开源以及开源许可证,这些许可证规定了使用、修改和分发开源软件的条件。通过了解不同类型的开源许可证及其特点,读者将能够更好地理解在开发和使用开源软件时的法律和道德责任。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-opensource/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-how-email-works-2/">网络艺术:自建域名邮箱</a></h1>
<div class="post-meta-inline">
@@ -235,39 +268,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-isps/">网络艺术:国内&#x2F;国际骨干ISP线路整理</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-02-10
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 本文主要探讨的是IPv4网络国际出口线路的质量分析以及各大ISP的介绍。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-isps/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -107,6 +107,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/network-isps/">网络艺术:国内&#x2F;国际骨干ISP线路整理</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2024-02-10
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/network/">#Network</a></span>
<div class="post-content">
<p>前言 本文主要探讨的是IPv4网络国际出口线路的质量分析以及各大ISP的介绍。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/network-isps/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-git/">乱七八糟:Git使用简明手册</a></h1>
<div class="post-meta-inline">
@@ -235,39 +268,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-accurate-pronunciation/">乱七八糟:常见发音错误术语集合</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2023-08-25
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 中文和英语发音习惯不同,容易引起误解。本文旨在帮助您准确发音常见的科技术语,欢迎随时补充。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-accurate-pronunciation/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

View File

@@ -107,6 +107,39 @@
<div class="posts">
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-accurate-pronunciation/">乱七八糟:常见发音错误术语集合</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2023-08-25
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/luan-qi-ba-zao/">#乱七八糟</a></span>
<div class="post-content">
<p>前言 中文和英语发音习惯不同,容易引起误解。本文旨在帮助您准确发音常见的科技术语,欢迎随时补充。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/about-accurate-pronunciation/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/about-calling-cards/">乱七八糟:流量卡购买与套路</a></h1>
<div class="post-meta-inline">
@@ -235,39 +268,6 @@
</div>
</div>
<div class="post on-list">
<h1 class="post-title"><a href="https://blog.dich.bid/awesome-openwrt/">综合工程:OpenWrt路由部署与软件编译</a></h1>
<div class="post-meta-inline">
<span class="post-date">
2023-08-12
</span>
</div>
<span class="post-tags-inline">
:: tags:&nbsp;
<a class="post-tag" href="https://blog.dich.bid/tags/zong-he-gong-cheng/">#综合工程</a></span>
<div class="post-content">
<p>前言 openwrt 是一个自由的、兼容性好的嵌入式 linux 发行版。作为软路由玩家必备的一款神器可以实现诸如去广告多拨和科学上网等多种功能。本文介绍openwrt在各种平台上的部署流程。</p>
</div>
<div>
<!-- &#xFE0E; -- force text style - some devices render this as emoji -->
<a class="read-more button" href="https://blog.dich.bid/awesome-openwrt/">
<span class="button__text">Read more</span>&nbsp;
<span class="button__icon">&#8617;&#xFE0E;</span>
</a>
</div>
</div>
<div class="pagination">
<div class="pagination__buttons">

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
{"version":"1.3.0","languages":{"en":{"hash":"en_27a4fdcfc4","wasm":"en","page_count":78}}}
{"version":"1.3.0","languages":{"en":{"hash":"en_b39f2e47c5","wasm":"en","page_count":79}}}

Binary file not shown.

View File

@@ -153,6 +153,10 @@
<loc>https://blog.dich.bid/linux-2-stm32/</loc>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://blog.dich.bid/linux-3-android-dev/</loc>
<lastmod>2025-11-20</lastmod>
</url>
<url>
<loc>https://blog.dich.bid/network-aria2/</loc>
<lastmod>2025-04-15</lastmod>

View File

@@ -113,7 +113,7 @@
<li class="tag-list">
<a href="https://blog.dich.bid/tags/linux/">
Linux (3 posts)
Linux (4 posts)
</a>
</li>

View File

@@ -110,7 +110,7 @@ Dich&#x27;s Blog</title>
<div class="post">
<h1 class="post-title">
tag: #Linux
(3 posts)
(4 posts)
</h1>
<a href="https://blog.dich.bid/tags">
@@ -119,6 +119,16 @@ Dich&#x27;s Blog</title>
<ul><li class="post-list">
<a href="https://blog.dich.bid/linux-3-android-dev/">
<span class="post-date">2025-11-20</span>
:: <span class="post-list-title">Linux-Android开发环境部署</span></a>
<span class="post-tags-inline">
::
<a class="post-tag" href="https://blog.dich.bid/tags/linux/">#Linux</a></span>
</li>
<li class="post-list">
<a href="https://blog.dich.bid/linux-2-stm32/">
<span class="post-date">2025-07-20</span>
:: <span class="post-list-title">Linux-STM32开发环境部署</span></a>