【产品经理】为什么有些应用删不掉?

2025-10-18 03:11:50

从我们接触 Android 设备开始,就对应用形成两种印象,一种是系统应用,比如电话,短信等,一种是其它应用,例如微信,QQ 等,但是随着手机定制的趋势越演越烈,一些原本属于其它分类的应用摇身一变成了系统应用,一些手机出厂后直接内置一大波其它应用搞的和系统应用一样,删也删不掉,所以现在更准确的分类应该是能够卸载的应用和不能卸载的应用。

其实从上面的分析我们可以看出所谓的系统应用也只不过是手机系统定制商自己规定的,并非系统不可缺少的,只要厂商愿意,电话、短信软件也能弄成可以删除的,这里需要知道的是,你把电话、短信软件删了并不会把手机给删废了,软件永远只是设备本身能力的承载体,删了系统自带的应用,用三方替代品也是可以的(当然一些系统关键的服务应用删除了,可能会造成系统不稳定,三方替代品也可能有兼容性问题)。从这个层面讲,系统应用和其它应用地位是相同的,那为什么会有可以卸载和不可以卸载之分呢?

其实就是应用安装包APK 在系统目录中不同而已,只要将APK 文件放在system/app 中就能把应用变成系统级别的应用,无法通过常规的界面删除,而其它可以删除的应用则放在 data/app 的目录中。但是由于 Android 权限的问题,一般应用是没有办法把自己拷贝到这个目录的,如果有了 Root 权限就另当别论了,要安装成为系统应用非常简单,真的就只是把安装文件拷贝到 system/app 的目录里面就可以了(可以脑补一下手机获得 Root 权限后怎样实现静默安装,再想想那些莫名其妙的全家桶应用是怎样进入的手机的吧)。在没有 Root 的情况下,只有手机 ROM 制作者(可能是手机厂商,也可能是三方 ROM 开发者)利用刷机的过程将希望预装的软件前释放到 system/app 的目录中。删除系统应用的原理也很简单了,在system/app 的目录中删除对应名称的安装包就好了(当然前还是你有 Root 权限)。

这里扩展一下就爱看你喜欢我又得不到我的样子。虽然对外部来说安装一个应用只是一个拷贝安装文件到指定目录的过程,但是 Android 系统还是做了一些额外的工作。用 zip 管理器解开 APK 安装文件可以看到 classes.dex 这个文件,当文件被拷贝到安装目录时(system/data 或 data/data),Android系统会将 classes.dex 拷贝到 dalvic-cache 的目录,并且在 data/data 下生成对应应用的数据存放目录。

但是有时在卸载时系统会出现一些异常,导致删除了安装目录中的应用和 classes.dex 文件,但是没有删除 data/data 目录下的数据文件,这样手机中虽然看到应用已经删除了,但是当你想再次安装此应用时会示应用已安装,从此你跟这个应用就拜了个拜了(有 Root 权限的另当别论,可以直接到 data/data 目录中去删掉对应的文件)。

茄的成语有哪些,茄子的茄成语
5.8英寸手机有多大 5.8英寸手机的外观尺寸