扫码关注官方订阅号
我想要开发一个能检测用户什么时间使用了什么app,使用时间有多长的功能,目前使用AlarmManager和检测activity栈顶程序的方法,但效率不高,请问有没有好的实现发案?谢谢。
认证0级讲师
自己的应用的话安利一下友盟统计,比你自己实现要来的简单容易,数据分析也会更专业。监测其它应用的话就算了。
你这个不好做吧
如果监测你自己写的app,可以在你的app中加入第三方包统计使用人数,经常浏览界面等,国内一般使用友盟,talkingdata,百度移动统计…国外一般使用Flurry,Localytics,Google Analytics for Mobile…如果检测别的app,这个真心没办法检测他们的具体使用情况,可以参考第三方的分析~~
程序启动的时候,会在Logcat中打印出一些日志信息,其中就有类似下面的日志,表明是启动了哪个程序
01-21 15:09:56.957: I/ActivityManager(240): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.estrongs.android.pop/.view.FileExplorerActivity u=0} from pid 2176
这些日志都可以通过以下代码读取到,并且提供了解析包名的相应方法:
try { int tagCode = EventLog.getTagCode("am_proc_start"); Collection<Event> output = new ArrayList<EventLog.Event>(); EventLog.readEvents(new int[] { tagCode }, output); for (Event event : output) { // PID, UID, Process Name, Type, Component Object[] objects = (Object[]) event.getData(); ComponentName componentName = ComponentName .unflattenFromString(objects[4].toString()); String packageName = componentName.getPackageName(); Log.d(TAG, "packageName=" + packageName); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
如果不使用三方的SDK的话,可以自己在启动一个Service的进程,然后进行扫描,隔几秒扫描一次,然后使用时长进行累加,具体的设置方法你可以自己想一下。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
自己的应用的话安利一下友盟统计,比你自己实现要来的简单容易,数据分析也会更专业。监测其它应用的话就算了。
你这个不好做吧
如果监测你自己写的app,可以在你的app中加入第三方包统计使用人数,经常浏览界面等,国内一般使用友盟,talkingdata,百度移动统计…国外一般使用Flurry,Localytics,Google Analytics for Mobile…如果检测别的app,这个真心没办法检测他们的具体使用情况,可以参考第三方的分析~~
程序启动的时候,会在Logcat中打印出一些日志信息,其中就有类似下面的日志,表明是启动了哪个程序
这些日志都可以通过以下代码读取到,并且提供了解析包名的相应方法:
如果不使用三方的SDK的话,可以自己在启动一个Service的进程,然后进行扫描,隔几秒扫描一次,然后使用时长进行累加,具体的设置方法你可以自己想一下。