一. 首先在Android源代码目录下的build目录下,有个脚本文件envsetup.sh,执行这个脚本文件后,就可以获得一些有用的工具:
USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh
注意,这是一个source命令,执行之后,就会有一些额外的命令可以使用:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the modules in the current directory.
- mmm: Builds all of the modules in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.
这些命令的具体用法,可以在命令的后面加-help来查看,这里我们只关注mmm命令,也就是可以用它来编译指定目录的所有模块,通常这个目录只包含一个模块。
二. 使用mmm命令来编译指定的模块,例如Email应用程序:
USER-NAME@MACHINE-NAME:~/Android$ mmm packages/apps/Email/
编译完成之后,就可以在out/target/product/generic/system/app目录下看到Email.apk文件了。Android系统自带的App都放在这具目录下。另外,Android系统的一些可执行文件,例如C编译的可执行文件,放在out/target/product/generic/system/bin目录下,动态链接库文件放在out/target/product/generic/system/lib目录下,out/target/product/generic/system/lib/hw目录存放的是硬件抽象层(HAL)接口文件,后面的文章里面,我们会陆续提及到,敬请关注。
三. 编译好模块后,还要重新打包一下system.img文件,这样我们把system.img运行在模拟器上时,就可以看到我们的程序了。
USER-NAME@MACHINE-NAME:~/Android$ make snod
四. 参照Ubuntu上下载、编译和安装Android最新源代码一文介绍的方法运行模拟器:
USER-NAME@MACHINE-NAME:~/Android$ emulator
这样一切就搞定了。
分享到:
相关推荐
Android 源码单独编译模块是指在 Android 源代码工程中编译指定的模块,而不需要重新编译整个 Android 系统。这种方法可以节省大量的时间和资源,因为编译整个 Android 系统需要漫长的等待时间。 在 Android 源代码...
总结一下,单独编译Android源代码中的模块主要涉及以下步骤: 1. 执行`build`目录下的`envsetup.sh`脚本。 2. 使用`mmm`命令编译特定模块,如`mmm packages/apps/Email/`。 3. 通过`make snod`命令打包`system.img`...
总的来说,`.ipr`和`.iml`文件在Android P源码编译过程中起着关键作用,它们帮助开发者在Android Studio环境中高效地管理和编译大规模的源代码项目。通过理解这些文件的作用,开发者可以更流畅地进行源码级别的调试...
要单独编译一个模块,可以通过命令行工具`gradlew`(Gradle Wrapper)来执行。在项目根目录下,使用以下命令: ``` ./gradlew :moduleName:assembleDebug ``` 这里,`:moduleName`替换为你要编译的模块名,`...
动态编译是一种优化构建过程的方法,它只编译必要的源代码,从而节省时间和资源。在`Android.bp`中,我们可以利用条件语句和变量来实现这一目标。下面我们将分步骤解析如何进行动态编译。 1. **理解Android.bp文件...
1.3.2 编译Android源代码 1.3.3 运行Android模拟器 1.4 下载、编译和运行Android内核源代码 1.4.1 下载Android内核源代码 1.4.2 编译Android内核源代码 1.4.3 运行Android模拟器 1.5 开发第一个Android...
1.3.2 编译Android源代码 1.3.3 运行Android模拟器 1.4 下载、编译和运行Android内核源代码 1.4.1 下载Android内核源代码 1.4.2 编译Android内核源代码 1.4.3 运行Android模拟器 1.5 开发第一个Android应用...
在`classes.jar`中包含了编译后的Java类文件,而源代码的构建过程涉及`Android.mk`或`build.gradle`文件,它们定义了如何编译和打包`settings`模块。 总的来说,`settings`模块的源代码不仅展示了Android系统如何...
要单独编译和使用WebRTC的音频回声消除模块,你需要遵循以下步骤: 1. **获取源码**:从WebRTC的官方GitHub仓库克隆源码,确保你获取的是最新稳定版或者特定版本的代码。 2. **构建环境设置**:安装必要的依赖库,...
我的博客中《关于如何在Android源码目录中建立自己的C工程,并用mm命令单独进行该C工程模块的编译,以及Android.mk的使用介绍(2)》源码包
"你们要的Android组件化来了,module单独编译运行"这个标题表明我们将讨论如何实现Android应用的组件化,使得每个模块可以独立编译和运行,这在大型项目中非常关键,因为它提高了开发效率并降低了集成风险。...
Qt支持多种语言的本地化,源码中可能包含如何在Android应用中实现多语言切换的代码。 9. **调试与性能优化** 在Android上调试Qt应用需要熟悉Android Studio的ADB工具和Qt的qmake或cmake构建系统。源码可能包含...
在本文中,我们将深入探讨如何编译Android源代码,这是Android开发过程中不可或缺的一部分。通过编译源码,你可以自定义系统、修复问题或为设备创建特定的ROM。以下是详细的步骤,分为准备构建环境、获取源码和编译...
在Android Studio中,每个模块通常是一个单独的Gradle项目,可以拥有自己的build.gradle文件,定义依赖、编译配置等。通过模块化,我们可以实现代码的隔离,降低耦合度,同时便于团队协作和代码复用。 二、Android ...
7. **模块化编译**:Android源码采用模块化的构建方式,如HAL(硬件抽象层)使得硬件厂商能够轻松适配Android,而AOSP中的各种服务和应用也是独立模块,方便单独编译和调试。 8. **Android版本差异**:不同版本的...
1.3.2 编译Android源代码........................................... 4 1.3.3 运行Android模拟器........................................... 5 1.4 下载、编译和运行Android内核源代码.........................
4. **模块化开发**:Android的框架层和库层都是模块化的,每个模块都有自己的Makefile,开发者可以单独编译修改的模块,提高了开发效率。 5. **驱动程序开发**:在Kernel层,开发者可以接触到硬件驱动程序,学习...
在Android开发中,有时我们需要利用C++代码来提高性能或者接入一些C/C++的第三方库。Android Studio提供了CMake工具,使得我们可以在Android项目中轻松地集成和调用C++代码。本文将深入探讨如何使用Android CMake...