我的系统中有android源代码,工作正常。但是当我在android源文件中进行一些更改并运行“make”时,它不会生成/更新任何文件 如果我错了,请纠正我,
i)如果对源代码进行了更改,系统应该生成一个新的system.img文件
ii)即使我们对源代码进行任何更改,android内核文件-zImage文件也不会随着任何更改而改变
另一个问题,如果我在/ libcore中创建一个新的库文件夹,它会在编译时自动获取。为了在/ libcore之外创建一个新的库文件夹,我在/build/core/main.mk和.classpath文件中添加了它的路径。在编译过程中仍然没有得到它。有人可以确认在/ libcore
之外添加新库文件所需要做的更改此致 约杰什
答案 0 :(得分: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
此外,构建系统不会更改输出和中间文件与源代码。一切都进入了/目标目录。
答案 1 :(得分:4)
这取决于您想要进行的更改。
在一个简单的情况下,如果更改是本地的(例如,将一些新行添加到名为xxx.c
的现有android源文件中),则可以轻松运行:
mm -B (under the root directory of xxx.c)
adb remount
adb sync
adb reboot
在其他情况下,比如说,您创建一个新的系统服务来替换在启动时启动的旧系统服务,如init.rc
文件中所示。然后,您可能需要:
init.rc
档案