<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>音唯的个人小站</title><description>音唯的个人小站：记录开发、音乐创作与学习。</description><link>https://aritxonly.github.io</link><item><title>“岛”究竟是怎样的交互？——关于澎湃OS3超级岛的思考</title><link>https://aritxonly.github.io/posts/250912-about-xiaomi-hyper-island</link><guid isPermaLink="true">https://aritxonly.github.io/posts/250912-about-xiaomi-hyper-island</guid><pubDate>Wed, 27 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;想了很久该如何评价HyperOS 3 Beta，思来想去都找不到一个确切的词去描述这次内测的大版本更新。那不妨从另一个点切入，我们聊聊这个“岛”。&lt;/p&gt;
&lt;p&gt;HyperOS3发布后，国内外主流厂商全部上岛完成。从&lt;strong&gt;灵动岛&lt;/strong&gt;(iOS)到&lt;strong&gt;原子岛&lt;/strong&gt;(OriginOS)，从&lt;strong&gt;流体云&lt;/strong&gt;(ColorOS)到&lt;strong&gt;实况窗&lt;/strong&gt;(HarmonyOS)，从&lt;strong&gt;ProgressStyle&lt;/strong&gt;(Google Android)到&lt;strong&gt;超级岛&lt;/strong&gt;(HyperOS)。国内外厂商不一而同的选择了统一的范例-灵动岛，并且将它作为了自己系统的一部分。为什么？这或许是解决了信息爆炸时代人机交互的一大难题的一个方式。不过在这之前，我想首先先聊一聊我与&quot;岛&quot;的初见。&lt;/p&gt;
&lt;h2&gt;我与岛，从初见到思考&lt;/h2&gt;
&lt;p&gt;第一次了解灵动岛是高三，2022年iPhone14Pro的首秀。我还记得那个居家隔离的我看到苹果用这样的方式遮住了Face ID庞大的硬件挖孔，并将摄像头周围的区域巧妙的作为了活动的展示区。最初惊艳我的是它的动画，我并不认为它的功能能够带来什么。&lt;strong&gt;和很多人一样，我都认为它是&quot;💩上雕花&quot;的功能。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;直到2024年，我换到了iPhone15，灵动岛再一次震撼了我。一旦成为使用者，我就忽略掉了绝大多数灵动的动画，忽略掉了挖孔本身的存在。&lt;strong&gt;所有会被注意到的，只有作为焦点的信息&lt;/strong&gt;：打车、导航、音乐、计时、外卖等等。它们带来的便利让我意识到，&lt;strong&gt;在信息爆炸的时代，多任务处理的我们需要这样的方式，让我们更快的注意到更高优先级的信息。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;可是，iOS始终逃离不掉的点在于：受制于硬件设计，iPhone的“岛”永远是围绕着硕大的FaceID模组展开的。这意味着物理空间限制了灵动岛的内容显示。于是，我们看到iPhone的灵动岛的显示范围极为局限，一旦有较多信息要显示，就会大量挤占状态栏空间，从而造成了时间电量等信息的丢失。&lt;/p&gt;
&lt;h2&gt;安卓先行者的解决方案：流体云&lt;/h2&gt;
&lt;p&gt;后来换到了OPPO，流体云提供了安卓最全的适配——甚至一定程度上超过了iOS。这样的便利感与在杂乱中迅速聚焦有效信息的能力继续增加。&lt;/p&gt;
&lt;p&gt;流体云的解决方案是违背iOS用户的直觉的：它通过单击的方式展开流体云，通过长按的方式打开对应的APP；流体云每次只能显示一个，如果有更多流体云会用小括号代表可以左右滑动；展开的流体云以堆叠的形式出现在屏幕上。&lt;/p&gt;
&lt;p&gt;这无疑是OPPO对岛的形态的一个新思考：&lt;strong&gt;用单次信息显示，让用户聚焦在“最重要”的事上，同时辅以展开的形式，平铺地展示所有的“重要信息”。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;最后上岛的澎湃，不断试错&lt;/h2&gt;
&lt;p&gt;**焦点通知，是小米在探索自己的“岛”的过程中的一个过渡产物，也是一个失败的尝试。**小米抓住了岛的本质:以一个高效的方式聚焦到实时重要的任务上。然而，作为工程实践的焦点通知并没有做到这一点。它没办法展开，你必须下拉通知栏；它也占用了状态栏显示通知的宝贵空间......&lt;/p&gt;
&lt;p&gt;换到小米15，我无一刻想念流体云带来的便利：相比焦点通知，它一次能显示更多的信息，可以直接展开而不需要下滑通知栏......&lt;/p&gt;
&lt;p&gt;发布会上，金凡说：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;岛对用户最重要的价值就是方便了解正在发生，需要重点关注的信息。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这一刻我突然理解了我为什么喜欢灵动岛这个形式，不是因为它像苹果，而是因为它直观。即使超级岛以焦点通知的形式存在，我也会觉得它好用，因为它简化了交互。我不需要下拉通知栏看到所有的实时信息了，它像灵动岛一样可以一次显示多个实时信息，并且可以通过左右滑动的方式选择要显示哪些；它像流体云一样可以通过点击展开，并且快速查看所有信息；它像原子岛一样支持拖拽操作，不过它是拖拽分享岛的内容，而不是把内容拖拽到岛里；并且，它补全了流体云和原子岛的遗憾：是的，那个苹果用户快十年没用上的小窗功能，也被集成到了超级岛里。我不用再点击进入APP了，我只用下拉就可以用小窗的形式快速查看所有信息。最后发布的，集百家之所长的超级岛从交互上打出了新的高度。&lt;/p&gt;
&lt;p&gt;但是，目前阶段的超级岛不是没有问题。动画简单，缺少灵动感，也会有些违和；适配应用还没有到O和苹果的量级。&lt;/p&gt;
&lt;p&gt;但是这并不妨碍我给它很高的评价。就像澎湃OS3在很多地方成为一个了成熟的系统，&lt;strong&gt;它丢掉了一些自己的特立独行，但是它也给出了大家都有的东西的、属于自己的答案。&lt;/strong&gt;&lt;/p&gt;
</content:encoded><author>Aritx音唯</author></item><item><title>在macOS上使用OrbStack配置编译原理实验环境指北</title><link>https://aritxonly.github.io/posts/250919-create-ubuntu-for-compiler-exp</link><guid isPermaLink="true">https://aritxonly.github.io/posts/250919-create-ubuntu-for-compiler-exp</guid><pubDate>Fri, 19 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;安装OrbStack&lt;/h2&gt;
&lt;p&gt;前往&lt;a href=&quot;orbstack.dev&quot;&gt;官网&lt;/a&gt;下载。安装后打开OrbStack。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/image-20250919104109424.png&quot; alt=&quot;image-20250919104109424&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;创建OrbStack虚拟机&lt;/h2&gt;
&lt;p&gt;在Linux中点击Machines，点击右上角的➕号。选择Ubuntu，Version选择22.04/24.04（无所谓，因为后续都要装GCC-7），Architecture选择x86-64(emulated)。点击Create创建虚拟机。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/image-20250919102201966.png&quot; alt=&quot;image-20250919102201966&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在终端输入&lt;code&gt;orb start $你的虚拟机的名字&lt;/code&gt;启动虚拟机。输入&lt;code&gt;orb&lt;/code&gt;命令进入虚拟机。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./assets/image-20250919102636150.png&quot; alt=&quot;image-20250919102636150&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;配置实验环境&lt;/h2&gt;
&lt;h3&gt;挂载工程文件夹到虚拟机&lt;/h3&gt;
&lt;p&gt;在虚拟机bash输入&lt;code&gt;cd&lt;/code&gt;回到主目录。我们要建立主目录和macOS工程目录的链接。&lt;/p&gt;
&lt;p&gt;以我自己的路径为例。我的macOS工程目录在&lt;code&gt;/Users/aritxonly/Codes/Compilers/exp&lt;/code&gt;中，我想把&lt;code&gt;exp&lt;/code&gt;文件夹挂载到虚拟机的&lt;code&gt;~/compiler&lt;/code&gt;中，我只需要创建一个compiler文件夹，并简单输入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo mount --bind /Users/aritxonly/Codes/Compilers/exp ~/compiler
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;如果想持久化这个更改，每次开机时自动挂载，可以使用vim编辑&lt;code&gt;/etc/fstab&lt;/code&gt;加上一行&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/Users/aritxonly/Codes/Compilers/exp  /home/aritxonly/compiler  none  bind  0  0
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;配置镜像源&lt;/h3&gt;
&lt;p&gt;除了实验手册上需要的NJU镜像源外，在Ubuntu22.04上还需要配置被归档的镜像源。否则，直接安装会报错：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;E: Unable to locate package gcc-7
E: Package &apos;g++-7&apos; has no installation candidate
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在&lt;code&gt;/etc/apt/sources.list&lt;/code&gt;中加入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# stable add by , in order to install g++7
deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;安装GCC7&lt;/h3&gt;
&lt;p&gt;配置好镜像源后，输入&lt;code&gt;sudo apt update&lt;/code&gt;和&lt;code&gt;sudo apt upgrade&lt;/code&gt;更新软件包。随后就可以根据实验手册安装GCC-7&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install gcc-7 g++-7
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在链接gcc-7到&lt;code&gt;gcc&lt;/code&gt;之前，需要解链接原有的gcc-14&lt;/p&gt;
&lt;p&gt;随后链接：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo ln -s /usr/bin/gcc-7 /usr/bin/gcc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;建议在主目录创建shell脚本&lt;code&gt;link_gcc7.sh&lt;/code&gt;并输入以下内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
sudo ln -s /usr/bin/gcc-7 /usr/bin/gcc
if [ $? -eq 0 ]; then
    echo &quot;Successfully linked&quot;
