今天第一次看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. Zookeeper入门-Java版本HelloWorld例子

    上一篇介绍了,Zookeeper的基本概念,怎么启动,怎么解决可能遇到的几个问题.本篇,根据网上代码,整理了一个例子,Zookeeper的HelloWorld. 下面这个代码,还是比较简单的,核心类就 ...

  2. 思科E3200 路由器 DD-WRT 设置花生壳和3322.org动态域名(DDNS)

    花生壳设置(已測试) ddns.oray.com:80 username   aaaa password bbbb 主机名   abc.gicp.net URL       /ph/update?ho ...

  3. 美团实习生电面之谈(成功拿到offer)

    3月底进行了美团的一次实习生面试(Java研发project师).当时顺利的通过一面.以下是我的一面: 1.CPU由哪些部分组成 2.线程和进程的差别 3.Java类载入机制 4.怎样实现一个字符串的 ...

  4. hdoj--1034--Hidden String(dfs)

    Hidden String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) ...

  5. POJ 2436 二进制枚举

    题意: 思路: 拆成二进制枚举 有哪个病毒在 判一判 就好了 //By SiriusRen #include <cstdio> #include <cstring> #incl ...

  6. py2exe打包python脚本

    在工作中遇到将python脚本转换成exe可执行程序的需求,通过查询可以使用py2exe来构建满足要求的程序,这里简要说明一下使用步骤. 一.py2exe是一个将python脚本转换成windows上 ...

  7. angularjs input使用ng-model双向绑定无效bug解决

    一.问题描述 当我们给input双向绑定变量的时候,使用ng-model有时候会出现无效的情况 二.解决办法 将绑定的变量写成对象的形式 控制器定义变量: $scope.inputText = {va ...

  8. pythong中的全局变量的调用和嵌套函数中变量的使用

    全局变量调用:想要在自定义的函数中使用全局变量,就得要在函数用关键字global声明,然后就可以对全局变量进行修改.嵌套函数中的变量的调用:要在嵌套的变量中,使用nonlocal的声明'''num = ...

  9. Hexo页面优化和音乐的心得

    灵感 这两天在添加“留言”以及“关于”页面,准备先简单设计一下自已的页面.留言页面可以放置一些自已比较感兴趣的音乐.以及一些JS特效,再集成一个第三方的留言功能.关于页面可以放置一些简单的联系方式.以 ...

  10. Scrapy框架之日志等级

    一.日志等级 CRITICAL:严重错误 ERROR:一般错误 WARNING:警告 INFO: 一般信息 DEBUG:调试信息 [注意:默认的日志等级是DEBUG] 二.日志等级设置 修改setti ...