Glass窗口皮肤、声音主题和屏保,Win7中自带了很多Aero主题,用户也可以自己设计创建Aero主题,Aero主题可以创建保存,并且微软支持用户和第三方合作伙伴将其打包销售.Win7
RC版本中还提供了很多区域化Aero主题,不过这些Aero主题并不是默认的,很多都隐藏在中C:\Windows\Globalization
\MCT,别的,用户还可以选择对Aero主题使用“桌面幻灯片演示”功效,体系会依据时间表不停更换指定多张桌面背景.
下面介绍一下现有Win7中的几个Aero主题:
Win7:这是Win7默认Aero主题,采用天际(Sky)透明窗口皮肤、Windows
Default声音主题,没有屏保,其桌面背景自然是Beta鱼,不过在最终正式版中会更改。
建筑(Arc你好tecture):该主题提供了六个建筑图片的幻灯片桌面,采用黎明(Twilight)透明窗口皮肤(深蓝),Cityscape声音主题,没有屏保。
个性(Characters):其桌面是采用六个离奇的卡通类型图片的幻灯片,Taupe透明窗口皮肤(淡粉色),Characters声音主题,无屏保。
风光(Landscapes):六个风光图片的幻灯片桌面,Slate透明窗口皮肤(褐色),Landscape声音主题,没有屏保。
自然(Nature):六个植物图片的幻灯片桌面,Lavender(薰衣草)透明窗口皮肤,Garden声音主题,无屏保。
布景(Scenes):六个艺术图片的幻灯片桌面,Violet(紫罗兰)透明窗口皮肤(淡紫色),Quirky声音主题,无屏保。
这个之外,Win7还提供了很多区域化主题,顾名思意,其内容是根据用户所居地而定,今朝仅提供了澳大利亚、加拿大、英国、美国和南非地域版,这里就不再赘述。
1. 用ARC管理内存ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露。它自动为你管理retain和release的过程,所以你就不必去手动干预了。忘掉代码段结尾的release简直像记得吃饭一样简单。而ARC会自动在底层为你做这些工作。除了帮你避免内存泄露,ARC还可以帮你提高性能,它能保证释放掉不再需要的对象的内存。
2. 在正确的地方使用 reuseIdentifier
一个开发中常见的错误就是没有给UITableViewCells, UICollectionViewCells,甚至是UITableViewHeaderFooterViews设置正确的reuseIdentifier。
为了性能最优化,table view用`tableView:cellForRowAtIndexPath:`为rows分配cells的时候,它的数据应该重用自UITableViewCell。一个table view维持一个队列的数据可重用的UITableViewCell对象。
不使用reuseIdentifier的话,每显示一行table view就不得不设置全新的cell。这对性能的影响可是相当大的,尤其会使app的滚动体验大打折扣。
自iOS6起,除了UICollectionView的cells和补充views,你也应该在header和footer views中使用reuseIdentifiers。
想要使用reuseIdentifiers的话,在一个table view中添加一个新的cell时在data source object中添加这个方法:
staticNSString *CellIdentifier = @"Cell"
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]
这个方法把那些已经存在的cell从队列中排除,或者在必要时使用先前注册的nib或者class创造新的cell。如果没有可重用的cell,你也没有注册一个class或者nib的话,这个方法返回nil。
3.尽量把views设置为透明
如果你有透明的Views你应该设置它们的opaque属性为YES。
原因是这会使系统用一个最优的方式渲染这些views。这个简单的属性在IB或者代码里都可以设定。
Apple的文档对于为图片设置透明属性的描述是:
(opaque)这个属性给渲染系统提供了一个如何处理这个view的提示。如果设为YES,渲染系统就认为这个view是完全不透明的,这使得渲染系统优化一些渲染过程和提高性能。如果设置为NO,渲染系统正常地和其它内容组成这个View。默认值是YES。
在相对比较静止的画面中,设置这个属性不会有太大影响。然而当这个view嵌在scroll view里边,或者是一个复杂动画的一部分,不设置这个属性的话会在很大程度上影响app的性能。
你可以在模拟器中用Debug\Color Blended Layers选项来发现哪些view没有被设置为opaque。目标就是,能设为opaque的就全设为opaque!
4.避免过于庞大的XIB
iOS5中加入的Storyboards(分镜)正在快速取代XIB。然而XIB在一些场景中仍然很有用。比如你的app需要适应iOS5之前的设备,或者你有一个自定义的可重用的view,你就不可避免地要用到他们。
如果你不得不XIB的话,使他们尽量简单。尝试为每个Controller配置一个单独的XIB,尽可能把一个View Controller的view层次结构分散到单独的XIB中去。
需要注意的是,当你加载一个XIB的时候所有内容都被放在了内存里,包括任何图片。如果有一个不会即刻用到的view,你这就是在浪费宝贵的内存资源了。Storyboards就是另一码事儿了,storyboard仅在需要时实例化一个view controller.
当家在XIB是,所有图片都被chache,如果你在做OS X开发的话,声音文件也是。Apple在相关文档中的记述是:
当你加载一个引用了图片或者声音资源的nib时,nib加载代码会把图片和声音文件写进内存。在OS X中,图片和声音资源被缓存在named cache中以便将来用到时获取。在iOS中,仅图片资源会被存进named caches。取决于你所在的平台,使用NSImage 或UIImage的`imageNamed:`方法来获取图片资源。
5.不要阻塞主线程
永远不要使主线程承担过多。因为UIKit在主线程上做所有工作,渲染,管理触摸反应,回应输入等都需要在它上面完成。
一直使用主线程的风险就是如果你的代码真的block了主线程,你的app会失去反应。
大部分阻碍主进程的情形是你的app在做一些牵涉到读写外部资源的I/O *** 作,比如存储或者网络。
你可以使用`NSURLConnection`异步地做网络 *** 作:
+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue*)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler
或者使用像AFNetworking这样的框架来异步地做这些 *** 作。
如果你需要做其它类型的需要耗费巨大资源的 *** 作(比如时间敏感的计算或者存储读写)那就用 Grand Central Dispatch,或者NSOperation和 NSOperationQueues.
下面代码是使用GCD的模板
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// switch to a background thread and perform your expensive operation
dispatch_async(dispatch_get_main_queue(), ^{
// switch back to the main thread to update your UI
})
})
发现代码中有一个嵌套的`dispatch_async`吗?这是因为任何UIKit相关的代码需要在主线程上进行。
6. 在Image Views中调整图片大小
如果要在`UIImageView`中显示一个来自bundle的图片,你应保证图片的大小和UIImageView的大小相同。在运行中缩放图片是很耗费资源的,特别是`UIImageView`嵌套在`UIScrollView`中的情况下。
如果图片是从远端服务加载的你不能控制图片大小,比如在下载前调整到合适大小的话,你可以在下载完成后,最好是用background thread,缩放一次,然后在UIImageView中使用缩放后的图片。
7. 选择正确的Collection
学会选择对业务场景最合适的类或者对象是写出能效高的代码的基础。当处理collections时这句话尤其正确。
一些常见collection的总结:
· Arrays: 有序的一组值。使用index来lookup很快,使用value lookup很慢,插入/删除很慢。
· Dictionaries: 存储键值对。用键来查找比较快。
· Sets: 无序的一组值。用值来查找很快,插入/删除很快。
一、下载WIN7安装版 系统,下载的文件一般是ISO,或者把ISO打包成RAR的二、把WIN7系统ISO解压到硬盘的非系统分区的任意文件夹,如把它解压到:
D:\w7\
三、打开 D:\w7\ 文件夹,全部选定,复制
四、打开C盘,右击粘贴
五、设置文件夹选项,显示隐藏文件和系统文件,去掉保护系统文件的对勾,确定,使C盘的所有文件都显示出来
六、删除NTLDR(C盘根目录下)
七、重命名bootmgr(C盘根目录下)为ntldr
八、重启电脑,看吧,安装界面开始了
这是方法一,下面是方法二:
一、解压ISO文件到非系统分区,如:
e:\win7\
二、下载并运行:
硬盘安装工具nt6 hdd installer
三、这个工具在原来的XP等系统下可以直接运行,确定几下,就可以开始安装了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)