当我们为 android 或 ios 应用程序安装代理时,我们通常会添加一些库并更改一些配置设置。仅添加一个库如何使该应用程序记录事件并将其推送到monkey talk IDE。
通常我们在项目中添加一个库的时候,如果需要用到它,就得导入它,然后在代码中使用。但是这个代理是如何在不修改源代码的情况下完成所有工作的呢?
当我们为 android 或 ios 应用程序安装代理时,我们通常会添加一些库并更改一些配置设置。仅添加一个库如何使该应用程序记录事件并将其推送到monkey talk IDE。
通常我们在项目中添加一个库的时候,如果需要用到它,就得导入它,然后在代码中使用。但是这个代理是如何在不修改源代码的情况下完成所有工作的呢?
Monkey talk 库正在使用 AOP 和 aspectJ 组合来获取当前任务,这就是他们添加<uses-permission android:name="android.permission.GET_TASKS" />
权限的原因。现在使用此权限,他们可以访问应用程序当前的 Activity 及其视图。因此,他们每次更改当前视图时都会对其进行解析。并为这些视图添加新的监听器。
有关更多信息,您可以下载并研究其代码是开源的。
neeraj t 是正确的:在 Android 中,MonkeyTalk 代码由 AspectJ 方面调用——这些代码位“编织”到应用程序中,并在调用 cerain 方法时被调用。在 iOS 中,MonkeyTalk 是静态初始化的,通过使用“-all_load”链接器标志强制执行。
简单的答案是否定的,必须将 FoneMonkey 编译到被测应用程序中才能正常工作。所以是的,必须有人有权访问应用程序源。但是一旦 FoneMonkey 被编译到应用程序中,您就不再需要源代码了,您可以将 APK 移交给 QA