1、修改 DEXPREOPT_BOOT_JARS
将jar包名通过TARGET_ADDITIONAL_BOOTCLASSPATH加入到 DEXPREOPT_BOOT_JARS。build/core/dex_preopt.mk,将jar预编译成odex,优化系统启动速度
DEXPREOPT_BOOT_JARS := $(DEXPREOPT_BOOT_JARS):$(TARGET_ADDITIONAL_BOOTCLASSPATH)
2、修改 TARGET_ADDITIONAL_BOOTCLASSPATH
将jar包名加入到TARGET_ADDITIONAL_BOOTCLASSPATH。device/qcom/msm8226/BoardConfig.mk
TARGET_ADDITIONAL_BOOTCLASSPATH := qcmediaplayer:WfdCommon:oem-services:qcom.fmradio
3、修改 BOOTCLASSPATH
将jar包绝对路径加入到 BOOTCLASSPATH,这里需要与DEXPREOPT_BOOT_JARS对应起来,否则系统无法启动。
1)赋值 system/core/rootdir/init.rc
# setup the global environment
export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
export LD_LIBRARY_PATH /vendor/lib:/system/lib
export ANDROID_BOOTLOGO 1
export ANDROID_ROOT /system
export ANDROID_ASSETS /system/app
export ANDROID_DATA /data
export ANDROID_STORAGE /storage
export ASEC_MOUNTPOINT /mnt/asec
export LOOP_MOUNTPOINT /mnt/obb
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/telephony-msim.jar
2)追加赋值 device/qcom/msm8226/init.target.rc
on init
export BOOTCLASSPATH ${BOOTCLASSPATH}:/system/framework/qcmediaplayer.jar:/system/framework/WfdCommon.jar:/system/framework/oem-services.jar:/system/framework/qcom.fmradio.jar
备注
把jar包优化成odex包:
在编译脚本.mk里面定义 "WITH_DEXPREOPT:=true",这样做,系统在第一次起来的速度比较快。开启了pre-dexopt的系统,jar有依赖性的优化,所以每次修改了java代码,都必须把out目录下的.odex文件清空,然后重新编译。
清空.odex文件可以进入out目录,执行:
find -name "*.odex" | xargs rm -f