所以我希望能够编写一个可以打开并显示logcat消息,dmesg的应用程序,并且还能够运行像'ls''cat''echo''cd'这样的命令.
如果我执行以下操作:
nativeProc = Runtime.getRuntime().exec("ls\n");
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(nativeProc.getOutputStream()));
BufferedReader in = new BufferedReader(new InputStreamReader(nativeProc.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
full = full + "\n" + line;
}
Run Code Online (Sandbox Code Playgroud)
我可以将文本"full"放到Text View中并查看根目录.
但是,这就是我所能做的一切.假设我想要找到一个目录,然后更改它,我遇到了麻烦.
所以,如果我这样做:
nativeProc = Runtime.getRuntime().exec("ls\n");
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(nativeProc.getOutputStream()));
BufferedReader in = new BufferedReader(new InputStreamReader(nativeProc.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
full = full + "\n" + line;
}
/* Code here to confirm the …Run Code Online (Sandbox Code Playgroud) 是否有关于adb命令"dumpsys SurfaceFlinger"输出的文档?
特别是,我想了解HWC或GLES图层类型之间的区别,以及numHwLayers的含义是什么?
这是我正在谈论的dumpsys SurfaceFlinger的部分:
mDebugForceFakeVSync=0
Display[0] : 768x1280, xdpi=319.790009, ydpi=318.744995, refresh=16666667
numHwLayers=5, flags=00000000
type | handle | hints | flags | tr | blend | format | source crop | frame name
------------+----------+----------+----------+----+-------+----------+---------------------------+--------------------------------
GLES | b7e1c440 | 00000002 | 00000000 | 00 | 00100 | 00000002 | [ 334, 56, 1102, 1190] | [ 0, 50, 768, 1184] com.android.systemui.ImageWallpaper
GLES | b7e1d7c8 | 00000002 | 00000000 | 00 | 00105 | 00000001 | [ 0, 50, 768, 1184] | …Run Code Online (Sandbox Code Playgroud) 我用两种方式写了同一个程序.
一个使用Surfaceview,另一个使用自定义视图.根据android SDK开发指南,使用表面视图更好,因为您可以生成一个单独的线程来处理图形.SDK开发指南声称,使用带有无效调用的自定义视图仅适用于较慢的动画,不太强烈的图形.
但是,在我的简单应用程序中,我可以清楚地看到,使用带有无效调用的自定义视图似乎渲染速度更快.
你们有什么了解/想到这个?
我的touchEvent代码完全相同,我的绘图代码完全相同.唯一的区别是一个都在UI线程中,另一个是使用脚踏来处理绘图.
我需要我的应用程序来读取系统在关闭显示器,睡觉或进入休眠状态之前等待的时间.据我所知,我需要使用电源管理功能(http://msdn.microsoft.com/en-us/library/aa373163%28v=vs.85%29.aspx)特别是,它看起来像我需要使用PowerEnumerate方法(http://msdn.microsoft.com/en-us/library/aa372730%28v=vs.85%29.aspx).
我真的很困惑如何做到这一点.首先,我在C#中这样做,代码看起来像是C++.其次,C++代码似乎并没有真正告诉你如何专门读取我想要的不同超时.
注意,我是Windows编程和C#的新手.我的大部分经验都是Java和Android.
谢谢
我对某事感到困惑.基本上,我正在产生一个线程,另外我想在该线程中运行一个消息循环.我基本上是在执行以下操作:这是Android Looper类API文档中的直接内容.但是,我的应用程序总是卡在Looper.loop()中,永远不会从它返回.我目前的解决方法是在主线程(或UI线程)中创建一个处理程序,然后将消息发送到该线程.但是,为了清洁并且只是让我的应用程序的流程有意义,我更愿意将我的消息发送到我正在创建的线程.
class LooperThread extends Thread {
public Handler mHandler;
public void run() {
Looper.prepare();
mHandler = new Handler() {
public void handleMessage(Message msg) {
// process incoming messages here
}
};
Looper.loop();
// The rest of the code below is a control loop
}
}
Run Code Online (Sandbox Code Playgroud)
关于什么可能导致Looper.loop()永远不会返回的任何想法?
例:
假设我想创建一个包含26个键的Hashmap,这个示例将'A'通过'Z'.现在,让我们说,我要钥匙'A','M'和'Z'返回相同的整数值123.创建此映射时,映射是否会进行优化,以便只有一个值存储在内存中?或者它仍将它视为具有3个不同值的3个不同的键,即使3个值相同.
我希望这个问题有道理.
谢谢
我一直在四处寻找,看看是否有这样的约定,但我没有看到.我想看看整个社区做了些什么.
当你有Java的任何类时,你是否以任何特定的方式组织方法?是否有这样的约定.
例如,可能首先列出公共静态成员,然后是公共成员,然后是私有成员?也许是字母顺序?或许按照如何调用方法的顺序,即首先是初始化方法,接着是worker/helper方法,最后清理方法?
你做了什么,为什么?是否有建议的方法来做到这一点?
android ×4
java ×2
.net ×1
adb ×1
c# ×1
command-line ×1
desktop ×1
handler ×1
looper ×1
performance ×1
runtime.exec ×1
surfaceview ×1
terminal ×1
windows ×1