浏览器开发基础培训汇总

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} a:link, span.MsoHyperlink {color:blue; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {color:#606420; text-decoration:underline; text-underline:single;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 1.0cm 72.0pt 1.0cm; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:113524818; mso-list-type:hybrid; mso-list-template-ids:1103013852 252865926 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-number-format:japanese-counting; mso-level-text:%1.; mso-level-tab-stop:21.0pt; mso-level-number-position:left; margin-left:21.0pt; text-indent:-21.0pt;} @list l1 {mso-list-id:384916866; mso-list-type:hybrid; mso-list-template-ids:978978430 1547051404 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l1:level1 {mso-level-text:(%1); mso-level-tab-stop:57.0pt; mso-level-number-position:left; margin-left:57.0pt; text-indent:-36.0pt;} @list l2 {mso-list-id:399325490; mso-list-type:hybrid; mso-list-template-ids:-1226132084 -339988088 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l2:level1 {mso-level-tab-stop:39.0pt; mso-level-number-position:left; margin-left:39.0pt; text-indent:-18.0pt;} @list l3 {mso-list-id:528835976; mso-list-type:hybrid; mso-list-template-ids:548974390 -1086677382 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l3:level1 {mso-level-text:(%1); mso-level-tab-stop:57.0pt; mso-level-number-position:left; margin-left:57.0pt; text-indent:-36.0pt;} @list l4 {mso-list-id:990208726; mso-list-type:hybrid; mso-list-template-ids:-1800745974 712557566 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l4:level1 {mso-level-tab-stop:39.0pt; mso-level-number-position:left; margin-left:39.0pt; text-indent:-18.0pt;} @list l5 {mso-list-id:1026713466; mso-list-type:hybrid; mso-list-template-ids:1006416372 2066771668 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l5:level1 {mso-level-text:(%1); mso-level-tab-stop:57.0pt; mso-level-number-position:left; margin-left:57.0pt; text-indent:-36.0pt;} @list l6 {mso-list-id:1092819925; mso-list-type:hybrid; mso-list-template-ids:-636311644 1668602302 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l6:level1 {mso-level-tab-stop:39.0pt; mso-level-number-position:left; margin-left:39.0pt; text-indent:-18.0pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->

浏览器开发基础培训汇总

一. 背景知识

1.       必看规范

(1)       HTML 4.01: http://www.w3.org/TR/REC-html40/

重点: A) DTD, B) 理解 Element Tag Node

(2)       XML: http://www.w3.org/TR/2006/REC-xml-names11-20060816/

(3)       CSS2: http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/

重点: A)Element type: Block and Inline.

      B)CSS Box Model

(4)       DOM2/3:http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/

重点: A)Node tree

      B)API

(5)       HTTP 1.1: http://www.w3.org/Protocols/rfc2616/rfc2616.html

重点: A)Headers

      B)Cache control

(6)       URL: http://www.ietf.org/rfc/rfc1738.txt

重点:理解 URL 组成部分

2.       选看规范

(1)       URI: http://www.ietf.org/rfc/rfc3986.txt

(2)       Javascript   http://www.ecma-international.org/publications/standards/ecma-262.htm

(3)       Cookie(Http State management): http://www.ietf.org/rfc/rfc2965.txt

重点:了解 Session 如何维护控制 Session

3.       开发资源

(1)       Gecko: https://developer.mozilla.org/en/Gecko Reflow High level

(2)       Gecko Document View https://developer.mozilla.org/en/Gecko_Documentation_Overview High Level designs

(3)       Gecko presentations:https://developer.mozilla.org/en/Gecko_Presentations : Some slides about introduction overview and internals

(4)       Webkit High Level Overview: http://trac.webkit.org/wiki/HighLevelOverview

(5)       WebCore Rendering: http://trac.webkit.org/wiki/WebCoreRendering

(6)       WebCore Add Render Object: http://trac.webkit.org/wiki/LayoutAndRendering

(7)       Mozilla moduls: http://www.mozilla.org/about/owners.html

二. 窗口区域划分: Chrome Content

1.Content 是窗口中用来显示 HTML 内容的区域。 Chrome Content 之外的元素所占的区域集合:标题栏、工具栏、滚动条等占有的区域均属于 Chrome

三. 模块划分

浏览器因为涉及规范和技术比较多,按照功能划分为: ML Parser Javascript Layout Style System,  Network, Cache service, Session service, Plugin & Addon, Bindings, DOM, Shell, Widget(Render Object), Graphics, I18N(intl)

四. 模块关系

ML parser 解析 HTML 文件,生成 Node tree Style system 解析 CSS 内容 ;Bindings 负责 Javascript Node Tree 的交互; Shell 与用户交互,并且更新 Chrome Graphics 绘制 page content 区域;、 I18N 国际化支持

 

 

 

 

