0%

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
String[] msgDwnCmds = {"curl", MSG_DOWNLOAD_JSON_URL + "?secret=" + secret + "&device_id=" + device_id};
String msgDwnJson = getResult(msgDwnCmds);
private String getResult(String[] cmds) {
ProcessBuilder pb = new ProcessBuilder(cmds);
pb.redirectErrorStream(true);
Process p;
StringBuilder sb = new StringBuilder();
try {
p = pb.start();
BufferedReader br = null;
String line = null;

br = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = br.readLine()) != null) {
System.out.println("\t" + line);
if (line.startsWith("{")) {
sb.append(line + "\n");
}
}

br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();
}

1. 概述

如前文Android_ANR分析所述,ANR有4种分类:KeyDispatch Timeout、Broadcast Timeou、Service Timeout、ContentProvider Timeout,但是无论是哪一类,最后都会调用到AppErrors.appNotResponding()方法(Android N之前还是写在AMS中,从N开始定义在新添加的AppErrors.java中,本文基于Android 8.1.0源码分析),该方法的调用如下图:

阅读全文 »

做性能优化绕不开开机启动时间的优化,用户往往都希望自己的机器能够快速的启动,这种强烈的需求覆盖各种电子设备,本篇主要简单的介绍Android设备启动时间的计时工具——bootchart以及简单的优化。

阅读全文 »

1. 简介

  • ANR是一个很常见的问题,即Application Not Responding,通俗的说,就是应用程序与外界的交互不灵敏了。Android应用与外界的交互有多种,但其中一些特别重要的交互,如果没有得到应用的及时处理,超过一定时间,就会造成ANR。

    阅读全文 »

通过本文介绍,希望能够了解selinux的概念,如何查看selinux相关权限,如何配置selinux,如何临时打开关闭selinux。

阅读全文 »

Linux中会经常遇到command>/dev/null 2>&1 & 这样形式的命令,到底是什么意思呢?command就是要执行的命令,command>/dev/null也比较好理解,/dev/null表示一个空设备,意思是把command的执行结果重定向到空设备中,也就是不显示任何信息。2>&1是什么意思呢?

阅读全文 »