`
longgangbai
  • 浏览: 7369692 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【转】网易博客Android客户端 — native+html5移动应用混合开发实践

阅读更多

 

项目历程】

历时三个月,经过交互、前端设计、开发、测试,近期网易博客Android客户端即将面世,届时广大使用Android 手机的博友们可以随地随地 写日志、心情,评论,推荐。

早在去年年底左右,技术组已经着手调研技术可行性,最后选型 native结合html5的混合开发方式,并于今年3月底发布了第一个可行性示例。

此时积累了如下实践成果:

  • 自主开发的面向移动客户端的JS mobile web Framework (mwf)

mwf框架包含:基础库(节点操作、触摸事件等),控件库(事件调度、缓存、ajax引擎、模板引擎等)、移动库(通知、文件处理、地理位置等)

  • Patched Phonegap Framework (phonegap 基础上的patch)

修正了如Fling事件被skip、Focus问题与软键盘处理、Fixed position、Click延迟等问题

  • Native Util (项目需求增加的工具类,如消息通知、menu等)

接着4月份开始,该技术开始应用到博客Android的产品。经过团队各位同事的协作,现在产品的雏形如下:

 

Native+html5的混合开发

【功能简介】

网易博客Android V1.0 功能概况:
  • “发布日志、心情,图片日志”等基础发布功能:

  • “浏览个人中心动态、他人博客、日志、心情、相册”等基础阅读功能:

  • “推荐、评论、留言、处理各种消息中心”等基本博客操作功能:

 

 

 

 

【 技术解析】

  • 客户端和服务器的交互

博客客户端其实可以理解为一个chrome浏览器(webkit引擎),与服务器的交互采用web开发常用的dwr操作数据的方式,这样方便了web开发人员平滑的过度到手机客户端的开发,同时充分发挥出了浏览器调试工具的作用。


  • 客户端数据的缓存(html5)

考虑到移动设备流量的宝贵性及离线的可访问性,产品将用户访问的数据缓存于本地,用户在使用过产品后,后续的使用均默认从缓存获取数据,只有当用户显式的刷新时才会从服务器重新获取数据。

在自主开发mwf框架里集成了Local Storage 的缓存处理,并且针对本地存储做了两点优化

  1. 对每个要存储的数据增加脏数据标志位的判断。解决在实践中遇到Local Storage 的删除操作完成后,缓存数据并未真正删除的问题。
  2. 在本地存储的基础上增加了对象内存缓存,提高了读取数据的性能。
  • 消息的实时通知(html5)

用户的互动操作(如评论、留言、关注、加博友的场景)中采用了实时双向推送技术WebSocket,通过native扩展的接口友好的呈现给用户,该技术的应用很大程度的改善了用户的互动体验。

通知


  • 拍照、通知栏通知等的实现( native扩展 )

客户端和手机的相互操作(如拍照,通知栏),采用phonegap暴露的js api 来调用实现。

拍照
文件上传

 

通知铃声设置


  • Css3的应用

 

 

附件(小组android内测版):解压后安装 androidblog-0.9.1.7beta.apk

androidblog-0.9.1.7beta.rar(550.31K)
下载

 

分享到:
评论
3 楼 wenyuan0410 2014-05-15  
我能问下,web跟native中有很多相似或一样的功能,那当我需要到这种功能的时候,我该选择web去实现还是native去实现呢
2 楼 longgangbai 2014-01-02  
hyc_willie 写道
登陆不进去

转载官方,这是一种手机客户端架构的 方案 ,明白思路和设计就ok
1 楼 hyc_willie 2013-12-26  
登陆不进去

相关推荐

    swift-ReactNative模仿网易云音乐手机客户端兼容安卓和IOS两个平台。

    主要用于iOS、iPadOS、macOS、watchOS和tvOS的应用开发,而React Native是由Facebook开发的JavaScript框架,允许开发者用JavaScript和React编写原生移动应用,支持iOS和Android。 这个项目“swift-ReactNative模仿...

    尝试使用reactnative构建网易新闻客户端中的金币商城

    在本文中,我们将深入探讨如何使用React Native框架构建一个类似于网易新闻客户端中的金币商城功能。...通过掌握React Native的核心概念和相关技术,我们可以创建出与原生应用媲美的混合移动应用。

    仿 网易客户端

    7. **Hybrid App开发框架**:考虑到HTML5和Android原生的结合,可能使用了如Cordova、React Native或Ionic等混合应用开发框架,它们允许开发者使用Web技术构建跨平台的移动应用,同时调用原生设备功能。 8. **下拉...

    20220607R4s9F6ZH.zip

    20220607R4s9F6ZH.zip

    【计算机求职笔试】资源

    【计算机求职笔试】资源

    基于S7-200 PLC与组态王的智能楼宇消防系统设计与实现

    内容概要:本文详细介绍了基于西门子S7-200 PLC和组态王软件构建的智能楼宇消防系统的设计与实现。首先阐述了硬件配置,包括烟雾传感器、手动报警按钮、排烟风机和声光报警器等设备的连接方式及其IO分配。接着深入解析了梯形图编程的关键逻辑,如输入滤波设置、分层报警策略以及带时间锁的控制流程。同时探讨了组态王监控画面的设计要点,特别是权限管理和报警弹窗的脚本实现。此外,还分享了一些常见的调试问题及解决方案,如电磁阀误动作、信号干扰等问题的处理方法。最终展示了系统的性能优势,强调了实时监测与快速响应的重要性。 适合人群:从事楼宇自动化、工业控制系统设计的技术人员,尤其是对PLC编程和SCADA系统有一定了解的工程师。 使用场景及目标:适用于新建或改造智能楼宇消防系统的项目规划与实施。目标是提高消防系统的响应速度和可靠性,确保在火灾发生时能够迅速采取措施,保障人员生命财产安全。 其他说明:文中提供了大量实际案例和经验教训,有助于读者更好地理解和应用相关技术和方法。

    2025姓名配对测算系统最新源码 带后台

    2025姓名配对测算系统最新源码 带后台 一套网上全新的UI,用于姓名配对,支持投流各大平台,全开源可进行二开! 投流的老板可以放心使用这套 后台登录地址:/admin    账号admin    密码admin123

    基于LabVIEW的多路压力数据采集系统设计与实现

    内容概要:本文详细介绍了基于LabVIEW构建的多路压力数据采集系统的硬件配置和软件架构。硬件方面,选择了合适的传感器(如STC的CYZ-102)和信号调理模块(如NI的SCXI-1520),确保系统的精度和稳定性。软件部分强调了DAQ助手的使用、生产者-消费者模式的应用以及TDMS格式的数据存储方法。此外,还分享了许多实用技巧,如差分输入应对电磁干扰、波形图控件优化、数据存储的块大小设置等。通过这些措施,系统实现了高效稳定的多通道压力数据采集,显著缩短了设备故障排查时间。 适合人群:从事工业自动化、数据采集系统设计的技术人员,尤其是有一定LabVIEW基础的研发人员。 使用场景及目标:适用于需要进行多通道压力监测的工业环境,如化工厂、液压测试台等。主要目标是提高数据采集的效率和准确性,减少设备故障排查时间,提升生产效率。 其他说明:文中提供了大量具体的配置代码和实践经验,帮助读者更好地理解和应用相关技术。同时,作者还分享了一些调试过程中遇到的问题及其解决方案,为后续开发提供宝贵的经验参考。

    S0073基于JavaSSM框架民宿管理系统1725784419.rar

    本资源为基于Java的SSM框架民宿管理系统的完整代码,适用于【计算机专业毕设/课设】。通过该项目,您可以快速实现民宿管理相关功能,并且该代码已进行了充分的注释和优化,便于开发者快速理解和二次开发。 资源特色: 功能齐全: 高效实现:代码经过优化,性能稳定, 详细注释:每个模块和函数均附带详细注释,便于理解和学习。帮助您快速上手和部署。 易于扩展:代码结构清晰,方便进行二次开发和功能拓展。 适用人群: 初学者:帮助您快速了解并实现[技术/功能]。 开发者:提供高效的代码实现,助力项目开发。 学术研究:为相关领域的研究人员提供有价值的代码资源。 下载说明: 本资源为付费资源,购买后可获得完整代码 支持提供技术支持,若有问题请及时联系我们。

    tbb-devel-2018.2-9.el8.x64-86.rpm.tar.gz

    1、文件说明: Centos8操作系统tbb-devel-2018.2-9.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf tbb-devel-2018.2-9.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm

    大学生智能消费记账系统的设计与实现.zip

    Java项目基于Springboot框架的课程设计,包含LW+ppt

    软考初级信息处理技术员上午试题模拟20及答案

    软考

    使用Matlab辅助设计开关电源.zip

    matlab

    西门子S7-200 SMART与施耐德ATV71变频器自动握手通讯方案及应用

    内容概要:本文详细介绍了如何通过西门子S7-200 SMART PLC与施耐德ATV71变频器建立稳定的自动握手通讯方案。主要内容涵盖硬件连接、参数设置、PLC编程实现DriveCom协议状态机、数据校验方法以及触摸屏配置等方面。文中特别强调了断电重启后的自动恢复机制,确保设备能够快速恢复正常运行,避免人工干预。同时,提供了具体的代码片段和注意事项,帮助读者理解和实施这一解决方案。 适合人群:从事工业自动化领域的工程师和技术人员,特别是那些负责变频器通讯和控制系统集成的专业人士。 使用场景及目标:适用于需要提高工业现场设备自动化水平的企业,旨在解决变频器断电重启后需要人工重新准备的问题,提升系统的稳定性和可靠性。 其他说明:本文不仅提供理论指导,还包括大量实战经验和具体案例分享,有助于读者更好地掌握相关技术和应对实际问题。

    在线考试系统.zip

    Java项目基于Springboot框架的课程设计,包含LW+ppt

    基于SUMO的交通仿真模型研究:信号控制、边界管理与车辆编队技术的应用

    内容概要:本文详细探讨了利用SUMO进行交通仿真的多个关键方面,包括但不限于信号控制、边界管理和车辆编队。首先介绍了通过TraCI接口实现的动态信号灯控制方法,能够根据实时交通状况调整绿灯时长,从而有效降低车辆延误率。其次讨论了高速公路的流量控制策略,如采用渐进式的流速控制和可变限速区来避免因事故造成的严重拥堵。此外,还展示了如何通过协同式自适应巡航控制系统(CACC)实现高效的车辆编队运行,确保车队内部的安全性和稳定性。文中提供了具体的Python代码示例以及XML配置片段,帮助读者更好地理解和实施相关技术。 适合人群:交通工程专业学生、研究人员和技术开发者,特别是对智能交通系统感兴趣的从业者。 使用场景及目标:适用于需要评估不同交通管理策略效果的研究机构或企业;旨在提高城市道路交通效率、减少交通事故发生频率并改善驾驶体验的技术创新项目。 其他说明:作者强调了交通控制参数非线性的特点,并指出在实践中应当灵活运用各种工具和技术手段不断优化仿真模型。同时提醒使用者注意细节之处(如相位编号从零开始),并且鼓励大家充分利用SUMO提供的可视化功能辅助调参工作。

    matlab实现全球定位系统GPS信号产生、捕获与追踪的深度研究-GPS-信号处理-伪随机码-三边测量-多路径效应修正-matlab

    内容概要:本文详细探讨了全球定位系统(GPS)的信号产生、捕获和追踪三个核心步骤,并通过Matlab源码实现相关算法。首先介绍了GPS信号产生的关键要素,包括伪随机码生成、数据编码和信号发射。接着讨论了信号捕获过程,涉及天线接收、码相位测量及其常用方法如滑动相关法。最后阐述了信号追踪的三边测量原理及误差修正措施,如电离层延迟补偿、地形效应补偿和多路径效应修正。通过具体Matlab代码示例展示了整个流程的实现,并附带了详细的运行步骤和结果分析。 适合人群:对GPS系统有兴趣的研究人员和技术爱好者,尤其是有一定编程基础并希望深入了解GPS内部机制的人群。 使用场景及目标:适用于学术研究、工程开发等领域,旨在帮助读者掌握GPS信号处理的基本理论和实践技能,提升定位精度和可靠性。 其他说明:文中提供的Matlab代码已在特定版本下测试通过,但不同版本可能存在差异。此外,还列举了一些参考文献供进一步学习。

    IT技术交流和分享平台的设计与实现.zip

    Java项目基于Springboot框架的课程设计,包含LW+ppt

    P2并联架构Cruise仿真模型与Simulink控制策略解析及应用

    内容概要:本文详细介绍了基于P2并联架构的Cruise仿真模型及其Simulink控制策略。首先,文章阐述了模型架构,特别是P2电机的位置选择以及行星齿轮组的参数配置,强调了扭矩耦合的优势。接着,深入探讨了控制策略,包括三层状态机嵌套的工况识别模块、滑动窗口方差计算用于预判驾驶意图、带遗忘因子的递推最小二乘法进行动态扭矩分配等关键技术。此外,文章还展示了速度跟随模块采用的带前馈的PID控制算法,并讨论了模型验证过程中遇到的问题及解决方案。最后,作者分享了一些有趣的彩蛋和隐藏功能,如秋名山模式和实时参数调整模块,以及模型的实际性能提升情况。 适合人群:从事汽车控制系统研究、混合动力汽车开发的技术人员,尤其是熟悉Matlab/Simulink平台的研发人员。 使用场景及目标:适用于希望深入了解P2并联架构Cruise仿真模型的设计原理和技术细节的研究者;旨在帮助开发者掌握先进的控制策略实现方法,提高仿真模型的精度和效率。 其他说明:文中提供了详细的代码片段和参数设置指南,便于读者理解和复现实验结果。同时,作者提醒读者注意一些潜在的技术陷阱,并给出了相应的解决建议。

Global site tag (gtag.js) - Google Analytics