zoukankan      html  css  js  c++  java
  • 如何获取android app的Activity

    最近在学习Android的自动化测试工具appium,此框架在编写脚本的时候,需要获得app的包名和入口的activity,app的包名在手机的运行进程中可以查看,但是入口的activity呢,网上说可以通过工具re-sign.jar获取,但是弹出窗口如下:

    我的java和Android SDK的环境变量都已经设置过了,有图有真相,但是还是不可以,我最后通过下文的第三种方法,找到了入口的activity

    ---------------------------------------------------------------------------------------------------------------

    以下内容来自转载

    ---------------------------------------------------------------------------------------------------------------

    有时候在appium的Desired Capabilities中需要指定被测app的appActivity,下面的方法可能会对你有所帮助。

    方法一

    如有你有待测项目的源码,那么直接查看源码就好。如果没有,那么请联系有源码的同学,这是推荐方法。

    本文版权归乙醇所有,欢迎转载,但请注明作者与出处,严禁用于任何商业用途

    方法二

    如果你没有代码,那么可以反编译该app。

    这里将用到2个工具,分别是dex2jar和jd-gui。你可以在这里下载目前为止的最新版本以及示例apk。

    我们以工具包里的ContactManager.apk为例,简单介绍一下反编译的流程。

    • 1,重命名ContactManager.apk为ContactManager.zip并解压得到文件classes.dex;
    • 2,解压dex2jar-0.0.9.15.zip,并从命令行进入该文件夹;
    • 3,运行命令 
    d2j-dex2jar.bat path_toclasses.dex 

    在当前文件夹下得到classes-dex2jar.jar;

    • 4,解压jd-gui-0.3.6.windows.zip得到文件jd-gui.exe;
    • 5,使用jd-gui.exe打开classes-dex2jar.jar;

    嗯,好了,可以尽情欣赏了。上图。

    上图所示的ContactManager就是待测app的main activity。

    方法三

    参考testerhome的这个帖子

    使用log查看大法(嗯,windows上没grep不幸福,好在有powershell的Select-String,可以拿来勉强一用),直接搬砖。

    a、启动待测apk
    b、开启日志输出:adb logcat>D:/log.txt 
    c、关闭日志输出:ctrl+c
    d、查看日志
    找寻:

    Displayed com.mm.android.hsy/.ui.LoginActivity: +3s859ms
    appPackage = com.mm.android.hsy
    appActivity = .ui.LoginActivity

    在App无法反编译的时候,第三个比较有用

    转载:http://www.cnblogs.com/nbkhic/p/3806951.html

  • 相关阅读:
    33.Android之Fragment学习
    32.Android之消息处理系统Looper、Handler、Thread简单学习
    函数
    特殊集合
    二维数组,多维数组,集合。
    一维数组 冒泡排序
    异常保护,类!
    循环嵌套,while循环,穷举迭代循环
    for循环
    选择语句
  • 原文地址:https://www.cnblogs.com/zhjsll/p/5674205.html
Copyright © 2011-2022 走看看