STF之STFService服务调用

link on JianShu

STF之环境搭建可能的几个坑里提到过

初始化设备时,提示类似 Setup had an error Error: Service had an error: “Error: Not found; no service started.”

官方认为有可能是杀毒软件的问题;实测需要手动先启动一个UI页面。现在都是手动到后台进行操作的,希望可以把这个添加到业务逻辑里进行处理。

STF启动时,device模块启动是由lib/units/device/index.js处理。这里到依赖就包括里STFService的处理.dependency(require('./plugins/service')

  • 这里先启动Agent——使用命令行 exec 的方式启动apk中的main方法export CLASSPATH='/data/app/jp.co.cyberagent.stf-1.apk'; exec app_process /system/bin 'jp.co.cyberagent.stf.Agent'中手机端启动socket服务提供:输入、点击、转屏?、唤醒?的服务(TODO)

  • 然后就会启动service服务am startservice --user 0 -a jp.co.cyberagent.stf.ACTION_START -n jp.co.cyberagent.stf/.Service会优先使用带参数 --user 0方式,失败带情况下再使用不带此参数方式启动。也启动socket服务,提供包括:电池监控、连接监控、转屏、浏览器等跟身边本身有关的服务。

Agent和Service都来自STFService.apk,源码可参考这里

目前都方式是:再抛出服务异常之前,主动启动异常IdentityActivity。这样下次执行设备初始化时,Service就可以正常启动了。 ——不破坏目前的业务逻辑。观察一下效果再说

 
comments powered by Disqus