编译了cotentshell.apk,安装之后出现的界面如下:
关于这个界面的层次结构是值得我们去分析的,这样对于以后重构这个apk很有帮助。
现在我们分析下:
通过Eclipse的DDMS界面上截图并分析的功能可以得到如此信息:
针对这个图,分析如下:
其中,最上面三层:FrameLayout、LinearLayout、FrameLayout是Android应用自己带的。每个Andriod应用系统都会带上这三层。
第4层的FrameLayout,是ShellManager.
第5层的LinearLayout,是Shell
第6层分为LinearLayout,是上面的地址栏和前进后退按钮。
FrameLayout,是xml文件中的contentview_holder
由于contentview_holder,addView方法针对contentview和contentviewrenderview分别调用了两次,所以,该FrameLayout下面有两个FrameLayout(contentview和contentviewrenderview都是FrameLayout)。
其中第一个FrameLayout后面显示Web view,这个是contentview。
第二个FrameLayout下面还有一个view控件,这个view就是contentViewRenderView中的surfaceView,是最终网页内容的最终合成与展示内容的地方