小编Eli*_*ist的帖子

如何使用ADB使用sendevent命令向设备发送触摸事件?

我正在尝试使用AndroidDebugBridge将触摸事件发送到设备,以便我可以为UI测试做一些基本的自动化.我已经在LINK中进行了讨论.我可以使用sendevent模拟模拟器上的触摸,但无法在设备上执行相同的操作.

就像上面的链接一样,模拟器似乎每次触摸发出6个事件(xcoord,ycoord,2个用于按下,2个用于发布)并且很容易将这些信息用于sendevents,但是设备的触摸屏的getevent似乎产生太多的事件.

有人设法将ADB的触摸发送到设备吗?你能分享一下解决方案吗?

automation android touchscreen adb

81
推荐指数
5
解决办法
13万
查看次数

如何生成给定List的幂集?

我正在尝试生成长度为N的给定List的所有2 ^ N-1种可能组合的集合.该集合将组合中的元素数量映射到包含特定长度组合的有序组合列表.例如,对于List:

[A, B, C, D]
Run Code Online (Sandbox Code Playgroud)

我想生成地图:

{
    1 -> [{A}, {B}, {C}, {D}]
    2 -> [{A, B}, {A, C}, {A, D}, {B, C}, {B, D}, {C, D}]
    3 -> [{A, B, C}, {A, B, D}, {A, C, D}, {B, C, D}]
    4 -> [{A, B, C, D}]
}
Run Code Online (Sandbox Code Playgroud)

生成的数据库应保持原始顺序(其中[]表示有序系列(List),并{}表示无序组(Set)),并尽可能快地运行.

我整天都在努力处理一些递归代码(我知道实现应该是递归的)但是无法深入了解它.

有没有我可以使用的参考/这种算法的现成实现?

java algorithm combinations list

27
推荐指数
2
解决办法
3万
查看次数

Java LinkedList - 检索操作之间的差异

以下每组元素检索操作中的不同方法之间是否存在差异LinkedList

返回null +删除操作: poll(),pollFirst().

返回null +不删除操作: peek(),peekFirst().

引发异常+删除操作: pop(),remove(),removeFirst().

抛出异常+不删除操作: element(),getFirst().

插入方法中存在类似的重复.

如果没有这样的差异,我希望在方法的javadoc中提到它(类似于旧的"这就像调用......").它只是一个草率的文件,还是我错过了什么?

java javadoc linked-list duplicates

17
推荐指数
1
解决办法
1万
查看次数

有效地获得元素的可见区域坐标

StackOverflow的是装载 问题有关如何检查元素是否在检视真正可见的,但它们都寻求一个布尔答案.我有兴趣获得元素的可见实际区域.

function getVisibleAreas(e) {
    ...
    return rectangleSet;
}
Run Code Online (Sandbox Code Playgroud)

更正式地说 - 元素的可见区域是CSS坐标中的一组(最好是非重叠的)矩形,elementFromPoint(x, y)如果点(x,y)包含在(至少)一个矩形中,它将返回元素.集合.

在所有DOM元素(包括iframe)上调用此函数的结果应该是一组非重叠区域集,其中union是整个视口区域.

我的目标是创建一种视口"转储"数据结构,它可以有效地为视口中的给定点返回单个元素,反之亦然 - 对于转储中的给定元素,它将返回可见的集合区域.(数据结构将传递给远程客户端应用程序,因此当我需要查询视口结构时,我不一定能访问实际文档).

