小编Vik*_*lyi的帖子

如何在Python中从子进程获取返回代码和输出?

在为Android Debug Bridge(ADB)开发python包装器库时,我正在使用进程在shell中执行adb命令.这是简化的例子:

import subprocess

...

def exec_adb_command(adb_command):
    return = subprocess.call(adb_command)
Run Code Online (Sandbox Code Playgroud)

如果命令执行propery exec_adb_command返回0即可.

但是一些adb命令不仅会返回"0"或"1",还会生成一些我想要捕获的输出.adb设备例如:

D:\git\adb-lib\test>adb devices
List of devices attached
07eeb4bb        device
Run Code Online (Sandbox Code Playgroud)

我已经为此目的尝试了subprocess.check_output(),它确实返回输出但不返回代码("0"或"1").

理想情况下,我想得到一个元组,其中t [0]是返回码,t [1]是实际输出.

我是否遗漏了子流程模块中已经允许获得此类结果的内容?

谢谢!

python subprocess adb

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

如何衡量Android上的VRAM消费?

我想获得Android设备VRAM大小.

是否有从该计划中获取的方法?

android opengl-es android-sdk-1.6

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

如何在Selendroid中执行滑动操作?

  1. 我尝试用以下编码进行滑动.
  2. 在运行测试用例时,不会发生滑动操作,我也没有收到任何错误消息.
  3. 如何从左向右滑动两侧,反之亦然.

有两种方法如下: -

方法1(使用TouchActions): -

    1. //Swipe Right to Left side of the Media Viewer First Page
                    WebElement firstPages = driver.findElement(By.id("media-list"));
                    TouchActions flick = new TouchActions(driver).flick(firstPages,-100,0,0);
                    flick.perform();

    2. //perform swipe gesture
                   TouchActions swipe = new TouchActions(driver).flick(0, -20);
                   swipe.perform();
Run Code Online (Sandbox Code Playgroud)

方法2(使用javascript): -

public static void swipe(WebDriver driver) {

            JavascriptExecutor js = (JavascriptExecutor) driver;
            HashMap<String, Double> swipeObject = new java.util.HashMap<String, Double>();
            swipeObject.put("startX", 0.95);
            swipeObject.put("startY", 0.5);
            swipeObject.put("endX", 0.05);
            swipeObject.put("endY", 0.5);
            swipeObject.put("duration", 1.8);
            js.executeScript("mobile: swipe", swipeObject);
        }
Run Code Online (Sandbox Code Playgroud)

java touch swipe selendroid

11
推荐指数
1
解决办法
2197
查看次数

SwiftUI:如果在 ForEach 中使用,NavigationLink 会立即弹出

我在列表中的 ForEach 中使用 NavigationLink 来构建一个基本的按钮列表,每个按钮都指向一个单独的详细信息屏幕。

当我点击任何列表单元格时,它会转换到该单元格的详细信息视图,但随后会立即弹回主菜单屏幕。

不使用 ForEach 有助于避免这种行为,但不是所希望的。

这是相关的代码:

struct MainMenuView: View {

    ...

    private let menuItems: [MainMenuItem] = [
        MainMenuItem(type: .type1),
        MainMenuItem(type: .type2),
        MainMenuItem(type: .typeN),
    ]

    var body: some View {
        List {
            ForEach(menuItems) { item in
                NavigationLink(destination: self.destination(item.destination)) {
                    MainMenuCell(menuItem: item)
                }
            }
        }
    }

    // Constructs destination views for the navigation link
    private func destination(_ destination: ScreenDestination) -> AnyView {
        switch destination {
        case .type1:
            return factory.makeType1Screen()
        case .type2:
            return factory.makeType2Screen()
        case .typeN:
            return factory.makeTypeNScreen()
        } …
Run Code Online (Sandbox Code Playgroud)

ios swift watchkit swiftui

11
推荐指数
1
解决办法
3532
查看次数

有没有办法启动仅与更改的代码相关的单元测试?

在我的Python项目中,我们有大量的单元测试(数千个).虽然它们在逻辑上分布在文件和类之间,但我有时需要花费大量时间来查找它们,这些内容涵盖了我正在改变的功能.

当然,我可以从一些特定的文件/类中运行所有测试,但是由于大量的测试,再次运行它们会非常耗时(我在每次保存文件后都执行单元测试)我的IDE).

所以一般来说我需要一些解决方案,一次做以下活动:

