最近在写一个框架,对于dimens的适配感觉比较繁琐,事情并不复杂,但是如果是自己一个一个的创建文件进行copy修改也是挺累人的,我是一个有点懒的人,所以就自己写个shell脚本解决一下了。
脚本已经写好了,经过测试运行正常,相关注释也写的很清晰,内容如下:
#!/bin/bash
#将values里面的dimens的数据copy到其他文件里面
function copydata ( )
{
#用于处理shell将空格当成换行的问题
IFS_old=$IFS
IFS=$'\n'
#scale=$(($1 / 320)) | bc
scale=$(echo "scale=1;1.0*$1/320"|bc)
echo ${scale}
echo -e "<resources>" >> $2
for line2 in `cat $3`
do
if [[ ${line2} == *"dimen"* ]]; then
#截取右边字符串
right=${line2#*>}
#截取左边字符串
mid=${right%px*}
new=$(echo "scale=1;${mid} * ${scale}"|bc)
echo -e ${line2%${mid}*}${new}${line2#*${mid}} >> $2
fi
done
echo -e "</resources>" >> $2
IFS=${IFS_old}
}
#==========================================
currentPath=$(pwd)
basepath=""
frompath=""
tofile="/dimens.xml"
mention="配置文件dmconfig.txt放在工程根目录下,相关格式如下:\n
frompath:/app/src/main/res/values/dimens.xml\n
topath:/app/src/main/res\n
320\n
480\n
720\n
960\n
1080"\n
#读取配置文件
for line in `cat ${currentPath}"/dmconfig.txt"`
do
if [[ ${line} == *"frompath"* ]];
then
#获取copy源地址
echo "开始获取源地址。。。"
frompath=${currentPath}${line#*frompath:}
elif [[ ${line} == *"topath"* ]];
then
#获取需要copy过去的路径
echo "开始保存位置地址。。。"
basepath=${currentPath}${line#*topath:}"/values-sw"
else
if [[ ${frompath} != *"src/main/res"* ]]; then
echo -e "【错误】源文件地址配置配置错误!!!\n"${mention}
exit
fi
if [[ ${basepath} != *"src/main/res"* ]]; then
echo -e "【错误】配置文件位置错误!!!\n"${mention}
exit
fi
echo "开始进行相关文件配置"
#如果没有相关文件夹则创建
cdir=${basepath}${line}"dp"
if [ ! -d ${cdir} ]; then
mkdir ${cdir}
fi
#如果已经存在该文件则进行删除
cfile=${cdir}${tofile}
if [ -e ${cfile} ]; then
cmd="rm "${cfile}
eval $cmd
fi
#创建相关文件并写入相关数据
cmd="touch "${cfile}
eval $cmd
#复制数据到适配文件里面
echo "开始进行相关文件拷贝"
copydata ${line} ${cfile} ${frompath}
fi
done
使用的话需要在工程根目录创建一个dmconfig.txt的配置文件,内容如下:
第一行指定源文件,就是基本文件,需要里面的dimens的单位是px。
第二行是拷贝的目录地址。
第三行及以下是相关的分辨率,根据需要指定,个数不限。
frompath:/app/src/main/res/values/dimens.xml
topath:/app/src/main/res
320
480
720
960
1080
另外需要在根目录下创建dimens.sh的文件,内容的话直接拷贝上面的内容即可。
配置好了之后在Terminal中输入:
按回车之后就搞定了,如果修改了基本dimens里面的数据需要同步,再重新运行命令即可,灰常方便。
./dimens.sh
相关效果如下:
7131C608-1728-459D-AF28-65D200C5A6F7.png4011D5DD-DFFD-4A56-BCE4-587BFA919344.png
网友评论