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

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

相关推荐
小脑斧爱吃鱼鱼8 分钟前
鸿蒙项目笔记(1)
笔记·学习·harmonyos
robin_suli17 分钟前
Spring事务的传播机制
android·java·spring
Debroon1 小时前
应华为 AI 医疗军团之战,各方动态和反应
人工智能·华为
鸿蒙布道师1 小时前
鸿蒙NEXT开发对象工具类(TS)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
zhang1062091 小时前
HarmonyOS 基础组件和基础布局的介绍
harmonyos·基础组件·基础布局
桃子酱紫君1 小时前
华为配置篇-BGP实验
开发语言·华为·php
马剑威(威哥爱编程)1 小时前
在HarmonyOS NEXT 开发中,如何指定一个号码,拉起系统拨号页面
华为·harmonyos·arkts
Harrison_zhu2 小时前
Ubuntu18.04 编译 Android7.1代码报错
android
GeniuswongAir3 小时前
Flutter极速接入IM聊天功能并支持鸿蒙
flutter·华为·harmonyos
国货崛起4 小时前
华为2024年营收逼近历史峰值:终端业务复苏、智能汽车爆发式增长
华为·汽车