  • 跟踪自上次保存文件以来哪些文件已更改
  • 跟踪那些文件中已更改的代码与覆盖该代码的单元测试之间的依赖关系
  • 有选择地只执行那些覆盖受影响代码的单元测试

有没有人对类似的东西有所了解?

python dependencies unit-testing code-coverage python-unittest

10
推荐指数
1
解决办法
308
查看次数

将bitcode启用的构建提交到iTunes Connect后,隐藏了dSYM符号

我有一个与dSYM相关的非常奇怪的问题,当我将构建版本上传到iTunes Connect并将"enable bitcode"设置设置为"yes"时,Apple会生成这个问题:所有调试符号都会隐藏.

但是,在将构建内容上传到Apple之前,我的单个dSYM文件只有少数几个,这让我有一个想法,即由于构建处理它们将隐藏在Apple的一侧.我运行以下命令以过滤掉dSYM中的所有隐藏条目:

dwarfdump *.dSYM | grep "hidden"
Run Code Online (Sandbox Code Playgroud)

我上传到iTunes Coonnect的版本是"Release"版本.以下是构建时使用的相关调试设置:

在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述

我已经为这个问题提交了一个RADAR,但想知道我是否遗漏了一些明显的东西.

谢谢!

itunesconnect ios

10
推荐指数
1
解决办法
1430
查看次数

删除 SwiftUI (WatchKit) 中的圆形按钮背景

我正在努力删除 SwiftUI 中自定义圆形 Button 元素的背景,其定义如下:

struct NavButton: View {
    var body: some View {
        Button(action: {})
            VStack {
                Text("Button")
            }
            .padding(40)
            .background(Color.red)
            .font(.title)
            .mask(Circle())
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这会在按钮周围产生一个矩形的浅灰色背景,我希望它不显示:

在此处输入图片说明

我试图在按钮上附加一个“背景”修饰符,它表现出非常奇怪的行为:如果它设置为“Color.clear”,则没有效果。但是如果我将它设置为“Color.green”,它确实会按预期改变背景。

将“背景”修饰符设置为“Color.green”的示例:

struct NavButton: View {
        var body: some View {
            Button(action: {})
                VStack {
                    Text("Button")
                }
                .padding(40)
                .background(Color.red)
                .font(.title)
                .mask(Circle())
            }
            .background(Color.green) // has no effect if set to "Color.clear"
        }
    }
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我想知道我是否在这里遗漏了什么?

PS:我使用的是 Xcode 11.1 (11A1027)

ios swift watchkit swiftui

7
推荐指数
2
解决办法
2086
查看次数

从真实设备下载 watchOS 应用程序容器

有没有办法为在真实设备上运行的 watchOS 应用程序下载应用程序容器?

PS:对于iOS应用程序,可以使用Xcode设备和模拟器窗口,但仅列出iOS应用程序,无法检查Apple Watch上安装的应用程序。

xcode ios watchkit watchos

7
推荐指数
0
解决办法
165
查看次数

GDB如何处理大(> 1 Gb)调试文件?

我在使用代码库很大的远程GDB会话调试C++应用程序时遇到问题,因此它包含(当使用"-O2"," - g"," - DNDEBUG"标志编译时)带有调试信息的大文件(1.1 Gb) ).

不幸的是,我不能在调试期间使用部分符号表,因为调试器一直跳过应用程序的一部分,我无法在那里设置断点并在调试时查看代码.

作为此问题的解决方案,我在连接到目标后执行以下命令:

symbol-file -readnow [path-to-file-with-debugging-info]
Run Code Online (Sandbox Code Playgroud)

这会扩展完整的符号表.但在这种情况下,GDB只是耗尽内存,达到13 Gb甚至更多RAM(而我的机器上只有16 Gb可用).此问题已在GDB Wiki中列出并已知.

我的问题是在这种情况下如何处理GDB,当我需要完整的符号表时,但是GDB需要大量的内存才能扩展它?

提前致谢!

c++ debugging gdb

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

有没有办法在Travis CI构建中启动Android模拟器?

我有adb的python包装器库,我有单元测试,它依赖于模拟器或真实设备(因为它们执行adb命令).

我还想使用Travis CI作为构建环境,同时为每个构建执行这些单元测试.

有没有办法在Travis CI中安装android模拟器,以便单元测试可以执行adb命令?

提前致谢!

python android unit-testing adb travis-ci

5
推荐指数
2
解决办法
1937
查看次数