现在的位置: 首页 > 综合 > 正文

修改Android的编译文件使其支持wml

2014年01月12日 ⁄ 综合 ⁄ 共 1284字 ⁄ 字号 评论关闭

    前不久发现android默认没有放开对wml的支持,这样就导致某些网站无法访问,从网上搜索到的文档都说只要ENABLE_WML=1就可以支持,但是我把ENABLE_WML设置成1之后,就出现了编译通不过的情况,经过一番调试,最终可以编译并且实现了对wml的支持。

    下面主要纪录一下如何编译通过,编译不通过一开始都是说找不到WMLNames.h之类的错误,所以我们需要在脚本里面添加上生成该文件的语句,并且把wml里面的头文件都include进来。

     首先在external/webkit下的Android.mk 中添加

      LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES) /
                    $(LOCAL_PATH)/WebCore/wml

 

     然后在Android.derived.mk中添加wml的user agent style sheets

     style_sheets := $(style_sheets) $(LOCAL_PATH)/css/wml.css

 

     参考XMLNames.cpp的生成方式,生成wml对应的WMLNames.cpp .h等

ifeq ($(ENABLE_WML), true)
GEN:= $(intermediates)/WMLNames.cpp $(intermediates)/WMLNames.h $(intermediates)/WMLElementFactory.cpp $(intermediates)/WMLElementFactory.h
$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
$(GEN): PRIVATE_CUSTOM_TOOL = perl -I $(PRIVATE_PATH)/bindings/scripts $< --tags $(wml_tag) --attrs $(wml_attrs) --factory --wrapperFactory --output $(dir $@)
$(GEN): wml_tag := $(LOCAL_PATH)/wml/WMLTagNames.in
$(GEN): wml_attrs := $(LOCAL_PATH)/wml/WMLAttributeNames.in
$(GEN): $(LOCAL_PATH)/dom/make_names.pl $(wml_tag) $(wml_attrs)
 $(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN)
endif

 

    这样在out目录下就会生成WMLNames.cpp等文件

 

    当然同样需要把webkit/webcore/wml下的文件都添加的Android.mk中来编译。

   

    要让android支持wml,还需要进行一些代码方面的修改,具体可以参考 http://www.bangchui.org/simple/?t11016.html

 

    写完了,发现编译通不过的时候很着急,现在看看其实改动没有很大,呵呵

抱歉!评论已关闭.