∟Web Archive File - XML File of Base64 Encoded Data

This section provides a tutorial example on how to view contents of a Web archive file, which is really an XML file with Base64 encoded data.

In previous tutorials I use able to build my own Web browser, AndroidWeb, to visit Web sites and save page contents into Web archive files. In this tutorial, I want to spend some time to explore those Web archive files.

First copy AndroidWeb "files" folder from the emulator to my Windows file system:

C:\herong>\local\android-sdk-windows\platform-tools\adb
   pull /data/data/com.herongyang.web/files .\files

pull: building file list...
pull: /data/data/com.herongyang.web/files/Activity.log
   -> .\files/Activity.log
pull: /data/data/com.herongyang.web/files/1323772666133.xml
   -> .\files/1335017266133.xml
pull: /data/data/com.herongyang.web/files/1323772679558.xml
   -> .\files/1335017279558.xml
pull: /data/data/com.herongyang.web/files/1323772686866.xml
   -> .\files/1335017286866.xml
4 files pulled. 0 files skipped.

I have 3 Web archive .xml files, because I visited 3 Web pages in the previous tutorial:

Open 1323772666133.xml in a Web browser, I see this XML file structure:

<?xml version="1.0" ?>
<Archive>
 <mainResource>
  <ArchiveResource>
   <url>aHR0cDovL3d3dy5nb29nbGUuY29tLw==</url>
   <mimeType>dGV4dC9odG1s</mimeType>
   <textEncoding>dXRmLTg=</textEncoding>
   <frameName />
   <data>PCFkb2N0eXBlIGh0bWw+PGh0bWwgbWFuaWZlc3Q9Imh0dHA6Ly...</data>
  </ArchiveResource>
 </mainResource>
 <subresources>
  <ArchiveResource>
   <url>ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T...</url>
   <mimeType>aW1hZ2UvcG5n</mimeType>
   <textEncoding>VVMtQVNDSUk=</textEncoding>
   <frameName />
   <data>iVBORw0KGgoAAAANSUhEUgAAAFQAAABUCAYAAAAcaxDBAAAABH...</data>
  </ArchiveResource>
  <ArchiveResource>
   <url>ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T...</url>
   <mimeType>aW1hZ2UvcG5n</mimeType>
   <textEncoding>VVMtQVNDSUk=</textEncoding>
   <frameName />
   <data>iVBORw0KGgoAAAANSUhEUgAAAFQAAABUCAYAAAAcaxDBAAAABH...</data>
  </ArchiveResource>
  <ArchiveResource>
   <url>ZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoR0FBZUFLSUhB...</url>
   <mimeType>aW1hZ2UvZ2lm</mimeType>
   <textEncoding>VVMtQVNDSUk=</textEncoding>
   <frameName />
   <data>R0lGODlhGAAeAKIHAOvr69DQ0N3d3b+/v8DAwP////Pz8////y...</data>
  </ArchiveResource>
  <ArchiveResource>
   <url>ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T...</url>
   <mimeType>aW1hZ2UvcG5n</mimeType>
   <textEncoding>VVMtQVNDSUk=</textEncoding>
   <frameName />
   <data>iVBORw0KGgoAAAANSUhEUgAAAFQAAABUCAYAAAAcaxDBAAAABH...</data>
  </ArchiveResource>
  <ArchiveResource>
   <url>ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T...</url>
   <mimeType>aW1hZ2UvcG5n</mimeType>
   <textEncoding>VVMtQVNDSUk=</textEncoding>
   <frameName />
   <data>iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAAX...</data>
  </ArchiveResource>
  <ArchiveResource>
   <url>ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T...</url>
   <mimeType>aW1hZ2UvcG5n</mimeType>
   <textEncoding>VVMtQVNDSUk=</textEncoding>
   <frameName />
   <data>iVBORw0KGgoAAAANSUhEUgAAAFQAAABUCAYAAAAcaxDBAAAABH...</data>
  </ArchiveResource>
  <ArchiveResource>
   <url>ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T...</url>
   <mimeType>aW1hZ2UvcG5n</mimeType>
   <textEncoding>VVMtQVNDSUk=</textEncoding>
   <frameName />
   <data>iVBORw0KGgoAAAANSUhEUgAAAFQAAABUCAYAAAAcaxDBAAAABH...</data>
  </ArchiveResource>
  <ArchiveResource>
   <url>ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T...</url>
   <mimeType>aW1hZ2UvcG5n</mimeType>
   <textEncoding>VVMtQVNDSUk=</textEncoding>
   <frameName />
   <data>iVBORw0KGgoAAAANSUhEUgAAAFQAAABUCAYAAAAcaxDBAAAABH...</data>
  </ArchiveResource>
  <ArchiveResource>
   <url>ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T...</url>
   <mimeType>aW1hZ2UvcG5n</mimeType>
   <textEncoding>VVMtQVNDSUk=</textEncoding>
   <frameName />
   <data>iVBORw0KGgoAAAANSUhEUgAAAFQAAABUCAYAAAAcaxDBAAAABH...</data>
   </ArchiveResource>
  <ArchiveResource>
   <url>ZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5T...</url>
   <mimeType>aW1hZ2UvcG5n</mimeType>
   <textEncoding>VVMtQVNDSUk=</textEncoding>
   <frameName />
   <data>iVBORw0KGgoAAAANSUhEUgAAAFQAAABUCAYAAAAcaxDBAAAABH...</data>
  </ArchiveResource>
  <ArchiveResource>
   <url>ZGF0YTppbWFnZS9wbmc7YmFzZTY0LG...</url>
   <mimeType>aW1hZ2UvcG5n</mimeType>
   <textEncoding>VVMtQVNDSUk=</textEncoding>
   <frameName />
   <data>iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADIm...</data>
  </ArchiveResource>
  <ArchiveResource>
   <url>aHR0cDovL3d3dy5nb29nbGUuY29tL2ltYWdlcy9zcnByL2xvZ28z...</url>
   <mimeType>aW1hZ2UvcG5n</mimeType>
   <textEncoding />
   <frameName />
   <data>iVBORw0KGgoAAAANSUhEUgAAARMAAABfCAMAAAD8mtMpAAAC/V...</data>
  </ArchiveResource>
 </subresources>
 <subframes>
  <Archive>
   <mainResource>
    <ArchiveResource>
     <url>YWJvdXQ6Ymxhbms=</url>
     <mimeType>dGV4dC9odG1s</mimeType>
     <textEncoding />
     <frameName>d2dqZg==</frameName>
     <data />
    </ArchiveResource>
   </mainResource>
   <subresources />
   <subframes />
  </Archive>
 </subframes>
</Archive>

This tells me that:

Table of Contents

 About This Book

 Installing JDK 1.8 on Windows System

 Installation of Android SDK R24 and Emulator

 Installing Apache Ant 1.9 on Windows System

 Developing First Android Application - HelloAndroid

 Android Application Package (APK) Files

 Android Debug Bridge (adb) Tool

 Android File Systems

 AboutAndroid - Application to Retrieve System Information

 android.app.Activity Class and Activity Lifecycle

 View Objects and Layout Resource Files

 Using "adb logcat" Command for Debugging

 Build Process and Package File Content

►Building Your Own Web Browser

 android.webkit.WebView - Web Browser Base Class

 AndroidWeb - My Own Web Browser

 WebViewClient Subclass - Content Rendering Callbacks

 saveWebArchive() Method - Saving Web Archive Files

►Web Archive File - XML File of Base64 Encoded Data

 Android Command Line Shell

 Samsung Galaxy Tab 3 Mini Tablet

 USB Debugging Applications on Samsung Tablet

 Android Tablet - LG-V905R

 USB Debugging Applications on LG-V905R Tablet

 Android Phone - LG-P925g

 USB Debugging Applications on LG-P925g Phone

 Archived Tutorials

 References

 Full Version in PDF/EPUB