《深入理解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,人们对于提供开放源码的蜂窝技术已经做出了许多的尝试。
1166 0
|
Android开发
《Android UI基础教程》——导读
本节书摘来自异步社区《Android UI基础教程》一书中的目录,作者 【美】Jason Ostrander,更多章节内容可以访问云栖社区“异步社区”公众号查看
766 0
|
数据库 Android开发 数据库管理
《Android开发基础教程》——导读
本节书摘来自异步社区《Android开发基础教程》一书中的目录,作者邓文渊,更多章节内容可以访问云栖社区“异步社区”公众号查看
1425 0
|
Java Android开发 编译器
《Android游戏开发详解》——导读
本节书摘来自异步社区《Android游戏开发详解》一书中的目录,作者 【美】Jonathan S. Harbour,更多章节内容可以访问云栖社区“异步社区”公众号查看
1932 0
|
开发工具 Android开发 Windows
《精通Android 实例开发》——导读
本节书摘来自异步社区《精通Android 实例开发》一书中的目录,作者 陈强,更多章节内容可以访问云栖社区“异步社区”公众号查看
1641 0
|
4天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
26天前
|
Java Android开发
Android 开发获取通知栏权限时会出现两个应用图标
Android 开发获取通知栏权限时会出现两个应用图标
12 0
|
1天前
|
数据库 Android开发 开发者
安卓应用开发:构建高效用户界面的策略
【4月更文挑战第24天】 在竞争激烈的移动应用市场中,一个流畅且响应迅速的用户界面(UI)是吸引和保留用户的关键。针对安卓平台,开发者面临着多样化的设备和系统版本,这增加了构建高效UI的复杂性。本文将深入分析安卓平台上构建高效用户界面的最佳实践,包括布局优化、资源管理和绘制性能的考量,旨在为开发者提供实用的技术指南,帮助他们创建更流畅的用户体验。
|
18天前
|
XML 开发工具 Android开发
构建高效的安卓应用:使用Jetpack Compose优化UI开发
【4月更文挑战第7天】 随着Android开发不断进化,开发者面临着提高应用性能与简化UI构建流程的双重挑战。本文将探讨如何使用Jetpack Compose这一现代UI工具包来优化安卓应用的开发流程,并提升用户界面的流畅性与一致性。通过介绍Jetpack Compose的核心概念、与传统方法的区别以及实际集成步骤,我们旨在提供一种高效且可靠的解决方案,以帮助开发者构建响应迅速且用户体验优良的安卓应用。