• 如何获取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

  • 相关阅读:
    高并发系统如何设计
    PHP的垃圾回收机制(开启垃圾回收机制后的优缺点是什么)
    移动端网站如何开发(电脑端网站到手机端网站我们需要在html代码中添加哪个meta标签)
    家庭洗车APP --- Androidclient开展 之 网络框架包介绍(一)
    一天JavaScript示例-判定web页面的区域
    左右margin top问题百分比值
    Ubuntu14.04设备JDK
    三层架构,四大天王——删
    MEMO:UIButton 中的图片和标题 左对齐
    HDU 3874 离线段树
  • 原文地址:https://www.cnblogs.com/zhjsll/p/5674205.html
Copyright © 2020-2023  润新知