小编Tho*_*mas的帖子

Android adb"无法打开同步连接!"

我大部分时间都可以在手机上运行和调试我的Android应用程序.然后,看似随机,当我尝试从Eclipse运行或调试我的应用程序时,Eclipse中的控制台说:

[2010-10-12 09:36:48 - myapp] Android Launch!
[2010-10-12 09:36:48 - myapp] adb is running normally.
[2010-10-12 09:36:48 - myapp] Performing com.mycompany.myapp.MyActivity activity launch
[2010-10-12 09:36:48 - myapp] Automatic Target Mode: using device 'HT01TP800561'
[2010-10-12 09:36:48 - myapp] Uploading myapp.apk onto device 'HT01TP800561'
[2010-10-12 09:36:48 - myapp] Failed to upload myapp.apk on device 'HT01TP800561'
[2010-10-12 09:36:48 - myapp] java.io.IOException: Unable to open sync connection!
[2010-10-12 09:36:48 - myapp] Launch canceled!
Run Code Online (Sandbox Code Playgroud)
  • 重试:没有帮助,相同的消息.
  • 重启Eclipse:没有帮助.
  • 重启adb(adb kill-server && adb start-server):没有错误,没有帮助.
  • 重新连接手机:有时 …

eclipse android adb

168
推荐指数
2
解决办法
4万
查看次数

如何创建Looper线程,然后立即发送消息?

我有一个工作线程,它位于后台,处理消息.像这样的东西:

class Worker extends Thread {

    public volatile Handler handler; // actually private, of course

    public void run() {
        Looper.prepare();
        mHandler = new Handler() { // the Handler hooks up to the current Thread
            public boolean handleMessage(Message msg) {
                // ...
            }
        };
        Looper.loop();
    }
}
Run Code Online (Sandbox Code Playgroud)

从主线程(UI线程,不重要)我想做这样的事情:

Worker worker = new Worker();
worker.start();
worker.handler.sendMessage(...);
Run Code Online (Sandbox Code Playgroud)

麻烦的是,这为我设定了一个漂亮的竞争条件:在worker.handler阅读时,没有办法确定工作线程已经分配给了这个领域!

我不能简单地HandlerWorker构造函数创建,因为构造函数在主线程上运行,因此Handler它将自己与错误的线程相关联.

这似乎不太常见.我可以提出几个解决方法,所有这些都是丑陋的:

  1. 像这样的东西:

    class Worker extends Thread {
    
        public volatile Handler handler; // actually private, of course …
    Run Code Online (Sandbox Code Playgroud)

multithreading android handler looper

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

为什么OpenGL使用度而不是弧度?

OpenGL设计师从不害怕数学,线性代数的知识对于除最简单的OpenGL应用之外的所有人都是必不可少的.我认为可以安全地假设OpenGL程序员熟悉弧度角度.

在数学上,弧度在各个方面都比度数更优雅.它们还具有实际优势:

  • C标准库使用弧度.
  • 几乎任何其他图书馆都使用弧度.
  • 在一些计算中,弧度更方便,例如圆弧的长度.

那么,为什么OpenGL设计者决定指定像glRotatefgluPerspective使用度数这样的函数呢?

(我知道它没有实际意义,反正也不会改变.我只是好奇,我在OpenGL.org上找不到答案.)

opengl angle degrees radians

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

我可以从Dalvik和Android工具链中得到什么样的优化?

我正在开发一个高性能的Android应用程序(游戏),尽管我首先尝试编写可读性代码,但我想在脑海中留下一个关于幕后发生的事情的图片.使用C++,我已经对编译器将为我做什么和不做什么做了很好的直觉.我正在尝试为Java/Android做同样的事情.

因此这个问题.我在网上找不到这个话题.Java编译器,Dalvik转换器(dx)和/或JITter(在Android 2.2+上)是否会执行如下优化?

  • 方法内联.在什么条件下?private方法总是可以安全地内联; 这样做会吗?public final方法怎么样?关于其他类对象的方法?static方法?如果编译器可以轻松推导出对象的运行时类型,该怎么办?我要声明的方法finalstatic在可能的情况?

  • 常见的子表达式消除.例如,如果我访问someObject.someField两次,查找只会进行一次吗?如果它是对吸气剂的召唤怎么办?如果我使用一些算术表达式两次会怎么样 它只会被评估一次吗?如果我使用某些表达式的结果,我知道它的值不会改变,作为for循环的上限,该怎么办?

  • 检查数组查找的边界.工具链是否会在某些条件下消除这种情况,例如原型for循环?

  • 价值内联.访问一些public static final int总是内联?即使他们在另一个班级?即使他们在另一个包裹?

  • 分支预测.这甚至有多大问题?是否会在典型的Android设备上大幅提升性能?

  • 简单算术.将someInt * 2被取代someInt << 1

诸如此类......

java optimization android dalvik

67
推荐指数
3
解决办法
7587
查看次数

WebSockets ping/pong,为什么不用TCP keepalive?

WebSockets 可以选择将ping发送到另一端,另一端应该用pong响应.

收到Ping帧后,端点必须发送Pong帧作为响应,除非它已经收到一个关闭帧.它应该尽快响应Pong框架.

TCP 以keepalive的形式提供类似东西:

[Y]你向对等体发送一个keepalive探测包,其中没有数据,并且ACK标志打开.您可以这样做是因为TCP/IP规范,作为一种重复的ACK,并且远程端点将没有参数,因为TCP是面向流的协议.另一方面,您将收到来自远程主机的回复(根本不需要支持keepalive,只需TCP/IP),没有数据和ACK设置.

我认为TCP keepalive效率更高,因为它可以在内核中处理而无需将数据传输到用户空间,解析websocket框架,制作响应框架,然后将其交回内核进行传输.它也减少了网络流量.

此外,WebSockets 被明确指定为始终在TCP上运行; 它们不是传输层不可知的,因此TCP keepalive始终可用:

WebSocket协议是一种独立的基于TCP的协议.

那么为什么人们会想要使用WebSocket ping/pong而不是TCP keepalive?

tcp keep-alive websocket

63
推荐指数
4
解决办法
4万
查看次数

"git push --mirror"是否足以备份我的存储库?

我是一名独立开发人员,在本地Git存储库中工作.对于备份,我想将该存储库的精确副本发送到另一台服务器.

这样做是否足够?

git push --mirror
Run Code Online (Sandbox Code Playgroud)

我问,因为在Git告诉我"一切都是最新的"之前,我有时可以运行这个命令两到三次,所以显然它不是一个精确的镜子.它似乎正在重新推动跟踪分支......?

$ git push --mirror
Counting objects: 42, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (30/30), done.
Writing objects: 100% (30/30), 5.09 KiB, done.
Total 30 (delta 17), reused 0 (delta 0)
To ssh://my/repo/url
   c094a10..0eedc92  mybranch -> mybranch
$ git push --mirror
Total 0 (delta 0), reused 0 (delta 0)
To ssh://my/repo/url
   c094a10..0eedc92  origin/mybranch -> origin/mybranch
$ git push --mirror
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)

