用Python简化安卓开发系列

Posted hjm_1fb1990

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Python简化安卓开发系列相关的知识,希望对你有一定的参考价值。

准备工作(可选,mac环境)

安装Homebrew
安装python3
设置默认python
安装python编辑器Sublime3

用Python检查资源文件是否Valid

有时候编译打包时会报资源文件格式错误。比如某个jpg的文件被重命名为png, 然后放到了图片资源目录下,就可能导致编译失败。
为此写了一个Python脚本来自动检测此类错误。

# -*- coding: utf-8 -*-
import os
import imghdr

PATH = r"/Users/apple/Desktop"
pngString = "png"
for path, dirs, files in os.walk(PATH):
    for filename in files:
        fullpath = os.path.join(path, filename)
        format = imghdr.what(fullpath)
        if format != pngString:
           print(fullpath)

PATH 是要检测的路径名,walk方法会遍历改PATH下的所有文件,包括子文件夹下的文件。然后检测真实的格式(format)(即使重命名过也没事)。最后如果格式不是png,就会打印出文件名。

使用方法:
1. 文本编辑器复制这段代码,保存为.py结尾的文件。
2. 改成自己的检测路径
3. 在命令行中运行,比如python /Users/apple/Desktop/imgcheck.py 即可

批量重命名图片并复制到drawable文件夹

带注释的脚本:

# -*- coding: utf-8 -*-
import os
import shutil

# 从哪里拷贝图片
pathFrom = input("move drawable from:").strip()
# 拷贝到哪个文件夹  比如项目下的drawable—xhdpi文件夹
pathTo = input("move drawable to:").strip()
# 要批量重命名的字符串 一般是@2x。也是需要复制的图片的标志,因为如果不需要重命名的话,就直接复制 不需要脚本了。
iDentifyString = input("iDentifyString:").strip()
for path, dirs, files in os.walk(pathFrom):
    for fileName in files:
        print(fileName)
        if iDentifyString.lower() in fileName.lower():
            fromFullpath = os.path.join(path, fileName)
            # 去掉@2x 替换不合法方字符 改成小写
            newFileName = fileName.replace(
                iDentifyString, "").replace("-", "_").lower()
            print(newFileName)
            toFullPath = os.path.join(pathTo, newFileName)
            shutil.copyfile(fromFullpath, toFullPath)

使用场景:UI给了切图,但是是按ios命名的。@2x @3x 这样。安卓只需要拿@2x的图片,并去掉@2x这几个字符。

以上是关于用Python简化安卓开发系列的主要内容,如果未能解决你的问题,请参考以下文章

python开发安卓app可行吗

怎样用VS2017开发android

marshmallow: 简化Python对象系列化

python全栈开发day24-__new____del__item系列异常处理

原生安卓开发app的框架frida安装和Python小试牛刀

Python读取安卓手机GPS信息