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

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

不过在介绍之前,先要铺垫一下: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被其他应用调用的时候,手机淘宝也会自动运行起来。

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

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

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

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

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

 
 
  本文作者: haoxiaoru

本文转自雷锋网禁止二次转载, 原文链接
目录
相关文章
|
10月前
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
6265 2
|
11月前
|
存储 数据处理 开发工具
用python制作好的软件放手机里
【4月更文挑战第7天】
181 4
|
2月前
|
存储 NoSQL 前端开发
美团面试:手机扫描PC二维码登录,底层原理和完整流程是什么?
45岁老架构师尼恩详细梳理了手机扫码登录的完整流程,帮助大家在面试中脱颖而出。该过程分为三个阶段:待扫描阶段、已扫描待确认阶段和已确认阶段。更多技术圣经系列PDF及详细内容,请关注【技术自由圈】获取。
|
8月前
|
存储 JavaScript 前端开发
看过来!准确直观显示手机充电信息的充电统计软件!
基于自制充电统计App,多设备用户可远程查看各设备充电数据。在软件内可以查看预估充电容量等信息
|
10月前
|
PHP
软件下载网站源码附手机版和图文教程
PHP游戏应用市场APP软件下载平台网站源码+手机版 可自行打包APP,带下载统计,带多套模板,带图文教程,可以做软件库,也可以做推广app下载等等,需要的朋友可以下载
202 0
|
11月前
|
CDN
软件包如何实现批量上传至CDN并且生成软件包下载链接,然后链接自动在手机上下载安装软件
在一个软件包用公司系统上传到阿里云的cdn,但是速度很慢并且只能一条条进行,上传完毕后生成一条条下载链接然后再去其他系统把他推广出去,生成推广链接后再用此链接自动手机下载安装(主要看落地页),这种能够优化吗
|
11月前
|
数据挖掘 定位技术
出租车GPS轨迹、社交软件签到、手机信令数据下载网站整理
出租车GPS轨迹、社交软件签到、手机信令数据下载网站整理
576 2
|
11月前
|
XML Java Android开发
Android App开发手机阅读中贝塞尔曲线的原理讲解及实现波浪起伏动画实战(附源码和演示视频 可直接使用)
Android App开发手机阅读中贝塞尔曲线的原理讲解及实现波浪起伏动画实战(附源码和演示视频 可直接使用)
195 0
|
存储 数据可视化 测试技术
元宇宙空间游戏软件定制 | NFT游戏手机软件 | Metaverse(元宇宙)系统开发构建源码交付
Metaverse(元宇宙) 已成为一个有前途的舞台,为 Web3 项目团队提供指导用例。它拥有巨大的潜力,可以利用曾经在不同社区中孤立的惊人技术来改变我们在日益数字化的经济中的生活、工作和娱乐方式。
|
程序员 开发工具 iOS开发
iOS 获取手机的型号,系统版本,软件名称,软件版本,手机类型(型号)
iOS 获取手机的型号,系统版本,软件名称,软件版本,手机类型(型号)
196 0

热门文章

最新文章

下一篇
oss创建bucket