如何确认一个应用程序的安装位置

如题所述

在Windows下围绕软件安装位置的问题不少,其中包含Windows传统应用默认的多种安装路径,还有新的Metro应用的安装路径问题。有的路径是软件自作主张确定的,用户看似无法改变;有的安装路径对用户不够透明,让人摸不清去脉。就让我们来揭开这些谜团。
  1. 软件默认安装位置知多少
  在Windows 8.1环境下安装软件时,许多软件被安装到Program Files或Program Files (x86)文件夹中的,但也许你会发现,还有的会被安装到“Users\用户名\Local\AppData”或“Users\用户名\Local\Roaming”文件夹。文件安装位置首先与软件的设计位数有关。在64位的Windows下可以安装64位的软件,也可以安装32位的软件。但在32位的Windows下安装软件,只能安装32位的,不支持64位的软件在32位Windows下安装或运行。不同权限的软件被安装到不同的目录中。通常情况下,传统桌面软件若是32位的Windows则只有一个Program Files文件夹,若是64位的系统则有Program Files与Program Files(x86)两种文件夹,其中32位设计的软件被安装在Program Files(x86)文件夹中。
  但是,安装到上述两种常用位置可能需要具备管理员权限,因此如果当前用户是标准权限用户,可能会需要进行UAC提升(User Account Control,即用户账户控制),如果UAC已关闭,会因权限不够而造成安装失败。因此目前有些软件的安装或运行,若本身不需管理员权限,为简化安装过程,让标准权限用户也能直接安装,软件开发者可能会将软件默认安装路径设置到“Users\用户名\Local\AppData”或“Users\用户名\Local\Roaming”文件夹,这些位置是针对于“EveryOne”用户的,每个用户都可以直接向其中创建文件夹或写入新文件,不需要提升权限。还有一些软件基于其他原因,要求系统中的每个用户必须自行安装一份软件,也会用类似的做法将软件默认安装到这些“特别”的位置。
  小提示:
  Windows商店里的Metro应用安装在系统分区“Program Files”文件夹的隐藏目录“WindowsApps”里,文件夹上有公司名、软件名、版本号等,一目了然。这一点要优于传统应用程序。注意:要查看该文件夹,可能需要添加或提升当前用户的权限,方法见后。
  
  (图1:Windows商店的Metro应用安装的隐藏目录)
  2. 默认安装位置是否可自定义
  我们注意到,在不少软件的安装过程中,安装程序会给我们一次选择自定义安装路径的机会,但它们也会给出默认的安装路径C:\Program Files或Program Files(x86)。可自定义路径的自不必说,那么,这个自带的Program Files或Program Files(x86)文件夹,是不是可以改为别的路径呢?例如改为非系统分区。
  对于传统应用,可通过修改注册表来改变默认安装路径。在注册表编辑器中定位到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion”,找到含有ProgramFileDIR的项目并双击,将其修改为自己想要的安装路径即可。
  
  (图2:注册表中修改传统应用默认安装路径)
  对于商店应用的安装路径修改,可先用PE启动盘中的WimTools工具将系统盘下存放应用的WindowsApps文件夹打包移动到新分区的位置,然后启动注册表编辑器并定位到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx”,双击PackageRoot,修改数值数据为新路径即可。
  
  (图3:用注册表修改商店应用默认安装路径)
  小提示:
  修改上述路径时若遇到权限问题而无法修改,在弹出Appx权限表窗口后,点击TrustedInstaller,选择“高级”,在选择用户或组的窗口中“立即查找”当前登录用户,将权限设置为“完全控制”,返回后就可以修改路径了。
  小技巧:查看已安装软件的位置
  对于传统应用,右击快捷方式查看属性,点“打开文件位置”查看即可。对于商店应用,右击开始屏幕中应用图标或在触屏上长按应用图标,在屏幕下方菜单中选择“打开文件位置”即可。
  3. 如何确定最合理的安装位置
  那么,软件到底是安装在系统默认给出的路径合适,还是自己指定一个别的位置更好呢?现在有不少人建议不要将软件安装在Windows系统目录中,认为这样容易让系统盘爆满,且会拖慢系统速度。这种说法似乎有一定道理,因而引起不少人的认同,且在实际中也这样做了。大家会将硬盘分为好几个分区,不同分区放置不同的文件,甚至为应用软件专门设置一个分区。这样做虽然并无什么不妥,但是,细心的你一定会发现,许多笔记本或品牌台式机在买回来后都只有一个分区,不管硬盘空间有多大,默认建议只有一个分区。这是微软“不懂事”还是别有“用心”呢?
  其实,微软早在Vista时期就引入“库”的概念,他们本希望用户像苹果系统管理资源那样,淡化文件系统的存在,不去考虑文件保存在C盘还是D盘,反正文件都在一块物理硬盘中,这样就没必要将磁盘分为多个分区了。但文件和文件夹这种传统Windows文件思维在老用户头脑中已经根深蒂固,很难抛弃,因此在经历了从Windows Vista到Windows 10的几代演变之后,用户始终没有转过弯来,微软只得屈从用户原来的习惯,还不得不将“库”做成一个可以藏起来的东西让用户选择,这样就造成了两种思维都不算不合理且并存的局面。所以,到底是不分区安装在默认的Program Files目录,还是分区独立安装,没什么对错,只是用户的习惯问题而已。
  小提示:
  其实软件是否安装在C盘,最大的一个问题是空间划分是否足够。这其实也是因分区的思维而引起的,若只有一个分区,就不存在这个问题,当空间不足时说明你该腾空间或换更大的硬盘了。还有一个问题就是系统崩溃之后用户数据的丢失,但这可以通过良好的备份习惯和科学的备份方法来解决。
  4. 能否实现安装位置的大一统
  如果觉得将软件安装在不同的目录管理和升级不方便,还可以用360软件管家来一键安装升级。只需在360软件管家中开启一键安装升级设置参数,设定默认的软件安装路径即可(图4)。
  
  转自电脑爱好者
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-08-29
右键点启动程序图标,点:属性,点:F键或者“打开文件位置”。查看窗口的位置路径
第2个回答  2017-10-24
如何确认一个应用程序的安装位置 最佳答案中说的是在电脑上的应用,这里介绍下手机上的
有些应用能安装到SD卡上,有些不能,这其中有一定规则。如何判断?

