前不久发现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

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

更多相关文章

  1. GDAL for Android(安卓)从编译到读写shp
  2. QML on Android(安卓)在小米5s手机上中文字体显示异常
  3. android studio 的自动添加依赖过程简介(适用于android studio 任
  4. Android(安卓)NDK开发
  5. Android(安卓)Studio apk打包,keystore.jks文件生成,根据keystore
  6. [Android]反编译查看、修改源码、逆向分析以及二次打包签名
  7. Android处理服务器Openssl生成的RSA加解密
  8. Android(安卓)Studio打包全攻略
  9. 为你的移动应用添加广告

随机推荐

  1. 三、数据库入门和listview的基本使用
  2. 自定义Spinner下拉列表
  3. 布局中@null的代码实现方式
  4. [译] Android(安卓)开发最佳实践
  5. Android---把数据保存到数据库中(一)
  6. 【6.21】PreferenceActivity来设置settin
  7. android 热更新之腾讯Bugly 及所遇问题的
  8. Android非常简单的TextView展开和收起,在
  9. Android---线程间通讯
  10. [置顶] 【Android】 给我一个Path,还你一