发生了什么,这是一个好策略吗?

编辑:我不喜欢使用类似git bundle.tar.bz2档案的东西,因为我希望备份是一个可访问的工作副本.由于我的备份服务器已连接到网络并始终打开,因此在我上路时这是访问存储库的好方法.

git backup

52
推荐指数
4
解决办法
3万
查看次数

Kotlin是否有Map语法的语法?

在JavaScript中:{foo: bar, biz: qux}.

在Ruby中:{foo => bar, biz => qux}.

在Java中:

HashMap<K, V> map = new HashMap<>();
map.put(foo, bar);
map.put(biz, qux);
Run Code Online (Sandbox Code Playgroud)

当然Kotlin可以做得比Java好吗?

dictionary literals kotlin

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

如何运行用TypeScript编写的Mocha测试?

设置:我有一个用TypeScript编写的Node项目(纯节点,没有浏览器位).我可以使用模块中的TypeScript编译器(tsc)typescript来编译代码.到现在为止还挺好.

但是,我想用Mocha编写测试,这就是我遇到麻烦的地方.我试过了--compilers ts:typescript,但我一直得到如下错误:

error TS5023: Unknown compiler option 'compilers'.
Run Code Online (Sandbox Code Playgroud)

它看起来像mocha最终被传递给命令行tsc,这显然是不好的.

mocha.js node.js typescript

35
推荐指数
4
解决办法
2万
查看次数

如何手动解析字符串中的浮点数

当然,大多数语言都有库函数,但我想自己想做.

假设浮点数是在C或Java程序中给出的(除了'f'或'd'后缀除外),例如" 4.2e1"," .42e2"或简单地" 42".通常,我们在小数点之前有"整数部分",在小数点之后有"小数部分"和"指数".这三个都是整数.

很容易找到并处理各个数字,但是如何将它们组合成类型的值floatdouble不丢失精度?

我想将整数部分乘以10 ^ n,其中n是小数部分中的位数,然后将小数部分添加到整数部分并从指数中减去n.例如,这有效地变成4.2e142e0.然后我可以使用该pow函数来计算10 ^ 指数并将结果与​​新的整数部分相乘.问题是,这种方法是否能保证最高精度?

有什么想法吗?

floating-point precision parsing

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

如何创建类似资源管理器的文件夹浏览器控件?

在VS2008中使用C#和WinForms,我想创建一个文件浏览器控件,其外观和行为类似于Windows资源管理器中的左窗格.令我惊讶的是,默认情况下,这样的控件不附带.NET.

理想情况下,我希望其内容与资源管理器中的内容完全相同.例如,在Windows 7上,它应显示"收藏夹"和"库"伪文件夹.当然,如果我可以提供帮助,我不想专门为每个版本的Windows编写代码.

我浏览了一下,并且有一些这样的控件的例子,但它们都是手工卷制的,因此不会与Explorer中的100%相同.

有什么办法可以简单地重用Explorer控件吗?或者,如果没有,访问它将显示的项目的树?

.net c# explorer winforms

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