python获取该app所有的activity

可通过 aapt dump xmltree appfile AndroidManifest.xml 命令获取该app所有的activit,所以我的思路是通过命令保存为文本,然后再获取以E: activity 开头的行数,然后依照保存的行数for循环去获取该行的下一行或者下下行,假如该行有name字符串,那么获取该行并处理保存到列表内。
linecache.getline 模块是用来读取文本的方法,可通过行来读取。

    def get_activit(file):
        activit = []
        # 保存为test.txt
        os.popen(rf"aapt dump xmltree {file} AndroidManifest.xml  >./test.txt")
        # 获取以E: activity 开头的行数
        test = str(
            os.popen(
                rf'aapt dump xmltree {file} AndroidManifest.xml |findstr /n  "^E: activity" ').read()).splitlines()
        for i in test:
            # 显示行数
            # print((i[:4]).replace(":",""))
            sun_i = int((i[:4]).replace(":", ""))
            # 清除缓存
            linecache.clearcache()
            jsq = 1
            while True:
                # 从该行的下一行查找是否有name字符,如果有截取Activity
                if "name" in linecache.getline("./test.txt", sun_i + jsq):
                    # 添加到列表内
                    activit.append(str(linecache.getline("./test.txt", sun_i + jsq)).split('Raw: "')[-1].split('")')[0])
                    # 显示要添加的元素
                    print(str(linecache.getline("./test.txt", sun_i + jsq)).split('Raw: "')[-1].split('")')[0])
                    break
                # 如果下3行都没有找到那么退出
                elif jsq > 3:
                    print("未找到")
                    break
                jsq += 1
        print("activit已获取并添加到列表内")
        return activit
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值