今天第一次看Android.mk文件,内容如下

 # Copyright 2007-2008 The Android Open Source Project
2
3 LOCAL_PATH:= $(call my-dir)
4 include $(CLEAR_VARS)
5 # Include res dir from chips
6 chips_dir := ../../../frameworks/ex/chips/res
7 res_dirs := $(chips_dir) res
8
9 $(shell rm -f $(LOCAL_PATH)/chips)
10
11 LOCAL_MODULE_TAGS := optional
12
13 LOCAL_SRC_FILES := $(call all-java-files-under, src)
14
15 LOCAL_PACKAGE_NAME := Mms
16 LOCAL_JAVA_LIBRARIES += mediatek-framework
17 LOCAL_JAVA_LIBRARIES += CustomProperties
18 # Builds against the public SDK
19 #LOCAL_SDK_VERSION := current
20
21 LOCAL_JAVA_LIBRARIES += telephony-common mms-common
22 LOCAL_JAVA_LIBRARIES += mediatek-telephony-common
23 LOCAL_STATIC_JAVA_LIBRARIES += android-common
24 LOCAL_STATIC_JAVA_LIBRARIES += jsr305
25 LOCAL_STATIC_JAVA_LIBRARIES += CellConnUtil
26 #LOCAL_STATIC_JAVA_LIBRARIES += wappush
27 LOCAL_STATIC_JAVA_LIBRARIES += com.android.vcard
28 LOCAL_STATIC_JAVA_LIBRARIES += android-common-chips
29 LOCAL_STATIC_JAVA_LIBRARIES += com.mediatek.mms.ext
30
31 LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
32 LOCAL_AAPT_FLAGS := --auto-add-overlay
33 LOCAL_AAPT_FLAGS += --extra-packages com.android.ex.chips
34
35 LOCAL_REQUIRED_MODULES := SoundRecorder
36
37 LOCAL_PROGUARD_FLAG_FILES := proguard.flags
38
39 LOCAL_PRIVILEGED_MODULE := true
40
41 include $(BUILD_PACKAGE)
42
43 # This finds and builds the test apk as well, so a single make does both.
44 include $(call all-makefiles-under,$(LOCAL_PATH))
chips_dir := ../../../frameworks/ex/chips/res:说的是,它编译的时候会自动把这个路径下生成的文件编译进来,当然,前提是你这个路径也要进行单独编译才行
com.android.vcard:联系人
com.mediatek.mms.ext:mediatek目录

这个android.mk的工作原理还不是很清除,不过,第一感觉就是,如果一个目录下没有这个文件,那么这个目录就不可以进行编译

我们以MMS为例
mms接收者输入框在你输入某个数字的时候,它会自动下拉一个联系人列表。而这个输入框你会发现,它最终继承自 /mediatek/frameworks-ext/ex/chips/src/com/android/ex/chips$  下的 MTKRecipientEditTextView.java 你进入MTKRecipientEditTextView.java,会发现它的包名是
package com.android.ex.chips;

它的包名跟

frameworks/ex/chips/src/com/android/ex/chips/

路径是一样的

所以,我们修改了mediatek/frameworks-ext/ex/chips/src/com/android/ex/chips$ 的内容的时候,我们编译的话,使用的命令就是

./makeMtk mm frameworks/ex/chips/;./makeMtk mm package/app/Mms

另外还有一点就是,你在MTKRecipientEditTextView.java代码中会发现如下命令

mDefaultContactPhoto = BitmapFactory.decodeResource(r, R.drawable.ic_contact_picture);

它资源引用的是R.

所以,我们可以断定这个图片资源是存在frameworks/ex/chips目录下的

												

