0%

1. 概述

权限的目的是保护用户隐私, Andriod 应用访问用户敏感数据(例如联系人、短信)和某些系统功能(例如相机、网络)时必须申请权限,系统会根据不同的功能选择自动授予权限或者提示用户批准权限请求。

阅读全文 »

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。

阅读全文 »