Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_47647075
emmagee
提交
ee187d7e
E
emmagee
项目概览
weixin_47647075
/
emmagee
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
emmagee
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ee187d7e
编写于
12月 19, 2013
作者:
H
hzhuangqingbin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add: app starting time
上级
1e26fa7e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
57 addition
and
1 deletion
+57
-1
src/com/netease/qa/emmagee/activity/MainPageActivity.java
src/com/netease/qa/emmagee/activity/MainPageActivity.java
+6
-0
src/com/netease/qa/emmagee/service/EmmageeService.java
src/com/netease/qa/emmagee/service/EmmageeService.java
+51
-1
未找到文件。
src/com/netease/qa/emmagee/activity/MainPageActivity.java
浏览文件 @
ee187d7e
...
...
@@ -96,6 +96,12 @@ public class MainPageActivity extends Activity {
Intent
intent
=
getPackageManager
()
.
getLaunchIntentForPackage
(
packageName
);
Log
.
d
(
LOG_TAG
,
packageName
);
//清除logcat日志
try
{
Runtime
.
getRuntime
().
exec
(
"logcat -c"
);
}
catch
(
IOException
e1
)
{
e1
.
printStackTrace
();
}
try
{
startActivity
(
intent
);
}
catch
(
NullPointerException
e
)
{
...
...
src/com/netease/qa/emmagee/service/EmmageeService.java
浏览文件 @
ee187d7e
...
...
@@ -16,12 +16,14 @@
*/
package
com.netease.qa.emmagee.service
;
import
java.io.BufferedReader
;
import
java.io.BufferedWriter
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.FileNotFoundException
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.io.InputStreamReader
;
import
java.io.OutputStreamWriter
;
import
java.text.DecimalFormat
;
import
java.text.SimpleDateFormat
;
...
...
@@ -117,6 +119,12 @@ public class EmmageeService extends Service {
private
CurrentInfo
currentInfo
;
private
BatteryInfoBroadcastReceiver
batteryBroadcast
=
null
;
//获取启动时间所需变量
private
static
final
int
MAX_START_TIME_COUNT
=
5
;
//暂定最大轮询5次
private
int
getStartTimeCount
=
0
;
private
boolean
isGetStartTime
=
true
;
private
String
startTime
=
""
;
@Override
public
void
onCreate
()
{
Log
.
i
(
LOG_TAG
,
"onCreate"
);
...
...
@@ -351,8 +359,12 @@ public class EmmageeService extends Service {
if
(!
isServiceStop
)
{
dataRefresh
();
handler
.
postDelayed
(
this
,
delaytime
);
if
(
isFloating
)
if
(
isFloating
)
{
windowManager
.
updateViewLayout
(
viFloatingWindow
,
wmParams
);
}
//每次刷新数据(有最大次数限制)就尝试获取logcat的启动时间,如果获取到了,就退出
//TODO:是否每个应用都能正常正确的获取
getStartTimeFromLogcat
();
}
else
{
Intent
intent
=
new
Intent
();
intent
.
putExtra
(
"isServiceStop"
,
true
);
...
...
@@ -363,6 +375,37 @@ public class EmmageeService extends Service {
}
};
/**
* get start time from logcat
*/
private
void
getStartTimeFromLogcat
()
{
if
(
isGetStartTime
&&
getStartTimeCount
<
MAX_START_TIME_COUNT
)
{
try
{
String
logcatCommand
=
"logcat -v time -d ActivityManager:I *:S"
;
Process
process
=
Runtime
.
getRuntime
().
exec
(
logcatCommand
);
BufferedReader
bufferedReader
=
new
BufferedReader
(
new
InputStreamReader
(
process
.
getInputStream
()));
StringBuilder
strBuilder
=
new
StringBuilder
();
String
line
=
""
;
while
((
line
=
bufferedReader
.
readLine
())
!=
null
)
{
strBuilder
.
append
(
line
);
strBuilder
.
append
(
"\r\n"
);
if
(
line
.
matches
(
".*Displayed.*\\+(.*)ms.*"
))
{
//TODO:可以通过正则表达式获取,同时获取启动的是哪个Activity
startTime
=
line
.
substring
(
line
.
lastIndexOf
(
"+"
)
+
1
,
line
.
lastIndexOf
(
"ms"
)
+
2
);
Toast
.
makeText
(
EmmageeService
.
this
,
"启动时间:"
+
startTime
,
Toast
.
LENGTH_LONG
).
show
();
isGetStartTime
=
false
;
}
}
getStartTimeCount
++;
Log
.
w
(
LOG_TAG
,
"启动日志:"
+
strBuilder
.
toString
());
Log
.
w
(
LOG_TAG
,
"getStartCount:"
+
getStartTimeCount
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
/**
* refresh the performance data showing in floating window.
*
...
...
@@ -446,6 +489,13 @@ public class EmmageeService extends Service {
if
(
windowManager
!=
null
)
windowManager
.
removeView
(
viFloatingWindow
);
handler
.
removeCallbacks
(
task
);
//在文件最后把启动时间加上
try
{
//TODO:现在把启动时间写在了文件最后
bw
.
write
(
"\r\n启动时间:"
+
startTime
+
"\r\n"
);
}
catch
(
IOException
e1
)
{
e1
.
printStackTrace
();
}
closeOpenedStream
();
isStop
=
true
;
unregisterReceiver
(
batteryBroadcast
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录