android中的webkit分为java层, 和native C++层, 它们直接的相互调用通过jni完成.

frameworks层的源码总结

代码位于frameworks/base/core/java/android/webkit目录下, 一共84个文件, 接触过的主要文件的简单说明如下:

WebView.java 为App的Activity提供browser的整体封装, 作为一个View可以set到app层的Activity, 实现在Activity中display html 文档的能力.

WebViewCore.java load libwebcore.so和libchromium_net.so, 对WebCore库进行java层封装,将UI线程的操作发送给native WebCore处理, 并通过CallbackProxy发送message给UI thread.

WebViewDatabase.java 为cookie, cache,username, password提供sqlite的数据库支持

BrowserFrame.java 是native webcore/page/Frame.cpp的java层封装, 目的是Create a new native frame for a given WebView, 提供loadUrl()接口, 并为native Frame对象提供Java层的回调方法, 例如native callback loadStarted().

FrameLoader.java 提供executeLoad()接口用于载入网页数据, http headers的创建是在这里完成的.

LoadListener.java 实现http包的EventHandler接口, 接受http线程发送过来的网络数据, 传递给native webkit做处理.

CacheManager.java @Deprecated, 在之前的版本中是负责处理Http header中的cache header, 决定是否保存content, 以及有效期.

CallbackProxy.java this class extends Handler, 提供callback functions that are called from the native WebCore thread, and then send messages to the UI thread. 所有callback 方法的实现都是send message to UI thread, 例如onPageStarted().

CertTool.java 对证书进行管理

ClientCertRequestHandler.java 用于处理客户端的证书请求

ConsoleMessage.java 对应javascript的console.log(‘’)功能

CookieManager.java 对应webkit/android/jni/CookieManager.cpp, 对cookie进行管理

CookieSyncManager.java For best performance, cookie保存在RAM中, there is a timer to sync it between RAM and Flash every 5 minutes.

DebugFlags.java 为java层各components定义是否开否打开调试信息

DeviceMotionAndOrientationManager.java 实现DeviceMotion和DeviceOrientation

DeviceMotionService.java 实现SensorEventListener接口,处理动作

DeviceOrientationService.java 实现SensorEventListener接口,处理方向变化

DownloadListener.java It is an interface, 提供onDownloadStart()接口.

GeolocationPermissions.java 管理位置信息的权限

GeolocationService.java Implements LocationListener, 实现onLocationChanged, 当位置信息发现变化时, 设置新的位置到native webcore.

HTML5Audio.java HTML5 <audio>标签支持类

HTML5VideoView.java 通过平台提供的MediaPlayer, 提供HTML5 <video>标签支持

HTML5VideoFullScreen.java HTML5 <video> 全屏支持类

HTML5VideoInline.java HTML5 <video> inline支持类

HTML5VideoViewProxy.java HTML5 video 代理类, provide methods, called by native webkit, send message to UI thread, eg. play().

HttpAuthHandler.java 处理http认证请求

JniUtil.java 给native webkit提供的utility类, 实现读取cache目录等功能.

ViewManager.java 插件视图的管理

WebBackForwardList.java contains the back/forward list for a WebView

WebBackForwardListClient.java it is abstract class, 实现它的类会接受到notification当有新的item添加到WebBackForwardList

WebChromeClient.java 当网页加载进度变化, 接受到图标, title时得到通知.

WebViewClient.java page开始加载, 结束, 和加载资源文件时被通知

WebHistoryItem.java 该对象代表一条历史记录

WebIconDatabase.java icon database的管理

WebResourceResponse.java contains the response information for a particular resource

WebSettings.java WebView的setting设置

WebStorage.java 操作webstorage databases.

WebSyncManager.java 管理RAM数据和FLASH数据的同步操作

WebTextView.java html文档的输入控件被激活时,显示系统原生编辑组件, 是一个特殊版本的EditText

WebViewWorker.java 实现html5 webworkers, executes in a separate thread other than UI thread and WebViewCore thread

ZoomControlBase.java interface, 提供缩放控件的显示和隐藏接口

ZoomControlEmbedded.java 实现ZoomControlBase interface, 实现缩放控件的显示和隐藏.

ZoomManager.java 实现缩放控件的zoomIn, zoomOut等功能

更多相关文章

  1. Android 绑定数据到界面控件
  2. Android控件显示和隐藏
  3. iphone开发之常用控件的使用详解
  4. Android初级-Android 日志输出和Debug跟踪,常用控件(中),资源
  5. Android之进度条控件和常用资源分类总结
  6. Android评分控件RatingBar使用实例解析
  7. [置顶] Android常用适配器控件
  8. Android仿印象笔记的自定义菜单控件
  9. Android控件_ProgressBar使用

随机推荐

  1. 【Android单元测试系列】真正的异步单元
  2. android 设置apk文件默认安装sdcard中
  3. MPAndroidChart~BubbleChart(气泡图) and
  4. Android(安卓)控制闪光灯
  5. Android SDK1.0 Permission 大全访问权限
  6. android使用notifyDataSetChanged()方法,a
  7. Android之生成桌面快捷方式(二)
  8. Android:Android Support Design之TabLay
  9. Android键盘映射
  10. Android 封装自己的工具Jar