?
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那一套的东东了;
?
?
?