博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
com.android.internal.R的位置
阅读量:2073 次
发布时间:2019-04-29

本文共 1152 字,大约阅读时间需要 3 分钟。

今天在看Android音频接口AudioManager.setStreamVolume的实现的时候,发现其源码如下:

    public void setStreamVolume(int streamType, int index, int flags) {

        IAudioService service = getService();
        try {
            if (mUseMasterVolume) {
                service.setMasterVolume(index, flags);
            } else {
                service.setStreamVolume(streamType, index, flags);
            }
        } catch (RemoteException e) {
            Log.e(TAG, "Dead object in setStreamVolume", e);
        }
    }

也就是根据mUseMasterVolume变量的值选择调用setMasterVolume还是setStreamVolume,mUseMasterVolume,mUseMasterVolume 的赋值语句如下:

mUseMasterVolume = mContext.getResources().getBoolean( com.android.internal.R.bool.config_useMasterVolume);

 

com.android.internal.R.bool.config_useMasterVolume这个资源在什么地方呢?根据com.android.internal.R中internal猜想此配置文件应该是个系统配置,果然在out/target/common/R/com/android/internal/R.java中找到了该资源文件,该资源文件是由frameworks/base/core/res/res下编译生成的。

注:在frameworks/base/core/res/res下的cofig.xml添加一个bool项,clean后,重新编译系统,frameworks层添加的程序仍然无法获取该Boolean项。

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

com.android.internal.R.bool.config_useMasterVolume这个资源在什么地方呢?根据com.android.internal.R中internal猜想此配置文件应该是个系统配置,果然在out/target/common/R/com/android/internal/R.中找到了该资源文件,该资源文件是由frameworks/base/core/res/res下编译生成的。

 

转载地址:http://ctvmf.baihongyu.com/

你可能感兴趣的文章
Linux Sed 命令
查看>>
StandardContext 错误
查看>>
如何添加网站favicon.ico图标
查看>>
cvs no such repository 问题
查看>>
MySQL中REGEXP正则表达式
查看>>
服务端UDP双向通信学习资料
查看>>
Mina TCP 编码解码相关资料收集
查看>>
Maven 打包 上传 运行
查看>>
Maven插件wagon-maven-plugin自动化部署
查看>>
使用wagon-maven-plugin插件自动部署项目
查看>>
Maven 打包的三种方式 和 Springboot 分离jar包
查看>>
ActiveMQ中Session设置的相关理解
查看>>
Linux Python 2.7.15
查看>>
Nexus配置Linux Yum Repository
查看>>
Nexus Python pip Repository
查看>>
Linux Mysql 8.0.1
查看>>
Python pymqi 连接 IBM MQ
查看>>
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof 详解
查看>>
Java - JVM TLAB、对象在内存中安置顺序、垃圾收集、回收算法
查看>>
转: 关于Linux与JVM的内存关系分析
查看>>