如何将系统 api 类添加到您的 android 项目以进行非 AOSP 构建

Den*_*nis 4 gradle android-source

我有一个 Android 系统应用程序,目前正在使用 Android 构建系统构建。使用的 SDK 是 system_current,因为它使用了一些系统 api。

出于外部依赖性原因、易于开发、调试等原因,最好将此应用程序移至 Android Studio 并使用 Gradle 进行构建。

将源代码转换为使用 Gradle 进行构建非常简单。但是,在构建时,无法找到系统 API,因为这些 API 在普通 SDK 中不可用。我认为通过从 AOSP 源生成 SDK,我可以获得一个可以使用的 SDK,但目标输出似乎也没有可用的系统 API。

如何更改我的 gradle 构建以便能够使用 System SDK 进行编译?

Ric*_*hez 6

有两种方法,具体取决于您是否只是尝试使用当前的非公共 API,或者您自己添加了自定义 API 并尝试访问这些 API。

  • 如果您只是尝试使用当前的系统级 API,则可以android.jar从此存储库中使用https://github.com/anggrayudi/android-hidden-api

  • 如果您添加了一些不属于标准 AOSP 的新方法,那么这将是一项更多的工作。
    所有方法不显示为 Android SDK 的一部分的原因是,在 AOSP 代码中,它们都用@hide. 这意味着当生成 SDK 时,它们被排除。
    您需要删除要使用的方法的注释。那么你需要


还可以通过运行时反射访问方法,而无需生成 SDK。但编码速度更慢且更混乱。