And*_*bev 16 android android-ndk android-source
我正在尝试在AOSP的外部目录中构建我自己的库和应用程序,但问题是我必须每次运行make并且make将编译/构建整个android.在我的外部应用程序文件夹中我有Android.mk文件,但我无法使用ndk-build构建它,它将查找JNI文件夹和NDK_BUILD_PATH,所以问题是:
如何在不重建整个AOSP的情况下构建它?
Mag*_*äck 11
普通make调用不会重建超过必要的程度,但即使使用叶库或二进制文件,即使是增量构建也可能需要几分钟.如果您只想构建特定模块,可以查看build/envsetup.sh顶部简要记录的函数.具体来说,m和mmshell函数应该是有用的,因为它们只构建一个或多个模块而不关心它们的依赖关系,甚至没有尝试读取树中找到的所有Android.mk文件.使用它们可以显着加快增量构建(但是所有依赖项必须在某些时候构建,即它们仅对增量构建有用).
build/envsetup.sh还定义了许多其他shell函数,这些函数对于构建Android平台和使用其源代码非常有用.
您可以使用以下命令获取Android代码中所有模块的列表:
make modules
Run Code Online (Sandbox Code Playgroud)
要构建任何单个模块:
make [modulename]
Run Code Online (Sandbox Code Playgroud)
简要说明更一般的情况,这mm是一个有用的命令,但它应该运行的位置没有很好的记录 - 或者更具体地说,并不总是清楚什么是“模块”。
假设您对 SystemUI 进行了更改,这是一个对 Android 整体功能至关重要的专用应用程序。这是框架/基础存储库的一部分。
如果您只是转到 frameworks/base 目录并执行mm它,将找不到任何可做的事情 - 您的更改将被忽略。
要实际获取更改,mm您必须位于它们所在的目录中 - 在此示例中,您需要位于 frameworks/base/packages/SystemUI 中。其他代码库的适当位置会有所不同 - 但作为猜测,您可能需要Android.mk覆盖您的更改所在的位置。
然后,您可以使用make snod树顶部的目标来重建 system.img 并使用 fastboot 刷新它,或者使用adb remountadb push 新的 SystemUI.apk,然后adb shell "start; stop"重新启动 Android 框架。
| 归档时间: |
|
| 查看次数: |
10188 次 |
| 最近记录: |