zoukankan      html  css  js  c++  java
  • 手把手教你ranorex_android源码instrument

    话说ranorex能把android程序看的透彻,关键是在潜伏,他使用instrumentation,在每个界面(activity)里面,准确的说是onresume,也就是页面显示的时候,都给安装了个钩子(hook),等到界面不显示了,也就是pause了,就去掉这个hook,所以ranorex才能对android程序的界面元素一清二楚。

    好吧,我说说具体步骤:

    instrumentation处理源文件:

    1.      在源文件工程中引用:ranorex.jar,位置在:C:安装目录Ranorex 4.1Bin RxEnvAndroid

    001.png

     

    2.      给所有的activity加上代码:

    @Override

    public void onResume()

    {

     super.onResume();

     com.ranorex.android.RanorexAndroidAutomation.Hook(this);

    }

     

    @Override

    public void onPause()

    {

     super.onPause();

     com.ranorex.android.RanorexAndroidAutomation.UnHook(this);

    }

     

    @Override

    public boolean dispatchKeyEvent(android.view.KeyEvent event)

    {

     com.ranorex.android.RanorexAndroidAutomation.Key(event);

     return super.dispatchKeyEvent(event);

    }

    3.      添加权限

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

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

    002.png

     

    这个意思是只有系统应用程序才可以使用这个权限,在程序中插入事件,绝对不是干好事的。^_^

    不用搭理他,project-clean一下,报错就消失了,编译能通过的。

    4.      添加版本号

    帮助中说明:

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

     package="YOUR PACKAGE"

     android:versionCode="YOUR CODE VERSION"

     android:versionName="YOUR VERSION NAME (RxInstrumented$<RANOREX-VERSION>)">

    原文:

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

        package="com.amem"

        android:versionCode="1"

        android:versionName="1.0" >

    修改为:

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

        package="com.amem"

        android:versionCode="1"

        android:versionName="1.0(RxInstrumented$4.1.5)>" >

    版本号查看方法:

    003.png

     

    好了,这就搞定了,编译成apk就可以用来测试了。

    其实在deploy的时候,勾选上instrument就工具就自动帮你搞定了,是不是有点崩溃,这篇文章白看了。^_^

  • 相关阅读:
    Codeforces Round #455 (Div. 2) A. Generate Login【贪心】
    Codeforces Round #315 (Div. 2)【贪心/重排去掉大于n的元素和替换重复的元素】
    CSU-ACM2018寒假集训选拔-入门题
    Codeforces Round #454 C. Shockers【模拟/hash】
    Nowcoder Girl 参考题解【待写】
    2017吉首大学新生赛
    P1450 包裹快递 RP+14【二分】
    NewCode
    2017年浙江工业大学大学生程序设计迎新赛决赛题解
    Codeforces Round #451 (Div. 2) B. Proper Nutrition【枚举/扩展欧几里得/给你n问有没有两个非负整数x,y满足x·a + y·b = n】
  • 原文地址:https://www.cnblogs.com/android100/p/android-instrument.html
Copyright © 2011-2022 走看看