Background

我正在研究拨号器应用程序 . 我愿意使应用程序opensource . 我努力分叉AOSP拨号器应用程序(link) .

但是,我之前没有使用过AOSP应用程序的经验 . 几个小时后,我发现它非常困难 .

Method Tried

我正在使用Android Studio工作 . 我已将AOSP组件的资源和源代码复制为我项目中的模块 . 依赖关系可以解决 .

Major Difficulties

  • 依赖性过多 . 从make文件(link),拨号器依赖于ContactsCommon(link),InCallUI(link),android-common(link),vcard(link)等 . 我尝试通过导入这些模块解决依赖关系 . 然而,出现了更多的问题 .

  • 只有权限才能被授予系统应用程序 .

  • 只有系统应用程序才能看到方法 . 它们对用户应用程序是隐藏的 .

  • 具有重复名称和产品属性的字符串资源 . 我已经读过它们应该在预编译时处理 . 但是,是否可以使用Gradle处理它们?

Goal

我的目标是发布类似于ExDialer(link)的增强型拨号器应用程序 . 我没有制作另一台拨号器来替换自定义ROM中的原始拨号器 .

因此,根本不需要许多依赖性和权限 . 我只是不知道如何分离AOSP应用程序的'System'部分和'User'部分 .

Proposed Method

我很可能会复制和修改资源和源代码,而不是分支原始的AOSP拨号器 . 他们是否有更好的方法来分叉AOSP应用程序,从而重用现有资源和源代码?