else
    echo &quot;Link failed: $?&quot;
fi
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;输入&lt;code&gt;chmod +x link_gcc7.sh&lt;/code&gt;后，每次进入虚拟机时运行即可。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;此外，更推荐的方法是：使用优先级配置&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7 --slave /usr/bin/gcov gcov /usr/bin/gcov-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 14 --slave /usr/bin/g++ g++ /usr/bin/g++-7 --slave /usr/bin/gcov gcov /usr/bin/gcov-14sudo update-alternatives --config gcc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;./assets/image-20250919110143891.png&quot; alt=&quot;image-20250919110143891&quot; /&gt;&lt;/p&gt;
&lt;p&gt;输入&lt;code&gt;gcc -v&lt;/code&gt;，若输出版本号为7.5，则gcc-7安装成功。&lt;/p&gt;
&lt;h2&gt;安装make&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install make
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;安装Flex与Bison&lt;/h2&gt;
&lt;p&gt;依次输入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install flex
sudo apt install bison
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;即可安装。&lt;/p&gt;
&lt;p&gt;Ubuntu22.04安装的bison可能为最新版本3.8.2，&lt;strong&gt;如果需要与实验环境完全相同的版本，需要手动安装&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;首先卸载bison&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt remove bison
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;随后在阿里云镜像站拉取对应版本的bison安装包&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget https://mirrors.aliyun.com/gnu/bison/bison-3.5.1.tar.xz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;如果提示缺少wget，运行&lt;code&gt;sudo apt install wget&lt;/code&gt;即可&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;安装xz-utils用于解压：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install xz-utils
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;解压安装包：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tar -xvJf bison-3.5.1.tar.xz 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;进入bison的解压目录并安装：（可能需要超级用户权限）&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd bison-3.5.1/
./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;其他需要做的准备&lt;/h2&gt;
&lt;h3&gt;配置git与github代码托管&lt;/h3&gt;
&lt;p&gt;在工程目录输入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git init
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;并参考&lt;a href=&quot;https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent&quot;&gt;这个教程&lt;/a&gt;配置Github代码托管所需的SSH key&lt;/p&gt;
&lt;h3&gt;配置VSCode/Cursor&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;按照Remote ssh的操作进行安装配置&lt;/strong&gt;，对应的ssh命令是&lt;code&gt;ssh uname@orb&lt;/code&gt;&lt;/p&gt;
</content:encoded><author>Aritx音唯</author></item><item><title>apktool: 如何反编译apk修改图标？</title><link>https://aritxonly.github.io/posts/251012-replace-icon</link><guid isPermaLink="true">https://aritxonly.github.io/posts/251012-replace-icon</guid><pubDate>Sun, 12 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;免责声明&lt;/p&gt;
&lt;p&gt;本教程仅用于&lt;strong&gt;个人学习、研究与界面美化&lt;/strong&gt;等&lt;strong&gt;非商业性用途&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;Android 应用程序（APK）及其资源、代码、图标、签名文件均受开发者著作权及相关法律保护。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;任何形式的反编译、修改、再分发或重新上架，若未经版权持有人&lt;strong&gt;明确书面授权&lt;/strong&gt;，可能违反著作权法、计算机软件保护条例、应用商店开发者政策及用户协议。&lt;/li&gt;
&lt;li&gt;若您仅在&lt;strong&gt;本地设备上自用&lt;/strong&gt;，请勿以任何方式将修改后的应用进行公开传播、分享、销售或用于盈利目的。&lt;/li&gt;
&lt;li&gt;修改及重新签名操作可能破坏应用完整性与安全性，导致数据丢失、更新异常、或触发安全警告，请务必&lt;strong&gt;自行承担风险&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;建议在测试机或虚拟环境中操作，并保留原始 APK 与数据备份。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;如用于第三方 APP（闭源项目）&lt;/strong&gt;，请务必确认开发者允许此类修改行为。若开发者未明确许可，请立即停止操作。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;前置准备&lt;/h2&gt;
&lt;p&gt;在开始反编译修改app图标之前，&lt;strong&gt;你需要有以下准备&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;脑子&lt;/strong&gt;：是的，首先要带上它。遇到问题先动脑，再搜索，再问 AI。不思考、不阅读、不查资料直接开问——本人一律不回答。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一定的安卓开发基础&lt;/strong&gt;：至少得知道 APK 是个什么东西，资源文件长什么样，res/ 文件夹里那些奇奇怪怪的名字（mipmap、drawable、values）是干啥的。不要求你会写 Java/Kotlin，但起码得看得懂 XML，知道签名、包名、图标在哪个目录。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一台电脑&lt;/strong&gt;：Windows、macOS、Linux 都行。能打开终端（或 PowerShell），能装 JDK，能用 apktool 命令。没电脑、只靠手机 Termux？行，但请自行折腾，后果自负。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;需要替换的图标资源文件&lt;/strong&gt;：最好包含了正方形、透明背景的前景和正方形的背景。需要png格式或svg格式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;需要修改的apk文件与备份&lt;/strong&gt;：一定要进行备份！！！&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在电脑上通过官网https://apktool.org/docs/install安装apktool并且将其在终端中配置好后，以我修改的Via浏览器的图标为例，让我们开始今天的教程。&lt;/p&gt;
&lt;h2&gt;提取apk&lt;/h2&gt;
&lt;p&gt;解包apk前，建议先通过MT管理器查看是否有资源混淆。点击提取的apk，点击查看，观察目录结构。如果内部是诸如&lt;code&gt;a&lt;/code&gt;、&lt;code&gt;b&lt;/code&gt;、&lt;code&gt;c&lt;/code&gt;等看不出具体内容的apk，则代表它经过了资源混淆。&lt;img src=&quot;./assets/IMG_20251012_103135.jpg&quot; alt=&quot;IMG_20251012_103135&quot; /&gt;&lt;/p&gt;
&lt;p&gt;此时我们只需要点击apk，点击左下角的功能，使用res反资源混淆即可。&amp;lt;img src=&quot;./assets/Screenshot_2025-10-12-10-34-19-433_bin.mt.plus-ed.jpg&quot; alt=&quot;Screenshot_2025-10-12-10-34-19-433_bin.mt.plus-ed&quot; style=&quot;zoom: 33%;&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;我们将反资源混淆的apk文件（通常为xxx_anti.apk）发送到电脑上。新建工程文件夹，把反资源混淆的apk放进去，开始解包。&lt;img src=&quot;./assets/image-20251012103628684.png&quot; alt=&quot;image-20251012103628684&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;解包apk&lt;/h2&gt;
&lt;p&gt;在工程文件夹打开终端/cmd（具体操作在这里不过多赘述，可以搜索网络），随后输入命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apktool d 你的apk名字.apk -o 存放反编译结果的文件夹名称
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;回车后，你会看到如下结果：&lt;img src=&quot;./assets/image-20251012103938911.png&quot; alt=&quot;image-20251012103938911&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这时，进入我们刚刚生成的文件夹（我这里为&lt;code&gt;via_src_alt&lt;/code&gt;），就可以看到apk反编译的结果了。&lt;img src=&quot;./assets/image-20251012104115395.png&quot; alt=&quot;image-20251012104115395&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;修改图标&lt;/h2&gt;
&lt;p&gt;图标文件一般位于名为&lt;code&gt;mipmap-*&lt;/code&gt;的文件夹下方。对于Via，主要是这两个文件夹：&amp;lt;img src=&quot;./assets/image-20251012104217233.png&quot; alt=&quot;image-20251012104217233&quot; style=&quot;zoom:50%;&quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;此时我们需要分情况讨论：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mipmap中为&lt;code&gt;.png&lt;/code&gt;格式的文件&lt;/li&gt;
&lt;li&gt;mipmap中为&lt;code&gt;.xml&lt;/code&gt;格式的文件&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;处理&lt;code&gt;.png&lt;/code&gt;格式图标&lt;/h3&gt;
&lt;p&gt;Via浏览器的&lt;code&gt;mipmap-xxhdpi&lt;/code&gt;中的文件是&lt;code&gt;ic_launcher.png&lt;/code&gt;，是一个png格式的图标。针对这个图标，我们只需要把准备好的合成的、不分层的png图标替换进去即可。&amp;lt;img src=&quot;./assets/image-20251012104658521.png&quot; alt=&quot;image-20251012104658521&quot; style=&quot;zoom: 50%;&quot; /&amp;gt;&amp;lt;img src=&quot;./assets/image-20251012104633159.png&quot; alt=&quot;image-20251012104633159&quot; style=&quot;zoom: 50%;&quot; /&amp;gt;&lt;/p&gt;
&lt;h3&gt;处理&lt;code&gt;.xml&lt;/code&gt;格式图标&lt;/h3&gt;
&lt;p&gt;使用文本编辑器（记事本、VSCode、CotEditor都可以）打开&lt;code&gt;ic_launcher.xml&lt;/code&gt;，分析分层自适应图标的结构。在Via中&lt;code&gt;mipmap-anydpi-v26/ic_launcher.xml&lt;/code&gt;就是负责做这个的。&lt;/p&gt;
&lt;p&gt;一个常见的分层图标文件如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;adaptive-icon
  xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;background android:drawable=&quot;@color/color0024&quot; /&amp;gt;
    &amp;lt;foreground android:drawable=&quot;@drawable/draw0055&quot; /&amp;gt;
    &amp;lt;monochrome android:drawable=&quot;@drawable/draw0056&quot; /&amp;gt;
