构建 AOSP 应用程序并对其进行自定义

Building AOSP Apps and customizing them

好的,这是一个 n00b 问题,但最近我对我的设备 herolte (Galaxy S7) 的 ROM 开发很感兴趣,并想从 LineageOS(基本上是香草 Android)构建它。我已经拥有所有源代码,并且构建在我的虚拟机上完美运行,安装也很顺利!不幸的是,有一件事一直困扰着我,定制!

例如,我想自定义 Dialer 应用程序,但意识到当我尝试在 Android Studio 中打开它时,它不会显示项目结构下的所有文件,只显示 "R", "Manifest"、"BuildConfig"。没有 drawables 文件夹或任何东西(尽管我文件夹中的源代码/目录显示了它)。所以我假设我遗漏了一些东西但不确定它到底是什么,所以任何帮助将不胜感激。我确实知道像 Dialer 或 Contacts 这样的应用程序与它使用的 Android 框架密切相关,就像 Samsung Dialer 与 TouchWiz 的关系一样。

我基本上想修改原始应用程序的一些参数,然后用 LineageOS 构建它们。感谢任何帮助,谢谢!

AOSP 是通过基于“make”的自定义构建系统构建的。当您在 Android studio 中打开 AOSP 时,您可以很好地展示项目源和一些资源,但您应该始终牢记,最终应用程序的编译将由 'make' 构建系统及其 'mk' 个文件。

对于 'Dialer' 应用程序,如果查看其 Android.mk 文件,您可以找到应用程序资源位置的提示。请注意,资源是从以下位置导入的:

> res_dirs := res \
>     $(incallui_dir)/res \
>     $(contacts_common_dir)/res \
>     $(contacts_common_dir)/icons/res \
>     $(phone_common_dir)/res

深入研究这些定义将决定在以下目录中:/packages/apps/PhoneCommon/res/