- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
手机客户端改进历程 王道新(资深工程师) daoxin.wang@ 大众点评网概况 2003年创建,国内领先的城市生活消费指南网站 覆盖全国2300多个城市,近120万家商户,2000万条点评信息 活跃用户超过4200万,500M(GA)浏览量/月 70台主干服务器,约165位技术人员 点评手机App概况 2009年10月发布Android 1.0版,2010年01月发布iPhone 1.0版,目前最新版4.6 2011年08月底手机独立用户数已超过1300万 2011年08月底手机访问量已超过网站的60%,并且增长速度大于网站 目录 定位服务 定位 GPS — 卫星定位 定位准确度高,速度慢,室内无法使用 AGPS — 手机基站 WiFi 定位 定位准确度稍差,速度快,室内可使用 Android:国内行货手机多不包括 AGPS 定位功能 iPhone:Apple基站 WiFi 数据完备性不及Google,定位效果比Android差 定位 (cont.) 定位得到的信息 GPS坐标 定位方式 (GPS? 基站?WiFi?) 定位偏差 时间戳 地图 坐标偏移 地图 (cont.) 支持在多种地图中显示商户位置 Google Map Brut Baidu Map MapBar MiniMap 自实现地图用于未安装地图的手机 使用 Baidu Map 实现 其他定位方式 NFC QRCode 超声波 目录 网络请求 协议 HTTP :服务器和客户端都有成熟的支持 Server : Web Server Android : Apache HttpClient iOS : UrlRequest API Raw TCP : 可能在数据传输方面更高效率,需要大量实现代码 连接 Android SingleClientConnManager ThreadSafeClientConnManager iOS : 自己实现连接管理 数据 NDK加速数据解析 MD5, GZip... Crypto (encrypt, decrypt) URLEncoder, URLDecoder DateFormatter.parse() 网络连接探索 保持长连接 把多个请求合并 探索替代HTTP的数据承载方式 目录 本地缓存 缓存内容 接口数据缓存 DISABLED —— 登陆、注册、签到等 NORMAL —— 附近商户等 PERSISTENT —— 城市列表等 图片缓存 内存缓存 (不要使用SoftReference缓存) 磁盘缓存 缓存方式 Key – Value 式缓存 Key : 资源 URL Value : 资源数据 SQLite DB 组织和管理方便,但速度慢 服务器接口数据采用SQLite DB方式缓存 文件 难以管理,速度可能快于SQLite DB 图片缓存采用文件方式缓存 其他缓存方式 Key-Value DB LevelDB:C++编写,开源 (/p/leveldb/ ) TreapDB:Java编写,开源 (/p/treapdb/ ) 测试方法 Key:40-80字节的url Value:4K-32K字节的随机数据 生成100条key-value,写入各数据库,再乱序读100条数据。 目录 界面改进 StrictMode 主线程完成了95%以上的任务 如果UI线程有连续多次超过100ms的非UI任务执行,用户就会觉得UI刷新不及时 StrictMode (cont.) 自动检测在主线程执行的文件读写及网络IO操作 StrictMode (cont.) 非UI长操作移至后台的办法 AsyncTask Handler/Message Thread 内存 消除内存泄露 尽量降低内存占用 HPROF + Eclipse Memory Analyzer 内存 (cont.) 内存 (cont.) 包括所有需要的图片类型,避免系统在小内存手机上选择大图片 drawable drawable-ldpi drawable-mdpi drawable-hdpi Apk尺寸 没有纹理的背景图使用 .9.png 或者 xml 资源 圆角、渐变色、填充 多个类似图片可拆成 背景+前景图 部分资源可安装之后从网络加载 如尺寸需求迫切,可分版本发布 目录 App交互 Google Analytics 统计,根据反馈调整界面。 Page View / Event App功能 关注用户反馈 用户反馈来源 App Store Android Market 等的用户评论 点评 Support 论坛 App的报错或建议功能 … 处理用户反馈 去掉开机执行 去掉后台服务 … 流程改进 随着人员和代码规模的增加,引入项目流程元素,
文档评论(0)