【发布时间】:2021-09-23 20:28:04
【问题描述】:
我目前正在处理一个 Android AOSP 项目,我正在为此开发一个 java 模块,该模块将成为核心服务(例如电话应用程序)的一部分。
我使用的一些框架默认情况下不会暴露给“常规”应用程序(位于私有 framework.jar)。
例如:有些地方我直接使用android.app.IActivityManager的Binder API。
我确实拥有平台密钥,但我不喜欢每次想要进行更改时都编译整个 AOSP 框架。
我也更喜欢使用 Android Studio,但如果不可能的话,我会在通过终端编译应用程序时妥协。
从事此类项目的正确方法是什么?
AOSP 的开发者如何在不每次都重新编译整个框架的情况下开发自己的代码?
更新:
到目前为止,我发现的最佳方法是简单地创建一个 android studio 项目,从设备 (adb pull /system/framework/framework.jar) 或 AOSP 源代码中获取 framework.jar,并将其添加为 compileOnly 或runtimeOnly 应用程序的 gradle.build 文件中的依赖项。
dependencies {
compileOnly files('libs/framework.jar')
implementation 'com.android.support:recyclerview-v7:28.0.0'
}
然后只需将android:sharedUserId="android.uid.system" 添加到 Android Manifest 并使用平台键编译它。
它应该可以按原样安装。
还有其他方法吗?
【问题讨论】:
标签: android android-studio android-source