mk-编译信息的意义的更多相关文章

  1. NDK(11)Android.mk编译APK模板

    转自 :  http://hubingforever.blog.163.com/blog/static/1710405792011656434982/ 以下仅是使用Android.mk编译APK程序的 ...

  2. IAR编译信息分析

    1.怎么设置可以查看单片的内存(消耗)使用状况? IAR的菜单栏 -->Tools -->IDE Options -->Messages -->Show build messa ...

  3. Android.mk编译APK范例

    以下仅是使用Android.mk编译APK程序的一些范例. 如果你想了解Android.mk的更多内容请参考<Android.mk简介> 一.编译一个简单的APK    LOCAL_PAT ...

  4. make V=1 查看完整的gcc编译信息

    Linux内核make命令选项 2012年5月28日lenky发表评论阅读评论6,289 次浏览   升级Linux内核的操作已经变得很简单,基本的几个命令即可搞定:make menuconfig.m ...

  5. GPGPU OpenCL 获取kernel函数编译信息

    使用OpenCL编程时,kernel写成一个单独的文件或者将文件内容保存在一个string中.可以使用clBuildProgram对kernel进行编译链接(compiles & links) ...

  6. STM32的堆与栈与编译信息查看

    STM32的堆与栈与编译信息查看 因为一个项目中使用malloc函数动态分配内存400多个字节,返回为0,分配失败.查找失败原因,为堆空间不足分配导致.查看堆和栈分别设置了2K,按正常情况看应能满足分 ...

  7. 如何输出opencv编译信息

    本文链接:https://mangoroom.cn/opencv/how-to-print-compile-info-of-opencv.html opencv提供了一个函数,利用这个函数可以输出当前 ...

  8. 01 android ndk入门实例之android.mk编译

    前言 1 环境 android studio2.3 , window系统 2 ndk https://dl.google.com/android/repository/android-ndk-r16- ...

  9. Cocos移植到Android-Android.mk编译文件

    我们在上一篇博客中年使用的cocos工具对于C和C++源代码进行编译.事实上cocos工具读取<游戏工程目录>\proj.android\jni\目录中的Android.mk文件,进行交叉 ...

  10. gcc/g++/make 编译信息带颜色输出

    假设编译一个项目错误警告太多.很不好找,所以很希望输出信息能够带有颜色. 但是 gcc 4.9.0 之前的版本号并不支持,非常多情况下是不能替换编译器的,比方使用交叉编译器, 也能够使用 colorg ...

随机推荐

  1. U-boot 启动内核

    1:什么是UBOOT,为什么要有UBOOT? UBOOT的主要作用是用来启动linux内核,因为CPU不能直接从块设备中执行代码,需要把块设备中的程序复制到内存中,而复制之前还需要进行很多初始化工作, ...

  2. 第6章8节《MonkeyRunner源代码剖析》Monkey原理分析-事件源-事件源概览-小结

    本章我们重点环绕处理网络过来的命令的MonkeySourceNetwork这个事件源来阐述学习Monkey是怎样处理MonkeyRunner过来的命令的.以下总结下MonkeyRunner从启动Mon ...

  3. error:assign attribute must be unsafeunretained

    今天在使用协议的过程中.偶然发现这样使用 ? 1 2 3 4 5 6 7 8 9 10 @interface AppDelegate (){     id<chatdelegate>  t ...

  4. 25.怎样在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块

    转自:https://blog.csdn.net/wangyj1992/article/details/78387728 因为项目的需要,所以研究了一下自动生成测试代码.将经验记录下来,总会有用的.我 ...

  5. 实时监控Cat之旅~分布式消息树的实现原理与测试

    大众点评的老吴在InfoQ上讲了Cat之后,有不少同仁开始关注这个实时监控系统,但学习的文章甚少,在GitHub上也是一言代过,给我们这些开发人员留下了N多个疑问,一时间不知道去哪里问,向谁去问了,通 ...

  6. 好吧,左小波出山了——ie8兼容indexOf问题

    我,还是一个不懂世事的毛头小子,第一次写博.万事开头难,没事咱慢慢来.咳,练文笔吗.我觉得写东西最锻炼逻辑思维,我是一个不善于表达的人,可能是程序员的通病,但你看看人家王小波,八九十年代的作家兼职程序 ...

  7. 昼猫笔记 JavaScript -- 闭包

      本次主要内容是 闭包 阅读时间: 约 3分钟 记得点个赞支持支持我哦 初步了解 先看下代码,输出结果是多少? function fn1 () { var a = 2 function fn2 () ...

  8. 【转】一篇关于32位Linux内核使用大内存的文章——Hugemem Kernel Explained  &nb

    红旗DC系列Linux操作系统(x86平台)中带有四类核心: UP (支持单内核) SMP (支持多内核) hugemem Icc* (用intel C编译器编译的核心) 其中hugemem核心往往引 ...

  9. JQ遍历 input 并修改name属性

    1.执行完克隆行后,会出现name属相相同的问题 function addRow(){ var obj = $("tr[name='info']:last"); var objCl ...

  10. 【Henu ACM Round#14 B】Duff in Love

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 让你在n的因子里面找一个最大的数字x 且x的因子全都不是完全平方数(y^2,y>1) O(sqrt(n))找出n的所有因子. ...