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

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

相关推荐
2601_9498333923 分钟前
flutter_for_openharmony口腔护理app实战+知识实现
android·javascript·flutter
晚霞的不甘24 分钟前
Flutter for OpenHarmony从基础到专业:深度解析新版番茄钟的倒计时优化
android·flutter·ui·正则表达式·前端框架·鸿蒙
财经三剑客25 分钟前
鸿蒙智行1月交付57915台,同比增长65.6%
华为·harmonyos
鸟儿不吃草1 小时前
android的Retrofit请求https://192.168.43.73:8080/报错:Handshake failed
android·retrofit
Minilinux20181 小时前
Android音频系列(09)-AudioPolicyManager代码解析
android·音视频·apm·audiopolicy·音频策略
BlackWolfSky1 小时前
鸿蒙中级课程笔记12—应用质量建议与测试指南
笔记·华为·harmonyos
小哥Mark1 小时前
各种Flutter拖拽交互组件助力鸿蒙应用个性化
flutter·交互·harmonyos
听麟1 小时前
HarmonyOS 6.0+ PC端多人联机游戏开发实战:Game Service Kit深度集成与跨设备性能优化
游戏·华为·性能优化·架构·harmonyos·ai-native
李子红了时1 小时前
【无标题】
android
森之鸟1 小时前
鸿蒙CoreSpeechKit语音识别实战:让APP“听懂”用户说话
语音识别·xcode·harmonyos