在Android Source Code中有envsetup.sh檔案,當執行過此檔案後,可以大幅將build的過程簡單化、自動化
此檔案在src(android source code 位置)/build/中
所以可以執行以下指令
cd /src/build/
. envsetup.sh
可以使用help來檢示有哪些指令可以使用
Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
- 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.
- hgrep: Greps on all local C/C++ header files.
- jgrep: Greps on all local Java files.
- mkgrep: Greps on all local make files.
- rcgrep: Greps on all local .rc files.
- resgrep: Greps on all local res/*.xml files.
- shgrep: Greps on all local .sh files.
- godir: Go to the directory containing a file.
其中對模組的編譯有輔助說明的是tapas、m、mm、mmm這幾個指令
其中mmm后面要跟模組的根目錄,不是所有的目錄下都有子模組,那些含有Android.mk檔案目錄才是模組的根目錄,模組名可以從Android.mk的LOCAL_MODULE或者LOCAL_PACKAGE_NAME變數中得到。
單獨編譯某模組,需要在mmm后面指定模組路徑,例如編譯external 中的jpeg
root@ubuntu:/home/android/src# mmm external/jpeg/
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================
make: Entering directory `/home/android/src'
Target buildinfo: out/target/product/generic/root/default.prop
Target buildinfo: out/target/product/generic/system/build.prop
Copy: out/target/product/generic/system/etc/apns-conf.xml
make: Leaving directory `/home/android/src'
root@ubuntu:/home/android/src#
或者可用 mm 再欲編譯的模組目錄下執行
root@ubuntu:/home/android/src/external/jpeg# mm
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================
make: Entering directory `/home/android/src'
Copy: out/target/product/generic/system/etc/apns-conf.xml
make: Leaving directory `/home/android/src'
root@ubuntu:/home/android/src/external/jpeg#
或者可用 m 編譯全部的模組
root@ubuntu:/home/android/src# m
你也可以在src目錄下直接執行make module name:
打開看 ./external/jpeg/Android.mk
看到裡面模組名稱為 libjpeg
LOCAL_MODULE:= libjpeg
這樣你就可以直接打模組名稱編譯
cd ~/android/src
make libjpeg
也可以在登入時自動執行此 script,編輯 ~/.bashrc 或其他 shell 的 rc 檔,加入此 script 即可
# invoke android envsetup.sh
source ~/android/build/envsetup.sh
分享到:
相关推荐
Android编译环境初始化完成后,我们就可以用m/mm/mmm/make命令编译源代码了。当然,这要求每一个模块都有一个Android.mk文件。Android.mk实际上是一个Makefile脚本,用来描述模块编译信息。Android编译系统通过整合...
freetype android 编译so库 支持 编译64位库
android编译.doc android编译.doc
Android编译过程详解
包含android-tool.jar jd-gui.jar和dex2jar等常用android反编译工具
PCL for Android 编译过程遇到的问题及办法。如有问题请留言
android 反编译工具.
Ogre 19 Android 编译 Win7 vs2008 NDK
最新的android反编译工具以及相关的使用方法,这个版本为最新的工具。 1、把apk文件重命名为zip或者rar文件格式 2、解压后把classes.dex复制到dex2jar-2.0目录中 3、打开cmd,定位到dex2jar-2.0目录 4、运行d2j-dex2...
windows protobuf android 编译.doc
Android编译系统分析,odt格式的,用openoffice打开,介绍分析了Android的编译系统:原理和如何添加本地模块编译,怎样编译成动态库,静态库,可执行程序。
Android编译独立源代码
Android codebase 都很大,编译一次都需要花很多时间,如果是preloader/lk/bootimage 还好, 但是Android 的话都是非常久。 实际上这个编译时间还是可以进一步缩短!
android编译,手把手教你Android编译
使用Android NDK编译Android平台的eXosip库,有静态库和动态库。
android编译系统makefile(Android.mk)写法 Android.mk文件首先需要指定LOCAL_PATH变量,用于查找...Android.mk中可以定义多个编译模块,每个编译模块都是以include $(CLEAR_VARS)开始 以include $(BUILD_XXX)结束。
对android的编译系统做了很详细的说明,很珍贵!
ndk25C编译的android下的ffmpeg6.0,集成v4l2视频采集和pulse音频采集
Ubuntu 环境安装 VirtualBox + XP环境搭建 Liunx 常用命令介绍 Android 源码结构分析 Android编译环境搭建 Android源码的获取和编译 MTK 6573(Android)编译命令介绍 ...如何在android源码中内置一个模块