- 积分
- 6709
- 最后登录
- 2024-4-17
- 精华
- 0
- 阅读权限
- 220
- 主题
- 145
- UID
- 3887572
- 帖子
- 2897
- PB币
- 3573
- 威望
- 925
- 贡献
- 0
- 技术
- 801
- 活跃
- 4719
14N.M.
- UID
- 3887572
- 帖子
- 2897
- PB币
- 3573
- 贡献
- 0
- 技术
- 801
- 活跃
- 4719
|
发表于 2014-9-6 12:01:28
IP属地江苏
|显示全部楼层
本帖最后由 Mouri_Naruto 于 2014-9-19 20:27 编辑
由于开学了,所以连帖子都没空写了,景讯也没空看了;但由于今天开始是中秋节假期且我有了灵感,所以特地写下这篇水贴骗骗PBB
众所周知,Metro是一种在Windows 8开始的全新的界面风格;为了适应这种风格,也有相对应的Metro风格的应用,下面我想把我知道的让景友们了解了解
9月6日:第一版
9月7日:增加可以安全清理的Metro目录和另外和Metro应用有关的目录9月19日:贴上命令行调用错误截图
一.介绍
Metro应用基于Windows Runtime,或WinRT,是Windows 8中的一种跨平台应用程序架构。WinRT支持的开发语言包括C++(一般包括C++/CX)和托管语言C#和VB,还有JavaScript。WinRT应用程序同时原
生支持x86架构和ARM架构,同时为了更好的安全性和稳定性,也支持运行在沙盒环境中。
二.Metro应用目录结构
绝大部分(甚至可以说100%)Metro应用都是运行在沙盒环境(基于Windows安全机制)中的,有独立的程序文件,配置文件和缓存文件夹。
1.程序文件放的文件夹可能是%ProgramFilesDir%\WindowsApps(大部分应用)也可能是%windir%(比如应用商店,照相机等)
2.配置文件和缓存文件夹是在%UserProfile%\AppData\Local\Packages里面的以程序名命名的文件夹里,这个目录也是我想着重介绍的部分,我就举个Windows 8.1下应用商店的例子吧(Metro应用的
配置文件目录结构大致相似,而应用商店是最典型的Metro应用,故拿这个举例)
某Metro应用(以Windows 8.1下应用商店为例)在%UserProfile%\AppData\Local\Packages里面的以程序名命名的文件夹里
│
├─AC
│ ├─AppCache (IE应用程序缓存(只有基于HTML的应用才会有这个文件夹),参考资料:http://msdn.microsoft.com/zh-cn/library/ie/hh673545(v=vs.85).aspx)
│ ├─INetCache (IE缓存,每个Metro应用都有(但不基于HTML的Metro应用大小为0字节))
│ ├─INetCookies (IE Cookies,每个Metro应用都有(但不基于HTML的Metro应用大小为0字节))
│ ├─INetHistory (IE History,每个Metro应用都有(但不基于HTML的Metro应用大小为0字节))
│ ├─Microsoft (应用商店的配置文件夹)
│ └─Temp (Metro应用的临时文件和缓存的文件夹)
│
├─LocalCache (字面意思本地缓存,由于我的这个文件夹为0字节所以不能确认)
│
├─LocalState (字面意思本地状态)
│ ├─Cache (字面意思缓存)
│ └─LiveTile (磁贴的图片)
│
├─RoamingState(字面意思漫游状态,由于我的这个文件夹为0字节所以不能确认)
│
├─Settings (Metro应用的配置文件)
│
├─SystemAppData (字面意思系统应用数据,由于我的这个文件夹为0字节所以不能确认)
│
└─TempState (字面意思临时状态,由于我的这个文件夹为0字节所以不能确认)
Tip:在其他Metro应用下,文件夹可能会有出入,会有自己的配置文件夹,比如PPTV会有缓存之类的
这样的结构我相信很多人一眼就能看懂是典型的沙盒结构,这样简单明了的沙盒结构对于一个喜欢制作绿色软件的楼主而言就像饥饿的人扑在面包上一样。但是我也很想吐槽一下,微软为何不给WebBrowser控件提供一个自定义缓存目录的选项而不影响到IE(世界之窗3.x的自定义IE缓存目录而不影响IE浏览器的设置,据说是调用Win32做到的)……有了这样的选项,我们写的基于IE核的浏览器就不用和IE共享配置了
但Metro应用除了在它自己的目录产生临时文件外,还要在以下目录产生用作提醒的动态图片缓存
%UserProfile%\\AppData\\Local\\Microsoft\\Windows\\Notifications
三.对Metro APP的一些问题的实验
1.Metro应用是否可以通过命令行调用?
我想这个问题应该会有人关心的。我也曾经用任务管理器提取Metro应用的命令行使用CMD运行,结果是一条VC Runtime错误,大致内容是你无法在Windows Runtime以外的环境调用Metro应用,附上截图
请勿使用多线程下载工具下载论坛附件!
2.为何不能在Administrator下或者关闭UAC下的情况下运行Metro App?
我觉得,Metro App的沙盒机制建立于UAC,可能是Windows 7测试版砍掉的PC Safeguard(基于UAC的沙箱模式,但类似还原卡,重启后所做的修改会消失)的延续。而微软为了安全必须让Metro应用在
沙箱里面运行,所以运行失败……在Administrator用户下UAC虽然开着但是相当于禁用了(权限太高了),微软为了安全做下的限制
3.Metro App可以安全删除的缓存
经过我的实验,AppCache,INetCache、INetCookies、INetHistory和Temp文件夹里面的内容都可以安全删除
我在研究可以最多删除多少文件
(本文未完待续,楼主还要接着探索)
|
-
6
查看全部评分
-
|