adb shell am start

阅读: 评论:0

adb shell am start

adb shell am start


想要通过命令am start -W 包名/activity名启动一个app同时获取其启动时间。但是有的app会成功,有的会超时,有的会卡住。现在讨论卡死的状态。


卡死时log输出:



查了下资料说是ndk的bug


这不坑爹么..


所以为了不让它卡住,做一个计时操作,时间到了就停止该操作。参照前辈的文章:



public class CMDThread {private static int time = -1;public static int getStartTime(final String cmd, long timeout){ExecutorService exec = wFixedThreadPool(1);Callable<String> call = new Callable<String>() {public String call() throws Exception {// 开始执行耗时操作String result = CMDUtils.runCMD1(cmd, "ThisTime:");return result;}};try {Future<String> future = exec.submit(call);String obj = (timeout, TimeUnit.MILLISECONDS); // 任务处理超时时间设为System.out.println("任务成功返回:" + obj);time = obj != null ? Integer.parseInt(obj.split("\:")[1].trim()) : -1;} catch (TimeoutException ex) {System.out.println("处理超时啦....");} catch (Exception e) {System.out.println("处理失败.");e.printStackTrace();}// 关闭线程池exec.shutdown();return time;}public static void main(String[] args)  {int startTime = StartTime("adb shell am start -dream.wifi/com.wifibanlv.www.activity.LogoActivity",1000 * 60);System.out.println(startTime);}
}

这样就不至于让程序一直卡住不动,影响后续的操作!





本文发布于:2024-01-30 01:47:11,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170655043518362.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:adb   shell   start
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23