您的位置:首页 > 移动开发

查看Android的appPackage和Activity的多种方法

2017-12-05 11:31 711 查看
查看Android的appPackage和Activity的多种方法

一、有源码情况

直接打开AndroidManifest.xml文件,

找到包含android.intent.action.MAIN和android.intent.category.LAUNCHER对应的activity。

如下图中第三行package为com.cola.ui,第七行主Activity为com.cola.ui.ColaBox(.ColaBox为Activity简写方式)。

[html] view plaincopy

<?xml version="1.0" encoding="utf-8"?>  

<manifest xmlns:android="http://schemas.android.com/apk/res/android"  

      package="com.cola.ui"  

      android:versionCode="1"  

      android:versionName="1.0.0">  

    <application android:icon="@drawable/icon" android:label="@string/app_name">  

        <activity android:name=".ColaBox"  

                  android:label="@string/app_name">  

            <intent-filter>  

                <action android:name="android.intent.action.MAIN" />  

                <category android:name="android.intent.category.LAUNCHER" />  

            </intent-filter>  

        </activity>  

    <activity android:name="Frm_Addbills"></activity>  

    <activity android:name="Frm_Editacctitem"></activity>  

    <activity android:name="Grid_bills"></activity>  

    <service android:name="LocalService" android:exported="true" android:enabled="true"/>   

  
 
   </application>  

 <uses-permission android:name="android.permission.READ_CONTACTS" />  

   
 
   
 
</manifest>   

 

二、只有Apk的情况

(1)aapt

使用命令行aapt dump xmltree ColaBox.apk AndroidManifest.xml



 

(2)使用apktool

使用反编译工具apktool,反编译后打开AndroidManifest.xml文件,查找方式同"有源码情况"



使用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决定应用程序是否显示在程序列表里

 

(3)aapt

感谢"天地会珠海分舵"地址:http://blog.csdn.net/zhubaitian/article/details/38926679



 方法一:使用aapt    //aapt是sdk自带的一个工具,在sdk\builds-tools\目录下
1.以ES文件浏览器为例,命令行中切换到aapt.exe目录执行:aapt dump badging E:\apk\es3.apk
2.运行后的结果中以下两行分别是应用包
f3f9
名package和入口activity名称
package: name='com.estrongs.Android.pop'
launchable-activity: name='com.estrongs.android.pop.view.FileExplorerActivity'
[java] view plain copy

package: name='<span style="color: rgb(102, 102, 102);">com.estrongs.android.pop</span>' versionCode='1' versionName='1.0'  

sdkVersion:'8'  

application-label:'EngineeringTest'  

application-icon-120:'res/drawable-ldpi/ic_launcher.png'  

application-icon-160:'res/drawable-mdpi/ic_launcher.png'  

application-icon-240:'res/drawable-hdpi/ic_launcher.png'  

application: label='EngineeringTest' icon='res/drawable-mdpi/ic_launcher.png'  

launchable-activity: name='<span style="color: rgb(102, 102, 102);">com.estrongs.android.pop.view.FileExplorerActivity</span>'  label='EngineeringTest' icon=''  

uses-permission:'android.permission.INTERNET'  

uses-feature:'android.hardware.touchscreen'  

main  

other-activities  

other-receivers  

other-services  

supports-screens: 'small' 'normal' 'large'  

supports-any-density: 'true'  

locales: '--_--'  

densities: '120' '160' '240'  

 注:在android sdk目录搜索可以找到aapt.exe,如果没有可以下载apktool。
 
 方法二:查看AndroidManifest.xml
1.

 

 

三、没有apk,应用已经安装到手机或虚拟机中

1.logcat

.清除logcat内容,使用命令adb logcat -c

.启动logcat,使用命令adb logcat ActivityManager:I *:s

.启动要查看的程序,





2.dumpsys

(1)启动要查看的程序;

(2)命令行输入:adb shell dumpsys window w |findstr // |findstr name=



3.使用工具DEVTOOLS

Dev Tools是安卓模拟器自带的一个开发调试工具,我们可以通过以下方式把该工具从模拟器移出来然后安装到我们的真实机器当中。
安装步骤
- adb -e pull /system/app/Development.apk ./Development.apk
- adb -d install Development.apk
当然我们也可以选择从网上直接下载安装了。
使用向导
1. 打开Dev Tools并选择Package Browser选项



2. 选择要测试的app



3.查看相应该app所有的activity已经Package名



----------------------------------------The End---------------------------------------

 

 

 

 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-

appium获取app应用的package和 activity。---新手总结(大牛勿喷,新手互相交流)


从网上搜索的方法:

如下:

1.查看源码
2.日志法
a、启动待测apk
b、开启日志输出:adb logcat>D:/log.txt
c、关闭日志输出:ctrl+c
d、查看日志
直接搜索 :Displayed
找寻:Displayed com.mm.android.hsy/.ui.LoginActivity: +3s859ms
appPackage = com.mm.android.hsy
appActivity = .ui.LoginActivity

我一直用的方法是:
adb shell
logcat | grep cmp=

自己用的简洁版:

adb logcat|find "Displayed" >d:/logs.txt

3.反编译查看
 
    1,重命名ContactManager.apk为ContactManager.zip并解压得到文件classes.dex;
    2,解压dex2jar-0.0.9.15.zip,并从命令行进入该文件夹;
    3,运行命令
    d2j-dex2jar.bat path_to\classes.dex
    在当前文件夹下得到classes-dex2jar.jar;
    4,解压jd-gui-0.3.6.windows.zip得到文件jd-gui.exe;
    5,使用jd-gui.exe打开classes-dex2jar.jar;
例如::
C:\Users\Administrator\Desktop\testzidong\android\activity package\dex2jar>d2j-d
ex2jar.bat ../ContactManager/classes.dex

反编译工具在:https://yunpan.cn/cSdMAvzPWQDr9  访问密码 7aa2

apktool 反编译https://yunpan.cn/cSLi9na9hMPki  访问密码 725d

4.http://blog.csdn.net/yudajun/article/details/7855270

5.
aapt dump badging +客户端包所在路径+客户端包名称.apk
这个看你有没有aapt.exe,这个很直观,你也可以执行命令时输出成log来看,有apk的推荐这种。反编译查看xml应该用的也是这种方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: