• @qinggchu 先谢谢啊~
    这个我前面已经试过了,我一直都是写在 SDCARD 目录下的。目录权限改的是 777,在 4.4 以后还是没法操作的。
    这个问题是这样的,我个人是这么理解,在其他 APP 中调用 UIAUTOMATOR 本身就是一个安全隐患。这样就可以利用此操作嵌入其他 APK,获取数据。4.4 版本后该命令重构过,应该是对该命令加入了权限管理,API 只提供了一个调用 UIAUTOMATOR 实例的方法。这也就造成了在 4.4 下使用该方法,只返回 PID,但是看不到实际进程,没有任何报错,但就是不写文件的现状~
    当然这是我根据自己环境和操作后的总结,如果有兴趣的话,你可以试试 4.4 以上的能不能操作。~

  • 开源项目召集令[已结束] at February 04, 2015

    支持!JS 还是菜鸟,后面再参与,先占个坑!~

  • @beerbox @monkey
    正如 MONKEY 说的,我现在就是这样的。。。。
    两种登陆方式:正常登陆是记录手机信息的,LOGIN 的界面(初始界面),二次测试是会自己跳转到业务界面的。现在坑的是超级登陆方式,用户信息不记录,这样我每次都要从登陆界面开始重新弄起。这样所有用例就要加这部分。超级用户的话,不需要预先折腾手机;正常登陆的话,需要扫二维码或者登陆云账号,就要先折腾手机了,各有利弊吧。还要再考虑考虑测非登陆流程的用例怎么方便。。。。
    正好在弄么,就索性把疑问拿出来大家讨论讨论。~

  • 用例继承的 ActivityInstrumentationTestCase2
    继承关系:
    ↳ android.test.InstrumentationTestCase
    ↳ android.test.ActivityTestCase
    ↳ android.test.ActivityInstrumentationTestCase2
    public Instrumentation getInstrumentation ()
    Added in API level 1Inheritors can access the instrumentation using this.
    ROBOTIUM 单 ACTIVITY 实际上还是调的 instrumentation 的吧。
    通过 launchActivity (String pkg, Class activityCls, Bundle extras) 进行第一次加载的吧?
    这个类继承于 JUNIT,JUNIT 通过 setup 和 teardown 进行初始化。
    我在网上搜到的结果都是说 TEARDOWN 执行完之后,必须回到初始界面,才能执行下一条用例,方法就是用 SOLO.FINISHOPENEDACTIVITIES,但是没说为什么不回到主界面就会阻塞啊?看 LOG 啥也没有么。。。。有没有大神以前遇到过,解答一下原理啊?
    就在想有没有办法绕过去啊。~

  • @monkey 呃。。。谢谢 MONKEY 提醒啊。我还真当成一个东西了。。。。我再看看。。。

  • 呵呵,谢谢各位大侠的建议了哈~后面还有很多的路要走,很多的坑要填~
    其实吧,我感觉自己的心态和恒温差不多。。。娃多了个,压力还是相当大的~远没有那么平和。。。
    很多压力吧,你再急也是急不来的。。。来我们这论坛的应该有很多都是希望改变的吧。
    个人觉得改变是需要时间的,太着急,走了太多捷径后,知识的积累可能也会有问题。
    填过的坑越多,学到也越多。~大家共勉之~

  • @link1220 TCL 是我目前见过的最难写得语言,真心不高兴用。。。~~~有点就是正则确实做得不错。。。

  • @xiaoxiaoimg 不是。应该是需要下载 NODE.JS 安装包,安装。
    你去网上找个教程,BLOG 写得很清楚,一步一步看吧。

  • @xiaoxiaoimg NODE.JS 装了没啊?

  • 感谢楼上诸位大侠分享的 CPU,内存基础知识和绘图方法!~

  • Appium IOS 真机测试 iphone at January 29, 2015

    @testly 我不是说我哦~不用和我抱歉了哈。
    我是说你 @ 恒温~提个建议罢了。~我还没碰过 IOS 的说。。。

  • Appium IOS 真机测试 iphone at January 29, 2015

    提问的艺术。~
    在这需要初步的问题定位。
    你贴一串找人给你定位,谁有空看啊。~还是心情不好的时候。。。。

  • @vigossjjj @squallff
    谢谢两位的建议~正在补 JAVASCRIPT 的基本知识,准备学习一下 APPIUM 的插桩思想。
    目前的想法是能用原生的 INSTRUMENTS 的架构的就用原生的,跨进程麻烦的再考虑 APPIUM。
    应用需要调系统的音视频播放器,ROBOTIUM 插桩的话,播放器不同的话,成本太高,目前就这块还在用 APPIUM 实现。
    多谢!~

  • 赞!很实用~

  • 众筹 +1

  • @xiaorudk
    帅哥,学习一下啊。ALERT 的 UI 是可以用 APPIUM 定位的吧?
    你这么做是想在弹出 ALERT 后做什么,实现什么呢?~有什么内容外部代码不能处理的么?

  • 看一下 SOLO 的 API。
    android.view.View getView(String id, int index)
    Returns a View matching the specified resource id and index.
    元素个数及索引可以取 GRIDVIEW 的 COUNT 来计数。

  • @qinggchu 谢谢回复啊~
    我用 RUNTIME.EXEC 延时到 100S 在 SDCARD 都没有取到。RUNTIME 操作没有返回出错,返回的 LOG 最后就是没有写文件这一步。感觉应该和 APK 的系统权限有关系。
    从理论上看,如果能先把 UIAUTOMATOR 进程起来,就能解决了。UIAUTOMATOR 的进程没有起来。我回头再看看有没有办法在 APK 里面用命令起进程。
    不知道这个区别是不是和 API 的版本有关,我用的是 API19 的。UIAUTOMATOR 今天有大神不是说 ANDROID 4,4 重新封装过,你用的是哪个版本的 API?
    呵呵,我最近正好事不多,学点新的填填以前的坑。不行还是回去老老实实用 APPIUM 做跨进程了~。

  • @seveniruby 感谢思寒,呵呵,是我肤浅了,把问题想的太简单了。。。
    不过这次填这坑,也算是熟悉了一下 RUNTIME 机制和 ANDROID 简单的 SHELL 了。
    后面去学习一下 CAFE 的框架。~
    顺带感慨下,还有好多深坑不会啊,如 HTML,JS。再次感谢两位大侠。~

  • @seveniruby @xuxu
    谢谢两位大侠了,不得不暂时放弃尝试使用该方法在 ROBOTIUM 架构内部来做跨进程了。
    反馈一下当下的进展吧:
    1.目前用 RUNTIME.EXEC 的返回的 PS 结果是 9。不是 0。
    PROCESS 的 WAITFOR 的返回值解释是:the exit value of the native process being waited on。PS 就没看到 PID=9 的进程。。。。
    2.将目的路劲放到了 SD 卡里,SD 卡的读写权限我开了,还是不行。
    暂时没招了。系统权限的水现在对我来说还是太深了。~

  • @xuxu
    好像是我理解错了。。。。SHELL 应该是一样的吧?
    这里有什么文件系统权限的坑么?直接 ADB 命令和 ROBOTIUM 调用有啥区别么?
    麻烦大侠了~

  • @xuxu 谢谢啊,ls 命令是搞定了。
    不过下面这个命令,执行后没有生成
    ShellUtils.shell("uiautomator dump /data/local/tmp/uidump2.xml");一直都没有对应的文件啊。
    这块以前没有接触过,按照大侠你的说法,uiautomator dump 这种用法是 ADB SHELL 才支持,在 INSTRUMENTATION 架构下实际上是不支持的?
    呵呵,大侠我主要是想通过你的接口绕进程。关键是上面这个命令。~

  • @qinggchu @seveniruby
    谢谢两位,谢谢 qinggchu 的分享。我再仔细看看 UIAUTOMATOR 的绕法和 XUXU 的接口吧~还是优先选择 ROBOTIUM 吧。我还需要第三方控件的 TEXT,控件大小等属性,UIAUTOMATOR 应该能取到,取到了再来分享~
    后面还要玩 IOS 的,IOS 的还没有概念。。。