获取APK包名的几种方法
2015-08-27 18:00
253 查看
http://www.cnblogs.com/dzblog/p/4062288.html
Android自动化学习笔记:获取APK包名的几种方法
----------------------------------------------------------------------------------------------------------------------------
小记:自学过程中,经常需要用得到一个APK的包名,总结一下得到包名的几种方式。
**********************
2014-10-29:初版
2014-10-30:完善
**********************
------------------------------------------------------------------------------------------------------------------------------
我们主要用的当然是adb shell命令啦。
adb shell官网介绍:
1. 通过adb shell进入到手机data/data目录下,查看包名(需要root)
adb shell
cd data/data
ls
2. 通过adb shell的pm命令,查看包名(不需要root)
更多命令,请参考pm命令的介绍(http://developer.android.com/tools/help/adb.html#pm):
比如我输入,可以明显看出不同。
[b]3. [b]通过使用adb shell的dumpsys命令,查看包名(不需要root)[/b][/b]
[b]4. [b]通过使用adb shell的dumpsys的另一个命令,查看包名(不需要root)[/b][/b]
输入命令之后,cmd里没有任何提示,不过C盘目录下,会多一个log.txt文件。
打开log.txt文件,搜索 Stack #1,然后寻找cmp=.
如下图就可以看到包名和activity的名字。
[b]5. [b]通过使用grep,查看包名(不需要root)[/b][/b]
查看最下面
接下来,不论打开哪个APK,cmd命令会自动显示出包名和activity的名字,比如我又打开了相册~
可以看出相册的包名是com.android.gallery3d,activity名字是.app.Gallery
[b]6. [b]通过使用自带的AAPT工具,查看包名(不需要root)[/b][/b]
[b]APPT是Android Asset Packaging Tool , 在SDK的build-tools目录下. 该工具可以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk)[/b]
可以找到包名和activity的名字,比如
package name = com.example.myfirstapp
activity name = com.example.myfirstap.MainAcitivity
7. 通过使用自带的[b][b][b]Hierayviewer[/b][/b]工具,[/b]查看包名(需要root和开启view
service)
8.通过使用apktool工具,查看AndroidManifest.xml文件得到包名(需要root)
[b]apktool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。需要java支持。[/b]
这里有人写了一篇使用心得:[b][b]APKTOOL的使用心得[/b][/b]
不过我们只需要其中的二个步骤:
1.使用apktool反编译app:apktool
d c:\apps\myfirstapp.apk c:\apk\myfirstapp
2.打开AndroidManifest.xml
manifest节点的package属性值是APK的包名:
android.intent.action.MAIN和android.intent.category.LAUNCHER对应的activity,该activity对应的android:name属性既是入口activity名称。
android.intent.action.MAIN表示应用程序最先启动的Activity
android.intent.category.LAUNCHER表示应用程序是否显示在程序列表里
9.[b][b]通过代码形式获取包名[/b][/b]
这个就不多描述了,可以查看这位大神写的:[b]代码的形式获取已安装应用的包名[/b]
10.[b][b]这个是网上找来的,没有尝试,有兴趣的可以试试。[/b][/b]
Android自动化学习笔记:获取APK包名的几种方法
----------------------------------------------------------------------------------------------------------------------------
小记:自学过程中,经常需要用得到一个APK的包名,总结一下得到包名的几种方式。
**********************
2014-10-29:初版
2014-10-30:完善
**********************
------------------------------------------------------------------------------------------------------------------------------
我们主要用的当然是adb shell命令啦。
adb shell官网介绍:
1. 通过adb shell进入到手机data/data目录下,查看包名(需要root)
adb shell
cd data/data
ls
2. 通过adb shell的pm命令,查看包名(不需要root)
adb shell pm list package #将获取手机内所有apk对应的包名
更多命令,请参考pm命令的介绍(http://developer.android.com/tools/help/adb.html#pm):
比如我输入,可以明显看出不同。
adb shell pm list package -f #将获取手机内所有apk对应的包名和路径
[b]3. [b]通过使用adb shell的dumpsys命令,查看包名(不需要root)[/b][/b]
adb shell dumpsys window w | findstr \/ | findstr name= #需要先打开apk后,再敲入命令
[b]4. [b]通过使用adb shell的dumpsys的另一个命令,查看包名(不需要root)[/b][/b]
adb shell dumpsys activity> c:\log.txt #需要先打开apk后,再敲入命令
输入命令之后,cmd里没有任何提示,不过C盘目录下,会多一个log.txt文件。
打开log.txt文件,搜索 Stack #1,然后寻找cmp=.
如下图就可以看到包名和activity的名字。
[b]5. [b]通过使用grep,查看包名(不需要root)[/b][/b]
adb shell 1|shell@RM-1057:/ $ logcat | grep START #需要先打开apk后,再敲入命令
查看最下面
接下来,不论打开哪个APK,cmd命令会自动显示出包名和activity的名字,比如我又打开了相册~
可以看出相册的包名是com.android.gallery3d,activity名字是.app.Gallery
[b]6. [b]通过使用自带的AAPT工具,查看包名(不需要root)[/b][/b]
[b]APPT是Android Asset Packaging Tool , 在SDK的build-tools目录下. 该工具可以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk)[/b]
aapt dump badging (apk path)
可以找到包名和activity的名字,比如
package name = com.example.myfirstapp
activity name = com.example.myfirstap.MainAcitivity
7. 通过使用自带的[b][b][b]Hierayviewer[/b][/b]工具,[/b]查看包名(需要root和开启view
service)
#需要先打开apk
8.通过使用apktool工具,查看AndroidManifest.xml文件得到包名(需要root)
[b]apktool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。需要java支持。[/b]
这里有人写了一篇使用心得:[b][b]APKTOOL的使用心得[/b][/b]
不过我们只需要其中的二个步骤:
apktool d <file.apk> <dir> #<file.apk>代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\apps\myfirstapp.apk #<dir>代表了反编译后的文件的存储位置,比如C:\apk\myfirstapp
1.使用apktool反编译app:apktool
d c:\apps\myfirstapp.apk c:\apk\myfirstapp
2.打开AndroidManifest.xml
manifest节点的package属性值是APK的包名:
android.intent.action.MAIN和android.intent.category.LAUNCHER对应的activity,该activity对应的android:name属性既是入口activity名称。
android.intent.action.MAIN表示应用程序最先启动的Activity
android.intent.category.LAUNCHER表示应用程序是否显示在程序列表里
9.[b][b]通过代码形式获取包名[/b][/b]
这个就不多描述了,可以查看这位大神写的:[b]代码的形式获取已安装应用的包名[/b]
10.[b][b]这个是网上找来的,没有尝试,有兴趣的可以试试。[/b][/b]
adb shell logcat | grep Android.intent.category.LAUNCHER
相关文章推荐
- Objective-C 【关于导入类(@class 和 #import的区别)】
- HttpHandler过滤请求..
- 房地产售楼销售数据管理| 数据上报 | 数据管理 | 数据搜集
- HDOJ 4453 Looploop Splay
- rsync搭建
- MySQL主从异步, 半同步配置
- 正则表达式匹配HTML
- iOS开发中宏的应用
- sqlserver锁表查看
- sql server 查看锁表SQL
- 正则表达式 示例
- org.apache.catalina.LifecycleException
- 小甲鱼Python第九讲课后题
- 数据库查询不同关键字的执行顺序
- 2015/8/25 作业:用户和组的相关命令
- 反射
- 在Linux局域网下唯一定位一台机器的技巧(不需要samba)
- SQL2005 数据的导出 bcp 命令
- 页面跳转与传值
- ant 读取环境变量的值