一、Android系统目标
Android build 系统的缺省编译目标是droid。droid目标会依赖其他目标,所有的目标共同组成了最终产品,下面是droid目标的定义:
droid :droidcore dist_files
droid core : files\
systemimage\
$(INSTALLED_BOOTIMAGE_TARGET) \
$(INSTALLED_RECOVERYIMAGE_TARGET) \
$(INSTALLED_USERDATAIMAGE_TARGET) \
$(INSTALLED_CACHEIMAGE_TARGET) \
$(INSTALLED_VENDORIMAGE_TARGET) \
$(INSTALLED_FILES_FILE)
files: prebuild \
$(modules_to_install) \
$(INSTALLED_ANDROID_INFO_TXT_TARGET)
prebuilt: $(ALL_PREBUILT)
除了droid目标及其相关目标,build系统还有其他可以读了使用的目标。
make clean 清楚所有的编译结果
make snod 重新打包
make help 帮助
make sdk 生成sdk
make libandroid_runtime编译出所有framework的jni库
make framework 编译出所有的framework 的jar包
make services 编译出系统服务相关的模块
二、Android产品配置文件
主要是device.mk,它是产品配置经常需要修改的一个文件。产品定义中需要包含进的模块、文件、以及各种环境变量的定义一般都放在这个文件里。
主要有:
#将kernel镜像复制到目标系统里
ifeq($(TARGET_PREBUILT_KERNEL),)
.....
....
endif
PRODUCT_COPY_FILES :=\
$(LOCAL_KERNEL):kernel
#将linux系统初始化文件和分区表等复制到目标系统里
PRODUCT_COPY_FILES +=\
.....
.....
#定义系统支持的分辨率
PRODUCT_APPT_CONFIG :=normal hdpi xhdpi xxhdpi
PRODUCT_APPT_PREF_CONFIG :=xxhdpi
#指定系统的overlay目录
DEVICE_PACKAGE_OVERLAYS :=\
device/../overlay
#添加模块进系统
PRODUCT_PACKAGES +=\
libutils\
loblogs
#设置系统属性
PRODUCT_PROPRETY_OVERRIDES +=\
ro.sf.lcd_density=480
persist.hwc.mdpcomp.enble=true
#包含更多的配置文件
$(call inherit-product-if-exits,hardware/qcome/msm.mk)