跳转至

教程003-简单扩展

需求

看完 教程002-设计思路 之后,知道基本上设计思路了。但如果扩展呢?

假设我是小米员工,我发现配置 scripts/configs/aosp.gradle 中 SettingsProvider 模块配置的源码路径缺少小米自定义的一些路径,那我如何修改呢?

本文中我们都以 小米SettingsProvider 模块举例。

方案1

直接在 scripts/configs/aosp.gradle 里对应的模块(SettingsProvider)修改。

方案2

新增自己的 configs 配置。

其实这个工程有很多分支,我预留了国内几家主流的手机厂分支以及 lineage 分支等。 如果没有可以自行配置。

在 scripts/configs 目录下新增 miui.gradle ,然后新增:

ext {
    miuiDir = rootProject.ext.aospRoot

    miuiVendorDir = "$miuiDir/miui"

    miui = [
            root        : "$miuiDir",

            SettingsProvider : [  
                manifest: "",  
                res     : [],  
                assets  : [],  
                jni     : "",  
                src     : [],  
                srcjars : [],  
                aidl    : [],  
            ],

    ]

}

添加 SettingsProvider 模块的源码路径。

找到 aosp-modules/SettingsProvider/build.gradle 修改:

def androidRoot = rootProject.ext.aosp.SettingsProvider

改成

def androidRoot = rootProject.ext.miui.SettingsProvider

是不是很简单?

当然这针对于有现成模块的基本上(aosp-modules/SettingsProvider),如果是新增一个模块基本上也是这个思路。

这个扩展方案存在一定的缺陷,也就是修改之后,会改掉 as-aosp 仓的代码,就不方便同步最新的代码了。

在后面的 教程004-插件扩展 方案中,可以随意扩展你想要添加的模块,并且能随着同步最 as-aosp 新代码。

评论