&amp;lt;/adaptive-icon&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中，字段的作用分别如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;background&amp;gt;&lt;/code&gt; 背景层：
这个决定了图标底色是什么。
它通常引用一个颜色资源，比如 &lt;code&gt;@color/color0024&lt;/code&gt;，也可以是图片，比如 &lt;code&gt;@drawable/bg_launcher&lt;/code&gt;。
在自适应图标中，背景会被系统遮罩成圆形或方形（取决于设备 Launcher），所以底色要够简洁，别放复杂纹理。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;foreground&amp;gt;&lt;/code&gt; 前景层：
这就是你真正看到的图标主体，也就是你要替换的那张图。
一般是 &lt;code&gt;@drawable/&lt;/code&gt; 下的一张 PNG、SVG 或 XML 图层（layer-list/vector）。
它会叠在背景上方，并遵守系统的“安全区”边界（默认四周留 20% 空白，避免裁切）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;monochrome&amp;gt;&lt;/code&gt; 单色图层（Android 13+ 特有）：
这是给 Android 13 及以上系统用的“单色主题图标”素材。也就是所说的莫奈图标。
当系统启用“主题图标”模式时，Launcher 会忽略彩色前景层，只渲染这个灰度图层。
如果没有这个字段，系统会自动灰化前景层。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在我的例子中，由于我想保留Via原本的白色背景，只把前景换成小米浏览器的图标，所以我只演示对&lt;code&gt;foreground&lt;/code&gt;的修改，而不对&lt;code&gt;background&lt;/code&gt;进行修改。这部分可以在AI的协助下完成，因此不用过多赘述。&lt;/p&gt;
&lt;p&gt;我们可以看到，foreground引用的是名为&lt;code&gt;draw0055&lt;/code&gt;的图标资源文件。我们用全局搜索在res文件夹中搜索&lt;code&gt;draw0055&lt;/code&gt;：&lt;img src=&quot;./assets/image-20251012113453715.png&quot; alt=&quot;image-20251012113453715&quot; /&gt;&lt;/p&gt;
&lt;p&gt;可以看到同样有两个文件，一个透明底的&lt;code&gt;draw0055.png&lt;/code&gt;、一个&lt;code&gt;xml&lt;/code&gt;文件。和之前一样，png图片直接进入目录替换即可，注意透明底换透明底，我们把它换成小米浏览器的前景即可。而对于&lt;code&gt;draw0055.xml&lt;/code&gt;文件，我们使用以下方式进行替换：&lt;/p&gt;
&lt;h3&gt;替换&lt;code&gt;.xml&lt;/code&gt;格式资源&lt;/h3&gt;
&lt;p&gt;同样使用文本编辑器进行查看。我们看到Via浏览器中的&lt;code&gt;draw0055.xml&lt;/code&gt;资源内部是类似这样的：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;vector android:height=&quot;108.0dip&quot; android:width=&quot;108.0dip&quot; android:viewportWidth=&quot;216.0&quot; android:viewportHeight=&quot;216.0&quot;
  xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;path android:fillColor=&quot;#ff00a5f6&quot; android:pathData=&quot;...&quot; /&amp;gt;
    &amp;lt;path android:fillColor=&quot;#ffff3e00&quot; android:pathData=&quot;...&quot; /&amp;gt;
    &amp;lt;path android:fillColor=&quot;#ffffb700&quot; android:pathData=&quot;...&quot; /&amp;gt;
