以往删除一个apk很简单,进入build/target/product/generic_no_telephony.mk中,删除如Email等,但删除SoundRecorder在这个目录里找了半天,都没有找到,然后只好用很笨的方法,在这个工程的源码中grep一下。最后发现找到两处:1.Mms 2.Browser,居然是在编译浏览器的时候去编译录音机。
在浏览器的Android.mk中发现代码:
LOCAL_REQUIRED_MODULES :=SoundRecorder
把代码注释掉,一编译,果然可以了,浏览器功能也没报什么错误,深入的话就交给测试了。
现在还剩下一个问题,怎么做版本控制呢?有些版本不要,有些版本需要,于是参考了一下源码。
在.mk文件里面进行if..else...判断:
ifeq ($(TARGET_PRODUCT), A)
LOCAL_REQUIRED_MODULES :=SoundRecorder
ifeq ($(TARGET_PRODUCT), B)
#LOCAL_REQUIRED_MODULES :=SoundRecorder
这个TARGET_PRODUCT又是在哪里定义的呢?继续追源码。。。
发现在A/buildspec.mk里面定义了
TARGET_PRODUCT:=A
遗留问题:1.源码编译的文件顺序使怎么样的
2.这个SoundRecorder在Browser中功能是怎么样的
3.既然在Browser中删除是不影响实现的,那为什么要单独加入