当前位置:C++技术网 > 资讯 > 新软件为什么都安装到AppData而不是Program Files的背后原因分析

新软件为什么都安装到AppData而不是Program Files的背后原因分析

更新时间:2016-07-20 16:31:44浏览次数:1+次

    当你在安装一些软件的时候,你会诧异的发现,软件的默认安装路径不再是Program Files了,而改为AppData下面的目录了。开始还没有引起我的注意,今天仔细想了想,才知道背后有很多不可告人的秘密。

    有道词典开始安装的界面如下:

有道词典开始安装界面

【有道词典开始安装界面】

    WPS2016开始安装的界面如下:

WPS2016开始安装界面

【WPS2016开始安装界面】

    QQ最新版开始安装界面如下:

QQ最新版开始安装界面

【QQ最新版开始安装界面】

    你发现了什么?开始安装界面有什么不同?最大的不同就是安装路径的变化。很多朋友也开始发觉注意到软件安装默认路径变成了AppData下的路径了,而且还不只是一个软件,大批的新软件都这么做了。这不禁让人产生疑问。到底为什么这些新软件要改变默认的安装路径呢?

    这一改变首先给用户带来了什么影响。我们习惯了标准化的安装路径即Program Files。所有规范的程序都会选择安装在这个目录之下,用户也方便管理软件的安装文件。而且Program Files目录直接在根目录下,方便找,如果软件出现什么问题,要手动替换文件,或者卸载时没有删除干净,我们都可以手动到Program Files目录下处理。然而新软件的安装目录悄悄的改变为了AppData,AppData是用户目录下的,路径比较深,不好找。这给用户带来一定的困扰。可见,这一改变,对于用户来说,没有什么好处。当然,对于一般的用户来说,安装到哪似乎影响不大。反正都是点击快捷方式启动软件。

    但是,改变默认安装路径这一行为,并不是这么简单。有人说,这一改变,是权限问题。

    那么我们就从权限问题说起。这里说的权限问题就是用户账户控制UAC,这是Windows对于系统设置修改、软件安装设置的一道安全权限,而且这些修改会通知用户,以免程序默默执行。这一招防止了恶意软件的安装,当然也防止了病毒的传播。而默认的Program Files目录则会有很好的安全控制,可以很好的规范软件的行为。然而现在的新软件,很多为什么不遵守这样的规则了呢?而是将安装路径安装到AppData下了呢?

    从技术上来讲,我们会说是微软对Program Files目录有权限限制,在安装的时候需要提权。那么请问,在之前,各种软件不是好好的安装,好好的运行的吗?为什么现在就有权限问题了呢?仅仅一个权限问题不足以解释这个问题了。对于技术,这个权限问题,不应该是问题,以前的版本都可以安装在Program Files里,自然技术是没有问题的。那必然有其他秘密。

   我们就从微软的系统的升级说起。自从Win8出现,系统的安全性更高了,也就是对程序的操作权限做了很多限制,这些限制都需要有用户的同意才能执行,这样可以让系统更加安全。到了Win10系统,安全更是加固了不少,所以,一些程序想做一些小动作,也就难上加难了。虽然这些软件都是正规的,谁说正规软件不会做手脚,不会搞小动作呢?

    究竟会搞些什么动作呢?你肯定想知道。说到这个问题,很多普通用户是不知道的。但是,你肯定会发现,现在的软件,都是免费使用的了。而且现在软件都带着各种广告。软件开发和体力劳动一样,也是需要成本的。如果都免费给用户使用,公司只有倒闭了。毕竟,公司要给员工发工资。软件开发既然投入了成本,也就要收回成本,而且还要赚钱。就算是个人开发的软件,因为投入了很多精力和技术,自然也是想得到回报的。

    然而在如今IT行业,完全免费成为了大环境,不免费等于死,免费也等于奄奄一息。没有用户会为了支持软件开发者即程序员或者软件公司主动买单的。现在的用户习惯则是收费就不用。作为软件开发商,自然要寻求生存之道。在免费的条件下,最好也是几乎唯一容易实现的盈利办法就是广告。所以你可以看到满天飞的广告,不管是网页还是软件还是APP,也都只是用这个办法了。很多公司主要的经济来源就是广告,一些小公司也只能靠广告,个人开发更是押宝在广告。因为这是一条可行的出路。否则,无法维持下去。

    既然要广告,也就要增加额外的操作,这些操作不属于软件本身的服务,是强制推送的。那么这些推送,要去广告服务商下载广告内容,然后加载广告插件,弹窗广告。就是我们看到的软件弹出的各种资讯窗口,如腾讯新闻,也都充满了无尽的广告利益。要么直接在弹窗页面展示广告收广告费,要么就是引导用户点击进去,在网站展示广告,或者直接引流淘宝京东等,拿提成广告费。

    广告提供了收入的来源。另一方面,推广其他软件也是广告的一种形式。一些知名的软件为了增加收入,而推荐各种软件,当你下载一个软件,也就让其增加收入。这样的推广还算是很君子的,如果你喜欢,就下载吧。除在官网下载的软件和部分少量的只是根据需要推荐个别软件的外如C++技术网,否则基本上都是推广软件,这不只是电脑软件,还有APP。而要做到这样的效果,需要做的很有名气,用户量很大才行,否则推广量是很小的。

    为了增加盈利,很多软件就开始静默操作了。静默操作需要避开系统的用户账户控制UAC,用户没有同意,你就没法安装要推广的软件。而每次要安装软件,系统都会提醒。这样就没法静默安装。静默安装就是悄悄的后台安装,像一键安装包就属于这样的类型。当然,一些公司软件自己认为一些软件是可以不经过同意就直接安装的,也需要静默安装,还有软件管理软件之类的,点击一个按钮,就可以安装一个软件,你都看不到软件安装的过程。那么在静默安装背后,一是简化了安装的过程,让软件管理更加方便,另一方面则暗藏利益链条。通常病毒和流氓软件就会利用静默大肆安装软件推广,从而增加自己的收入,搞得用户电脑安装一大堆的软件。

    从360软件流氓起头,国内软件都走向了流氓的软件,成为一种风气,不流氓无法竞争了。软件的各种不规范,也就因此形成。只有你想不到,没有做不到的。当安装目录默认避开Program Files,背后也就可能隐藏了很多小动作,只是动作大小的问题。如果你有心,你可以仔细看看各个软件的行为。因为AppData目录不需要UAC权限,所以软件可以随意的操作,这样就也是软件修改默认安装目录的一个原因了。至于随意操作是下载广告推送广告还是推广安装其他软件,还是修改配置之类的,就看软件各自的使用了。

    你可以想到,系统既然给你一个规范,必然不是阻止正常操作的使用,而是阻止不正常的操作。如果你刻意避开,说明本身也就存在不规范行为,绝对不是技术上的权限问题。假如权限问题有更有利的利益吸引,不要说实现提权麻烦了,那都是往上扑的。关键是阻碍了利益,而且增加了难度,所以直接绕过,这是一种应对策略。这是软件发展的一个商业化的结果。

    然而你可以看到,腾讯QQ依然是默认的Program Files,这能说明什么。我们都知道BAT的T是Tecent腾讯,腾讯帝国这么有钱,所以,可以有很多盈利的途径,而不需要一些小手段,没必要改变默认路径。

    所以,使用不要求权限的AppData目录,可以更方便的实现静默安装、静默升级、静默下载、广告推送、广告展示等,而不需要得到用户的通知。当然不排除一些小软件为了省去提权的麻烦,而直接将默认目录改为AppData。或者说,因为Win8、Win10的严格权限,为了在win7\8\10用同一个安装包,就不用Program Files目录了,这样不管在哪个系统都可以顺利安装。

    当然,原因要么就是搞小动作,要么就是偷懒,但不管如何,我们都可以看出,现在的软件行业发展已经走得这么艰辛,软件不能因为软件本身的价值而得到收入,而变相的从广告得到收入,所以,很多公司软件做的差不多了就想尽办法搞广告赚钱,都失去了做软件的初衷了。不是想办法提高软件的质量,精益求精,而是去搞其他的赚钱的方法了。这是软件行业的悲催的地方。

    就看软件的默认安装目录的变化,就看卸载时的重重阻拦和恶心的矫情,以及安装时的捆绑安装,甚至是卸载都卸载不了的软件。国内软件公司真的是无尽的创新,无尽的流氓式的创新,不断的挑战道德底线,掠取商业利益。