从代码可以看出,重要的结构体 ProcessInfoInterface , 先看一下代码定义
frameworks/av/media/libstagefright/include/media/stagefright/ProcessInfoInterface.h
struct ProcessInfoInterface : public RefBase {
// 根据 pid 获取 该进程的优先级
virtual bool getPriority(int pid, int* priority) = 0;
// 校验pid是否是合法
virtual bool isValidPid(int pid) = 0;
// 覆盖进程信息,如果已经缓存这个pid的进程信息,那么就替换成新的进程信息
virtual bool overrideProcessInfo(int pid, int procState, int oomScore);
// 移除缓存中的 pid 进程信息
virtual void removeProcessInfoOverride(int pid);
protected:
virtual ~ProcessInfoInterface() {
}
};
frameworks/av/media/libstagefright/include/media/stagefright/ProcessInfo.h
struct ProcessInfo : public ProcessInfoInterface {
ProcessInfo();
virtual bool getPriority(int pid, int* priority);
virtual bool isValidPid(int pid);
virtual bool overrideProcessInfo(int pid, int procState, int oomScore);
virtual void removeProcessInfoOverride(