Android4.4 Makefile属性:LOCAL_AAPT_FLAGS的使用

今天改导入/导出联系人方面的东西,导入/导出联系人的这个面板是一个DialogFragment,跟了下代码发现其实现packages/apps/ContactsCommon中,那么在其中添加了一些Log,进入到packages/apps/ContactsCommon/目录下,mm,编译生成了一个com.android.contacts.common.apk,把此程序push到系统中,添加的Log信息却怎么也打不出来,开始怀疑是不是弄错了,并不是这个地方实现的(Android源码中还是有一些重复的代码的),于是又整个工程搜索了一遍,那个导入/导出联系人的DialogFragment只在这里定义了,于是就郁闷了。。。在Android.mk中也看不出什么问题:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, res)

LOCAL_JAVA_LIBRARIES := telephony-common

LOCAL_STATIC_JAVA_LIBRARIES := \

com.android.phone.shared \

com.android.vcard \

guava \

android-common \

android-support-v13 \

android-support-v4 \

LOCAL_PACKAGE_NAME := com.android.contacts.common

LOCAL_PROGUARD_ENABLED := disabled

LOCAL_PROGUARD_FLAG_FILES := proguard.flags

include $(BUILD_PACKAGE)

# Use the folloing include to make our test apk.

include $(call all-makefiles-under,$(LOCAL_PATH))

=========================================================================

后来搜索了一下com.android.contacts.common,发现在packages/apps/Dialer和packages/apps/Contacts中都有引用,

Contacts的Android.mk文件:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

contacts_common_dir := ../ContactsCommon

src_dirs := src $(contacts_common_dir)/src

res_dirs := res $(contacts_common_dir)/res

LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))

LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))

LOCAL_AAPT_FLAGS := \

--auto-add-overlay \

--extra-packages com.android.contacts.common

LOCAL_JAVA_LIBRARIES := telephony-common voip-common

LOCAL_STATIC_JAVA_LIBRARIES := \

com.android.phone.shared \

com.android.vcard \

android-common \

guava \

android-support-v13 \

android-support-v4 \

android-ex-variablespeed \

LOCAL_REQUIRED_MODULES := libvariablespeed

LOCAL_PACKAGE_NAME := Contacts

LOCAL_CERTIFICATE := shared

LOCAL_PROGUARD_FLAG_FILES := proguard.flags

include $(BUILD_PACKAGE)

# Use the folloing include to make our test apk.

include $(call all-makefiles-under,$(LOCAL_PATH))

=================================================================

其中有这一段:

LOCAL_AAPT_FLAGS := \

--auto-add-overlay \

--extra-packages com.android.contacts.common

而且在Contacts的AndroidManifest.xml中也注册了很多ContactsCommon中的类,于是我想ContactsCommon是通过这种方式集成到Contacts这个程序中去了,编译了一下Contacts,push进系统,发现Log果然可以出来了。

在Android系统中,拨号程序(packages/apps/Dialer)和联系人程序(packages/apps/Contacts)之间的耦合性非常的大,在拨号中可以调取联系人信息,在联系人中可以进入到拨号界面(当然,还有一个短信程序也是互相联通的),所以我觉得,为了更好的使这些程序夸进程访问,就引出来了这个ContactsCommon的程序(Android4.3之前是没有这个东西的),相当于一个中间人吧。

时间: 2024-11-07 01:02:29

Android4.4 Makefile属性:LOCAL_AAPT_FLAGS的使用的相关文章

RelativeLayout的属性设置

设有两个控件one和two,以控件one为基准.由于代码比较简单就不贴了,直接上效果图. 一.第一组:将控件two放在控件one的上.下.左.右.开始.结束. android:layout_below="" 上         android:layout_above="" 下         android:layout_toLeftOf="" 左         android:layout_toRightOf="" 右 

RelativeLayout属性

设有两个控件one和two,以控件one为基准.由于代码比较简单就不贴了,直接上效果图. 一.第一组:将控件two放在控件one的上.下.左.右.开始.结束. android:layout_below="" 上        android:layout_above="" 下        android:layout_toLeftOf="" 左        android:layout_toRightOf="" 右   

CentOS7下Docker与.net Core 2.2

一.使用 yum 安装(CentOS 7下) Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . 通过 uname -r 命令查看你当前的内核版本 二.安装 Docker 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE. Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用. 1.移除旧的版本 $ s

CentOS7下使用Docker容器化.net Core 2.2

原文:CentOS7下使用Docker容器化.net Core 2.2 一.使用 yum 安装(CentOS 7下) Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . 通过 uname -r 命令查看你当前的内核版本 二.安装 Docker 从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE. Docker CE 即社区免费版,Dock

android4.4之触摸点属性(down、move、up)

通常应用程序在处理触摸事件时一般会用到motionevent.getAction()来判断上报的触摸点是ACTION_DOWN.ACTION_MOVE或ACTION_UP,然后做出移动.缩放等处理逻辑.每一个触摸点属性是在哪里定义的呢?是驱动上报就标记了每个点的触摸属性吗? 直接给结论:对于触摸点的属性,在InputReader中的dispatchTouches()函数中定义,而不是驱动给的. void TouchInputMapper::dispatchTouches(nsecs_t when

Android4.0.4-在build.prop中添加属性的方法【转】

本文转载自:http://blog.csdn.net/imyfriend/article/details/8939964 1.在*.rc文件中用setprop添加,例如在源码android4.0\system\core\rootdir\etc\init.goldfish.rc中有以下内容: setprop ARGH ARGH    setprop net.eth0.gw 10.0.2.2    setprop net.eth0.dns1 10.0.2.3    setprop net.gprs.

在Ubuntu14.04上编译Android4.0.1出现的几个问题

一. 工具 sudo apt-get install git-core gnupg flex bison gperf build-essential \       zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \       libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \       libgl1-mesa-dev g++-multilib mingw

Android4.2.2下Stagefright多媒体架构中的A31的OMX插件和Codec组件

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢. 欢迎和大家交流.qq:1037701636 email: [email protected] 在前面的博文中提到,AwesomePlayer::onPrepareAsyncEvent()开始进行Codec解码器组件的获取以及创建,这里和大家分享. 1.以解码器实例作为切入点 status_t AwesomePlayer::initVideoDecoder(uint32_t flags) { ATRACE_CALL(); ...... ALOG

Android4.4的zygote进程(上)

1背景 前些天为了在科室做培训,我基于Android 4.4重新整理了一份关于zygote的文档.从技术的角度看,这几年zygote并没有出现什么大的变化,所以如果有人以前研究过zygote,应该不会对本文写的内容感到陌生. 2zygote进程的描述 在Android中,zygote是整个系统创建新进程的核心装置.从字面上看,zygote是受精卵的意思,它的主要工作就是进行细胞分裂. zygote进程在内部会先启动Dalvik虚拟机,继而加载一些必要的系统资源和系统类,最后进入一种监听状态.在后