五. 内容层次

WebCore 中处理文档内容过程中,使用的三种结构。 HTML 文档结构化为 Page Tree 。每个 Page 建立模型后为 Frame Tree Frame Tree 显示到屏幕上为 FrameView Tree

 

Html Sample 1:

<html>

<frameset>

<frame id=A   />

<frame id =B  />

<frame id=C   />

</frameset>

</html>

Html sample 2

<html>

<body>

……..

<iframe id=A  />

<iframe id=B  />

<iframe id=C  />

</body>

</html>

 

 

六. WebCore 接口

1.       网络及 UI 接口: FrameLoadercClient

2.       DOM tree 接口: InspectorClient

3.       上下文菜单接口: ContextMenuClient

4.       图形界面接口: ChromeClient

5.       Java LoadListener Native WebCoreResource Webkit 的网络接口

七. WebKit 渲染

请看《 WebCore_Rendering.doc

八. 插件及扩展(略)

九. 附加资源

1.       URL load, 引用 firefox 图例 :

  https://developer.mozilla.org/en/Document_Loading_-_From_Load_Start_to_Finding_a_Handler#nsDocumentOpenInfo

 

Line Callout 3: 相当于WebFrame::loadResource

2.       Request process, 引用 Firefox 例图:

Line Callout 3: 类似Webkit FrameLoader https://developer.mozilla.org/en/The_life_of_an_HTML_HTTP_request

Line Callout 3: 类似Webkit WebFrame

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Studio是一款集成开发环境,主要用于开发Android应用程序。它提供了丰富的工具和功能,包括浏览器开发。通过使用Android Studio,开发人员可以轻松地创建和调试Web应用程序,以及使用各种浏览器API和框架来增强应用程序的功能。同时,Android Studio还提供了强大的调试和测试工具,以确保应用程序的质量和稳定性。 ### 回答2: Android Studio浏览器开发是一个很有趣和实用的项目。无论是计算机科学领域的专业人士,还是浏览器开发爱好者和初学者,都可以通过Android Studio学习浏览器开发及其原理。 首先,考虑到Android Studio的应用范围和更高级的开发环境,我们可以使用Android Studio中的WebView组件来进行浏览器开发。WebView是一个内置到Android应用程序中的完全可定制的浏览器组件。在WebView中开发浏览器,您可以掌控Webview的展现形式、处理网页的方式以及在特定条件下的互动方式。 其次,开发 WebView 组件还涉及到以下几个关键技术: - WebView性能和兼容性:开发者应该确保WebView在性能和兼容性上有一定的优化和适配,比如如何加载多媒体(包括麦克风、摄像头等设备)内容,如何支持新的HTML和CSS规范,以及如何在低端设备上进行兼容性测试和优化。 - WebView与JS交互:另外,在实际开发过程中,WebView涉及到与JavaScript的交互,这需要开发者们掌握一定量的JavaScript知识,能够熟练掌握不同的JavaScript库和框架,并理解JS调用Android原生方法的方式。 此外,对于初学者来说,可以基于Ionic和Cordova等应用框架和插件,快速开发出基于WebView的浏览器应用。这种开发方式无需开发者从零开始构建浏览器组件,而是专注于构建应用自身的用户界面和功能,大大降低了开发的难度和风险。 综上所述,基于Android Studio进行浏览器开发,是一项有趣、实用且富有挑战性的工作,无论是对于专业人士还是对于初学者,都值得一试。 ### 回答3: Android Studio是一款用于Android开发的集成开发环境,其针对浏览器开发也有很好的支持和适配。 首先,在Android Studio中,我们可以使用自带的Webview组件来实现浏览器的功能。Webview是一个能够渲染Web内容的组件,其提供了与浏览器相同的交互体验,同时可以与Android系统的其他组件进行集成,如数据库、服务等。 其次,除了使用Webview,我们还可以使用第三方的浏览器引擎进行开发。比如,我们可以使用Chrome Custom Tabs来快速打开网页,并提供与Chrome浏览器相似的体验。另外,如果需要更加自由度的定制浏览器,我们可以使用开源的浏览器引擎,如GeckoView和WebKit等。 除此之外,Android Studio还提供了许多有用的工具和插件,如Gradle插件、布局编辑器等,这些工具和插件可以提高我们开发效率、改善开发体验,让我们更加方便地进行浏览器开发。 综合来看,Android Studio对于浏览器开发是非常友好和支持的,我们可以根据具体需求选择Webview或第三方浏览器引擎进行开发,并利用Android Studio提供的工具和插件来提高效率和改善体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值