zoukankan      html  css  js  c++  java
  • 科普:揭秘手机软件自启原理

    科普:揭秘手机软件自启原理

    2014-07-26 11:32 原创 郝晓茹

    4条评论

    一些手机软件不是用户主动运行的,那么它到底是如何自己运行起来的呢?接下来我们将简单讲讲软件自启的方式和原理。(以下内容有些偏技术,读起来可能有些晦涩)

    不过在介绍之前,先要铺垫一下:Android四大基本组件分别是Activity、Service服务、Content Provider内容提供者以及BroadcastReceiver广播接收器,每个组件都是可以实现自启的,那么自启的方式也就有以下4种方式:

    1. 通过打开activity,实现自启
    2. 通过广播,实现自启
    3. 通过服务,实现自启
    4. 通过Content provider,实现自启

    方式1,打开activity实现自启,某程序通过运行一段命令,通过直接打开指定应用的activity的方式来实现。例如很多程序当手机连上电脑后,某些应用就直接被运行起来了。

    举例:通过运行adb shell am start com.sina.weibo/.MainTabActivity 微博就可以被运行起来了。

    方式2,通过广播实现自启,这种方式是目前最普遍的,也是使用最多的实现自启的方式,当目标应用通过对指定的广播注册了receiver,该广播触发后,注册了该广播的应用就会被唤醒并运行起来,从而实现了自启。具体点说,系统重启后会发送一条系统广播给所有的应用,该广播名称为android.intent.action.BOOT_COMPLETED。有些应用注册了该广播的receiver,当应用收到了这条广播后,就会自动运行起来。

    举例:确保手机上的WEIBO应用处于未运行的状态,(在设置的应用程序管理中停止微博)运行以下命令。adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n com.sina.weibo/.BootCompletedReceiver 这时候你会发现微博应用已经在后台被运行起来了。

    方式3,通过服务实现自启,这种方式也很普遍,与第二种类似,也是在manifest里面定义了服务,当这服务被运行后,相应的进程也会被运行起来。

    举例:确保手机上的WEIBO应用处于未运行的状态,(在设置的应用程序管理中停止微博)运行以下命令。 am startservice -n com.sina.weibo/.business.WeiboService 你会发现微博应用也已经在后台被运行起来了。

    方式4,通过注册Content provider实现自启。也就是说,应用自己本身注册了provider,当其他应用需要调用这个provider的时候,这个应用自己也就被运行起来了,从而实现了自启。

    举例:手机淘宝应用就注册了如下provider com.taobao.tao.proxy.TBLocationContentProviderProxy 当这个provider被其他应用调用的时候,手机淘宝也会自动运行起来。

    支招:多款工具帮你手机防自启

    hero

    我们简单介绍了实现自启的方式,那么我们有没有办法去控制那些我们并不希望自动运行起来的应用,不去自启呢?答案是肯定的,目前很多手机系统自带的安全工具可以实现该功能,而且第三方安全类和工具类的应用也实现了对应用自启的拦截。下面我们介绍一下第三方工具。包括:

    • LBE安全大师
    • 360手机卫士极客版
    • 金山手机毒霸
    • 百度卫士
    • 腾讯管家等等
    • LBE的自启管理

    到底哪款更好用呢?鉴于这些app都是免费的,大家可自行选择,不好用就换一个,成本也不高。

  • 相关阅读:
    [CodeForces]Codeforces Round #429 (Div. 2) ABC(待补)
    About Me
    2018-06-14
    Codeforces Codeforces Round #484 (Div. 2) E. Billiard
    Codeforces Codeforces Round #484 (Div. 2) D. Shark
    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings
    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes
    Codeforces Avito Code Challenge 2018 D. Bookshelves
    Codeforces Round #485 (Div. 2) D. Fair
    Codeforces Round #485 (Div. 2) F. AND Graph
  • 原文地址:https://www.cnblogs.com/cute/p/4882828.html
Copyright © 2011-2022 走看看