?
android源码编绎完成后,。。。。。
?
简单的说一下我主要关注的webkit部分,源码在/home/peirenlei/work/gingerbread/external/webkit/下
单独编绎webkit部分的话,只需要进入到这个目录,mm就行,不过一般不会成功,因为他会信赖其它的一些库,所以最好是把全部源码编绎一次;
?
这个是android系统的webkit源码,如果想在它的基础上做一些修改,最好是把webkit目录重新复制一份,改个名,我的命名为olivewebcore,在该目录下修改相应的代码。修改完后最主要的是编绎了,如果只是简单的在这个目录下执行mm的话,百分之百会报错,那么我们需要做的就是对该目录下的android.mk文件做一下修改,最主要的是修改三个LOCAL_MODULE,最好不要与系统内的重名,然后最重要的是在最后一个include $(BUILD_SHARED_LIBRARY)前一行加入:
?
?
LOCAL_MODULE_TAGS = optional LOCAL_PRELINK_MODULE := false?include $(BUILD_SHARED_LIBRARY)
?
这个问题我是跟踪到build/core/base_rules.mk中
?
ifneq ($(filter $(LOCAL_MODULE_TAGS),user),)
ifeq ($(filter $(GRANDFATHERED_USER_MODULES),$(LOCAL_MODULE)),)
$(warning *** Module name: $(LOCAL_MODULE))
$(warning *** Makefile location: $(LOCAL_PATH))
$(warning * )
$(warning * Each module must use a LOCAL_MODULE_TAGS in its)
$(warning * Android.mk. Possible tags declared by a module:)
$(warning * )
$(warning * optional, debug, eng, tests, samples)
$(warning * )
$(warning * If the module is expected to be in all builds)
$(warning * of a product, then it should use the)
$(warning * "optional" tag: )
$(warning * )
$(warning * Add "LOCAL_MODULE_TAGS := optional" in the)
$(warning * Android.mk for the affected module, and add)
$(warning * the LOCAL_MODULE value for that component)
$(warning * into the PRODUCT_PACKAGES section of product)
$(warning * makefile(s) where it's necessary, if)
$(warning * appropriate.)
$(warning * )
$(warning * If the component should be in EVERY build of ALL)
$(warning * products, then add its LOCAL_MODULE value to the)
$(warning * PRODUCT_PACKAGES section of)
$(warning * build/target/product/core.mk)
$(warning * )
$(error user tag detected on new module - user tags are only supported on legacy modules)
endif
endif
?LOCAL_MODULE_TAGS不要设置为user,否则。。。。。
?
好了,mm吧,很顺利的完成编绎。
?
下一篇文章我将介绍webkit的移植工作,这个主要就是jni那一套的东东了;
?
?
?