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都是免费的,大家可自行选择,不好用就换一个,成本也不高。

  • 相关阅读:
    A.2.1 定义函数输出|返回3个整数的和,平均值
    android 支持不同的设备 .
    Android 中的Theme和Style使用
    Android TabHost的使用(Tab为Layout)
    [转]Android高手进阶教程(五)之Android 中LayoutInflater的使用!
    Android的Handler使用
    Android中级教程之Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)! .
    java实现文件单词频率统计
    安装Tomcat服务器
    Android中BroadcastReceiver使用总结
  • 原文地址:https://www.cnblogs.com/cute/p/4882828.html
Copyright © 2011-2022 走看看