借助Android sdk提过的aapt工具获取apk包名和首activity

def get_packer_activity(addr):
    # 提过apk路径,获取包名和首页activity
    cmd = ‘aapt dump badging ‘+ addr+‘>abc.log‘
    flag = []
    if 0 == os.system(cmd):
        try:
            with open(‘abc.log‘, ‘r‘, encoding=‘UTF-8‘) as file:
                abc = file.readlines()
                for line in abc:
                    if ‘launchable-activity‘ == line.strip()[:19]                             or ‘package: name‘ == line.strip()[:13]:
                        flag.append(line.strip().split(‘\‘‘)[1])
        except FileNotFoundError:
            print(‘未找到需要的文件‘)
        return flag

print(get_packer_activity(‘C:\\Users\\Administrator\\Desktop\\AnTuTu.apk‘))

  

原文地址:https://www.cnblogs.com/ptest/p/10207392.html

时间: 2024-11-03 22:09:46

借助Android sdk提过的aapt工具获取apk包名和首activity的相关文章

Android获取APK包名的几种方法

Android获取APK包名的几种方法:1.adb shell pm list package -f | findstr 关键字 #只能获取到包名,主Activity名无法获取到 2.使用aapt--aapt是sdk自带的一个工具,在sdk\builds-tools\目录下 运行后的结果中以下两行分别是应用包名package和入口activity名称 package: name=’com.estrongs.android.pop’ launchable-activity: name=’com.e

Android自动化学习笔记:获取APK包名的几种方法

---------------------------------------------------------------------------------------------------------------------------- 小记:自学过程中,经常需要用得到一个APK的包名,总结一下得到包名的几种方式. ********************** 2014-10-29:初版 2014-10-30:完善 ********************** -----------

【Android测试】【随笔】获得App的包名和启动Activity

前言 经常看到一些刚刚接触Android测试的小伙伴在论坛或者QQ群里问这样的问题:如何知道一个App的包名呢?它的启动的Activity又是什么呢? 之前博客里也忽略了这一块,这一节我就专门来介绍一下. 包名 包名(Package name)在Android系统中是判断一个App的唯一标识,不同的App可以有同样的名字,但是它的包名不可以相同. 例如我可以自己编译生成一个App也叫“微信”,但是我App的包名不能为com.tencent.mm(微信的包名为这个),如果我指定的包名如果也和微信一

64位linux系统无法运行Android sdk的adb和aapt,提示No such file or directory的解决办法

参考资料: http://askubuntu.com/questions/147400/problems-with-eclipse-and-android-sdk http://serverfault.com/questions/442792/ubuntu-12-04-apt-get-install-ia32-libs-unmet-dependencies http://my.oschina.net/uoy/blog/129108 本人在64位Debian上运行Android sdk目录下的ad

android登录实现,存储数据到/data/data/包名/info.txt

1.一个简单登录界面布局代码如下: @1采用线性布局加相对布局方式 @2线性布局采用垂直排列 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

android应用锁之获取前台进程包名方法

今天在做技术总结,顺便就把知识共享,个人崇尚分享. 通过以下方式来获取前台进程的包名: 1.android api 10-20 通过ActivityManager中getRunningTasks来获取. 2.android api 21- 22(部分没有升级google更新包) 由于系统在api 21以上禁用getRunningTasks接口. 通过ActivityManager中getRunningAppProcesses来获取 缺点:有可能误判(概率很低) 3.android api 22

eclipse修改android项目的apk包名类名

在Google提供的Eclipse集成开发环境adt-bundle下修改名称的总结: 1.      修改工程名(apk名称) 在弹出的对话框中输入新名称 该操作实际上是修改<project>/.project下的<name>节点.但由于某种原因,只修改该文件的话,在adt-bundle中,显示的工程名称仍然为老名称,只是apk的名称变为了新名称,因此建议通过"重构"的方式为工程改名. 2.      修改手机上<桌面名称> 3.      修改在手

通过sdk工具 aapt.exe 获取apk的信息

工具路径:D:\cocos\bundle\adt\sdk\build-tools\android-4.4.2\aapt.exe 在此路径执行 命令行 : aapt d --values badging xxx.apk 输出: D:\cocos\bundle\adt\sdk\build-tools\android-4.4.2>aapt d --values badging com.im l.sexicaonima.apk package: name='com.iml.sexicaonima' ve

javassist:增强型的java反射工具,获取方法参数名

java的反射是不能获取方法的参数名的.比如: [java] view plaincopyprint? public String concatString(String str1,String str2){ return str1+str2; }     public String concatString(String str1,String str2){         return str1+str2;     } 想获取"str1",和"str1"这个参数