audioPolicyServer解析

本文深入探讨Android多媒体中的AudioPolicyServer,它是音频策略的制定者,管理所有音频硬件。文章介绍了AudioPolicyServer的类组织关系、初始化过程,包括AudioPolicyManager和AudioPolicyClient的角色,以及如何加载音频设备和配置文件。

        研究Android多媒体已经有一段时间,特撰写关于android多媒体系列的文章,为了加深理解和认识,也希望能为想了解多媒体的同学提供帮助。

      AudioPolicyServer看名字也能猜到应该和策略相关的一些功能,不错AudioPolicyServer正是音频策略的制定者,管理和运营所有android手机上的音频硬件,我们可以通过adb shell进入手机终端,进入cd /dev/snd/ 目录查看当前手机都有那些音频设备,会发现手机上的音频设备会很多。播放音乐,来电,响铃究竟是开启的是那个音频设备呢,某种Stream类型的音频应对应什么设备,AudioPolicyServer是怎样维护现有系统中的音频设备,各个设备之间如何切换,调节音量时调节是哪个设备呢,带着这些疑问来看看AudioPolicyServer是如何实现的。


 一 首先让我们来看看与AudioPolicyServer相关联类的组织关系


1.1  AudioPolicyServer类继承IAudioPolicyServer类,为其他应用程序提供audio策略相关的功能,对外的唯一接口。

1.2   AudioPolicyManagerCustom或者AudioPolicyManagerBase,有些厂商会定制这个类,继承AudioPolicyManager,AudioPolicyManager是一个非常重要的一个类,策略的具体制定是由此类实施的,AudioPolicyServer调用AudioPolicyManager的实例来实现各种策略的功能

1.3   AudioPolicyClient类继承AudioPolicyClientInterface,AudioPolicyClient类负责与AudioFlinger的交互,AudioPolicyServer是策略的制定者,但策略的具体实施是由AudioFlinger类完成,AudioPolicyServer确定具体策略时,交给AudioPolicyClient,AudioPolicyClient在传达给AudioFlinger,AudioPolicyClient类似一个信使或者中介者。

1.4   EngineInstance类,主要为获取Engine实例提供接口,Engine类规定了具体策略相关的规定,并通过ManagerInterfaceImpl向AudioPolicyManager提供信息。


二 AudioPolicyServer初始化过程

       AudioPolicyServer是在开机的时候被初始化的,源码位于

frameworks/av/media/mediaserver/main_mediaserver.cpp 中

int main(int argc __unused, char** argv)
{
    signal(SIGPIPE, SIG_IGN);
   ......................
        InitializeIcuOrDie();
        sp proc(ProcessState::self());
        sp sm = defaultServiceManager();
        ALOGI("ServiceManager: %p", sm.get());
        //首先初始化AudioFlinger
        AudioFlinger::instantiate();
        MediaPlayerService::instantiate();
        ResourceManagerService::instantiate();
        CameraService::instantiate();
        //在初始化AudioPolicyService
        AudioPolicyService::instantiate();
        SoundTriggerHwService::instantiate();
        RadioService::instantiate();
#ifdef AUDIO_LISTEN_ENABLED
        ALOGI("ListenService instantiated");
        ListenService::instantiate();
#endif
        registerExtensions();
        ProcessState::self()->startThreadPool();
        IPCThreadState::self()->joinThreadPool();
    }
}

AudioPolicyService::instantiate(), instantiate是父类BinderService的方法,实现在frameworks/native/include/binder/Binder.h,static void instantiate() { publish(); },直接调用 publish,BinderService是个模板类, publish函数中直接new 一个server实例并托管到servermanger中。接下来我们分析一下具体的初始化过程,见时序图

2.1 AudioPolicyService::AudioPolicyService()构造函数


AudioPolicyService::AudioPolicyService()
    : BnAudioPolicyService(), mpAudioPolicyDev(NULL), mpAudioPolicy(NULL),
      mAudioPolicyManager(NULL), mAudioPolicyClient(NULL), mPhoneState(AUDIO_MODE_INVALID)
{
}

AudioPolicyService构造函数初始化几个变量,其他的就没做啥,当AudioPolicyService第一次别引用时触发AudioPolicyService::onFirstRef()函数,且只有第一次被引用才会被调用,以后的调用中不会在触发此函数。

