6、andriod常用编译命令介绍

目的:
1、掌握系统的编译命令及不同命令之间的区别
2、学会怎么编译android系统中的原生模块
3、学会编译自己的程序模块(定制)
4、掌握用路径名称与模块名称进行模块的编译

定制的模块有两种:
● 可执行程序
● lib :
lib分动态库和静态库

思考问题:编译出来的模块放在哪里?out...
思考:如何再aosp代码证新增模块?然后编译这个模块

9.1android 系统下常见编译指令

hmm 帮助
mm 模块路径 编译当前目录下的所有模块,不包含依赖
mmm 模块路径 编译指定路径下的所有模块,不包含依赖
mma 模块路径 编译当前路径下的所有模块,且包含依赖
mmma 模块路径 编译指定路径下的所有模块,且包含依赖

含a的:包含依赖,不含a的不编依赖
前提:source build/envsetup.sh
lunch sdk_phone_x86_64-eng

9.2 android系统的常见模块编译指令

模块 make命令 mmm命令
init make init mmm system/core/init
zygote make app_process mmm frameworks/base/cmds/app_process
system_server make services mmm frameworks/base/services
jni framework make libandroid_runtime mmm frameworks/base/core/jni
SystemUI make SystemUI mmm frameworks/base/packages/SystemUI

总结:
什么是模块的名称:android.mk或android.bp文件中要编译出来的对象

● C++库:静态库libxxx.a 动态库libxxx.so
● Java库:***.jar
● C++可执行程序:
● JAVA app:

编译模块的两种方式:
make 模块名
mmm 模块名所在的路径

9.3 android系统下编译出来的文件存放位置 :
out/target/product/xxx/system/lib
out/target/product/xxx/system/lib64
out/target/product/xxx/system/bin
out/target/product/xxx/system/framework/framework.jar

out/target/product/xxx/vendor/lib
out/target/product/xxx/vendor/lib64
out/target/product/xxx/vendor/bin

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容