您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 淘宝无线Android客户端架构介绍_0708
无线淘宝Android客户端架构组件化+WebPlus无线开发陶钧taojun@taobao.com淘宝无线客户端Android•挑战•淘宝本身的业务丰富,品种繁多;比如:聚划算,彩票,口碑,机票,直充等等;•业务变化快,可运营特性要求快速上线;如何应对?•基于组件模型进行业务开发•WebPlus基于组件的应用框架层•每个组件包含了具体页面,业务功能以及数据,以一个整体模块的形式存在。•保障并行开发:熟悉业务的开发者分别进行各自业务的开发,减少协作和沟通;•重用:提供公共的基础组件和SDKs降低开发成本,如淘宝无线安全登录组件;•业务流程开发更简单•组件设计要求不改变Android开发者熟悉的编程习惯,可以直接使用Activity和Handler等;组件模型组件之间通信通过CompProxy•组件可以直接使用View和Layout;组件与OS事件的通信不受影响组件模型的核心•CompProxy•组件的Capability注册和管理•管理组件的生命周期•组件间通信•维护组件的状态(Active)•SDKandViewControls•在业务开发中,不断积累下来的通用SDK和View聚划算业务流开发•功能性组件重用,大大减少了业务流开发和调试工作量组件通信•AppEngine与组件之间的通信必须通过组件的接口完成•来自OS或者AppEngine的事件通过组件的接口传递给组件;•组件之间的通信:CompServiceProtocol•通过注册,请求,响应Service,去掉组件之间的物理依赖;•每个组件提供的功能并定义为Service•组件与OS之间的通信不受任何限制•组件可以直接调用任何系统API;•组件可以直接调用任何SDK的接口;SDKsandViewControls•对淘宝业务开发,你一定需要一个ImageDownloader;•手机上内存有限,你要小心地使用图片缓存,无论是你还是其他开发者不加控制地使用缓存或图片缓存,对整个应用来说都是一个悲剧;•我们希望你将业务数据封装成标准数据源后,就能直接按四宫格显示在界面上;翻页,异步加载图片,缓存,预取,性能优化这些都交给我们;完整测试,性能优化,标准化•降低开发成本,业务开发提速;•保证核心功能的稳定性;•保持应用程序不至于被各种风格的代码撑爆;CompArchitectureCache•轻量级的本地缓存basedonheap,filesystem•在新版本上线前,检测MemoryFootprint,评估内存使用的质量;ImagePool•图片缓存•将图片转换成字节流,突破Androidbitmapheap的限制;•图片内存溢出时,自动处理;DataProvider,Source,List•DataProvider封装了对超大数据的网络获取,动态存储,翻页展现等功能;比如,搜索结果列表界面中的宝贝列表;•DataSource是具体业务数据的协议封装;•开发者实现自己的DataSource,就可以通过DataProvider+List创建出大数据量优化过的界面和逻辑;WhyWebPlus?•线上快速部署的能力•RealCase:淘宝运营推出新的线上优惠,购买商城商品,送商城积分•有些业务用WebPlus,体验和Native差别不大•RealCase:淘宝旺旺HTML5版•没有足够的Client开发资源WebPlusSample•NativeLayoutcontainonewebviewlayout;TBWebView•Webviewjustahtmlrenderingengine•TBWebView基于业务对WebView进行了优化•优化:访问速度,业务缓存,交互体验2G网络,淘宝Android客户端详情WebPlus页面速度统计•主要的时间消耗在图片等资源的加载过程中,这些图片主要包括详情也中的正品、7天包换、信用、load菊花以及css中的一些背景及旺旺图片•这些资源大概消耗了15-20k的流量,占用10-14s时间。HTML下载时间DOM加载消耗时间图片SKU资源加载时间总加载时间网络:HTML,宝贝图片,ResIMG本地:JS,CSS2.6630.22316.83619.722网络:HTML,宝贝图片本地:JS,CSS,ResIMG2.3620.2242.895.476网络:宝贝图片,Data(inJSONformat)本地:HTML,JS,CSS,ResIMG1.6030.2351.513.348Keynotesforspeed•Statisticresource(JS,CSS),Resourceimagesshouldbecached;•Theproperimagesizewhichisrelatedtodevicescreenisalsothekey.业务缓存•webview内部有自己的资源缓存•开发者可以结合业务需要,通过viewmgr+cache定制特殊的业务缓存;TBWebviewPackage•ResMgr:HTML中所有静态资源都将被ResMgr记录,并放入缓存;ResMgr负责完成资源更新检查;•ViewMgr用于记录页面访问轨迹,可以根据业务需要,定制返回和跳转逻辑;•比如,用户在订单跳支付页面中出现网络超时,程序可以自动跳转订单列表界面行业内的Webkit应用•Android,IOS上优秀应用,也都利用了webkit来提供更丰富的功能,例如:flipboard@ipad,Sinaweibo@android•浏览器对HTML5的支持越来越好,WebApp也可以更加遍历的访问Native功能•HTML5CacheSupportonMobilecomingsoon•HP(originallyPalm)WebOSv3.0•NokiaWebTools1.2supportSeries40andSymbianwebapps•Thirdpartysolution:Sencha,jQTouchetc未来Webcore应用框架1•WebApp会成为应用框架的一个重要组成部分,并且完美的和NativeApplication嫁接•一个应用广泛的框架:所有系统都存在的MultimediaFramework(DShow,Gstreametc)•高度灵活,可定制化,跨平台(名字一定不一样)未来Webcore应用框架2•Webcore应用框架会由引擎层+应用层组成•应用层提供更方便的使用接口,本地缓存,资源更新模块;•引擎层即webcore,承载数据流;•OS厂商应该以框架的形式开放webcore,应用软件商可以根据业务需要使用私有协议,个性化技术和业务优化;Q&A•FortaobaoClientDownload:•Fordiscussion旺旺:陶钧Mail:taojun@taobao.comSinaweibo:steveyzhang
本文标题:淘宝无线Android客户端架构介绍_0708
链接地址:https://www.777doc.com/doc-1535015 .html