Android源码中单独导入模块的方法

源码中单独导入模块的方法:

1、首先在源码同级的目录下创建一个自己模块的目录

2、在这个目录下面放入脚本文件import.sh

3、运行脚本文件

4、使用studio导入创建的文件夹

下面是import.sh的具体内容

SOURCE_TOP_DIR=/mnt/admn/tianyajun/8.1-A14
CURRENT_DIR=`pwd`

unset ez_LinkDir
ez_LinkDir=( \
    #".git" \
    "frameworks/base/core" \
   "frameworks/base/media" \
    #"frameworks/av" \
    #"frameworks/ex" \
    "frameworks/support" \
   "frameworks/base/packages/SystemUI" \
   "frameworks/base/packages/Keyguard" \
   "frameworks/base/services/core" \
   "frameworks/base/telephony" \
   "frameworks/base/packages/SettingsLib" \
   "frameworks/base/packages/SettingsProvider" \
    "frameworks/opt/telephony" \
    "frameworks/opt/net/wifi" \
    #"frameworks/opt/bluetooth" \
    "packages/apps/Settings" \
    #"packages/apps/FMRadio" \
    #"packages/apps/Camera2" \
    #"packages/apps/Gallery2" \
    #"packages/apps/Launcher3" \
    #"packages/apps/AudioProfile" \
    #"packages/apps/Music" \
   #"packages/apps/MusicFX" \
    #"packages/apps/MobileManager" \
    "packages/apps/CountrySelect" \
    #"packages/services/Telecomm" \
   vendor/sprd/plugins/frameworks/base/packages \
   vendor/sprd/feature_configs/base/overlay/frameworks/base \
   vendor/sprd/platform/frameworks/base \
    "vendor/sprd/platform/packages/apps/ScreenCapture" \
   #"vendor/sprd/platform/packages/apps/DreamFMRadio" \
   "vendor/sprd/platform/packages/apps/DreamSoundRecorder" \
   #"vendor/sprd/platform/packages/apps/AudioProfile" \
   #"vendor/sprd/platform/frameworks/base/core" \
   #"vendor/sprd/platform/frameworks/base/media" \
   #"vendor/sprd/platform/frameworks/base/packages/SettingsLib" \
   #"vendor/sprd/platform/frameworks/base/packages/SettingsProvider" \
    #"device/sprd" \
    #"external/junit/src/junit/framework" \
    #"external/guava" \
    #"external/sqlite" \
    #"out/target/common/obj/JAVA_LIBRARIES/framework_intermediates" \
    #"out/target/common/R/android" \
    #"out/target/common/R/com/android/internal" \
    #"out/target/common/obj/APPS/framework-res_intermediates/src" \
)

# check source dir
if [ ! -e "$SOURCE_TOP_DIR" ]; then
    echo -e "\e[31mPlease input the top dir of your source.\e[0m"
    exit
fi

for i in "${!ez_LinkDir[@]}"; do
    single=`echo ${ez_LinkDir[$i]} | grep /`
    if [ -z $single ]; then
        dir=
    else
        dir=${ez_LinkDir[$i]%/*}
    fi
    name=${ez_LinkDir[$i]##*/}

    # check if link target existed
    if [ ! -e $SOURCE_TOP_DIR/$dir/$name ]; then
        echo -ne "\e[30m"
        echo -n "\"$SOURCE_TOP_DIR/$dir/$name\" Not existed, ignore this dir."
        echo -e "\e[0m"
        continue
    fi

    # skip if link target has already linked
    if [ -e $CURRENT_DIR/$dir/$name ]; then
        echo -ne "\e[30m"
        echo -n "\"$dir/$name\" existed, skipped."
        echo -e "\e[0m"
        continue
    fi

    # make a dir for link target
    if [ ! -e $dir ]; then
        echo -ne "\e[33m"
        echo -n "mkdir -p $dir"
        echo -e "\e[0m"
        mkdir -p $dir
    fi

    # link target here
    path=$dir/$name
    if [ -z $dir ]; then
        path=$name
    fi
    echo -ne "\e[33m"
    echo -n "ln -s $SOURCE_TOP_DIR/$path $path"
    echo -e "\e[0m"

    ln -s $SOURCE_TOP_DIR/$path $path
done

猜你喜欢

转载自blog.csdn.net/qq_28852011/article/details/80060999