实施要求:

  • 显然,实现应该考虑元素的hidden状态z-index,页眉和页脚等.
  • 我正在寻找适用于所有常用浏览器的实现,尤其是移动设备 - Android的Chrome和iOS的Safari.
  • 最好不要使用外部库.

    当然,我可能天真并且elementFromPoint在视口中调用每个离散点,但是性能是至关重要的,因为我迭代所有元素,并且会经常这样做.

    请指导我如何实现这一目标.

    免责声明:我对网络编程概念很不错,所以我可能使用了错误的技术术语.

    进展:

    我想出了一个实现.算法非常简单:

    1. 迭代所有元素,并将其垂直/水平线添加到坐标图(如果坐标位于视口内).
    2. 为每个"矩形"中心位置调用`document.elementFromPoint`.矩形是来自步骤1的地图中的两个连续垂直坐标和两个连续水平坐标之间的区域.

    这会产生一组区域/矩形,每个区域/矩形指向一个元素.

    我的实施问题是:

    1. 对于复杂的页面来说效率很低(对于非常大的屏幕和gmail收件箱,最多可能需要2-4分钟).
    2. 它每单个元素产生大量的矩形,这使得通过网络进行字符串化和发送效率低下,并且使用起来也不方便(我希望最终得到每个元素尽可能少的矩形集合).

    尽我所知,这个elementFromPoint电话需要花费很多时间才能使我的算法相对无用......

    有谁能建议更好的方法?

    这是我的实现:

    function AreaPortion(l, t, r, b, currentDoc) {
        if (!currentDoc) currentDoc = document;
        this._x = l;
        this._y = t;
        this._r = r;
        this._b = b;
        this._w …
    Run Code Online (Sandbox Code Playgroud)
  • html javascript css jquery visibility

    15
    推荐指数
    1
    解决办法
    4337
    查看次数

    Java正则表达式 - 擦除字符后跟\ b(退格)

    我有一个由用户键盘类型构造的字符串,因此它可能包含'\b'字符(退格).

    我想清理字符串,以便它不包含'\b'字符,以及它们要删除的字符.例如,字符串:

    String str = "\bHellow\b world!!!\b\b\b.";
    
    Run Code Online (Sandbox Code Playgroud)

    应打印为:

    Hello world.
    
    Run Code Online (Sandbox Code Playgroud)

    我用replaceAll尝试过一些东西,我现在拥有的是:

    System.out.println(str.replaceAll("^\b+|.\b+", ""));
    
    Run Code Online (Sandbox Code Playgroud)

    哪个印刷品:

    你好,世界!!.

    单一'\b'处理正常,但忽略它的倍数.

    那么,我可以用Java的正则表达式来解决它吗?

    编辑:

    我已经看到了这个答案,但它似乎不适用于java的replaceAll.
    也许我错过了逐字字符串的东西......

    java regex

    11
    推荐指数
    2
    解决办法
    5776
    查看次数

    终结器(和ReferenceQueue)是否在JVM终止上运行?

    我知道你不能指望终结器清理你的混乱(即免费资源),但我想知道 - 当JVM正常终止(System.exit()/没有线程剩余)时,java对象是否得到GC /最终确定?

    编辑:

    因此,GC不能保证被触发,因此也不会finalize(),但是ReferenceQueue会起作用吗?

    java garbage-collection jvm termination

    8
    推荐指数
    1
    解决办法
    280
    查看次数

    在.NET Form/Visual Studio编辑器中查看Java GUI?

    我的目标是VSPackage为我的Java应用程序编写一个Visual Studio插件(a ).我想知道是否有可能JPanelSystem.Windows.Forms实例中查看某些内容,或者更确切地说是一个内容Microsoft.VisualStudio.Editor.

    我在想一个小程序,但我几乎被困在那里......

    将Swing组件作为JPEG流式传输并以表格形式显示它是一个适用的想法吗?

    编辑:

    我真的很感谢答案,那就是"是"/"不"/"你为什么要这样做?".我决定以这种方式工作,所以我要求:

  • 实现我的目标的详细解决方案,或,
  • 关于我的方法应该是什么的好的见解/想法,或者,
  • 彻底解释为什么不可能实现.

  • .net java user-interface swing visual-studio

    6
    推荐指数
    1
    解决办法
    1233
    查看次数

    为什么我的物体不会死?

    我正在尝试实现一种机制,当持有它们的对象死亡时删除缓存的文件,并决定使用PhantomReferences来获取有关对象的垃圾收集的通知.问题是我一直在经历着奇怪的行为ReferenceQueue.当我在代码中更改某些内容时,它突然不再获取对象.所以我试着让这个例子进行测试,并遇到了同样的问题:

    public class DeathNotificationObject {
        private static ReferenceQueue<DeathNotificationObject> 
                refQueue = new ReferenceQueue<DeathNotificationObject>();
    
        static {
            Thread deathThread = new Thread("Death notification") {
                @Override
                public void run() {
                    try {
                        while (true) {
                            refQueue.remove();
                            System.out.println("I'm dying!");
                        }
                    } catch (Throwable t) {
                        t.printStackTrace();
                    }
                }
            };
            deathThread.setDaemon(true);
            deathThread.start();
        }
    
        public DeathNotificationObject() {
            System.out.println("I'm born.");
            new PhantomReference<DeathNotificationObject>(this, refQueue);
        }
    
        public static void main(String[] args) {
            for (int i = 0 ; i < 10 ; i++) {
                new DeathNotificationObject(); …
    Run Code Online (Sandbox Code Playgroud)

    java garbage-collection phantom-reference

    6
    推荐指数
    1
    解决办法
    264
    查看次数

    使用 lldb 进行远程调试 - 等待进程

    我知道如何等待并附加到本地进程 ( process attach --name procname --waitfor)。
    我也知道如何运行远程debugserver并连接到它。

    但是我如何等待一个进程在远程主机上启动并附加到它?

    编辑

    我已经尝试过@Jim 的建议,看起来调试服务器实际上正在尝试附加但失败了
    我接受他的回答,因为它是正确的,但我很高兴知道为什么我不能真正调试这个过程。
    仅供参考,我正在尝试在 JB iPhone 上调试 mdmd(mdm 守护程序服务)。该进程启动几秒钟以与 mdm 服务器通信,然后终止。

    这是来自目标的终端:

    ~ root# debugserver *:1234
    debugserver-310.2 for arm64。
    正在侦听端口 1234 以获取来自 *...
    的连接...有一个连接,正在等待启动或附加的进程信息。
    附加成功,准备调试。
    退出。

    这是来自 lldb 的:

    (lldb) process connect connect://localhost:1234
    (lldb) process attach --name mdmd --waitfor
    错误:附加失败:无法附加

    macos remote-debugging ios lldb

    6
    推荐指数
    1
    解决办法
    5108
    查看次数

    配置使用特定构建工具版本构建的 Xcode 项目

    在我的构建系统中,我用来xcodebuild构建多个项目。

    我想为每个项目配置不同的 Xcode 安装。

    我知道sudo xcode-select --switch <path>,但是:

    • 此选项是系统范围的,可能会与其他并行构建混淆。
    • 它需要 root,我更愿意避免它(因为它是一个自动构建系统)。
    • 它没有在项目内部配置。

    有没有办法指定每个项目使用的构建工具路径?

    macos xcode build-system xcodebuild

    5
    推荐指数
    1
    解决办法
    1411
    查看次数