针对ios移动开发平台的限制及自身的一些特点,在开发过程中需要对其进行一些必要的考虑,现就需要考虑的问题汇总如下:
1:安装文件不要大于10M, 运行程序所占用内部不能超过20M, 内存占用30M就很危险。(iPhone不支持基于磁盘交换的虚拟内存。)
2:运行应用程序过程中可能出现的中断场景。
比如:游戏过程中的电话介入;
同一帐号在不同平台登陆导致前一个登陆帐号被踢。
3:沙盒限制--你的程序不能直接访问其他应用程序数据和文件夹。
4:不能在提交给app store的应用程序中包含动态运行时链接到任何代码的解决方案,但是可以构建在编译时包含静态库。
5:苹果公司的严格规定“ 一次一个应用程序”策略, --第三方开发人员不能开发在后台运行的应用程序。
6:磁盘空间不足的提醒
7:垃圾收集带来的问题:
对性能的影响不可预知:清理内存时必须冻结线程
有限的内存不允许以正常实用的方式实现垃圾收集
8:IO操作尽量不要放在主线程。在移动开发上这点对性能影响感觉很明显。
9:网络请求超时操作不要放在锁内,有可能因网络连接超时导致主线程不能及时响应,影响用户体验。
10:对必要的信息建立缓存机制。减少网络请求,从而减少流量,改善用户体验。
11:一次网络连接尽可能多的返回需要的数据信息,减少网络连接建立的次数。
应用程序开发完成后,需要使用 xcode 自带的工具对内存进行静态数据分析,查看程序中是否有存在内存泄漏的bad code.
方法是project->Profile