小编Raz*_*azl的帖子

Android Studio - 清除Instrumentation Test的应用程序数据

如何在不手动运行adb命令的情况下让Android Studio(AndroidJunitRunner)清除检测测试之前的应用程序数据?

我发现了android.support.test.runner.AndroidJUnitRunner一种作弊的-它从来没有真正调用connectedCheckconnectedAndroidTest.

  1. 从命令行运行时 $ gradle connectedCheck

    :MyMainApp:assembleDebug UP-TO-DATE
    :MyMainApp:assembleDebugTest UP-TO-DATE
    :MyMainApp:clearMainAppData
    :MyMainApp:connectedCheck
    
    Run Code Online (Sandbox Code Playgroud)
  2. 通过单击检测测试配置从IDE内部运行(带有红色/绿色箭头的绿色Android机器人徽标)

    **Executing tasks: [:MyMainAppApp:assembleDebug, :MyMainAppApp:assembleDebugTest]**
    
    Run Code Online (Sandbox Code Playgroud)

    如您所见,最后一个gradle目标是 assembleDebugTest

我已经添加了一个钩到connectedCheckbuild.gradle开始仪表测试之前清除主要的应用程序的数据.

// Run 'adb' shell command to clear application data of main app for 'debug' variant
task clearMainAppData(type: Exec) {
    // we have to iterate to find the 'debug' variant to obtain a variant reference
    android.applicationVariants.all { variant ->
        if (variant.name.equals("debug")) {
            def clearDataCommand = ['adb', 'shell', 'pm', …
Run Code Online (Sandbox Code Playgroud)

gradle android-studio android-gradle-plugin android-instrumentation

13
推荐指数
2
解决办法
9250
查看次数

字符串切片是否执行底层数据的复制?

我正在尝试string使用utf8库有效地计算 utf-8中的符文。此示例是否最佳,因为它不复制基础数据?
https://golang.org/pkg/unicode/utf8/#example_DecodeRuneInString

func main() {
    str := "Hello, ??" // let's assume a runtime-provided string
    for len(str) > 0 {
        r, size := utf8.DecodeRuneInString(str)
        fmt.Printf("%c %v\n", r, size)
        str = str[size:] // performs copy?
    }
}
Run Code Online (Sandbox Code Playgroud)

我在(不安全的)反射库中找到了StringHeader。这是stringGo中 a 的确切结构吗?如果是这样,可以想象,对字符串进行切片只是更新Data或分配一个新的字符串StringHeader

type StringHeader struct {
        Data uintptr
        Len  int
}
Run Code Online (Sandbox Code Playgroud)

奖励:在哪里可以找到执行string切片的代码,以便我可以自己查找?有这些吗?
https://golang.org/src/runtime/slice.go
https://golang.org/src/runtime/string.go

相关SO答案,从转化时表明运行时字符串招致拷贝string[]byte

string utf-8 go slice

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

如何检测虚假唤醒

我已经阅读了很多这方面的帖子.这个答案/sf/answers/469074231/通过建议测试中断的标志声称100赏金.

我测试了这个,它对我不起作用.那么,问题仍然存在,我如何检测到虚假的唤醒,或者它是否可能?谢谢.

class TestSpuriousWakeup {
  static Thread t1, tInterrupt, tNotify;

  // spawn one thread that will be interrupted and be notified
  // spawn one thread that will interrupt
  // spawn one thread that will notify
  public static void main(String[] args) {
    System.out.println("*** main Starting");
    initThreads();

    try {
      t1.start();

      Thread.sleep(2000);
      tNotify.start();
      tNotify.join();

      Thread.sleep(2000);
      tInterrupt.start();
      tInterrupt.join();

      t1.join();
    } catch (InterruptedException e) {
      System.out.println("*** Unexpected interrupt in main");
    }

    System.out.println("*** main Ended.");
  }

  private static void initThreads() {
    t1 = new …
Run Code Online (Sandbox Code Playgroud)

java linux multithreading posix pthreads

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