获取android应用的包名和主类目 主要分为俩类方法,
第一种类是需要有apk的情况下(这部分转载 http://blog.youkuaiyun.com/zhubaitian/article/details/38926679)
更新了第一类方法最简单方法,方法0
第二种类是需要不需要apk情况下,但是需要设备有root权限。
第一类方法:
方法零:在新版的as上面有反编译的功能(没有反应更新下AS),所以不用做下面的操作,直接把apk拖到as上面,就能看到下面的, 不用反编译了
方法一:使用aapt //aapt是sdk自带的一个工具,在sdk\builds-tools\目录下
1.以ES文件浏览器为例,命令行中切换到aapt.exe目录执行:aapt dump badging E:\apk\es3.apk
2.运行后的结果中以下两行分别是应用包名package和入口activity名称
package: name=’com.estrongs.Android.pop’
launchable-activity: name=’com.estrongs.android.pop.view.FileExplorerActivity’
注:在android sdk目录搜索可以找到aapt.exe,如果没有可以下载apktool。
方法二:查看AndroidManifest.xml
1.使用apktool反编译app:apktool.bat d es3.apk E:\apk\es
2.打开AndroidManifest.xml
manifest节点的package属性值是应用的包名:<manifest package=”com.estrongs.android.pop”>
查找android.intent.action.MAIN和android.intent.category.LAUNCHER对应的activity,该activity对应的android:name属性既是入口activity名称,如下:
<activity android:theme=”@*android tyle/Theme.NoTitleBar” android:label=”@string/app_name” android:name=”com.estrongs.android.pop.view.FileExplorerActivity”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
android.intent.action.MAIN决定应用程序最先启动的Activity
android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里
第二类方法
使用adb查看当前页面的栈信息,你可以点开应用的主界面然后
adb shell am stack boxes 4.4系统以前
adb shell am stack list 4.4系统以后