HarmonyOS NEXT的发布是一道分界线,它将脱离安卓架构,成为真正独立的操作系统,也被称为"纯血鸿蒙"。
目前已有多家头部企业正加速鸿蒙原生应用开发,包括支付宝、美团、京东、钉钉、小红书、新浪、网易等,覆盖便捷生活、出行文旅、金融便利、社交资讯、生产力工具、影音娱乐、游戏等领域,鸿蒙原生应用版图已基本成形。
对于我们开发者而言,也许是又一次技术升级。随着纯血鸿蒙的横空出世,国内厂商适配鸿蒙的热情空前高涨。
今天遇到个有趣的问题,特此记录一下。
相信大家对于Android项目 中的颜色资源并不陌生,如下图所示:
而鸿蒙项目中的颜色资源是以这种方式存在的,如下图所示:
如果从项目中手动处理这些资源,那将是费时费力还不讨好。
这就需要用脚本来处理。
shell
#!/bin/bash
# 设置输入和输出文件
INPUT_FILE="/Users/XXX/src/main/res/values/colors.xml"
OUTPUT_FILE="colors.json"
# 开始生成 JSON
echo '{"color": [' > "$OUTPUT_FILE"
# 解析 XML 文件并生成 JSON
xmllint --xpath "//color" "$INPUT_FILE" | while read -r line; do
# 提取 name 和 value
name=$(echo "$line" | sed -n 's/.*name="\([^"]*\)".*/\1/p')
value=$(echo "$line" | sed -n 's/.*>\(.*\)<.*/\1/p')
# 添加到 JSON 数组
echo " {\"name\": \"$name\", \"value\": \"$value\"}," >> "$OUTPUT_FILE"
done
# 移除最后一个逗号
sed -i '' -e '$ s/,$//' "$OUTPUT_FILE"
# 结束 JSON 数组
echo "]}" >> "$OUTPUT_FILE"
echo "转换完成,输出文件为 $OUTPUT_FILE"
机智的你发现字符串也一样可以这样做,只需对上述脚本做些许改动即可。
shell
#!/bin/bash
# 设置输入和输出文件
INPUT_FILE="/Users/XXX/src/main/res/values/strings.xml"
OUTPUT_FILE="strings.json"
# 开始生成 JSON
echo '{"string": [' > "$OUTPUT_FILE"
# 解析 XML 文件并生成 JSON
xmllint --xpath "//string" "$INPUT_FILE" | while read -r line; do
# 提取 name 和 value
name=$(echo "$line" | sed -n 's/.*name="\([^"]*\)".*/\1/p')
value=$(echo "$line" | sed -n 's/.*>\(.*\)<.*/\1/p')
# 添加到 JSON 数组
echo " {\"name\": \"$name\", \"value\": \"$value\"}," >> "$OUTPUT_FILE"
done
# 移除最后一个逗号
sed -i '' -e '$ s/,$//' "$OUTPUT_FILE"
# 结束 JSON 数组
echo "]}" >> "$OUTPUT_FILE"
echo "转换完成,输出文件为 $OUTPUT_FILE"
这样我们就轻松地完成了从Android到鸿蒙的资源迁移。
接下来就是正常的业务开发啦。