编译系统包括编译中枢,子项目,输出路径。

编译中枢包括各种.mk文件,这些文件将遍历所有子项目,并生产所有target,从而当用户调用make XXX命令,中枢能够知道应该执行什么命令以长生指定的target

每个子项目必须包含一个Android.mk文件,该文件将描述该项目中包含的哪些源文件,并指定该项目的输出目标类型(jar包、可执行程序、APK等),编译中枢内部定义了一些变量,各android.mk文件只是对他赋值而已。

LOCAL_PATH:= $(call my-dir) 指定子项目的绝对路径

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional 指定子项目所属的标签 (optional,user,eng,userdebug)

LOCAL_SRC_FILES := $(call all-subdir-java-files) 所包含源文件

LOCAL_PACKAGE_NAME := 指定项目名称(java) ,作为make XXX中的XXX

LOCAL_MODULE := 指定项目名称(c/c++),作为make XXX中的XXX

LOCAL_CERTIFICATE := platform 指定apk项目将使用何种签名文件签名最后生成的apk,系统一共包含四种:

  1. platform Framework源码最后生成一个jar包,该jar包默认使用该类型签名。
  2. shared 一些系统应用程序使用该类型签名,比如Contacts
  3. user 一些私有项目使用该签名
  4. tests 调试过程中一般使用该签名

LOCAL_JAVA_LIBRARIES := 指定子项目编译所依赖的jar包

LOCAL_C_INCLUDES 指定编译c所包含的头文件

LOCAL_SHARED_LIBRARIES 指定c可链接动态库

LOCAL_STATIC_LIBRARIES 指定c可链接静态库

LOCAL_MODULE_CLASS

LOCAL_MODULE_PATH 指定编译目标存放路径

LOCAL_PREBUILT_LIBS 预编译时使用,指定需要复制的库

include $(BUILD_MULTI_PREBUILT) 预编译,copy库文件到动态库

include $(BUILD_PACKAGE) 指定编译的目标对象 编译成apk

include $(BUILD_JAVA_LIBRARY) 指定编译的目标对象 jar包

include $(BUILD_SHARED_LIBRARY) 指定编译的目标对象 C动态库

include $(BUILD_STATIC_LIBRARY) 指定编译的目标对象 C静态库

include $(BUILD_EXECUTABLE) 指定编译的目标对象 可执行程序

android 编译系统make文件相关推荐

  1. 【Android.mk】android编译系统makefile文件Android.mk的写法

    (1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件.由于一般情况下 Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式: LOCAL_PATH:=$ ...

  2. android编译系统apk文件,VS2012中MonoForAndroid打包编译APK文件详细图文教程

    本文用于介绍Visual Studio 2012中Xamarin Mono For Android 如何打包编译APK文件,从如何创建Android项目,到如何启动调试,都会逐个配图讲解. 1 新建项 ...

  3. 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统(瘋耔修改篇二)...

    第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同 ...

  4. android编译系统学习 .

    android的编译文件主要依赖于mk文件,其源码编译名字是Android.mk,而不我们常见的Makefile文件. android目录下的Makefile文件,include了build/core ...

  5. Android编译系统入门(二)

    Android.mk的使用方法 在上一篇Android编译系统入门(一)中我们只要介绍了Android系统使用make命令默认编译的依赖树是droid,而droid是一个伪目标,它有两个先决条件dro ...

  6. Android编译系统简要介绍和学习计划

    在Android源码环境中,我们开发好一个模块后,再写一个Android.mk文件,就可通过m/mm/mmm/make等命令进行编译.此外,通过make命令还可制作各种系统镜像文件,例如system. ...

  7. Android编译默认英语,Android 编译系统 (一)

    1.Makefile & Android build system 在进行讲述Android编译系统之前,应该先了解一下编译时所使用的Makefile,或者说复习下这方面的知识,这样才能更好的 ...

  8. 【转载】Android编译系统Makefile(Android.mk)写法

    声明:本文转载自http://www.cnblogs.com/hesiming/archive/2011/03/15/1984444.html 版权和最终解释权给原作者所有,谢谢. android编译 ...

  9. android.bp 编译,Android编译系统中的Android.bp

    Android.bp,是用来替换Android.mk的配置文件. 它使用Blueprint框架来解析,最终转换成Ninja文件. 与Android.mk不同的是,Android.bp是纯粹的配置文件, ...

最新文章

  1. fastboot因为连接线影响出错
  2. 鸿蒙开发板能干什么,【鸿蒙开发板试用报告】用OLED板实现FlappyBird小游戏(中)...
  3. wampserver 搭建 php环境 运行方法
  4. 使用ping命令检查路由之解惑
  5. 95-150-544-源码-Sink-Flink BucketingSink 源码分析
  6. iOS的四种持久化存储
  7. UDP网络编程核心类
  8. C语言实现大小端转换
  9. 线性/非线性规划问题求解
  10. 超像素经典算法SLIC的代码的深度优化和分析
  11. 个股和股票池的beta系数的估算
  12. 软件破解逆向安全(十二)内存特征码
  13. word文档通配符换行_Word怎么批量删除分隔符
  14. PAT 甲级1069/乙级 1019 PAT Ranking 个人错误总结
  15. 【JY】STKO助力OpenSEES系列:结构模态分析以及动力特性(MDOF与等效SDOF验证)
  16. 南阳oj _600花儿朵朵(树状数组插线问点+坐标离散化)
  17. ArcGIS空间插值方法反距离权重法(IDW)的工作原理
  18. 红米Note 3如何卡刷开发版启用Root权限
  19. 如何在outlook里面把收件箱分组,以便快速的查看最重要的email。
  20. win10时间服务器未运行,win10 Windows License Manager Service服务未运行如何解决

热门文章

  1. 西安计算机二级12月,2017年12月计算机二级MS Office习题答案(一)
  2. linux快速统计目录大小,linux下统计文件夹、文件的大小--du
  3. java compiler = null_Java Compiler command()方法
  4. af_packet_C语言中利用AF_PACKET 原始套接字发送一个任意以太网帧 (一)
  5. bypass最新版d盾mysql_Bypass 护卫神SQL注入防御(多姿势)
  6. 黑马博客——详细步骤(八)项目功能的实现之另一种分页方式【mongoose-sex-page】
  7. X云微专业-功能测试需求分析
  8. 从测试用例角度来看传统测试人员更专业?
  9. angular 解决闪烁问题_AngularJS页面访问时出现页面闪烁问题的解决
  10. python音频分析工具_『开发技巧』Python音频操作工具PyAudio上手教程