`
longgangbai
  • 浏览: 7331679 次
  • 性别: 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  
登陆不进去

相关推荐

    android native+h5 demo

    在Android开发中,"android native+h5"是一个常见的技术结合,它涉及到原生Android应用与Web(HTML5)内容的交互。本项目“android native+h5 demo”提供了一个实例,展示了如何在Android应用中集成H5页面并实现两者...

    电信设备-Native+Web混合移动应用的实现方法及装置.zip

    在现代移动应用开发领域,Native+Web混合移动应用的实现技术已经成为一种常见且高效的方式,尤其是在电信设备的应用中。这种技术结合了原生(Native)应用的优势和Web应用的灵活性,为开发者提供了丰富的功能和高效...

    Android和ReactNative混合开发Demo

    在移动应用开发领域,Android和React Native的混合开发已经成为一种常见的技术栈选择,它结合了原生应用的优势和Web开发的便利性。本教程通过"Android和React Native混合开发Demo",将详细介绍如何在Android应用中...

    基于React Native+Redux的iOS混合开发项目.zip

    在本项目"基于React Native+Redux的iOS混合开发项目.zip"中,我们主要探讨的是如何利用React Native框架和Redux状态管理库来实现一个跨平台的iOS应用开发。React Native是Facebook推出的一个开源框架,它允许开发者...

    大话web&native;混合开发

    随着技术的不断进步,混合开发模式将会越来越成熟,成为主流的移动应用开发方式之一。 #### 十、展望 未来,随着Web技术的进步和设备能力的提升,Web & Native混合开发模式将继续发展和完善,为开发者提供更加灵活...

    swift-ReactNative开发嘎嘎商城客户端

    通过以上分析,我们可以看到“swift-ReactNative开发嘎嘎商城客户端”项目涵盖了移动应用开发的多个核心领域,包括跨平台开发、原生与JavaScript的融合、状态管理、网络通信和UI设计等,这些都是现代移动应用开发中...

    React Native 用JavaScript开发移动应用.pdf

    不同于传统移动应用开发,它不需要开发者分别用 Swift/Obj-C 或者 Java/Kotlin 编写 iOS 或 Android 特定代码。通过 React Native 的桥接机制,JavaScript 能够和原生代码进行交互。 3. React Native 的核心组成...

    React Native跨平台移动应用开发 第一版

    本资源为"React Native跨平台移动应用开发 第一版"的扫描版,提供了关于使用React Native进行移动应用开发的详细指南。 React Native的核心理念是"Learn once, write anywhere",意味着开发者只需要学习一次,就...

    【移动4】王利华_H5、React+Native、Native应用对比分析+_.pdf.pdf

    其次,React Native是Facebook于2015年推出的一个跨平台的移动应用开发框架,它允许开发者使用JavaScript和React来编写原生的移动应用。React Native的一个核心优势是它可以同时在iOS和Android平台编译,大大减少了...

    灵梦御所第三方Android客户端基于ReactNative

    【标题】"灵梦御所第三方Android客户端基于ReactNative"所涵盖的知识点主要涉及React Native技术在移动应用开发中的应用,以及如何构建一个面向特定平台(灵梦御所)的第三方客户端。React Native是由Facebook开发的...

    React Native 跨平台移动应用开发(P364完整版) 卷1

    React Native是Facebook公司最新推出的,强大的、开源的跨平台移动应用开发框架,它能大幅减少跨平台移动应用开发的工作量,并且代码结构清晰、简单易懂。同时React Native框架采用模块化结构,使应用版本的更新迭代...

    android+php+mysql android4 0也能用

    标题中的“android+php+mysql”指的是在Android设备上通过...综上所述,"android+php+mysql"项目涉及了移动应用开发、后端开发、数据库管理和网络通信等多个方面,是Android开发者学习和实践远程数据交互的典型场景。

    Android DevCamp幻灯片分享:凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山

    凡客移动应用采用了混合式开发模式,即**Native App + Web App**架构,充分利用了各自的优势: 1. **Native App**:提供更好的用户体验,拥有更强大的表现力和更快的速度。适用于需要高性能展示的部分,如启动页、...

    混合移动APP跨平台混合开发综述.pdf

    混合移动APP跨平台混合开发综述 混合移动APP跨平台混合开发综述.pdf文章总结了当前混合...混合移动APP跨平台混合开发是未来移动应用开发的趋势之一,可以满足企业管理、电子商务、电子政务、交互式教学等多种需求。

    Flutter与Android Native原生进行混合开发,相互跳转,进行通信_示例Demo

    Flutter与Android Native原生进行混合开发(flutter module),Flutter和Android Native相互跳转,Flutter和Android Native进行通信的示例Demo 有Flutter官方API和引入FlutterBoost两种方式,具体可以看我的博客 第一...

    使用reactnative开发的一个one客户端

    通过深入研究和实践这个项目,开发者可以掌握React Native的基本用法和最佳实践,进一步提升混合移动应用的开发能力。同时,对于想要了解React Native如何与后端服务交互、如何设计适应多平台的用户界面、以及如何...

    一个使用ReactNative制作的个人博客客户端

    React Native 是一个由Facebook开发的开源框架,它允许开发者使用JavaScript和React的组件化思想来构建原生的iOS和Android应用...对于想要学习React Native或者混合移动开发的人员来说,这是一个非常有价值的实践案例。

    ReactNative用javascript开发移动应用

    《ReactNative用javascript开发移动应用.pdf》,无书签。

    致力于帮助Android开发者转reactnative开发

    React Native 是一个由Facebook开发的开源框架,它允许开发者使用JavaScript和React来构建原生的移动应用程序,同时支持iOS和Android平台。对于Android开发者来说,转向React Native开发意味着拓宽技能领域,利用已...

Global site tag (gtag.js) - Google Analytics