Android/鸿蒙应用的资源配置技巧

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到鸿蒙的资源迁移。

接下来就是正常的业务开发啦。

相关推荐
诸神黄昏EX5 小时前
Android Build系列专题【篇四:编译相关语法】
android
雨白7 小时前
优雅地处理协程:取消机制深度剖析
android·kotlin
leon_zeng07 小时前
更改 Android 应用 ID (ApplicationId) 后遭遇记
android·发布
2501_916007479 小时前
iOS 混淆工具链实战,多工具组合完成 IPA 混淆与加固(iOS混淆|IPA加固|无源码混淆|App 防反编译)
android·ios·小程序·https·uni-app·iphone·webview
Jeled11 小时前
Retrofit 与 OkHttp 全面解析与实战使用(含封装示例)
android·okhttp·android studio·retrofit
ii_best13 小时前
IOS/ 安卓开发工具按键精灵Sys.GetAppList 函数使用指南:轻松获取设备已安装 APP 列表
android·开发语言·ios·编辑器
2501_9159090613 小时前
iOS 26 文件管理实战,多工具组合下的 App 数据访问与系统日志调试方案
android·ios·小程序·https·uni-app·iphone·webview
limingade15 小时前
手机转SIP-手机做中继网关-落地线路对接软交换呼叫中心
android·智能手机·手机转sip·手机做sip中继网关·sip中继
RainbowC015 小时前
GapBuffer高效标记管理算法
android·算法
程序员码歌15 小时前
豆包Seedream4.0深度体验:p图美化与文生图创作
android·前端·后端