[Solution]

Google 默认 PackageManager 管理安装包的机制如下:
在 AdroidManifest.xml 里面定义安装位置可以有四种情况:
1. 如果没有定义安装位置,表示安装在手机内存上;
2. android:installLocation = "auto",表示先查看手机内存是否足够,如果够就安装在手机内存上
,不够就安装在 T 卡上;
3. android:installLocation = "internalOnly",表示安装在手机内存上;
4. android:installLocation = "preferExternal" ,表示安装在 T 卡上;
可以按照如下方式更改,这样用户就能自己选择安装位置:
打开 alps/Frameworks/base/packages/SettingsProvider/DatabaseHelper.java
745 行改为 loadSetting(stmt, Secure.SET_INSTALL_LOCATION, 1);
1111 行改为 loadSetting(stmt, Settings.Secure.SET_INSTALL_LOCATION, 1);
这样更改过后,贵司就能在 Settings --> Applications 里面能看到选项.
注意:这样更改过后有个限制,如果 apk 的 AndroidManifest.xml 里面定义
android:installLocation = "internalOnly",那么无论用户选择安装在什么地方,该apk 都会安
装到手机上,这样做的好处是避免程序运行错误,因为定义android:installLocation =
"internalOnly" 的 apk 一般要安装到手机内存上才能正常运行。
转自一牛网论坛,手机工程师的生活圈

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网