Android 如何使用通过修改aosp框架代码构建的sdk?

Android 如何使用通过修改aosp框架代码构建的sdk?,android,android-source,Android,Android Source,我是Android开源项目(ASOP)的新手。为了研究的目的,我一直在尝试用我自己的修改来制作一个定制的android版本。我在acitivity.java类的框架中更改了一些代码。添加了我的自定义函数,如下所示: public final void requestPermissions(@NonNull String[] permissions, int requestCode, String permReason, String dataScope) { Log.i(&q

我是Android开源项目(ASOP)的新手。为了研究的目的,我一直在尝试用我自己的修改来制作一个定制的android版本。我在acitivity.java类的框架中更改了一些代码。添加了我的自定义函数,如下所示:

 public final void requestPermissions(@NonNull String[] permissions, int requestCode, String permReason, String dataScope) {
    
    Log.i("PermissionTracker", "Rashed Tracking Permission Manager having requestCode"+Integer.toString(requestCode));
Log.i("PermissionReason", "I am asking permission because of "+permReason);
Log.i("PermissionReason", "The data scope would be "+dataScope);

/*
        Rashed edit end April 23, 2021
    */
    if (requestCode < 0) {
        throw new IllegalArgumentException("requestCode should be >= 0");
    }
    if (mHasCurrentPermissionsRequest) {
        Log.w(TAG, "Can request only one set of permissions at a time");
        // Dispatch the callback with empty arrays which means a cancellation.
        onRequestPermissionsResult(requestCode, new String[0], new int[0]);
        return;
    }
    Intent intent = getPackageManager().buildRequestPermissionsIntent(permissions);
    startActivityForResult(REQUEST_PERMISSIONS_WHO_PREFIX, intent, requestCode, null);
    mHasCurrentPermissionsRequest = true;
}

我的目标是生成自定义sdk,它可以在Android studio中使用,也可以在我正在另一个应用程序中使用。我想从Android Studio中的应用程序调用我修改过的函数。我已经成功地更新了Android Studio sdk目录。但问题是,我无法在Android Studio中看到修改后的代码。有人能帮我吗?提前感谢您的建议。

如果您的修改是android框架的一部分,您需要从android Studio项目中的out/target/common/obj/JAVA_LIBRARIES/framework_mediates(for ex)/classes.jar复制修改后的jar

您还需要修改顶级gradle build以添加:

allprojects {
    repositories {
        jcenter()
    }
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << '-Xbootclasspath/p:app/src/main/lib/framework.jar'
        }
    }
所有项目{
存储库{
jcenter()
}
gradle.项目评估{
tasks.withType(JavaCompile){

options.compilerArgs仍然不起作用。我检查了classes.jar,发现我的实现在那里。我认为它仍然使用默认的sdkSorry…你的解决方案起作用了…我的问题在别处…谢谢你的帮助。
allprojects {
    repositories {
        jcenter()
    }
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << '-Xbootclasspath/p:app/src/main/lib/framework.jar'
        }
    }