ADB启动四大组件
通过adb shell命令可以启动跳转activity,启动service,或者发送广播broadcast等!通过该方式(与隐式启动类似)启动对于有传值的组件,不传值或者不对应传值可能造成我们的应用崩溃,或者出现错误信息,有可能产生严重的后果!在我们的程序中需要避免!
启动命令
发送广播,action为xxxx
am broadcast -a xxxx
传递int,string值
am broadcast -a xxxx --ei dataType
am broadcast -a xxxx --ei dataType 0 --es test "test"
启动Activity
am start -n 包名/全类名
am start -n com.xxxx/com.xxxx.Activity
退出app
am force-stop 包名
启动一个服务(export为true才能启动)
am startservice -n 包名/全类名
杀死服务
am stopservice 包名/全类名
解决
解决办法如下:
1.设置组件外部不可调用,在清单文件设置export=false
2.对于需要外部调用(export=true)的情况,需要传值的,可以对应用签名认证(.....),然后进行逻辑判断!