原文链接如下:
http://www.slideshare.net/SMbey0nd/for-android-5128076
《淘宝客户端 for Android》项目实战 - Presentation Transcript
1. 淘宝客户端
项目实战
for Android
TaobaoUEDMobile Web Team
王卓[SMbey0nd]
2. 手机淘宝网
iPhone/Android版 #1
上线
m.taobao.com
3. Android来了
4.
* Android:Google & OpenSource
* vs. iOS
* 市场份额:17.2% 3 SRAIW (Gartner)
* 国内现状:OMS MTK & 国产设备
* 未来趋势:…
5. 项目简介
6.
7.
8.
9. 技术框架
Web
App
Native App
10. 技术框架
Native App+Web App
合体!
11. 技术框架
Web App 的优势:
成本
更新
扩展和复用
12. 技术框架
Native App 的优势:
功能
表现
速度和性能
13. 技术框架
扬长避短!
14. TIPS
前端开发火花集
15. Android Webkit Browser
16. Android Webkit Browser
支持的主要技术特性:
HTML5:
* localStorage(Android 2.1)
* Geolocation(Android 2.1)
* Canvas
* Video/Audio
* Forms(Android 2.0 incomplete)
* …
http://www.quirksmode.org/webkit.html
http://html5test.com/
17. Android Webkit Browser
支持的主要技术特性:
CSS3:
* Selector
* Border
* Background
* Text effects
* Transition/Transform/Animation
* Media queries
* …
http://www.quirksmode.org/webkit.html
18. Android Webkit Browser
支持的主要技术特性:
JavaScript:
* Touch Events
* ontouchstart/ontouchmove/ontouchend
* Multitouch Events/Gestures (incomplete)
* 设备API(Android 2.2)
* navigator.connection.type
* navigator.onLine
* navigator.isApplicationInstalled
* …
http://www.quirksmode.org/mobile/tableTouch.html
19. Let’s Goooooo!
20. 宽度自适应布局
目的:
兼容不同分辨率设备
320x480/360x640/480x800/480x854
屏幕旋转适应
Orientation
做法:
百分比宽度
max-width/min-width
21. 宽度自适应布局
22. CSS2.1/3选择器
目的:拒绝冗余Class,提高灵活性
E[attr=val]
E>F
E~F
E+F
E:last-child
E:disabled
…
23. 告别 :hover
触屏没有鼠标,无需设置悬停色
关于点击焦点:
Android不支持设置焦点高亮色和伪类
iPhone支持:
–webkit-tap-highlight-color
:active伪类
24. 告别 :hover
25. 迎接inline-block
目的:告别float和轻浮
适用场合:
各种同向横排
不适用场合:
反向停靠
无法接受水平空隙
26. 迎接inline-block
27. 图形模拟
目的:减少图片
模拟圆形:
-webkit-border-radius
模拟三角:
border-top:10px solid transparent;
border-bottom:10px solid transparent;
border-right:10px solid #ccc;
28. 图形模拟
29. 优化select
隐藏边框和背景
select{background:transparent;}
增加下拉图片
扩大点击区域
label{display:block;}
30. 优化select
31. 实用CSS组合 #1
轻松实现漂亮按钮和tab:
-webkit-border-radius
-webkit-box-shadow
-webkit-gradient
text-shadow
Multiple backgrounds
32. 实用CSS组合 #2
轻松实现漂亮弹出层:
-webkit-border-radius
-webkit-box-shadow
opacity
33. CSS动画
简单的弹出层动画:
.ani-pop{-webkit-animation:twc-popup .5s ease-in-out 0;}
@-webkit-keyframes twc-popup{
0%{-webkit-transform:scale(1) rotate(0);opacity:0;}
50%{-webkit-transform:scale(1.2) rotate(0);opacity:.5;}
100%{-webkit-transform:scale(1) rotate(0);opacity:1;}
}
低配置机器资源消耗较大,尽量不用:(
34. JS框架/类库的选择
框架/类库:
YUI2/3
Kissy
Sencha
jQuery
jQuery Mobile
Native模拟:
jQTouch
iUI
iWebkit
…
35. Orientation屏幕旋转检测
事件
Android:window.resize
iOS:onorientationchange
取值
window.orientation
case 0 : //portrait(normal)
case 90(-90): //landscape
动作
Body.landscape
36. 去除超链接焦点框
给a的ontouchstart设置return false;
快速响应
兼容Android/iOS
37. touch/gestures事件
支持度
Android不支持多点触摸和手势
iOS全支持
touch和gestures介绍
ontouchstart/ontouchmove/ontouchend
gesturestart/gesturechange/gestureend
touches/targetTouches/changedTouches
http://2.ly/ccay
应用
ScrollLayer组件[Beta]http://2.ly/cca6
http://www.smbey0nd.com/2010/07/10/touching-and-gesturing-on-the-iphone/
38. Native + Web双向通信
(合体过程)
39. 合体简介
WebView
Webkit在SDK中封装而成的一个组件,用来显示网络内容
Java和JavaScript通过WebView的接口进行通信
40. Native调用Web
监听超链接
<a href=“http://a.com/?b”>监听b参数</a>
loadUrl方法
webview.loadUrl("javascript:foo()");
41. Web调用Native
addJavascriptInterface方法
addJavascriptInterface(Object obj,String interfaceName)//将一个java对象绑定到一个javascript对象中
Native:webview. addJavascriptInterface (this, “GoAction”);
Web:Javascript:window.GoAction.htmlFinsh();
善后处理
通过标识判断页面是否在Native环境中<meta content="true" name="twcClient" id="twcClient" />
42. 合体实例 #1
加速加载 (Web调用Native)
WebView的页面资源加载检测缺陷
页面onDomReady后马上调用Java函数通知Native
43. 合体实例 #2
调用系统功能
分享给好友(Native调用Web)
44. Android Webkit的缺陷和BUGs
HTML5语义化标记
Placeholder属性
不支持动画GIF和svg
position:fixed不支持(Android 1.6-) /不完善(Android 2.1-)
不支持-webkit-tap-highlight-color
不支持图片圆角和控件圆角(Android 1.6-)
部分机型 Scroll/touch事件的BUG(HTC Hero/HTC Legend)
http://2.ly/cg8d
缺少说明文档和官方支持
45. 前端成就
( NB)
吹
46. 前端成就– 用户体验优化
CSS3应用
24张 20KB
全自适应布局
320+
按需加载和异步优化
ScrollLayer组件
兼容性
iPhone& other Webkit…
47. 技术应用展望
48. 技术应用展望
HTML5语义化标记
Media Queries
Video/Audio/Upload
SVG/Canvas
Flash
localStorage/Geolocation
Native+Web的深入融合和优化
49. 畅想
50. 致敬
salute tochencheng
51. "People should basically shut up
and do as I tell them.
I know better. "
via @PPK
52. Questions?
By 王卓 [SMbey0nd]
http://www.SMbey0nd.com
http://twitter.com/SMbey0nd
TaobaoU3D
Mobile Web Team
53. bye
拜拜
分享到:
相关推荐
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和...旅游自助系统源码+数据库+报告+项目说明(Android APP+Web管理系统).zip
介绍Web App 和Native App的相同和不同之处,并阐释了他们相互之间的关系、优缺点,对Web App 和Native App了解必读
车联网Android App源码+项目说明(中国软件杯参赛作品).zip车联网Android App源码+项目说明(中国软件杯参赛作品).zip车联网Android App源码+项目说明(中国软件杯参赛作品).zip车联网Android App源码+项目说明...
在本资源中,我们拥有一套完整的Android社交应用与Java Web后台系统的源代码,这为开发者提供了一个绝佳的学习和实践平台。这套源代码是基于Android Studio和MyEclipse开发的,涵盖了客户端应用和服务器端服务的全部...
标题中的“android_app_NativeActivity.rar_NativeActivity_android”表明我们正在探讨与Android应用开发相关的主题,特别是涉及到NativeActivity。NativeActivity是Android系统提供的一种特殊类型的Activity,允许...
Android 影视点评App+Web开发毕业论文 本论文主要讨论了Android 影视点评App+Web的开发过程,涵盖了论文结构安排、开发技术介绍、需求分析、可行性分析、功能分析、业务流程分析、数据库设计、ER图、数据字典、数据...
安卓期末大作业-记账app(含源码+导出app+运行截图)免积分下载,详细情况请看我的文章介绍:https://blog.csdn.net/weixin_43474701/article/details/131733334 开发软件:Android Studio 开发语言:Java 2023年上...
### 做Web App 和 Native App之前,你需要考虑的四个方面 在当今移动互联网时代,无论是创业者还是企业,在推出新产品时都会面临一个选择:是开发原生应用(Native App)还是选择更为轻便的Web App?这个问题涉及到...
省钱兄跑腿源码(公众号+APP+小程序+Android+IOS)校园跑腿小程序社区跑腿uniapp前端模版
本文主要介绍了Android和Java技术在美食之旅app+web中的应用。 四、需求分析 美食之旅app+web的需求分析主要包括美食店的信息管理、菜单管理、订单管理、客户管理等方面。为了满足美食行业的需求,本文对美食之旅...
用于3种App(Web App,Light App,Native App)应用的对比,分析各自的优缺点,可以帮助大家来很好的选择需要用哪种方式开发APP。 包含了最新的轻应用APP。
云应用开发——Google+App+Engine+&+Google+Web+Toolkit入门指南 云应用开发——Google+App+Engine+&+Google+Web+Toolkit入门指南
本项目是即时通讯 APP,主要功能有群聊、私聊、朋友圈、可以发送文字、语音、视频、图片、表情、红包等。消息可以撤回, 群组可以设置管理员、可以禁言、踢人,能设置能否可查看客户信息,可@客户等,支持扫码入群,...
Android APP 加固方法之函数 Native 化 函数 Native 化是指将 Java 函数转换为 Native 代码,以提高 Android APP 的安全性和防护能力。该方法可以抵御静态分析攻击、DEX 动态恢复和动态脱壳攻击。 在 Android APP ...
android课程设计Android studio实现的一款作业提交管理APP源码+文档+PPT,已获高分通过项目。 使用Android studio实现一款作业提交管理APP,该软件可以实现三种用户登录。 学生端可以查看课表,提交作业以及小组讨论...
该项目是一款基于WebView、H5和Native JS的Android物业管理APP设计源码,包含491个文件,其中包括271个PNG图片文件、104个Java源文件、78个XML配置文件、10个Gradle构建文件、7个Git忽略文件、7个Proto协议文件、6个...
SQLite是Android内置的轻量级数据库,适合小规模的数据存储。 3. 活动(Activity):在Android中,活动是用户界面的主要组成部分,负责处理用户交互。记事本应用可能包含多个活动,如主活动展示笔记列表,编辑活动则...
Beginning Progressive Web App Development Creating a Native App Experience on the Web 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除
【Native App与Web App移动应用发展】 随着移动互联网时代的快速发展,移动应用已成为人们日常生活中不可或缺的一部分。当前,主流的移动应用类型主要有两种:Native App(原生应用)和Web App(网页应用)。这两种...
这是基于STM32F103ZET6设计的遥控小车手机APP源码,采用QT框架设计,跨平台设计,支持windows、Android、IOS、Linux平台编译运行,代码不变,一套代码编译到任何平台。通过ESP8266与手机APP相连接,手机APP可以控制...