`
mmdev
  • 浏览: 12890143 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

【幻灯片分享】Android在多屏幕、多设备上的适配 | 布丁 任斐 | Android DevCamp

 
阅读更多

安卓热点话题总结性剖析:《Android在多屏幕、多设备上的适配》 | Android DevCamp

话题简介:对于安卓多屏幕和多设备适配问题,早在2010年的Google IO大会,就有专门探讨过。这些年来,对于这个普遍存在的问题,Android官方文档并没有给出明确的答案,而各类草根评论,对于这个问题的阐述以及给出的解决方案,也都是众说纷纭,仁者见仁,智者见智。本演讲将从应用开发的角度,讨论在Android应用程序开发中,面对众多 Android 设备可能遇到的适配问题及解决方案,对众多的思想进行归纳总结,对一些案例进行剖析,并探讨在寻找最优解决方案过程中,应该注意和规避的一些问题。

演讲嘉宾:任斐,布丁移动资深安卓开发工程师,主要负责布丁优惠券、布丁电影票等多款产品 Android 前端的开发工作。


推荐指数:4星半

推荐理由:非常全面的总结,从问题的阐述到解决方案的剖析都很有料,全英文的幻灯片内容相当翔实,值得收藏和反复学习。

不足之处:现场受时间影响,讲师的语速有些快,很多与会者未能很好的消化。

现场评分:3.9


【讲师现场靓照】



【幻灯片在线观看】*:

<iframe src="http://www.slideshare.net/slideshow/embed_code/13839882" width="597" height="486" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen=""> </iframe>


备注:* 因为炫姐姐对SlideShare这一平台的偏爱,尽管需要使点小技巧才能上传分享,但是炫姐姐还是坚持选择了这一功能强大却简洁好用的平台。一来对国外这些开发出优秀的工具和平台、造福于互联网和人类的团队表示致敬,二来则是对国内对于这些优秀的工具和平台的限制表示一下立场。读者如果不能正常浏览,那么需要像炫姐姐一样用点小技巧。而对于那些还是不知道炫姐姐在说什么的小白读者,可以移步到这里查询原因。


【幻灯片下载页面】: Android DevCamp幻灯片下载:Android在多屏幕、多设备上的适配 | 布丁 任斐-来自CSDN下载频道(不需要积分,自由下载)


【幻灯片内容刚要】:
  • 1. Android DevCampProduced by CSDN
  • 2. Supporting Multiple Screens in Android Android多屏幕适配
  • 3. Preface}  Author: }  Ren Fei. Android developer }  Buding Mobile / Innovation Works}  Announcement: }  本slide内容全部来自互联网,以及我自己的⼀一点臆想,如 有错误,欢迎随便指出。
  • 4. Origin of the problem 问题的由来
  • 5. Fragmentation}  上千种android设备。 }  不同的平台版本。 }  不同的屏幕尺寸、分辨率。 }  不同的输入方式。
  • 6. Platform version}  From v1.5 to v4.1.}  8 main version. 14 sub version.
  • 7. Screen sizes}  2.6" HTC G16}  3.2" 3.7" HTC G5/G7}  4.0" 4.3" Samsung i9000/9100}  7.0" 7.7" 8.9" Samsung Galaxy Tab}  10.1" Moto Xoom}  …..
  • 8. Screen Resolution iPhone}  iPhone }  320*480 }  640*960}  iPad }  1024*768 }  2048*1536
  • 9. Screen Resolution Android}  QVGA 240*320}  WQVGA 240*400}  HVGA 320*480}  WVGA 480*800}  FWVGA 480*854}  SVGA 600*800}  DVGA 960*640}  WSVGA 1024*600}  WXGA 1280*768}  qHD 540*960}  HD 1280*720}  ……
  • 10. Screen RES. iPhone vs. Android
  • 11. Android System Support Android系统支持
  • 12. What does android do ?
  • 13. Some definition}  Screen resolution }  480*800}  Screen size }  3.7"}  Screen density }  252dpi}  DPI(dots per inch), xdpi, ydpi }  DPI= RES. / SIZE}  DIP (Density-independent pixel) }  px = dp * (dpi / 160)
  • 14. Generalized SIZE/DPI}  G.DPI: hdpi/mdpi/ldpi/xhdpi}  G.SIZE: small/normal/large/xlarge
  • 15. Generalized DPI definition G.DPI DPI 1 DP = ? px ldpi (Low density) 120 dpi 0.75 mdpi (Medium density) 160 dpi 1 hdpi (High density) 240 dpi 1.5xhdpi(Extra-high density) 320 dpi 2
  • 16. Generalized SIZE definition G.SIZE Qualifier(at least) xlarge 960dp x 720dp large 640dp x 480dp normal 470dp x 320dp small 426dp x 320dp}  Android does not currently support screens smaller than small screens.
  • 17. Relationships}  RES. + SIZE à DPI }  DPI = RES. / SIZE}  DPI à G.DPI }  ?}  SIZE à G.SIZE }  ?
  • 18. Some model device SIZE G.SIZE DPI G.DPI RES. px RES. dp HTC wildfire 2.8 in small 140dpi ldpi 240*320 320*428dp HTC hero 3.2 in normal 180dpi mdpi 320*480 320*480dp HTC desire 3.7 in normal 252dpi hdpi 480*800 320*533dp Dell Streak 5.0 in large 186dp mdpi 480*800 480*800dpHTC sensation 4.3 in normal 256dpi hdpi 540*960 360*640dp Galaxy note 5.3 in normal 280dpi xhdpi 800*1280 400*640dp HTC Flyer 7.0 in large 170dpi mdpi 600*1024 600*1024dp Galaxy tab 7.0 in normal 170dpi hdpi 600*1024 400*682dp Xoom 10.1 in xlarge 150dpi mdpi 800*1280 800*1280dp
  • 19. DPI à G.DPI}  G.DPI 大部分等于真实DPI最临近的G.DPI。 }  如果DPI正好在两个G.DPI正中间怎么办?}  G.DPI可能和DPI相差很多。 }  Samsung galaxy tab}  G.DPI是由手机厂商定义的。 }  选择标准是使新的设备能最好的适用于现有app。
  • 20. SIZE à G.SIZE}  SIZE 和 G.SIZE 并没有很明显的关系。}  G.SIZE是由RES.(dp) 定义的。 }  参考G.SIZE的下界限定。}  RES.(px) + G.DPI à RES.(dp) à G.SIZE
  • 21. Relationships}  RES. + SIZE à DPI}  DPI à G.DPI (mostly)}  G.DPI + RES. à G.SIZE
  • 22. Effect of G.DPI}  Developers do not need to care about real density.}  RES.(px). are aggregated to RES.(dp). }  RES.(dp) has a much smaller range. device G.SIZE G.DPI RES. px RES. dp HTC wildfire small ldpi 240*320 320*428dp HTC hero normal mdpi 320*480 320*480dp HTC desire normal hdpi 480*800 320*533dp HTC sensation normal hdpi 540*960 360*640dp Galaxy note normal xhdpi 800*1280 400*640dp Galaxy tab normal hdpi 600*1024 400*682dp
  • 23. Density independence}  根据G.DPI,系统将dp units和drawables换算调整为适 配设备的大小(px).}  A Button (100*100dp) and a icon (48px*48px in mdpi)}  Go back to see first demo.
  • 24. Support general handset 如何支持普通手机?
  • 25. Handset features}  Small and Normal devices take over 90%.}  These devices are nearly all handsets.
  • 26. Handset qualifier}  G.SIZE: small/normal}  Default Orientation: portrait}  RES.(dp): 426dp x 320dp - 640dp x 480dp.
  • 27. How to support?}  Develop a scalable app. }  Use wrap_content, fill_parent. }  Use dp not px. }  Use LinearLayout/RelativeLayout, not AbsoluteLayout. }  Provide different drawables for different dpi. }  Use more 9-patch drawable. }  …
  • 28. A simple demo 720*1280px xhdpi 540*960px hdpi 480*800px hdpi320*480px mdpi
  • 29. Support more devices (handset & tablet) 如何支持更多的设备?
  • 30. The first guideline}  Develop one app for all devices. }  Tablets和Handsets没有明显的界限。 }  为不同的设备、分辨率开发不同的app耗费巨大且效果不佳。}  Anti-example:
  • 31. Official Guidelines}  Build your activity designs based on fragments}  Use the action bar}  Implement flexible layouts
  • 32. Implement flexible layouts}  How to implement flexible layouts in one app? }  Official answer: Think like a web designer.
  • 33. Responsive web design}  Build something that works on any possible width or device instead of something that works on all current widths and devices. }  与其为当前所有设备、大小做支持,不如去支持所有可能 出现的情况。}  Use css3 media queries.}  Usually combine with fluid web design.
  • 34. Media queries}  Sample: }  <link media="screen and (max-device-width: 800px)" href=“common.css" />}  Media queries contain two components: }  A media type. (screen, print) }  A media feature(max-device-width) and query value(800px).}  Use media queries to filter css depend on device info.
  • 35. Website demo}  http://www.alistapart.com/d/responsive-web-design/ex/ex- site-FINAL.html}  3 media queries divide width to 4 part.}  @media (max-width: 400px)}  @media (max-width: 600px)}  @media (min-width: 1300px)}  Web Gallery
  • 36. Responsive mobile design}  Same content, same logical, but different representation. }  同样的内容,同样的逻辑,不同的展示方式。}  Use configuration qualifiers to provide different layout for different devices.
  • 37. Configuration qualifiers}  Screen Size: }  small/normal/large/xlarge}  Density: }  ldpi/mdpi/hdpi/xhdpi…}  Orientation: }  port/land}  Platform version: }  v3/v4/v11/v13…}  Language: }  en/fr…
  • 38. New screen size qualifiers}  Smallest Width }  sw600dp}  Available Width }  w600dp}  Available height }  h600dp
  • 39. Web design vs Android design}  CSS vs Layout}  CSS pixel vs Dip}  Ems vs Sp}  CSS3 media query vs Configuration qualifiers}  Fluid web design vs Scalable design}  Responsive web design vs Responsive mobile design
  • 40. App demos}  IOSched2011}  IOSched2012}  Google Play
  • 41. IOSched2011}  3 fragments}  4 layouts
  • 42. IOSched2011}  layout/ layout-land/
  • 43. IOSched2011}  layout-xlarge-land-v11/ layout-xlarge-v11
  • 44. IOSched2012}  4 fragments}  4 layouts
  • 45. IOSched2012
  • 46. IOSched2012}  layout/}  layout-land/
  • 47. IOSched2012}  layout-large-v11/ layout-large-land-v11/
  • 48. Google Play}  Version: 3.4.4}  4 layouts}  generic_details.xml
  • 49. Google Play}  layout/ layout-land/
  • 50. Google Play}  layout-w600dp-h540dp/ layout-w800dp-h540dp/
  • 51. UI Design Patterns UI设计模式
  • 52. Android UI design patterns}  Design pattern }  对于⼀一些普遍出现的问题的通用解决方法。}  成熟的UI patterns能在不同的设备环境下自我调节。}  Here we introduce some useful patterns. }  Action Bar }  Workspace }  Dashboard }  Slide navigation
  • 53. Action Bar}  Replace the old TitleBar.}  Many functions: }  Menu }  Search }  Navigation }  Tab }  Spinner }  Up }  Action Mode }  Split Action Bar
  • 54. Action Bar}  Navigation(Tab)
  • 55. Action Bar}  Navigation(Spinner)/Split Action Bar/Action Mode
  • 56. Action Bar
  • 57. Workspace}  A scrollable TabView.}  Could combine with ActionBar.
  • 58. Workspace
  • 59. Dashboard}  Acted as the landing page and holds all main functions.
  • 60. Dashboard
  • 61. Slide navigation}  Could replace the Dashboard.}  Make the navigation easier.}  Appearance is better in tablets.
  • 62. Slide navigation
  • 63. Conclusion}  Android系统实现的Density Independence 在多屏幕适 配中担当了很重要的角色。}  在⼀一个app中实现灵活、动态的布局。 }  think like a web designer}  遵从系统的guideline,尽可能多的使用成熟的UI patterns.
  • 64. The EndThanks for watching
  • 65. Contact 欢迎各种交流与切磋 @Renfei Email:renfei@buding.cn 期待你的加入,与布丁⼀一起创造、成长! Welcome to Buding Mobile(布丁移动) Contact:hr@buding.cn
  • 66. Reference}  http://android-developers.blogspot.com/}  https://developer.android.com/}  http://www.pushing-pixels.org/}  http://www.androiduipatterns.com/}  http://androidniceties.tumblr.com/}  http://en.wikipedia.org/}  http://www.alistapart.com/articles/responsive-web-design/}  http://opensignalmaps.com/reports/fragmentation.php
  • 67. Q&A}  Email: renfei@buding.cn
  • 68. Other
  • 69. Most of small/normal devices are handsets}  ∵ RES.(px) = DPI * SIZE}  RES.(px) = RES.(dp) * G.DPI / 160}  ASSUME G.DPI ≈ DPI}  ∴ RES.(dp) ≈ SIZE * 160}  ∵ normal 的上界是640dp x 480dp}  即⼀一个SIZE ≈ 5" (4" * 3")的设备}  ∴ normal设备的SIZE大部分小于5 in}  ∴ normal设备大部分为手机设备}  Finish
  • 70. Web demo gallery
  • 71. Web demo gallery
  • 72. Web demo gallery
  • 73. Web demo gallery
  • 74. Web demo gallery
  • 75. Web demo gallery

分享到:
评论

相关推荐

    Android DevCamp幻灯片分享:Android在多屏幕、多设备上的适配 | 布丁 任斐

    安卓热点话题总结性剖析:《Android在多屏幕、多设备上的适配》 | Android DevCamp 话题简介:对于安卓多屏幕和多设备适配问题,早在2010年的Google IO大会,就有专门探讨过。这些年来,对于这个普遍存在的问题,...

    任斐:Android在多屏幕、多设备上的适配

    本演讲将从应用开发的角度,讨论在Android应用程序开发中,面对众多 Android 设备可能遇到的适配问题及解决方案,对众多的思想进行归纳总结,对一些案例进行剖析,并探讨在寻找最优解决方案过程中,应该注意和规避的...

    60道关于Redis的常见面试题.pdf

    - 1. 什么是 Redis?它的主要特点是什么? - 2. Redis 支持哪些数据结构?请详细描述每种数据结构的用途和特点。 - 3. 什么是缓存穿透?在使用 Redis 时,如何防止缓存穿透? - 4. 介绍 Redis 的持久化机制以及对比它们之间的区别。 - 5. 如何实现 Redis 的分布式锁?你了解的分布式锁有哪些实现方式? - 6. Redis 的数据淘汰策略有哪些?分别是如何工作的? - 7. 什么是 Redis 事务?它是如何实现的?与传统数据库事务有何不同? - 8. 如何设置 Redis 的主从复制?主从复制有什么优势和限制? - 9. Redis 支持的数据结构中,有哪些可以实现计数功能?请详细说明其使用场景。 - 10. 什么是 Redis Sentinel?它的作用是什么?如何配置和使用 Sentinel?

    2024年社交媒体广告行业分析报告.pptx

    2024年社交媒体广告行业分析报告.pptx

    网站界面设计mortal0418代码

    网站界面设计mortal0418代码

    2024年休闲椅行业分析报告.pptx

    2024年休闲椅行业分析报告.pptx

    anaconda3 -windows安装的

    anaconda3 -windows安装的

    华为客户关系管理策略解析glz.pptx

    华为客户关系管理策略解析glz.pptx

    asp.net基于三层模式实验室仪器设备管理系统源码.7z

    实验室设备仪器管理系统基于MVC思想和三层设计模式构建,前台采用bootstrap响应式框架,后台运用div+css技术,确保用户界面的友好与兼容性。在Visual Studio 2010或更高版本软件上进行程序开发,利用sqlserver2005或更先进的数据库系统提供稳定的数据支持。 该系统包含四个核心模块:实验室登陆模块、学生模块、教师模块和管理员模块。登陆模块提供用户注册和登陆功能,确保用户信息的准确与安全。学生模块提供实验课仪器设备的信息查询、借领仪器耗材、设备事故的登记等服务,满足学生在实验过程中的各种需求。 管理员模块功能丰富,包括实验室设备信息查询、设备事故记录、设备资料管理、设备损坏管理以及设备耗材借领等。管理员可以方便地查询和统计设备仪器信息,上报和处理设备事故,更新设备操作指南,管理设备损坏信息,以及处理设备耗材的借领和归还。 实验设备管理数据库是系统的核心部分,管理员可以添加、删除、更改设备信息,记录报废、维修、申请购买以及新增设备的详细信息。所有相关信息如报废表、维修表、设备购买申请表、新增设备属性表等都会在终端实时显示,确保信息的及时性和准确性。 此

    java练习题2.txt

    java练习题

    国产达梦数据库DM88.1.1.45下载链接,Linux-rh7-64位版本.zip

    国产达梦数据库DM88.1.1.45下载链接,Linux-rh7-64位版本.zip

    物联网嵌入式ESP32开发例程18-FreeRTOS操作系统之任务通知模拟事件标志组C程序代码.rar

    1、嵌入式物联网ESP32项目实战开发。例程经过精心编写,简单好用。 2、代码使用Visual Studio Code + ESP-IDF开发,C语言编程。例程在ESP32-S3上运行。若在其他型号上运行,请自行调整。 3、如果接入其他传感器,请查看发布的其他资料。 4、ESP32与模块的接线,在代码当中均有定义,请自行对照。 5、若硬件差异,请根据自身情况适当调整代码,程序仅供参考。 6、代码有注释说明,请耐心阅读。 7、技术v:349014857;

    工作汇报 年终总结2.pptx

    引言 年度工作回顾 系统进展与亮点 技术创新与应用 市场反馈与用户评价 存在问题与挑战 未来展望与计划 结束语与感谢 一、引言 简要介绍智能家居系统的重要性和发展趋势 回顾本年度的工作目标和重点 二、年度工作回顾 系统建设与维护 完成的项目与里程碑 系统稳定性与可靠性提升 团队建设与培训 团队成员构成与职责 培训与技能提升活动 合作伙伴与资源整合 与供应商、合作伙伴的合作情况 资源整合与利用 三、系统进展与亮点 功能扩展与优化 新增功能介绍与效果评估 现有功能的优化与改进 用户体验提升 界面设计与交互优化 用户反馈与改进措施 四、技术创新与应用 物联网技术的应用 传感器与通信技术的升级 大数据分析与应用 智能家居的智能化管理 自动化控制与节能策略 安全防护与预警系统 五、市场反馈与用户评价 市场反馈分析 市场需求与竞争态势 市场占有率与增长趋势 用户评价总结 用户满意度调查结果

    基于ssm+vue开发的web新闻流媒体平台源码数据库文档.zip

    基于ssm+vue开发的web新闻流媒体平台源码数据库文档.zip

    哈夫曼树与哈夫曼编码介绍.zip

    哈夫曼树与哈夫曼编码

    2024年千里明贴膏行业分析报告.pptx

    行业分析报告

    java练习题9.txt

    java练习题

    stm32c8t6超声波标准库开发 stm32c8t6超声波测距.zip

    stm32c8t6超声波标准库开发 stm32c8t6超声波测距

    学生成绩管理系统 C# 毕业设计项目用C#语言写的学生成绩管理系统, 代码有参考和学习价值, 可

    学生成绩管理系统 C# 毕业设计项目用C#语言写的学生成绩管理系统, 代码有参考和学习价值, 可用于期末项目, 以及毕业设计项目 !

    excel函数公式大全

    excel函数公式大全

Global site tag (gtag.js) - Google Analytics