这两天做了领导说的一个任务:通过不同的APK来适配不同的音频参数。
拿到任务后,首先
第一步:
确定了APK的类型定义在哪个文件,路径为:
android/device/qcom/msm8909/system.prop:
#chattype: 0- cytyonchat 1- Qchat 2- ctchat 3- ZhuoZhiDa
persist.sys.chattype=2
选择不同的APK类型。
第二步:
找到音频参数更换的路径,为:
android/vendor/qcom/proprietary/mm-audio/audcal/family-b/acdbdata/8909/MTP
在8909的路径下面有一个android.mk的文件,此文件里面包含了关于编译音频文件及生成;
第三步:
我需要在android.mk文件中获取当前编译的apk是属于哪个属性,
获取的方法为:
VRE_TMP:=$(shell grep “persist.sys.chattype=” ./device/qcom/msm8909/system.prop)
增加打印信息:
$(warning " VRE_TMP = (VRETMP)")通过打印log得到:VRETMP=persist.sys.chattype=2"遇到的问题:一开始我的打印出的信息始终为空,纠其原因,是因为我在搜索字符串的时候给的相对路径是不对的,如下:VRETMP:=(VRE_TMP)")
通过打印log得到:
VRE_TMP = persist.sys.chattype=2"
遇到的问题:
一开始我的打印出的信息始终为空,纠其原因,是因为我在搜索字符串的时候给的相对路径是不对的,如下:
VRE_TMP:=(VRETMP)")通过打印log得到:VRETMP=persist.sys.chattype=2"遇到的问题:一开始我的打印出的信息始终为空,纠其原因,是因为我在搜索字符串的时候给的相对路径是不对的,如下:VRETMP:=(shell grep “persist.sys.chattype=” …/…/…/…/…/…/…/…/device/qcom/msm8909/system.prop)
也就是说这个相对路径下没有我要找的这个文件,绝对路径虽然可以找到,但是只适合在我的电脑,不适合在其它同事的电脑。
所以便在android.mk文件中加了一句当前路径的打印信息,如下:
MY_PATH:=$(shell pwd)
$(warning " MY_PATH = (MYPATH)")得到路径log信息为:"MYPATH=/home/jianghai/work/GT22/GT22/android"由此看到是在源码根目录下执行的。所以改掉相对路径就OK了。第四步:在android.mk中加上判断语句;ifneq((MY_PATH)")
得到路径log信息为:
" MY_PATH = /home/jianghai/work/GT22/GT22/android"
由此看到是在源码根目录下执行的。所以改掉相对路径就OK了。
第四步:
在android.mk中加上判断语句;
ifneq ((MYPATH)")得到路径log信息为:"MYPATH=/home/jianghai/work/GT22/GT22/android"由此看到是在源码根目录下执行的。所以改掉相对路径就OK了。第四步:在android.mk中加上判断语句;ifneq((filter %0,$(VRE_TMP)),)
endif
ifneq ((filter(filter %1,(filter(VRE_TMP)),)
endif
ifneq ((filter(filter %2,(filter(VRE_TMP)),)
endif
ifneq ((filter(filter %3,(filter(VRE_TMP)),)
endif
这里的ifneq判断是否含有***0or1or2or3,符合那个就进那个ifneq条件