小编Mar*_*iro的帖子

如何在Eclipse中构建APK文件?

当我使用Eclipse开发项目时,APK文件会在模拟器上运行.但我想将我的应用程序上传到真实设备.有没有工具来构建一个APK文件?

这个过程是什么?或者是否可以从模拟器中提取APK文件?

eclipse android android-emulator apk android-install-apk

422
推荐指数
12
解决办法
53万
查看次数

通过adb shell am start将数据发送回启动活动的脚本

我想adb从bash脚本中安装诊断应用程序并从中获取数据.我知道如何开始一个活动adb,但我找不到任何方法来获取数据,除非我打印logcat并解析输出,但这听起来像一个黑客.有没有办法从开始使用的活动中接收数据adb

bash android adb

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

如何为枚举实现PartialEq?

我有以下定义:

enum Either<T, U> {
    Left(T),
    Right(U),
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到#[derive(PartialEq)]这种类型的等价物?我想使用一个match表达式,如:

impl<T: PartialEq, U: PartialEq> PartialEq for Either<T, U> {
    fn eq(&self, other: &Either<T, U>) -> bool {
        use Either::*;
        match (*self, *other) {
            (Left(ref a), Left(ref b)) => a == b,
            (Right(ref a), Right(ref b)) => a == b,
            _ => false,
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这既消耗*self*other,即使我只需要它的match表达,导致错误:

error[E0507]: cannot move out of borrowed content
 --> src/lib.rs:9:16
  |
9 |         match (*self, *other) …
Run Code Online (Sandbox Code Playgroud)

rust

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

如何从另一个提交复制提交元数据(作者、日期)

我确信在 git 中有一种方法可以做到这一点,但我的搜索结果是空的。有没有一种简单的方法可以从一次提交中获取消息、提交作者、提交日期和其他信息,并使用这些数据修改第二次提交,而无需复制实际的提交内容?

git git-commit

9
推荐指数
2
解决办法
498
查看次数

打印大型Swing组件

我有一个Swing表单,在JScrollPane中有一个自定义表(它只是一个JPanel,而不是JTable子类),我试图让它打印出来.如果我只是将整个框架发送到打印机,滚动窗格会切断,如果我将框架的大小调整为滚动窗格内容的大小,某种内部屏障会阻止JFrame变得超过1100像素高.

另一种方法是创建对话框的内容窗格而不将其附加到根JFrame,因为JPanel的大小在这种情况下不受限制.但是为了让组件自行调整并调整到适当的大小,我似乎需要使面板可显示,这意味着至少将它添加到JFrame并调用JFrame.pack(),但同样,1100像素限制回来了.

这是我打印组件的代码:

public static void print(final Component comp) {
    final float SCALE = .5f;
    PrinterJob job = PrinterJob.getPrinterJob();
    job.setPrintable(new Printable() {
        public int print(Graphics g, PageFormat pf, int page)
            throws PrinterException
        {
            if (page * pf.getImageableHeight() >= SCALE * comp.getHeight())
                return NO_SUCH_PAGE;
            ((Graphics2D)g).translate(pf.getImageableX(), pf.getImageableY()
               - page * pf.getImageableHeight());
            ((Graphics2D)g).scale(SCALE, SCALE);
            comp.printAll(g);
            return PAGE_EXISTS;
        }
    });
    if (job.printDialog())
        try { job.print(); }
        catch (PrinterException ex) {}
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做,组件的大小为零:

JPanel c = createPanel(); // This JPanel has a JScrollPane in it …
Run Code Online (Sandbox Code Playgroud)

java printing swing

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

if-let有一对短路吗?

假设f()g()返回Option<T>.

if let (Some(x), Some(y)) = (f(), g()) {
    h();
}
Run Code Online (Sandbox Code Playgroud)

如果f()退货None,会g()被评估吗?规范是否保证或禁止评估?

operator-precedence rust

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

逻辑上拆分借用以解决启用 NLL 的借用检查器的限制是否安全?

下面的代码涉及一个非常微妙的借用检查器闪避。代码本身描述了推理。问题:

  • 这真的安全吗?
  • 这是表示执行的不安全操作的推荐方式吗?我应该使用指针吗?
  • 新的 Polonius 借用检查器能否推理出这样的模式?
/// Insert a new data element at a given key.
pub fn insert<'a, K: Eq, V>(this: &'a mut Vec<(K, V)>, key: K, val: V) -> &'a mut V {
    // Safety: As indicated below, we would like to return val1 directly in the loop,
    // but rust will reject this, claiming a double borrow, and we instead use some
    // unsafe hacks to circumvent the borrow checker. To show this is safe, consider
    // …
Run Code Online (Sandbox Code Playgroud)

rust borrow-checker

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

从拥有的资源返回借用

我正在尝试编写一个将 an 映射Arc<[T]>到 an的函数,以Iterable供使用flat_map(也就是说,我想调用i.flat_map(my_iter)其他一些i: Iterator<Item=Arc<[T]>>)。

fn my_iter<'a, T>(n: Arc<[T]>) -> slice::Iter<'a, T> {
    let t: &'a [T] = &*n.clone();
    t.into_iter()
}
Run Code Online (Sandbox Code Playgroud)

上面的函数不起作用,因为n.clone()产生了一个拥有的 type 值Arc<[T]>,我可以取消引用[T]然后借用 get &[T],但是借用的生命周期只持续到函数结束,而'a生命周期持续到客户端删除返回的迭代器。

如何Arc以客户端拥有克隆的所有权的方式克隆 ,以便仅在客户端使用迭代器完成后才删除该值(假设没有其他人使用Arc)?


下面是源迭代器的一些示例代码:

struct BaseIter<T>(Arc<[T]>);

impl<T> Iterator for BaseIter<T> {
    type Item = Arc<[T]>;

    fn next(&mut self) -> Option<Self::Item> {
        Some(self.0.clone())
    }
}
Run Code Online (Sandbox Code Playgroud)

鉴于正在生成数据,而不仅仅是借用它,我如何实现BaseIter(data).flat_map(my_iter)(类型为Iterator<&T>)的结果?(实际情况比这更复杂,结果并不总是相同,但所有权语义是相同的。)BaseIter

rust

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

管道关闭时少退出

作为 bash 脚本的一部分,我想重复运行一个程序,并将输出重定向到less. 该程序具有交互元素,因此目标是当您通过窗口的 X 按钮退出程序时,它会通过脚本重新启动。这部分效果很好,但是当我使用管道时less,程序不会自动重新启动,直到我转到控制台并按q。脚本的相关部分:

while :
do
    program | less
done
Run Code Online (Sandbox Code Playgroud)

我想less在管道关闭时自行退出,以便程序在没有任何用户干预的情况下重新启动。(这样它的行为就好像管道不存在一样,除非程序运行时您可以查阅控制台以查看当前运行的输出。)

也欢迎此问题的替代解决方案。

bash

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