8

我的系统中有 android 源代码,它工作正常。但是当我对android源文件进行一些更改并运行“make”时,它不会生成/更新任何文件如果我错了请纠正我,

i) 如果对其源代码进行了更改,系统应该生成一个新的 system.img 文件

ii) android 内核文件-zImage 文件不会随任何更改而更改,即使我们对源代码进行了任何更改

另一个问题,如果我在 /libcore 中创建一个新的库文件夹,它会在编译时自动拾取。为了在 /libcore 之外创建一个新的库文件夹,我在 /build/core/main.mk 和 .classpath 文件中添加了它的路径。在编译过程中仍然没有被拾取。有人可以确认我们必须在哪里进行更改以在 /libcore 之外添加新库文件吗

问候, 尤格什

4

2 回答 2

10

这取决于您已签出的确切存储库。但对于他们中的大多数人来说,以下配方将起作用:

http://source.android.com/source/download.html

请注意,如果您使用的是最新版本,则必须具有 64 位系统

更新:由于某种原因,上面的页面缺少一些重要步骤。所以他们在这里

完成“repo sync”步骤后(需要一段时间,但我假设您已经这样做了,因为您拥有源文件),请执行以下操作:

$ . build/envsetup.sh
$ lunch

最后一个命令将为您提供要构建的平台的选项列表。如果要为模拟器构建,请选择 full-eng。否则,请为您的特定设备供应商选择一种。

选择平台后,请确保您首先做好一切,因为整个android平台是非常相互依赖的。因此,您需要确保拥有所有组件。

在开发时,您可以非常快速地构建单个组件。通过使用以下命令:

mmm <component_directory_name>

例如:

mmm external/rsync

此外,构建系统不会更改将输出和中间文件与源代码放在一起。一切都进入 out/target 目录。

于 2010-11-01T21:36:36.493 回答
5

这取决于您要进行的更改。

在一个简单的情况下,如果更改是本地的(例如,将一些新行添加到名为 的现有 android 源文件xxx.c中),您可以轻松运行:

mm -B (under the root directory of xxx.c)
adb remount
adb sync
adb reboot

在其他情况下,例如,您创建一个新的系统服务来替换在启动时启动的旧系统服务,如init.rc文件所示。然后,您可能需要:

  1. 更新init.rc文件
  2. 构建整个android源
  3. 闪存新图像
于 2013-09-29T08:14:38.523 回答