void AudioPolicyService::onFirstRef()
{
    char value[PROPERTY_VALUE_MAX];
    const struct hw_module_t *module;
    int forced_val;
    int rc;

    {
        Mutex::Autolock _l(mLock);

        // start tone playback thread
        mTonePlaybackThread = new AudioCommandThread(String8("ApmTone"), this);
        // start audio commands thread
        mAudioCommandThread = new AudioCommandThread(String8("ApmAudio"), this);
        // start output activity command thread
        mOutputCommandThread = new AudioCommandThread(String8("ApmOutput"), this);

#ifdef USE_LEGACY_AUDIO_POLICY
        ALOGI("AudioPolicyService CSTOR in legacy mode");

        /* instantiate the audio policy manager */
        rc = hw_get_module(AUDIO_POLICY_HARDWARE_MODULE_ID, &module);
        if (rc) {
            return;
        }
        rc = audio_policy_dev_open(module, &mpAudioPolicyDev);
        ALOGE_IF(rc, "couldn't open audio policy device (%s)", strerror(-rc));
        if (rc) {
            return;
        }

        rc = mpAudioPolicyDev->create_audio_policy(mpAudioPolicyDev, &aps_ops, this,
                                                   &mpAudioPolicy);
        ALOGE_IF(rc, "couldn't create audio policy (%s)", strerror(-rc));
        if (rc) {
            return;
     
C01406/render_service/skia: hpae_offline: hape so is not loaded. 11-24 12:44:09.002 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:2 bind mount /system/data to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/system/data 11-24 12:44:09.003 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:2 bind mount /system/etc/hosts to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/data/service/el1/public/hosts_user/hosts 11-24 12:44:09.003 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:2 bind mount /vendor/lib to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/vendor/lib 11-24 12:44:09.007 1344 1344 W C01406/render_service/skia: hpae_offline: hape so is not loaded. 11-24 12:44:09.013 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:2 bind mount /data/app/el1/public/aot_compiler/ark_cache/com.huawei.hmos.screenrecorder to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/data/storage/ark-cache 11-24 12:44:09.013 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: check dir /data/app/el1/public/aot_compiler/ark_cache/com.huawei.hmos.screenrecorder failed,strerror:No such file or directory 11-24 12:44:09.016 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:13 private mount to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/data/service/el0/public/for-all-app '524288' failed 11-24 12:44:09.017 1095 1107 W C01C42/time_service/TimeService: t3 207579964 11-24 12:44:09.020 21331 50327 I C02B61/com.tencent.wechat1/ImageCode: ImageSource::UpdateXmageCoordinatesFromExif cost 14 us 11-24 12:44:09.020 1344 1344 W C01406/render_service/skia: hpae_offline: hape so is not loaded. 11-24 12:44:09.020 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:2 bind mount /chip_prod/etc/passthrough to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/chip_prod/etc/passthrough 11-24 12:44:09.021 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:13 private mount to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/vendor/etc/vulkan '524288' failed 11-24 12:44:09.023 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:2 bind mount /vendor/etc/silk to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/vendor/etc/silk 11-24 12:44:09.024 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:2 bind mount /system/asan/lib64 to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/system/asan/lib64 11-24 12:44:09.024 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:2 bind mount /vendor/asan/lib64 to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/vendor/asan/lib64 11-24 12:44:09.025 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:13 private mount to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/chip_prod/lib64/passthrough '524288' failed 11-24 12:44:09.026 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:2 bind mount /system/app/ohos.global.systemres to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/data/global/systemResources 11-24 12:44:09.030 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: errno:2 bind mount /data/preload/app to /mnt/sandbox/100/com.huawei.hmos.screenrecorder/data/preload/app 11-24 12:44:09.032 1344 1344 W C01406/render_service/skia: hpae_offline: hape so is not loaded. 11-24 12:44:09.041 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: path /storage/Users/currentUser/Download/com.huawei.hmos.screenrecorder mode 0x3 11-24 12:44:09.041 50708 50708 E C05A06/com.huawei.hmos.screenrecorder/CODE_SIGN: [XpmIoctl]:Ioctl cmd 40087803 failed: Invalid argument (ignore) 11-24 12:44:09.043 50708 50708 E C05A03/com.huawei.hmos.screenrecorder/Selinux: Read /version/etc/selinux/product_config failed, errno: No such file or directory 11-24 12:44:09.045 1344 1344 W C01406/render_service/skia: hpae_offline: hape so is not loaded. 11-24 12:44:09.049 50708 50708 I C05A05/com.huawei.hmos.screenrecorder/SecCompEnhanceClient: [RegisterCheckCallback]Register secComp: sessionId=3084769264, seqNum=******633. 11-24 12:44:09.050 21331 50324 I C02B61/com.tencent.wechat1/ImageCode: ImageSource::UpdateXmageCoordinatesFromExif cost 13 us 11-24 12:44:09.051 844 6322 I C05A01/accesstoken_service/ATM: [RegisterSecCompEnhance:1695]Pid: 0 11-24 12:44:09.051 844 6322 I C05A01/accesstoken_service/ATM: [RegisterSecCompEnhance:123]Register sec comp enhance success, pid 50708, total 34. 11-24 12:44:09.051 50708 50708 I C02D0B/com.huawei.hmos.screenrecorder/HICHECKER: hichecker param is empty. 11-24 12:44:09.051 50708 50708 I C04500/com.huawei.hmos.screenrecorder/webview: SelectWebcoreBeforeProcessRun: SelectWebcoreBeforeProcessRun for app com.huawei.hmos.screenrecorder. 11-24 12:44:09.052 50708 50708 I C02C11/com.huawei.hmos.screenrecorder/APPSPAWN: ClearEnvAndReturnSuccess 4 11-24 12:44:09.052 519 519 I C02C11/appspawn/APPSPAWN: [appspawn_service.c:1053]Child process com.huawei.hmos.screenrecorder success pid 50708 appId: 5262 result: 0 11-24 12:44:09.052 519 519 I C02C11/appspawn/APPSPAWN: [appspawn_appmgr.c:169]Add com.huawei.hmos.screenrecorder, pid=50708 success 11-24 12:44:09.052 519 519 I C02C11/appspawn/APPSPAWN: [appspawn_service.c:602]watch app process pid 50708, pidFd 58 11-24 12:44:09.052 50708 50708 I C01317/com.huawei.hmos.screenrecorder/AppKit: [MAINTHD3020]mainthread start, pid:50708 11-24 12:44:09.053 519 519 I C02C11/appspawn/APPSPAWN: [appspawn_service.c:266]SendMessageComplete connectionId: 3 result 0 app com.huawei.hmos.screenrecorder pid 50708 11-24 12:44:09.053 1346 50427 I C02C11/foundation/APPSPAWN_CLIENT: [appspawn_client.c:444]AppSpawnClientSendMsg reqId: 5399 fd: 109 end result: 0x0 pid: 50708 11-24 12:44:09.053 1346 50427 I C01311/foundation/AppMS: [ASC633]pid50708 11-24 12:44:09.053 1346 50427 I C01311/foundation/AppMS: [AMSI4472]spawned pname: com.huawei.hmos.screenrecorder pid: 50708 11-24 12:44:09.053 1428 1428 I C02B91/av_session/AVSession: [HandleAppStateChanged]uid=20020164|pid=50708|state=0 11-24 12:44:09.054 674 45249 I C02B87/audio_server/AudioServiceAppStateListener: [OnAppStateChanged]app state changed, bundleName=com.huawei.hmos.screenrecorder uid=20020164 pid=50708 state=0 11-24 12:44:09.056 1346 50427 W C01336/foundation/AMS: [resident_process_manager269]rdbResult: 5 11-24 12:44:09.056 1344 1344 W C01406/render_service/skia: hpae_offline: hape so is not loaded. 11-24 12:44:09.057 1428 1428 I C02B91/av_session/AVSession: [HandleAppStateChanged]uid=20020164|pid=50708|state=99 11-24 12:44:09.058 674 45249 W C02B8B/audio_server/DfxMsgManager: [CheckCanAddAppInfo]skip system app dfx msg.., appuid=20020164 11-24 12:44:09.058 674 45249 I C02B87/audio_server/AudioServiceAppStateListener: [OnAppStateChanged]app state changed, bundleName=com.huawei.hmos.screenrecorder uid=20020164 pid=50708 state=99 11-24 12:44:09.058 787 47864 I C0470A/resource_schedule_service/GameServicePerf: [a92abbe2990e4e9 0 0][(DispatchResource:233)]GameServiceScenePlugin recv event: type=1 value=0 payload=<private> 11-24 12:44:09.060 1346 45269 I C01311/foundation/AppMS: [ASOM649]b:com.huawei.hmos.screenrecorder pid:50708 u:20020164 pt:1 et:3 pName:com.huawei.hmos.screenrecorder ru:-1 tMode:0 cPid:5596 cU:20020016 11-24 12:44:09.060 787 949 I C01713/resource_schedule_service/SUSPEND_MANAGER: [a92abbe298209f0 0 0]44956 is called by 1346, this binder call thaw pid 44956, caller name:foundation, ipcCode:6, transactionFlags:0X11, ipcDescriptor:ohos.appexecfwk.IApplicationStateObserver 11-24 12:44:09.060 687 687 I C01707/concurrent_task_service/CONCUR: [a92abbe2990e4e9 0 0][ProcMgr] app 50708 start, 2AAA size()=30 11-24 12:44:09.061 50708 50708 I C01317/com.huawei.hmos.screenrecorder/AppKit: [MAINTHD416]attach 11-24 12:44:09.061 787 949 I C01713/resource_schedule_service/SUSPEND_MANAGER: [a92abbe298209f0 0 0]ThawPids Thaw pid: 44956 success. 11-24 12:44:09.062 787 949 I C01732/resource_schedule_service/SUSPEND_PROXY: [a92abbe298209f0 0 0]uid:20020031, pids:[44956,], resourceFlags:0, isProxy:0, KeepAlive:[44956_1,] 11-24 12:44:09.062 787 949 I C01732/resource_schedule_service/SUSPEND_PROXY: [a92abbe298209f0 0 0]uid:20020031, pids:[44956,], resourceFlags:0, isProxy:0 11-24 12:44:09.062 787 50648 I C04201/resource_schedule_service/DMS: [a92abbe298209f0 0 0]ProxyForFreeze: pidList:44956 , isProxy: 0 11-24 12:44:09.062 1346 1687 W C04201/foundation/DMS: [a92abbe298209f0 0 0]screen_session_manager.cpp NotifyUnfreezed: pid,type:6055,3 |6726,11 |14542,3 |20553,3 |26894,11 |28056,11 |32977,11 |40467,3 | 11-24 12:44:09.063 1318 60687 I C02908/powermgr/PowerRunningLock: [a92abbe298209f0 0 0]Deproxykey=44956_20020031 11-24 12:44:09.063 787 47793 I C02B87/resource_schedule_service/AudioSystemManager: [a92abbe298209f0 0 0][NotifyFreezeStateChange]In 11-24 12:44:09.063 787 44866 E C02700/resource_schedule_service/ISensorServiceIdl: [nodict][a92abbe298209f0 0 0]Read result failed, code is: 8. 11-24 12:44:09.063 20983 45289 I C00102/bluetooth_service/bt_server_ble_central_manager: [a92abbe298209f0 0 0][-1](FreezeByRss:795)bluetooth freeze, pid[44956 ] isFreeze: 0 11-24 12:44:09.063 1303 52436 I C02300/locationhub/ProxyFreezeManager: [a92abbe298209f0 0 0][(ProxyForFreeze:49)]Start locator proxy, pid: 44956, isProxy: 0, timestamp = 1763959449063 11-24 12:44:09.063 674 676 I C02B8B/audio_server/AudioPolicyServer: [a92abbe298209f0 0 0][NotifyFreezeStateChange]In 11-24 12:44:09.063 674 676 I C02B8B/audio_server/AudioBackgroundManager: [a92abbe298209f0 0 0][NotifyFreezeStateChange]appStatesMap_ change pid: 44956 with hasSession: 0, isBack: 0, hasBackgroundTask: 0, isFreeze: 0 11-24 12:44:09.064 1297 49508 E C05741/softbus_server/TransSvc: NearbySocketReject# destroyList is empty. 11-24 12:44:09.064 787 949 I C01713/resource_schedule_service/SUSPEND_MANAGER: [a92abbe298209f0 0 0]ProcTransitThawSuccess, Thaw 20020031_com.huawei.hmsapp.intelligent, C_[(0,0,0,0,1)], T_0, R_0, S_0, pT_0, eT_3, cC_0, [44956_0_1][], THAW_BY_BINDER_CALL_ASYNC 11-24 12:44:09.064 1346 50427 I C01311/foundation/AppMS: [AMSI1461]attach com.huawei.hmos.screenrecorder pid:50708 11-24 12:44:09.064 1346 50427 I C01311/foundation/AppMS: [ARR538]Launch pending abilities. 11-24 12:44:09.066 787 939 I C01718/resource_schedule_service/StandbyService: [OnProcessStatusChanged:922] process status change, uid: 20020164, pid: 50708, name: com.huawei.hmos.screenrecorder, alive: 1 11-24 12:44:09.067 787 47849 I C01702/resource_schedule_service/CgroupEventHandler: [a92abde2991061a 0 0]HandleProcessCreated : 20020164, 50708, 0, 1, com.huawei.hmos.screenrecorder, 3 11-24 12:44:09.067 787 47849 I C01702/resource_schedule_service/CgroupAdjuster: [a92abde2991061a 0 0]AdjustProcessGroup for 50708, source : 3 11-24 12:44:09.067 787 47792 W C01744/resource_schedule_service/PerformanceEnhance: [a92abde2991061a 0 0][HandleAsyncResType]WhiteBlockFeature HandleAsyncResType type is other 11-24 12:44:09.067 787 47908 I C0470A/resource_schedule_service/GameServicePerf: [a92abde2991061a 0 0][(DispatchResource:233)]GameServiceScenePlugin recv event: type=4 value=0 payload=<private> 11-24 12:44:09.068 787 44867 I C01702/resource_schedule_service/CgroupAdjuster: [a92abde2991061a 0 0]ApplyProcessGroup Set 50708's cgroup from 255 to 0. 11-24 12:44:09.068 1344 1344 W C01406/render_service/skia: hpae_offline: hape so is not loaded. 11-24 12:44:09.068 787 44869 I C01731/resource_schedule_service/SUSPEND_MSG: [a92abde2991061a 0 0]20020164_com.huawei.hmos.screenrecorder_50708 create, type:1_3_0 11-24 12:44:09.068 787 47792 I C01704/resource_schedule_service/TagSched: [a92abde2991061a 0 0][SetQosRealtimeTask]ThreadModifyQos,setQos 50708 tid[50708], qos[7] 11-24 12:44:09.070 787 44866 I C01705/resource_schedule_service/IOLIMIT: [a92abde2991061a 0 0][(CheckIsRemoveAndSystem):399] com.huawei.hmos.screenrecorder is system app 11-24 12:44:09.070 735 45609 I C02699/memmgrservice/MM: OnProcessCreated 20020164,50708,com.huawei.hmos.screenrecorder,com.huawei.hmos.screenrecorder,0,0,1,0 11-24 12:44:09.071 50708 50762 I C01317/com.huawei.hmos.screenrecorder/AppKit: [MAINTHD810]ScheduleLaunchAbility called, ability com.huawei.hmos.screenrecorder.ServiceExtAbility, type is 5. 11-24 12:44:09.071 787 949 I C01713/resource_schedule_service/SUSPEND_MANAGER: [a92abde2991061a 0 0]add freeze unit: 20020164_com.huawei.hmos.screenrecorder, C_[(0,0,0,0,1)], T_0, R_0, S_0, pT_0, eT_3, cC_0, [50708_0_0][] 11-24 12:44:09.071 735 49602 I C02699/memmgrservice/MM: UpdatePriorityLocked CRE: 50708, 20020164, 200, [], 00000 11-24 12:44:09.071 787 949 I C01731/resource_schedule_service/SUSPEND_MSG: [a92abde2991061a 0 0]pid:50708, detectStatus:1, timeoutDuration:11000 11-24 12:44:09.072 50708 50708 E C01317/com.huawei.hmos.screenrecorder/AppKit: [MAINTHD3855]developer Mode false 11-24 12:44:09.073 854 20525 I C015B5/netmanager/NetMgrEnhanced: OnAppStarted appName:com.huawei.hmos.screenrecorder uid:20020164 pid:50708 state:0 11-24 12:44:09.076 50708 50708 I C03900/com.huawei.hmos.screenrecorder/ACE_UIContent: [69]AceForwardCompatibility [com.huawei.hmos.screenrecorder] force:1 newpipe:1 11-24 12:44:09.067 854 56713 E C01719/netmanager/ffrt: [a92abbe298209f0 0 0]60:GetEventHandler:593 [queueId=11] type invalid 11-24 12:44:09.078 1346 44424 W C01120/foundation/BMS: permission denied caller:536935467 11-24 12:44:09.079 1344 1344 W C01406/render_service/skia: hpae_offline: hape so is not loaded. 11-24 12:44:09.079 50708 50708 I C01317/com.huawei.hmos.screenrecorder/AppKit: [MAINTHD241]NativeLibPath empty 11-24 12:44:09.082 21331 50321 I C02B61/com.tencent.wechat1/ImageCode: ImageSource::UpdateXmageCoordinatesFromExif cost 14 us 11-24 12:44:09.085 517 45934 I C02DA0/hiview/FaultLeakDetectorManager: NotifyProcessCreate: notify create com.huawei.hmos.screenrecorder:50708, processType:3 11-24 12:44:09.086 854 974 I C015B5/netmanager/NetMgrEnhanced: NotifyAbilityStateChanged:uid=2******4, pid=50708, state=0, abilityName=com.huawei.hmos.screenrecorder.ServiceExtAbility 11-24 12:44:09.091 50708 50708 I C01317/com.huawei.hmos.screenrecorder/AppKit: [MAINTHD1731]SmartGC: process is start. enable warm startup SmartGC: 0 11-24 12:44:09.093 50708 50708 I C03F00/com.huawei.hmos.screenrecorder/ArkCompiler: [ecmascript] asmint: 1, aot: 0, jit: 1, baseline jit: 0, bundle name: com.huawei.hmos.screenrecorder 11-24 12:44:09.094 1344 1344 W C01406/render_service/skia: hpae_offline: hape so is not loaded. 11-24 12:44:09.094 50708 50769 W C01719/com.huawei.hmos.screenrecorder/ffrt: 2:operator():110 [967145864] set priority warn ret[1] eno[0] 11-24 12:44:09.096 50708 50708 I C03F00/com.huawei.hmos.screenrecorder/ArkCompiler: [ecmascript] multi-thread check enabled: 0 11-24 12:44:09.096 50708 50708 I C03F00/com.huawei.hmos.screenrecorder/ArkCompiler: [pgo] reset pgo profiler, pgo profiler is disabled 11-24 12:44:09.097 787 50767 I C01702/resource_schedule_service/CGS: [a92abfe2991503e 0 0]retCode of collectResult: 0 11-24 12:44:09.097 787 50767 I C01702/resource_schedule_service/CGS: [a92abfe2991503e 0 0]CgroupSuppressionDecider isSuppressionState_:0, cpuLoadPercent:31, thermalLevel:0, isBootCompleted:0, isContinuousStartUp:1, 11-24 12:44:09.099 50708 50708 I C03F00/com.huawei.hmos.screenrecorder/ArkCompiler: [gc] SmartGC: startup GC restrain, phase 1 threshold: local 448MB, shared 355MB; phase 2 threshold: local 112MB, shared 145MB 11-24 12:44:09.100 50708 50708 I C03301/com.huawei.hmos.screenrecorder/LIBUV: init:9456 11-24 12:44:09.100 1346 46444 I C01120/foundation/BMS: rdb -n com.huawei.hmos.screenrecorder -i 0 11-24 12:44:09.100 50708 50708 I C03301/com.huawei.hmos.screenrecorder/LIBUV: init:9456, backend_fd:26 11-24 12:44:09.100 50708 50708 I C03301/com.huawei.hmos.screenrecorder/LIBUV: open:9456, pipefd[0]:29 11-24 12:44:09.101 50708 50708 I C03F00/com.huawei.hmos.screenrecorder/ArkCompiler: [ecmascript] can not find aot file 11-24 12:44:09.102 50708 50708 E C01305/com.huawei.hmos.screenrecorder/Base: [zip_file.cpp(ExtractToBufByName:933)]GetEntry from pkgContextInfo.json err 11-24 12:44:09.103 1344 1344 W C01406/render_service/skia: hpae_offline: hape so is not loaded. 11-24 12:44:09.105 1346 46444 I C01120/foundation/BMS: rdb end 11-24 12:44:09.106 50708 50708 I C01E00/com.huawei.hmos.screenrecorder/GLOBAL_I18N: RegisterIntl: Replace buildin Intl Success. 11-24 12:44:09.106 50708 50708 E C01321/com.huawei.hmos.screenrecorder/JsRuntime: [js_runtime236]developer Mode false
最新发布
12-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值