zoukankan      html  css  js  c++  java
  • 记录android开发增加系统api所涉及到的各层级改动

    最近要实现一个功能,上层的APP需要打开底层某个外设,涉及到java层,native层,so库层,HAL层以及kernel层。这里进行简单的记录。

    1、frameworks/base/media/java/android/media/AudioManager.java
      public void AmSetVibratorMode(boolean on) {}
      public boolean AmGetVibratorMode() {}
    2、frameworks/base/services/core/java/com/android/server/audio/AudioService.java
      public void AsSetVibratorMode(boolean on) {}
      public boolean AsGetVibratorMode() {}
    3、frameworks/base/media/java/android/media/AudioSystem.java
      public static native int asSetVibratorMode(boolean on);
      public static native boolean asIsVibratorMode();
    4、frameworks/base/media/java/android/media/IAudioService.aidl
      void AsSetVibratorMode(boolean on) ;
      boolean AsGetVibratorMode();
    5、frameworks/base/core/jni/android_media_AudioSystem.cpp
      static jint android_media_AudioSystem_asSetVibratorMode(JNIEnv *env, jobject thiz, jboolean on){}
      static jboolean android_media_AudioSystem_asIsVibratorMode(JNIEnv *env, jobject thiz){}
      {"asSetVibratorMode", "(Z)I", (void *)android_media_AudioSystem_asSetVibratorMode}, //update static const JNINativeMethod gMethods[]
      {"asIsVibratorMode", "()Z", (void *)android_media_AudioSystem_asIsVibratorMode},
    6、frameworks/av/media/libmedia/AudioSystem.cpp
      status_t AudioSystem::asSetVibratorMode(bool state){}
      status_t AudioSystem::asIsVibratorMode(bool* state){}
    7、frameworks/av/include/media/AudioSystem.h
      static status_t asSetVibratorMode(bool state);
      static status_t asIsVibratorMode(bool *state);
    8、frameworks/av/services/audioflinger/AudioFlinger.cpp
      status_t AudioFlinger::setVibratorMode(bool state){}
      bool AudioFlinger::getVibratorMode() const{}
    9、frameworks/av/services/audioflinger/AudioFlinger.h
      virtual status_t setVibratorMode(bool state);
      virtual bool getVibratorMode() const;
    10、frameworks/av/media/libmedia/IAudioFlinger.cpp
      SET_VIB_MODE,
      GET_VIB_MODE,
      virtual status_t setVibratorMode(bool state){}
      virtual bool getVibratorMode() const{}
    11、frameworks/av/include/media/IAudioFlinger.h
      virtual status_t setVibratorMode(bool state) = 0;
      virtual bool getVibratorMode() const = 0;
    12、hardware/libhardware/include/hardware/audio.h
      int (*set_vibrator_mode)(struct audio_hw_device *dev, bool state);
      int (*get_vibrator_mode)(const struct audio_hw_device *dev, bool* state);
    13、hardware/aw/audio/audio_hw.c
      static int adev_set_vibrator_mode(struct audio_hw_device *dev, bool state){}
      static int adev_get_vibrator_mode(const struct audio_hw_device *dev, bool *state){}
      adev->device.set_vibrator_mode = adev_set_vibrator_mode;
      adev->device.get_vibrator_mode = adev_get_vibrator_mode;

    14、linux/kernel/sound/soc/sunxi/sun50iw3_sndcodec.c

      static ssize_t modeStat_show(struct device *dev, struct device_attribute *attr, char *buf);

      static ssize_t modeStat_store(struct device *dev, struct device_attribute *attr,const char *buf, size_t count);

  • 相关阅读:
    linux系统中输入输出重定向 0<、<、1>、>、2>、1>>、>>、2>>、&>、>&、&>>、2>&1、<<
    linux系统统计某一行出现特定字符的次数
    linux系统中常用的通配符*、?、[ ]、[^xxx]、{}
    R语言strsplit函数用法
    linux系统统计某一字符出现的次数
    什么时候你需要一个虚构函数是虚的
    strcpy的返回值有什么用?
    boost.array 使用实例
    《DB 查询分析器》使用技巧之(七)
    《微型电脑应用》2011年第11期刊登出《万能数据库查询分析器中的事务管理在Oracle中的应用》
  • 原文地址:https://www.cnblogs.com/fbli/p/14623266.html
Copyright © 2011-2022 走看看