博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android编译中m、mm、mmm的区别
阅读量:6540 次
发布时间:2019-06-24

本文共 2699 字,大约阅读时间需要 8 分钟。

Android编译中m、mm、mmm的区别

 

在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

转载于:https://www.cnblogs.com/yuzaipiaofei/archive/2011/07/04/4124717.html

你可能感兴趣的文章
HDFS 核心原理
查看>>
正确配置jstl的maven依赖,jar包冲突的问题终于解决啦
查看>>
利用KMP算法解决串的模式匹配问题(c++) -- 数据结构
查看>>
登录内网账号后,连接不上内网网址
查看>>
安装 MariaDB
查看>>
【deep learning学习笔记】注释yusugomori的DA代码 --- dA.h
查看>>
Ubuntu 12.04 root用户登录设置
查看>>
windows核心编程-互斥器(Mutexes)
查看>>
纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!...
查看>>
java 为啥变量名前要加个m?
查看>>
探索Android中的Parcel机制(上)
查看>>
c++ 类型定义
查看>>
C#开发微信门户及应用(5)--用户分组信息管理
查看>>
怎样实现前端裁剪上传图片功能
查看>>
程序员提高工作效率的15个技巧【Facebook】
查看>>
ffmpeg+SDL2实现的视频播放器「退出、暂停、播放」
查看>>
2011/7/3 第二次评审
查看>>
Openvswitch手册(2): OpenFlow Controller
查看>>
Cocos2d-JS项目之二:studio基础控件的使用
查看>>
tar解压
查看>>