&amp;lt;/vector&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这代表这个图标是由矢量图转化的xml文件。&lt;/p&gt;
&lt;p&gt;如果你需要替换的图标本身就是svg格式，可以用Android Studio导入把它转化为xml矢量图。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;如果是png格式的图片，我们需要把这个xml引用到我们的位图资源。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;我们先将这个文件中的内容替换成这样：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;layer-list xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;item&amp;gt;
        &amp;lt;inset
            android:drawable=&quot;@drawable/mi_icon&quot;
            android:inset=&quot;0dp&quot; /&amp;gt;
    &amp;lt;/item&amp;gt;
&amp;lt;/layer-list&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里，我自定义的资源叫做&lt;code&gt;mi_icon&lt;/code&gt;，你可以把它叫做任意名字，并把你要替换的图标命名成 &lt;code&gt;这个名字.png&lt;/code&gt; 放在&lt;code&gt;drawable-nodpi&lt;/code&gt;文件夹中（如果没有则新建）。&lt;code&gt;android:inset&lt;/code&gt;后面的值你可以自行修改，我推荐你先安装后进行回编译看看效果再进行修改。&lt;/p&gt;
&lt;h2&gt;回编译&lt;/h2&gt;
&lt;p&gt;在终端中输入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apktool b 刚刚修改的文件夹名称 -o 回编译后的apk名称.apk
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;./assets/image-20251012114256684.png&quot; alt=&quot;image-20251012114256684&quot; /&gt;&lt;/p&gt;
&lt;p&gt;随后用MT管理器或者任何你喜欢的方式对这个apk进行签名，安装，大功告成。&lt;/p&gt;
</content:encoded><author>Aritx音唯</author></item><item><title>流量时代正在断送媒体的良知：锐评新京报报道南京大学帝王蟹事件</title><link>https://aritxonly.github.io/posts/251104-media-thoughts-about-nju</link><guid isPermaLink="true">https://aritxonly.github.io/posts/251104-media-thoughts-about-nju</guid><pubDate>Tue, 04 Nov 2025 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;“媒体面前，事实似乎不再重要了。”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这几个月我越来越不信任新闻，因为事实往往不是它们让你看到的那样。&lt;/p&gt;
&lt;p&gt;昨天去九食堂，和女朋友盘算着叫几个人一起尝尝没尝过的帝王蟹，今天就被骂上热搜了。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;从数码圈乱象起手&lt;/h3&gt;
&lt;p&gt;我关注的圈子，是无良媒体扎堆的数码圈。&lt;/p&gt;
&lt;p&gt;“比一元硬币还薄”的断章取义、“小字营销”的带节奏、“年轻人的最后一台车”的情绪包装——这些我都看在眼里。但我没有发声。&lt;/p&gt;
&lt;p&gt;我不是小米的“死忠粉”，只是一个喜欢产品、能分辨是非的普通人。用着华为手表、拿着OPPO手机、背着苹果电脑，也装着米家生态。可当我看到那么多人被带偏，被煽动去骂、去信时，我才真正意识到：媒体对公众的影响力有多么恐怖。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;锐评本次事件&lt;/h3&gt;
&lt;p&gt;南大学生十人八人，分享一只帝王蟹又何罪之有呢？&lt;/p&gt;
&lt;p&gt;你们说我们不务学习，尽显奢靡之风——而我告诉你午夜的生命科学楼、计算机楼、电子楼等院楼灯火通明，不止研究生和博士生，还有本科生和教职老师。他们用尽心力，只为了给国家给社会创造更多的价值。&lt;/p&gt;
&lt;p&gt;你们说我们没有积蓄，尽花父母钱财——而我告诉你南京的大学生家教的数量已经超出你们的想象。我的同学们，不是通过家教兼职赚钱，就是通过实习积攒工作经历，亦或是投资理财理财。我们的有能力拼一桌人均150的帝王蟹。&lt;/p&gt;
&lt;p&gt;你们会拿南大前校训“嚼得菜根，做得大事”上纲上线，而我告诉你，奢俭由人，南大学子绝不会因为享用过一餐帝王蟹，就真认为自己是“帝王”了。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;一点冷静的分析&lt;/h3&gt;
&lt;p&gt;情绪发泄之外，不妨跳出这件事情本身，来看看媒体是如何误导群众，而群众又是如何制造出庞大的互联网声量的。&lt;/p&gt;
&lt;p&gt;媒体首先给事件贴上标签，用情绪代替事实，用“高校奢靡”“学生浪费”这样的话术触发公众的愤怒。随后，社交平台的算法捕捉到这种情绪，放大矛盾，推送给更多还没了解真相的用户。于是，一场舆论的狂欢开始了。谁还在乎真相？只要骂，就能被看见。&lt;/p&gt;
&lt;p&gt;在这样的环境里，&lt;strong&gt;一个人的认知，决定了他能看到的东西&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;那些骂南大“奢靡”的人，或许只是看到了自己生活的投射——他们身边确实充斥着攀比、虚荣和浮躁，于是理所当然地认为所有学校都一样。当他们看到一所大学的食堂敢卖帝王蟹，他们不会想到是尝试改革、是多样化供餐，而会本能地嘲讽：“这不就是洗脚城吗？”&lt;/p&gt;
&lt;p&gt;他们眼里的“奢靡之风”，正是他们熟悉的世界；他们嘲笑的“校园堕落”，也许只是南大走在前面的尝试。他们酸的，不是帝王蟹的价格，而是自己学校里没有这样的改变。&lt;/p&gt;
&lt;p&gt;就好像真正的“花粉”也会批驳华为旗舰机系统更新不及时、价格虚高等等不足，而手上拿着低端机的网友却对这些真金白银支持华为的人们口诛笔伐。网络上从来不缺精神股东，网络只是他们的情绪宣泄口。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这就是流量时代最可悲的地方：人们不再追问“事实是什么”，而是急着寻找能让自己情绪有出口的东西。媒体知道这一点，于是不断制造“可以骂”的新闻。群众在骂声中获得快感，而真相被埋在最不值钱的地方。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;是啊，&lt;strong&gt;真相已随那一串串的字符流，消失在了大数据的海洋里&lt;/strong&gt;。&lt;/p&gt;
</content:encoded><author>Aritx音唯</author></item></channel></rss>