《深入理解Android》一导读

简介: 在PC互联网时代,用户开启电脑后手动打开的第一个应用程序,如果不是QQ,那往往就是浏览器。在移动互联网无比繁荣的今天,移动浏览器虽然没有像PC浏览器那样占据资讯第一入口的地位,但浏览器引擎一个华丽的转身,找到了自己新的、更广阔的发展空间—嵌入到各个超级App中,比如微信、百度搜索框等,无缝展示Web资源,由此可见,浏览器引擎依旧非常重要。


e0c02f99709de4a53f91d8536fce04dff53bac1e

前 言

为什么要写这本书
在PC互联网时代,用户开启电脑后手动打开的第一个应用程序,如果不是QQ,那往往就是浏览器。在移动互联网无比繁荣的今天,移动浏览器虽然没有像PC浏览器那样占据资讯第一入口的地位,但浏览器引擎一个华丽的转身,找到了自己新的、更广阔的发展空间—嵌入到各个超级App中,比如微信、百度搜索框等,无缝展示Web资源,由此可见,浏览器引擎依旧非常重要。
浏览器的重要性毋庸讳言,在这便捷的工具中,用户只需键入一个文本的URL或者点击一个链接,瞬间绚丽的新页面就展示在面前。浏览器具备什么样的魔法使这一切悄然发生呢?相信普通用户和众多的前端开发者都会有这个疑问。阅读开源的浏览器引擎代码(比如WebKit),可以帮我们解开这些疑惑,这正是本书的内容。
WebKit引擎内容庞大复杂,是一个完整的网页内容解析工具,集成WebKit的具体平台只需对接网络库及图形库,便可使用WebKit的强大解析功能。利用具体平台提供的图形库及显示系统便可实现网页的渲染和显示。WebKit引擎由众多的子模块组成,模块功能高度内聚,彼此协同工作处理数据流。代码考究,格式优美,内容精彩,是开源代码中的上品,极具研究和学习价值。
由于WebKit的庞大,初学者往往无从下手,对比Linux Kernel,虽然Linux Kernel的源码复杂度高于WebKit,但相关领域已经有大量的优秀书籍,加之操作系统、计算机体系结构及接口技术是计算机相关专业学生的必修课,这都使得Linux Kernel的学习曲线不再陡峭。而在浏览器引擎方面,至今学习资源仍然非常少,WebKit官网、Chromium官网、W3C官网、html5rock等网站虽然有一些原理性和框架性的描述,但不够具体,要想真正了解浏览器引擎还是要跟随笔者一起阅读代码。

目 录

第1章 搭建源代码编译环境
1.1 Android全源码开发环境
1.2 Android常用工具使用及相关技巧说明
1.3 WebKit源代码目录结构
1.4 WebKit代码调试
1.5 本章小结
第2章 浏览器工作原理及WebKit概览
2.1 浏览器工作原理概述
2.2 浏览器和WebKit简史
2.3 WebKit架构概览
2.4 本章小结
第3章 WTF的实现及使用
3.1 WTF库概述
3.2 智能指针
3.3 Assert与crash dump
3.4 内存管理与容器
3.5 原子操作
3.6 WebKit运行时线程结构
3.7 本章小结
第4章 Loader与网络库
4.1 Loader概述
4.2 Loader的设计与实现架构
4.2.1 Loader模块的设计
4.2.2 Loader中的类结构及作用
4.3 MainResourceLoader资源加载流程
4.3.1 主资源
4.3.2 主资源加载示例
4.4 SubResourceLoader资源加载流程
4.4.1 派生资源
4.4.2 派生资源加载示例
4.5 WebKit网络库chrome-net介绍
4.5.1 chrome-net实现结构
4.5.2 chrome-net与WebKit的接口
4.6 WebKit中的 Cache
4.6.1 Memory Cache内存缓存
4.6.2 Page Cache页面缓存
4.6.3 Disk Cache磁盘缓存
4.7 本章小结

相关文章
|
Java 测试技术 开发工具
《Android应用开发攻略》——导读
对于蜂窝技术和移动计算来说,Android是“开放源码的革命”,至少是革命的一部分。从已经不存在的Openmoko FreeRunner到QT Embedded、Moblin、 LiMo、 Debian Mobile,以及Maemo和最近刚刚开放源码的Symbian OS、刚刚消失的HP WebOS,人们对于提供开放源码的蜂窝技术已经做出了许多的尝试。
1217 0
|
Android开发
《Android UI基础教程》——导读
本节书摘来自异步社区《Android UI基础教程》一书中的目录,作者 【美】Jason Ostrander,更多章节内容可以访问云栖社区“异步社区”公众号查看
797 0
|
数据库 Android开发 数据库管理
《Android开发基础教程》——导读
本节书摘来自异步社区《Android开发基础教程》一书中的目录,作者邓文渊,更多章节内容可以访问云栖社区“异步社区”公众号查看
1467 0
|
Java Android开发 编译器
《Android游戏开发详解》——导读
本节书摘来自异步社区《Android游戏开发详解》一书中的目录,作者 【美】Jonathan S. Harbour,更多章节内容可以访问云栖社区“异步社区”公众号查看
1956 0
|
开发工具 Android开发 Windows
《精通Android 实例开发》——导读
本节书摘来自异步社区《精通Android 实例开发》一书中的目录,作者 陈强,更多章节内容可以访问云栖社区“异步社区”公众号查看
1667 0
|
10天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
15天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
17天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。
|
19天前
|
XML 存储 Java
探索安卓开发之旅:从新手到专家
【10月更文挑战第35天】在数字化时代,安卓应用的开发成为了一个热门话题。本文旨在通过浅显易懂的语言,带领初学者了解安卓开发的基础知识,同时为有一定经验的开发者提供进阶技巧。我们将一起探讨如何从零开始构建第一个安卓应用,并逐步深入到性能优化和高级功能的实现。无论你是编程新手还是希望提升技能的开发者,这篇文章都将为你提供有价值的指导和灵感。