美文网首页
内存优化

内存优化

作者: 我在等你回复可你没回 | 来源:发表于2019-05-30 10:41 被阅读0次

    native内存泄漏检测原理?

    有一个api
    API:get_malloc_leak_info
    参考:
    https://blog.csdn.net/u011280717/article/details/51820268

    内存大概印象

    一个system UI大概就是70多M的样子
    一个3D游戏也是70多M的样子
    一个Setting大概30多M的样子

    Uptime和Realtime是什么?

    应该是开机时间

    内存PSS是什么?

    Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
    就是平分了so库的,所以最后加起来就是占用的总大小。很稳

    Lost RAM是什么

    不可见内存
    Lost = driver reserve + GPU + ION
    ION是内存管理器。
    参考:https://www.jianshu.com/p/6893cea51512

    进程优先级

    查看,如下是前台进程。

    1|Hi3798MV200:/proc/4666 $ su
    Hi3798MV200:/proc/4666 # cat oo
    oom_adj        oom_score      oom_score_adj
    Hi3798MV200:/proc/4666 # cat  oom_score_adj
    0
    

    定义是在ProcessList.java文件中


    image.png

    参考:
    https://www.jianshu.com/p/4ee14aa23f07

    LowMemKiller原理

    就是内存较低的时候去杀进程。
    依赖两个节点的值去杀:
    /sys/module/lowmemorykiller/parameters/adj
    /sys/module/lowmemorykiller/parameters/adj
    看上去只会杀Android应用进程的样子。

    Android又分成adjType
    可以看到有很大堆


    image.png

    pts是什么?

    绘制流程

    hwc_STB.cpp
    hwc_prepare

    hwc_common_STB.cpp
    hisi_hwc_prepare

    分析

    出现下面的崩溃
    --------- beginning of crash
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: FATAL EXCEPTION: main
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: Process: com.antutu.videobench, PID: 4701
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: VideoResult.videoId (code 1555)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(Native Method)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:734)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:754)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:64)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1677)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1656)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at com.antutu.videobench.c.a.c.a(Unknown Source)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at com.antutu.videobench.activity.bh.handleMessage(Unknown Source)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6097)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
    05-30 07:40:38.617 4701 4701 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
    05-30 07:40:38.718 2665 3464 W ActivityManager: Force finishing activity com.antutu.videobench/.activity.TestMoviePlayerActivity

    有一些注册失败
    05-30 07:37:57.975 1707 3979 E AV : Do HI_UNF_AVPLAY_RegisterAcodecLib("libHA.AUDIO.DOLBYPLUS.decode.so") error, error code = 0xffffffff
    05-30 07:37:57.975 1707 3979 E AV : Do HI_UNF_AVPLAY_RegisterAcodecLib("libHA.AUDIO.DTSHD.decode.so") error, error code = 0xffffffff
    05-30 07:37:57.975 1707 3979 E AV : Do HI_UNF_AVPLAY_RegisterAcodecLib("libHA.AUDIO.DTSM6.decode.so") error, error code = 0xffffffff
    05-30 07:37:57.976 1707 3979 E AV : Do HI_UNF_AVPLAY_RegisterAcodecLib("libHA.AUDIO.DRA.decode.so") error, error code = 0xffffffff
    05-30 07:37:57.976 1707 3979 E AV : Do HI_UNF_AVPLAY_RegisterAcodecLib("libHA.AUDIO.DOLBYTRUEHD.decode.so") error, error code = 0xffffffff
    05-30 07:37:57.977 1707 3979 E AV : Do HI_UNF_AVPLAY_RegisterAcodecLib("libHA.AUDIO.WMA.decode.so") error, error code = 0xffffffff

    Line 1308: 05-30 07:37:50.314  1707  3089 V HisiMediaPlayer: set vdec error cover: 0
    

    05-30 08:17:30.928 2665 2694 D hwcursor: show the hal fb!
    05-30 08:17:30.945 2665 2688 D ViewRootImpl[videobench]: updatePointerIcon called with position out of bounds

    image.png

    注册在这里
    http:///device/hisilicon/bigfish/sdk/source/msp/api/avplay/

    代码框架主要在


    image.png

    有时占用超过了75
    User 74%, System 25%, IOW 0%, IRQ 0%
    User 955 + Nice 3 + Sys 333 + Idle 0 + IOW 0 + IRQ 0 + SIRQ 0 = 1291

    PID USER PR NI CPU% S #THR VSS RSS PCY Name
    17412 u0_a48 20 0 55% S 46 1192132K 317484K fg com.antutu.videobench
    26595 u0_a53 20 0 25% S 43 1270296K 59272K fg tv.danmaku.bili:ijkservice
    2279 root 20 0 10% S 4 31244K 1128K fg /tmp/ava/lighttpd/fastcgi/playguide.fcgi
    1896 root 20 0 0% D 1 0K 0K fg AoEngineTask
    1708 audioser 20 0 0% S 11 58584K 4632K fg /system/bin/audioserver
    501 root RT 0 0% D 1 0K 0K unk HI_VPSS_Process
    1707 media 20 0 0% S 21 161164K 33484K fg /system/bin/mediaserver
    26501 u0_a53 16 -4 0% S 102 1338544K 173636K fg tv.danmaku.bili
    1702 system 20 0 0% S 15 114584K 8780K fg /system/bin/dtvserver
    1672 system 12 -8 0% S 15 133424K 4160K fg /system/bin/surfaceflinger

    HDMI看
    https://blog.csdn.net/cyz_1257/article/details/54849213

    如何主动调用abort
    查看:https://blog.csdn.net/pxy139/article/details/79778017

    SEGV_MAPERR是什么?
    访问的内存还没有映射,一般是空指针
    参考:https://www.jianshu.com/p/8c0863e4cb72

    hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &module)是怎么查看的?

    coredump分析步骤

    https://blog.csdn.net/jornas/article/details/80295686

    开不了coredump

    get_signal_to_deliver
    sig_kernel_coredump
    在公司可以开
    在海思的目录开


    image.png

    生成在kernel.img,根文件系统

    setrlimit 4 -1 -1
    mkdir /data/coredump 0777 system system
    write /proc/sys/kernel/core_pattern  /data/coredump/core.%e.%p
    write /proc/sys/fs/suid_dumpable 1
    

    on boot
    setrlimit 4 -1 -1
    mkdir /data/coredump 0777 system system
    write /proc/sys/kernel/core_pattern /data/coredump/core.%e.%p
    write /proc/sys/fs/suid_dumpable 1

    5.实时查看kernel log
    adb shell

    参考https://blog.csdn.net/ztguang/article/details/70136154

    binder/proc/

    海思打包
    /device/hisilicon/bigfish/build/ext4.mk

    问题
    print变量中出现<optimized out>。

    解决
    添加编译选项-O0,意思是不进行编译优化,gdb在默认情况下会使用-O2。
    使用-O0选项调试的时候就会顺畅了,发布项目的时候不用再使用 -O0参数项,gcc 默认编译或加上-O2优化编译会提高程序运行速度。在muduo源码中使用-O2选项,调试的时候对其Makefile进行修改即可。

    批量打印stack,使用ndk-stack,build.py

    妈的 怀疑是内核死锁了

    rw_semaphore
    参考:https://blog.csdn.net/juS3Ve/article/details/79428049
    参考:
    https://www.jianshu.com/p/dabaded56e03?from=timeline

    汇编代码

    函数返回
    MOV pc,lr

    stp是什么命令?

    surface分配内存

    /frameworks/native/libs/gui/Surface.cpp

    static inline int native_window_set_buffers_dimensions(
    struct ANativeWindow* window,
    int w, int h)
    {
    return window->perform(window, NATIVE_WINDOW_SET_BUFFERS_DIMENSIONS,
    w, h);
    }
    这里去设置大小。

    static inline int native_window_set_buffers_user_dimensions(
    struct ANativeWindow* window,
    int w, int h)
    {
    return window->perform(window, NATIVE_WINDOW_SET_BUFFERS_USER_DIMENSIONS,
    w, h);
    }

    设置backtrace

    Stack frame #00 pc 0004dadf  /system/lib/libgui.so (_ZN7android7Surface20setBuffersDimensionsEjj+82): Routine android::Surface::setBuffersDimensions(unsigned int, unsigned int) at /proc/self/cwd/frameworks/native/libs/gui/Surface.cpp:980 (discriminator 1)
    Stack frame #01 pc 0004be11  /system/lib/libgui.so (_ZN7android7Surface12hook_performEP13ANativeWindowiz+40): Routine android::Surface::hook_perform(ANativeWindow*, int, ...) at /proc/self/cwd/frameworks/native/libs/gui/Surface.cpp:213 (discriminator 2)
    Stack frame #02 pc 000e8575  /system/lib/libstagefright.so (_ZN7android33setNativeWindowSizeFormatAndUsageEP13ANativeWindowiiiiib+140): Routine native_window_set_buffers_dimensions(ANativeWindow*, int, int) at /proc/self/cwd/system/core/include/system/window.h:762
    Stack frame #03 pc 00089455  /system/lib/libstagefright.so (_ZN7android6ACodec35setupNativeWindowSizeFormatAndUsageEP13ANativeWindowPib+448): Routine android::ACodec::setupNativeWindowSizeFormatAndUsage(ANativeWindow*, int*, bool) at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:1136
    Stack frame #04 pc 0008a6eb  /system/lib/libstagefright.so (_ZN7android6ACodec38configureOutputBuffersFromNativeWindowEPjS1_S1_b+106): Routine android::ACodec::configureOutputBuffersFromNativeWindow(unsigned int*, unsigned int*, unsigned int*, bool) at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:1158
    Stack frame #05 pc 0008a0b1  /system/lib/libstagefright.so (_ZN7android6ACodec37allocateOutputBuffersFromNativeWindowEv+36): Routine android::ACodec::allocateOutputBuffersFromNativeWindow() at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:1240 (discriminator 1)
    Stack frame #06 pc 00089557  /system/lib/libstagefright.so (_ZN7android6ACodec21allocateBuffersOnPortEj+102): Routine android::ACodec::allocateBuffersOnPort(unsigned int) at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:839
    Stack frame #07 pc 00097189  /system/lib/libstagefright.so (_ZN7android6ACodec17LoadedToIdleState12stateEnteredEv+28): Routine android::ACodec::LoadedToIdleState::stateEntered() at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:7163
    Stack frame #08 pc 0000edf5  /system/lib/libstagefright_foundation.so (_ZN7android25AHierarchicalStateMachine11changeStateERKNS_2spINS_6AStateEEE+368): Routine android::AHierarchicalStateMachine::changeState(android::sp<android::AState> const&) at /proc/self/cwd/frameworks/av/media/libstagefright/foundation/AHierarchicalStateMachine.cpp:114 (discriminator 2)
    Stack frame #09 pc 000965e5  /system/lib/libstagefright.so (_ZN7android6ACodec11LoadedState7onStartEv+80): Routine android::ACodec::LoadedState::onStart() at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:7149 (discriminator 1)
    Stack frame #10 pc 00096a1d  /system/lib/libstagefright.so (_ZN7android6ACodec11LoadedState17onMessageReceivedERKNS_2spINS_8AMessageEEE+160): Routine android::ACodec::LoadedState::onMessageReceived(android::sp<android::AMessage> const&) at /proc/self/cwd/frameworks/av/media/libstagefright/ACodec.cpp:6877
    Stack frame #11 pc 0000ebc5  /system/lib/libstagefright_foundation.so (_ZN7android25AHierarchicalStateMachine13handleMessageERKNS_2spINS_8AMessageEEE+76): Routine android::AHierarchicalStateMachine::handleMessage(android::sp<android::AMessage> const&) at /proc/self/cwd/frameworks/av/media/libstagefright/foundation/AHierarchicalStateMachine.cpp:58 (discriminator 5)
    Stack frame #12 pc 0000ea25  /system/lib/libstagefright_foundation.so (_ZN7android8AHandler14deliverMessageERKNS_2spINS_8AMessageEEE+24): Routine android::AHandler::deliverMessage(android::sp<android::AMessage> const&) at /proc/self/cwd/frameworks/av/media/libstagefright/foundation/AHandler.cpp:27
    Stack frame #13 pc 00010bf5  /system/lib/libstagefright_foundation.so (_ZN7android8AMessage7deliverEv+60): Routine android::AMessage::deliver() at /proc/self/cwd/frameworks/av/media/libstagefright/foundation/AMessage.cpp:354 (discriminator 2)
    Stack frame #14 pc 0000f58d  /system/lib/libstagefright_foundation.so (_ZN7android7ALooper4loopEv+380): Routine android::ALooper::loop() at /proc/self/cwd/frameworks/av/media/libstagefright/foundation/ALooper.cpp:220 (discriminator 1)
    Stack frame #15 pc 0000e3dd  /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+264): Routine android::Thread::_threadLoop(void*) at /proc/self/cwd/system/core/libutils/Threads.cpp:754
    Stack frame #16 pc 00046e63  /system/lib/libc.so (_ZL15__pthread_startPv+22): Routine __pthread_start(void*) at /proc/self/cwd/bionic/libc/bionic/pthread_create.cpp:198 (discriminator 1)
    Stack frame #17 pc 00019cbd  /system/lib/libc.so (__start_thread+6): Routine __start_thread at /proc/self/cwd/bionic/libc/bionic/clone.cpp:41 (discriminator 1)
    
    

    线程是这一个
    u0_a65 6165 5421 1363748 164468 futex_wait 00000000 S JNISurfaceTextu
    代码路径在frameworks/av/media/libstagefright/
    /frameworks/av/media/libstagefright/foundation

    allocateBuffersOnPort

        if (storingMetadataInDecodedBuffers()) {
            err = allocateOutputMetadataBuffers();
        } else {
            err = allocateOutputBuffersFromNativeWindow();
        }
    

    大小从这里设置的。
    /frameworks/av/media/libstagefright/ACodec.cpp
    return setNativeWindowSizeFormatAndUsage(
    nativeWindow,
    def.format.video.nFrameWidth,
    def.format.video.nFrameHeight,
    def.format.video.eColorFormat,
    mRotationDegrees,
    usage,
    reconnect);
    参考:https://blog.csdn.net/wan8180192/article/details/50269199

    什么时候开始分配内存?

    上层入口

    AwesomePlayer::initVideoDecoder
    这个不用了,使用
    Nuplayer

    以Nuplayer为入口进行分析:
    /frameworks/av/media/libmediaplayerservice/nuplayer/NuPlayer.h
    /frameworks/av/media/libmediaplayerservice/nuplayer/NuPlayer.cpp

    走的是海思的player

    妈的 大小是有BufferQueueProducer的mcore决定的。
    BufferQueueCore是这个玩意
    SurfaceFlinger::createNormalLayer

    /frameworks/native/services/surfaceflinger/Client.cpp
    Client::createSurface

    SurfaceComposerClient::createSurface

    /frameworks/base/core/jni/android_view_SurfaceControl.cpp
    nativeCreate

    /frameworks/base/libs/hwui/OpenGLRenderer.cpp

    GraphicBufferListener::init

    在下面这里改了尺寸
    uint32_t Layer::doTransaction(uint32_t flags) {
    ATRACE_CALL();

    pushPendingState();
    Layer::State c = getCurrentState();
    if (!applyPendingStates(&c)) {
        return 0;
    }
    
    const Layer::State& s(getDrawingState());
    
    const bool sizeChanged = (c.requested.w != s.requested.w) ||
                             (c.requested.h != s.requested.h);
    
    if (sizeChanged) {
        // the size changed, we need to ask our client to request a new buffer
        ALOGD_IF(DEBUG_RESIZE,
                "doTransaction: geometry (layer=%p '%s'), tr=%02x, scalingMode=%d\n"
                "  current={ active   ={ wh={%4u,%4u} crop={%4d,%4d,%4d,%4d} (%4d,%4d) }\n"
                "            requested={ wh={%4u,%4u} }}\n"
                "  drawing={ active   ={ wh={%4u,%4u} crop={%4d,%4d,%4d,%4d} (%4d,%4d) }\n"
                "            requested={ wh={%4u,%4u} }}\n",
                this, getName().string(), mCurrentTransform,
                getEffectiveScalingMode(),
                c.active.w, c.active.h,
                c.crop.left,
                c.crop.top,
                c.crop.right,
                c.crop.bottom,
                c.crop.getWidth(),
                c.crop.getHeight(),
                c.requested.w, c.requested.h,
                s.active.w, s.active.h,
                s.crop.left,
                s.crop.top,
                s.crop.right,
                s.crop.bottom,
                s.crop.getWidth(),
                s.crop.getHeight(),
                s.requested.w, s.requested.h);
    
        // record the new size, form this point on, when the client request
        // a buffer, it'll get the new size.
        mSurfaceFlingerConsumer->setDefaultBufferSize(
                c.requested.w, c.requested.h);
    }
    

    他的trace是

    Build fingerprint: 'HiSTBAndroidV6/Hi3798MV200/Hi3798MV200:7.0/NRD90M/lwf05300944:userdebug/test-keys'
    pid: 1672, tid: 5522, name: Binder:1672_5  >>> /system/bin/surfaceflinger <<<
    signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
    Stack frame #00 pc 000366c7  /system/lib/libgui.so (_ZN7android19BufferQueueConsumer20setDefaultBufferSizeEjj+98): Routine android::BufferQueueConsumer::setDefaultBufferSize(unsigned int, unsigned int) at /proc/self/cwd/frameworks/native/libs/gui/BufferQueueConsumer.cpp:563
    Stack frame #01 pc 0003e147  /system/lib/libgui.so (_ZN7android10GLConsumer20setDefaultBufferSizeEjj+70): Routine android::GLConsumer::setDefaultBufferSize(unsigned int, unsigned int) at /proc/self/cwd/frameworks/native/libs/gui/GLConsumer.cpp:217 (discriminator 1)
    Stack frame #02 pc 0001aa87  /system/lib/libsurfaceflinger.so: Routine android::Layer::doTransaction(unsigned int) at /proc/self/cwd/frameworks/native/services/surfaceflinger/Layer.cpp:1415 (discriminator 1)
    Stack frame #03 pc 00028bc1  /system/lib/libsurfaceflinger.so: Routine android::SurfaceFlinger::handleTransactionLocked(unsigned int) at /proc/self/cwd/frameworks/native/services/surfaceflinger/SurfaceFlinger_hwc1.cpp:1388 (discriminator 2)
    Stack frame #04 pc 00027245  /system/lib/libsurfaceflinger.so: Routine android::SurfaceFlinger::handleTransaction(unsigned int) at /proc/self/cwd/frameworks/native/services/surfaceflinger/SurfaceFlinger_hwc1.cpp:1359
    Stack frame #05 pc 00026e3d  /system/lib/libsurfaceflinger.so: Routine android::SurfaceFlinger::handleMessageTransaction() at /proc/self/cwd/frameworks/native/services/surfaceflinger/SurfaceFlinger_hwc1.cpp:945
    Stack frame #06 pc 00011e49  /system/lib/libutils.so (_ZN7android6Looper9pollInnerEi+492): Routine android::Looper::pollInner(int) at /proc/self/cwd/system/core/libutils/Looper.cpp:337 (discriminator 1)
    Stack frame #07 pc 00011bcf  /system/lib/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+26): Routine android::Looper::pollOnce(int, int*, int*, void**) at /proc/self/cwd/system/core/libutils/Looper.cpp:219
    Stack frame #08 pc 0001cf85  /system/lib/libsurfaceflinger.so: Routine android::Looper::pollOnce(int) at /proc/self/cwd/system/core/include/utils/Looper.h:265
    Stack frame #09 pc 00026a0d  /system/lib/libsurfaceflinger.so (_ZN7android14SurfaceFlinger3runEv+10): Routine android::SurfaceFlinger::waitForEvent() at /proc/self/cwd/frameworks/native/services/surfaceflinger/SurfaceFlinger_hwc1.cpp:785
    Stack frame #10 pc 0000102b  /system/bin/surfaceflinger
    Stack frame #11 pc 00016c2d  /system/lib/libc.so (__libc_init+48): Routine __libc_init at /proc/self/cwd/bionic/libc/bionic/libc_init_dynamic.cpp:109
    Stack frame #12 pc 00000e1c  /system/bin/surfaceflinger
    

    这里setsize
    Layer::setSize

    wms了现在进入
    正常时候:
    06-04 06:56:33.123 2631 3120 E WindowManager: computeShownFrameLocked: WindowStateAnimator{665d7c5 Toast} mShownPosition.set mWin.mFrame.left = 798 mWin.mFrame.top=864 mWin.mXOffset=0 mWin.mYOffset=0

    异常时候:
    WindowManager: computeShownFrameLocked: WindowStateAnimator{d8d8c07 Toast} mShownPosition.set mWin.mFrame.left = 0 mWin.mFrame.top=2138536879 mWin.mXOffset=0 mWin.mYOffset=0

    06-06 01:41:36.142 2595 2606 V applyDimension: applyDimension value=30.0 unit=1 metrics=1da9c000 DisplayMetrics{density=1.5, width=1920, height=1080, scaledDensity=1.5, xdpi=38.0, ydpi=38.0}
    06-06 01:41:36.148 3552 3552 E getMetricsWithSize: outMetrics.density=1.5
    06-06 01:41:36.149 3552 3552 I wenfengtou: setDensity2.0
    06-06 01:41:36.149 3552 3552 I wenfengtou: setDensity2.0
    06-06 01:41:36.152 3552 3552 V applyDimension: applyDimension value=1280.0 unit=1 metrics=278d0000 DisplayMetrics{density=2.0, width=1920, height=1080, scaledDensity=2.0, xdpi=38.0, ydpi=38.0}

    修改方案,在relayoutwindow的时候,限制大小:
    DisplayMetrics dm = new DisplayMetrics();
    dm = mContext.getResources().getDisplayMetrics();
    int screenWidth = dm.widthPixels;
    int screenHeight = dm.heightPixels;
    Slog.e(TAG,"relayoutWindow screenWidth=" + screenWidth + " screenHeight=" + screenHeight);
    if (requestedWidth > screenWidth || requestedHeight > screenHeight) {
    Slog.e(TAG, win + "relayoutWindow to big!!! return");
    return 0;
    }

    怎样打崩应用

    package com.example.myapplication;
    
    import android.content.Context;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.DisplayMetrics;
    import android.util.Log;
    import android.view.View;
    import android.view.WindowManager;
    import android.widget.Button;
    import android.widget.Toast;
    
    import com.blankj.utilcode.util.Utils;
    
    public class MainActivity extends AppCompatActivity {
        Button mbutton;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mbutton = (Button) findViewById(R.id.button);
            mbutton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                   // Toast.makeText("Drawpad没有使能").show();
                    final DisplayMetrics appDm = Utils.getApp().getResources().getDisplayMetrics();
                    float zero = 0f;
                    float haha = 1f;
                    appDm.density = haha/ zero;
                    appDm.densityDpi = (int) (160 * appDm.density);
                    appDm.scaledDensity = appDm.density;
    
                   // DisplayMetrics dm2 = new DisplayMetrics();
                   // wm.getDefaultDisplay().getMetrics(dm2);
                    Log.i("hackn","dm2.density=" + Utils.getApp().getResources().getDisplayMetrics().density);
                    Toast.makeText(MainActivity.this,"Drwapad没有使能哈哈哈哈哈哈哈哈",Toast.LENGTH_SHORT).show();
    
                }
            });
        }
    }
    

    Bilibili崩溃问题

    view在不断增大

    image.png

    给詹一美打国际电话 没有出现问题。

    高负载时,主线程非常卡。
    User 66%, System 25%, IOW 0%, IRQ 0%
    User 698 + Nice 120 + Sys 316 + Idle 90 + IOW 0 + IRQ 0 + SIRQ 1 = 1225

    PID USER PR NI CPU% S #THR VSS RSS PCY Name
    15182 u0_a51 16 -4 53% D 100 1518312K 418640K fg tv.danmaku.bili
    6085 u0_a51 20 0 28% S 44 1290900K 150796K fg tv.danmaku.bili:ijkservice
    1776 shell 20 0 3% S 9 30784K 940K fg /sbin/adbd
    21582 shell 20 0 1% S 1 4008K 1788K fg logcat
    1575 logd 30 10 1% S 9 18356K 6868K bg /system/bin/logd

    小时代 宿舍姐妹花 必然会卡死

    widget.Space占了很多个

    参考:https://www.cnblogs.com/tangZH/p/10955429.html
    https://blog.csdn.net/yxz329130952/article/details/50288145

    https://www.codercto.com/a/3992.html
    关于弹幕的一个开源介绍

                    Toast mToast = Toast.makeText(Utils.getApp(),"hahahha",Toast.LENGTH_LONG);
                    if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N_MR1) {
                        try {
                            //noinspection JavaReflectionMemberAccess
                            Field field = View.class.getDeclaredField("mContext");
                            field.setAccessible(true);
                            field.set(mToast.getView(), new ApplicationContextWrapperForApiff());
                        } catch (Throwable throwable) {
                            throwable.printStackTrace();
                        }
                    }
                    mToast.show();
    
    image.png

    搞崩系统的代码

    package com.example.myapplication;
    
    import android.content.Context;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.DisplayMetrics;
    import android.util.Log;
    import android.view.View;
    import android.view.WindowManager;
    import android.widget.Button;
    import android.widget.Toast;
    
    import com.blankj.utilcode.util.Utils;
    
    public class MainActivity extends AppCompatActivity {
        Button mbutton;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mbutton = (Button) findViewById(R.id.button);
            mbutton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                   // Toast.makeText("Drawpad没有使能").show();
                    final DisplayMetrics appDm = Utils.getApp().getResources().getDisplayMetrics();
                    float zero = 0f;
                    float haha = 1f;
                    appDm.density = haha/ zero;
                    appDm.densityDpi = (int) (160 * appDm.density);
                    appDm.scaledDensity = appDm.density;
    
                   // DisplayMetrics dm2 = new DisplayMetrics();
                   // wm.getDefaultDisplay().getMetrics(dm2);
    
                    Log.i("hackn","dm2.density=" + Utils.getApp().getResources().getDisplayMetrics().density);
                    Haha hh = new Haha();
                    Toast.makeText(MainActivity.this,"Drwapad没有使能哈哈哈哈哈哈哈哈",Toast.LENGTH_SHORT).show();
    
                }
            });
        }
    
        static class Haha {
           Woc woc = new Woc();
            Haha() {
                Log.i("haha", "construct");
            }
        }
    }
    
    

    06-11 06:09:25.034 4326 4326 I HookMain: new TintTextView count = 1589
    06-11 06:09:25.039 4326 4326 I HookMain: new TintTextView count = 1590
    06-11 06:09:25.042 4326 4326 I HookMain: new TintTextView count = 1591
    06-11 06:09:25.045 4326 4326 I HookMain: new TintTextView count = 1592
    06-11 06:09:25.050 4326 4326 I HookMain: new TintTextView count = 1593
    没复现问题是的数量

    对比下来 这个多了很多

    image.png

    出现了这么多个bitmap
    (<Xposed>)
    06-11 07:30:01.546 5633 5633 I HookMain: setBackgroundDrawable count = 988
    06-11 07:30:01.546 5633 5633 I HookMain: at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)
    06-11 07:30:01.550 5633 5633 I HookMain: setBackgroundDrawable count = 989
    06-11 07:30:01.550 5633 5633 I HookMain: at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)
    06-11 07:30:01.670 5633 5633 I HookMain: setBackgroundDrawable count = 990
    06-11 07:30:01.670 5633 5633 I HookMain: at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)
    06-11 07:30:01.699 5633 5633 I HookMain: setBackgroundDrawable count = 991
    06-11 07:30:01.699 5633 5633 I HookMain: at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)
    06-11 07:30:01.781 5633 5633 I HookMain: setBackgroundDrawable count = 992
    06-11 07:30:01.781 5633 5633 I HookMain: at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)
    06-11 07:30:01.785 5633 5633 I HookMain: setBackgroundDrawable count = 993
    06-11 07:30:01.785 5633 5633 I HookMain: at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)

    看上去像不断地在加载comments的view

    06-11 07:58:08.872  4166  4166 I HookMain: setBackgroundDrawable count = 1043
    06-11 07:58:08.872  4166  4166 I HookMain: java.lang.Throwable
    06-11 07:58:08.872  4166  4166 I HookMain:      at com.wenfengtou.xposedsimpledemo.HookMain$2.beforeHookedMethod(HookMain.java:73)
    06-11 07:58:08.872  4166  4166 I HookMain:      at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
    06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.magicasakura.widgets.TintImageView.setBackgroundDrawable(<Xposed>)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.setBackground(View.java:18120)
    06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.magicasakura.widgets.a.c(BL:160)
    06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.magicasakura.widgets.a.b(BL:111)
    06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.magicasakura.widgets.a.a(BL:49)
    06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.magicasakura.widgets.TintImageView.<init>(BL:40)
    06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.magicasakura.widgets.TintImageView.<init>(BL:29)
    06-11 07:58:08.872  4166  4166 I HookMain:      at java.lang.reflect.Constructor.newInstance0(Native Method)
    06-11 07:58:08.872  4166  4166 I HookMain:      at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.createView(LayoutInflater.java:645)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
    06-11 07:58:08.872  4166  4166 I HookMain:      at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
    06-11 07:58:08.872  4166  4166 I HookMain:      at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:360)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.inflate(<Xposed>)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.databinding.g.a(BL:126)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.databinding.g.a(BL:95)
    06-11 07:58:08.872  4166  4166 I HookMain:      at b.xn.a(BL:58)
    06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.app.comm.comment2.comments.view.ac.a(BL:86)
    06-11 07:58:08.872  4166  4166 I HookMain:      at com.bilibili.app.comm.comment2.comments.view.aa.b(BL:59)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView$a.c(BL:6794)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView$Recycler.a(BL:5975)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView$Recycler.a(BL:5858)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView$Recycler.c(BL:5854)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.LinearLayoutManager$c.a(BL:2230)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.LinearLayoutManager.a(BL:1557)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.LinearLayoutManager.a(BL:1517)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.LinearLayoutManager.c(BL:612)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView.K(BL:3924)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView.o(BL:3641)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v7.widget.RecyclerView.onLayout(BL:4194)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v4.widget.SwipeRefreshLayout.onLayout(BL:625)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.support.v4.view.ViewPager.onLayout(BL:1775)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
    06-11 07:58:08.872  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.support.design.widget.d.layoutChild(BL:142)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.support.design.widget.g.onLayoutChild(BL:41)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(BL:1556)
    06-11 07:58:08.873  4166  4166 I HookMain:      at tv.danmaku.bili.widget.PinnedBottomScrollingBehavior.onLayoutChild(BL:41)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.support.design.widget.CoordinatorLayout.onLayout(BL:888)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-11 07:58:08.873  4166  4166 I HookMain:      at com.android.internal.policy.DecorView.onLayout(DecorView.java:724)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.View.layout(View.java:17519)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2342)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2069)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6302)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.Choreographer.doCallbacks(Choreographer.java:683)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.Choreographer.doFrame(Choreographer.java:619)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.os.Handler.handleCallback(Handler.java:751)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.os.Handler.dispatchMessage(Handler.java:95)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.os.Looper.loop(Looper.java:154)
    06-11 07:58:08.873  4166  4166 I HookMain:      at android.app.ActivityThread.main(ActivityThread.java:6097)
    06-11 07:58:08.873  4166  4166 I HookMain:      at java.lang.reflect.Method.invoke(Native Method)
    06-11 07:58:08.873  4166  4166 I HookMain:      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
    06-11 07:58:08.873  4166  4166 I HookMain:      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
    06-11 07:58:08.873  4166  4166 I HookMain:      at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
    06-11 07:58:08.918  4166  4166 E Xposed  :      at com.wenfengtou.xposedsimpledemo.HookMain$2.beforeHookedMethod(HookMain.java:75)
    

    bilibili会定时请求一些framecallback,可以忽略掉
    06-12 01:11:14.947 4219 5428 I postFrameCallback: postFrameCallback b.hflb@91ff8fb 06-12 01:11:14.947 4219 5428 I postFrameCallback: java.lang.Throwable 06-12 01:11:14.947 4219 5428 I postFrameCallback: at com.wenfengtou.xposedsimpledemo.HookMain7.beforeHookedMethod(HookMain.java:142)
    06-12 01:11:14.947 4219 5428 I postFrameCallback: at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
    06-12 01:11:14.947 4219 5428 I postFrameCallback: at android.view.Choreographer.postFrameCallback(<Xposed>)
    06-12 01:11:14.947 4219 5428 I postFrameCallback: at b.hfl.n(BL:538)
    06-12 01:11:14.947 4219 5428 I postFrameCallback: at b.hfl.handleMessage(BL:299)
    06-12 01:11:14.947 4219 5428 I postFrameCallback: at android.os.Handler.dispatchMessage(Handler.java:102)
    06-12 01:11:14.947 4219 5428 I postFrameCallback: at android.os.Looper.loop(Looper.java:154)
    06-12 01:11:14.947 4219 5428 I postFrameCallback: at android.os.HandlerThread.run(HandlerThread.java:61)

    出现问题的时候,出现很多viewdatabining的log

    06-12 01:23:17.311 13646 13646 I postFrameCallback: postFrameCallback android.databinding.ViewDataBinding$8@ab1a300
    06-12 01:23:17.311 13646 13646 I postFrameCallback: java.lang.Throwable
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at com.wenfengtou.xposedsimpledemo.HookMain$7.beforeHookedMethod(HookMain.java:142)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.Choreographer.postFrameCallback(<Xposed>)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.databinding.ViewDataBinding.h(BL:549)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at b.aej.e(BL:97)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at b.aej.<init>(BL:88)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at b.aej.<init>(BL:33)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at b.aeb.a(BL:92)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.databinding.i.a(BL:39)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.databinding.g.a(BL:199)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.databinding.g.a(BL:130)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.databinding.g.a(BL:95)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at b.xn.a(BL:58)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at com.bilibili.app.comm.comment2.comments.view.ac.a(BL:86)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at com.bilibili.app.comm.comment2.comments.view.aa.b(BL:59)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$a.c(BL:6794)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$Recycler.a(BL:5975)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$Recycler.a(BL:5858)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$Recycler.c(BL:5854)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager$c.a(BL:2230)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager.a(BL:1557)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager.a(BL:1517)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager.c(BL:612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView.K(BL:3924)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView.o(BL:3641)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView.onLayout(BL:4194)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v4.widget.SwipeRefreshLayout.onLayout(BL:625)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.v4.view.ViewPager.onLayout(BL:1775)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.design.widget.d.layoutChild(BL:142)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.design.widget.g.onLayoutChild(BL:41)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(BL:1556)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at tv.danmaku.bili.widget.PinnedBottomScrollingBehavior.onLayoutChild(BL:41)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.support.design.widget.CoordinatorLayout.onLayout(BL:888)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at com.android.internal.policy.DecorView.onLayout(DecorView.java:724)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2342)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2069)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6302)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.Choreographer.doCallbacks(Choreographer.java:683)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.Choreographer.doFrame(Choreographer.java:619)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.os.Handler.handleCallback(Handler.java:751)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.os.Handler.dispatchMessage(Handler.java:95)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.os.Looper.loop(Looper.java:154)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at android.app.ActivityThread.main(ActivityThread.java:6097)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at java.lang.reflect.Method.invoke(Native Method)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
    06-12 01:23:17.311 13646 13646 I postFrameCallback:     at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
    06-12 01:23:17.437 13646 13646 I postFrameCallback: postFrameCallback android.databinding.ViewDataBinding$8@6628c4c
    06-12 01:23:17.437 13646 13646 I postFrameCallback: java.lang.Throwable
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at com.wenfengtou.xposedsimpledemo.HookMain$7.beforeHookedMethod(HookMain.java:142)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.Choreographer.postFrameCallback(<Xposed>)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.databinding.ViewDataBinding.h(BL:549)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at b.aej.e(BL:97)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at b.aej.<init>(BL:88)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at b.aej.<init>(BL:33)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at b.aeb.a(BL:92)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.databinding.i.a(BL:39)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.databinding.g.a(BL:199)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.databinding.g.a(BL:130)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.databinding.g.a(BL:95)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at b.xn.a(BL:58)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at com.bilibili.app.comm.comment2.comments.view.ac.a(BL:86)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at com.bilibili.app.comm.comment2.comments.view.aa.b(BL:59)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$a.c(BL:6794)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$Recycler.a(BL:5975)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$Recycler.a(BL:5858)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView$Recycler.c(BL:5854)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager$c.a(BL:2230)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager.a(BL:1557)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager.a(BL:1517)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.LinearLayoutManager.c(BL:612)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView.K(BL:3924)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView.o(BL:3641)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v7.widget.RecyclerView.onLayout(BL:4194)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v4.widget.SwipeRefreshLayout.onLayout(BL:625)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.v4.view.ViewPager.onLayout(BL:1775)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.design.widget.d.layoutChild(BL:142)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.design.widget.g.onLayoutChild(BL:41)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(BL:1556)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at tv.danmaku.bili.widget.PinnedBottomScrollingBehavior.onLayoutChild(BL:41)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.support.design.widget.CoordinatorLayout.onLayout(BL:888)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.437 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at com.android.internal.policy.DecorView.onLayout(DecorView.java:724)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.View.layout(View.java:17519)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewGroup.layout(ViewGroup.java:5612)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2342)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2069)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6302)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.Choreographer.doCallbacks(Choreographer.java:683)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.Choreographer.doFrame(Choreographer.java:619)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.os.Handler.handleCallback(Handler.java:751)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.os.Handler.dispatchMessage(Handler.java:95)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.os.Looper.loop(Looper.java:154)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at android.app.ActivityThread.main(ActivityThread.java:6097)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at java.lang.reflect.Method.invoke(Native Method)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
    06-12 01:23:17.438 13646 13646 I postFrameCallback:     at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
    

    viewdatabinder就是view的数据变化的时候,更新view的一个机制。说明view的某个数据变了???
    卧槽。

    看是在 CALLBACK_TRAVERSAL中去遍历了一次视图。
    mFrameInfo.markPerformTraversalsStart();
    doCallbacks(Choreographer.CALLBACK_TRAVERSAL, frameTimeNanos);

    自己手写的应用貌似不太一样,我去。这么弄得

    06-12 03:28:20.559  4273  4273 I postFrameCallback: postFrameCallback android.databinding.ViewDataBinding$8@3c1f29d
    06-12 03:28:20.559  4273  4273 I postFrameCallback: java.lang.Throwable
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at com.wenfengtou.xposedsimpledemo.HookMain$1.beforeHookedMethod(HookMain.java:67)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.view.Choreographer.postFrameCallback(<Xposed>)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.ViewDataBinding.requestRebind(ViewDataBinding.java:584)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.ViewDataBinding.handleFieldChange(ViewDataBinding.java:548)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.ViewDataBinding.access$800(ViewDataBinding.java:63)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.ViewDataBinding$WeakPropertyListener.onPropertyChanged(ViewDataBinding.java:1465)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.PropertyChangeRegistry$1.onNotifyCallback(PropertyChangeRegistry.java:30)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.PropertyChangeRegistry$1.onNotifyCallback(PropertyChangeRegistry.java:26)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.CallbackRegistry.notifyCallbacks(CallbackRegistry.java:201)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.CallbackRegistry.notifyFirst64(CallbackRegistry.java:122)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.CallbackRegistry.notifyRemainder(CallbackRegistry.java:169)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.CallbackRegistry.notifyRecurse(CallbackRegistry.java:145)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.CallbackRegistry.notifyCallbacks(CallbackRegistry.java:91)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at android.databinding.BaseObservable.notifyChange(BaseObservable.java:60)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at com.example.myapplication.Woc.setOut(Woc.java:12)
    06-12 03:28:20.559  4273  4273 I postFrameCallback:     at com.example.myapplication.MainActivity$2.handleMessage(MainActivity.java:59)
    

    bilibili的这个方法是入口

    .method public a(Lb/aei;Lb/za;)V
        .locals 2
    
        .line 33
        iget-object v0, p1, Lb/aei;->x:Ltv/danmaku/bili/widget/ForegroundConstraintLayout;
    
        const/16 v1, 0x8
    
        invoke-virtual {v0, v1}, Ltv/danmaku/bili/widget/ForegroundConstraintLayout;->setVisibility(I)V
    
        .line 34
        iget-object v0, p1, Lb/aei;->v:Lcom/bilibili/magicasakura/widgets/TintTextView;
    
        invoke-virtual {v0, v1}, Lcom/bilibili/magicasakura/widgets/TintTextView;->setVisibility(I)V
    
        .line 35
        iget-object v0, p1, Lb/aei;->g:Lcom/bilibili/magicasakura/widgets/TintTextView;
    
        invoke-virtual {v0, v1}, Lcom/bilibili/magicasakura/widgets/TintTextView;->setVisibility(I)V
    
        .line 36
        iget-object v0, p1, Lb/aei;->m:Landroid/widget/TextView;
    
        invoke-virtual {v0, v1}, Landroid/widget/TextView;->setVisibility(I)V
    
        .line 37
        iget-object v0, p1, Lb/aei;->l:Landroid/widget/TextView;
    
        invoke-virtual {v0, v1}, Landroid/widget/TextView;->setVisibility(I)V
    
        .line 38
        iget-object v0, p2, Lb/za;->x:Lcom/bilibili/app/comm/comment2/basemvvm/observable/LazyObservableBoolean;
    
        invoke-virtual {v0}, Lcom/bilibili/app/comm/comment2/basemvvm/observable/LazyObservableBoolean;->getValue()Z
    
        move-result v0
    
        if-nez v0, :cond_0
    
        iget-object v0, p2, Lb/za;->y:Lcom/bilibili/app/comm/comment2/basemvvm/observable/LazyObservableBoolean;
    
        invoke-virtual {v0}, Lcom/bilibili/app/comm/comment2/basemvvm/observable/LazyObservableBoolean;->getValue()Z
    
        move-result v0
    
        if-eqz v0, :cond_1
    
        .line 39
        :cond_0
        invoke-virtual {p2}, Lb/za;->a()Lcom/bilibili/app/comm/comment2/comments/viewmodel/y;
    
        move-result-object v0
    
        invoke-virtual {v0}, Lcom/bilibili/app/comm/comment2/comments/viewmodel/y;->d()Lcom/bilibili/app/comm/comment2/CommentContext;
    
        move-result-object v0
    
        .line 40
        invoke-virtual {v0}, Lcom/bilibili/app/comm/comment2/CommentContext;->a()Lb/abi;
    
        move-result-object v1
    
        if-eqz v1, :cond_1
    
        .line 41
        invoke-virtual {v0}, Lcom/bilibili/app/comm/comment2/CommentContext;->a()Lb/abi;
    
        move-result-object v0
    
        iget-object v1, p2, Lb/za;->z:Lcom/bilibili/app/comm/comment2/basemvvm/observable/LazyObservableField;
    
        invoke-virtual {v1}, Lcom/bilibili/app/comm/comment2/basemvvm/observable/LazyObservableField;->getValue()Ljava/lang/Object;
    
        move-result-object v1
    
        invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
    
        move-result-object v1
    
        invoke-virtual {v0, v1}, Lb/abi;->a(Ljava/lang/String;)V
    
        .line 44
        :cond_1
        invoke-virtual {p2}, Lb/za;->a()Lcom/bilibili/app/comm/comment2/comments/viewmodel/y;
    
        move-result-object v0
    
        invoke-virtual {p1, v0}, Lb/aei;->a(Lcom/bilibili/app/comm/comment2/comments/viewmodel/y;)V
    
        .line 45
        invoke-virtual {p1, p2}, Lb/aei;->a(Lb/za;)V
    
        .line 46
        iget-object v0, p0, Lb/xn;->q:Lb/xq;
    
        iget-object v1, p1, Lb/aei;->k:Landroid/databinding/o;
    
        invoke-virtual {v0, v1, p2}, Lb/xq;->a(Landroid/databinding/o;Lb/za;)V
    
        .line 47
        invoke-virtual {p1}, Lb/aei;->b()V
    
        return-void
    .end method
    

    06-12 01:23:17.437 13646 13646 I postFrameCallback: at b.xn.a(BL:58) 这个方法没有进去的。
    06-12 01:23:17.437 13646 13646 I postFrameCallback: at com.bilibili.app.comm.comment2.comments.view.ac.a(BL:86)
    06-12 01:23:17.437 13646 13646 I postFrameCallback: at com.bilibili.app.comm.comment2.comments.view.aa.b(BL:59) 这个方法也没有进去。得找到进去得点

    出问题时mLayoutRequested为true!!!!
    06-12 15:06:16.493 4037 4037 I performTraversals: mView =DecorView@a8b0240[VideoDetailsActivity] mAdded=true mStopped=false mReportNextDraw=false mLayoutRequested=true

    正常播放是这样子得
    performTraversals: mView =DecorView@6e22548[VideoDetailsActivity] mAdded=true mStopped=false mReportNextDraw=false mLayoutRequested=false

    会有请求刷新界面得操作

    06-12 15:19:42.620  4568  4568 I requestLayout: requestLayout
    06-12 15:19:42.620  4568  4568 I requestLayout: java.lang.Throwable
    06-12 15:19:42.620  4568  4568 I requestLayout:         at com.wenfengtou.xposedsimpledemo.HookMain$1.beforeHookedMethod(HookMain.java:69)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.ViewRootImpl.requestLayout(<Xposed>)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:360)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.support.v7.widget.RecyclerView.requestLayout(BL:4202)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.support.v7.widget.RecyclerView$p.b(BL:5327)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.support.v7.widget.RecyclerView$p.a(BL:5294)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.support.v7.widget.RecyclerView$b.a(BL:12012)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.support.v7.widget.RecyclerView$a.a(BL:7114)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at com.bilibili.app.comm.comment2.comments.view.aa$1.d(BL:37)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at com.bilibili.app.comm.comment2.comments.view.ab.run(Unknown Source)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.os.Handler.handleCallback(Handler.java:751)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.os.Handler.dispatchMessage(Handler.java:95)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.os.Looper.loop(Looper.java:154)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at android.app.ActivityThread.main(ActivityThread.java:6097)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at java.lang.reflect.Method.invoke(Native Method)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
    06-12 15:19:42.620  4568  4568 I requestLayout:         at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
    

    md,是不是跟视频格式有关系?flv么有问题,mp4有问题???


    image.png

    Bilibli总会有这一句

    06-12 15:33:24.021 14486 14486 I requestLayout: requestLayout
    06-12 15:33:24.021 14486 14486 I requestLayout: java.lang.Throwable
    06-12 15:33:24.021 14486 14486 I requestLayout:         at com.wenfengtou.xposedsimpledemo.HookMain$1.beforeHookedMethod(HookMain.java:69)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.ViewRootImpl.requestLayout(<Xposed>)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:360)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.view.View.requestLayout(View.java:19654)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.support.v7.widget.RecyclerView.requestLayout(BL:4202)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.support.v7.widget.RecyclerView$p.b(BL:5327)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.support.v7.widget.RecyclerView$p.b(BL:5302)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.support.v7.widget.RecyclerView$b.b(BL:12022)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.support.v7.widget.RecyclerView$a.c(BL:7214)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at com.bilibili.app.comm.comment2.comments.view.aa$1.a(BL:27)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at b.aac$1.a(BL:59)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at b.wt.a(BL:19)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at b.wu$1.a(BL:26)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at b.wr.a(BL:36)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at b.ws$1.b(BL:52)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.h$1.a(BL:48)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.h$1.a(BL:39)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.c.a(BL:201)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.c.b(BL:122)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.c.a(BL:169)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.c.c(BL:145)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.c.a(BL:91)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.h.a(BL:136)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.h.b(BL:94)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.ObservableArrayList.notifyAdd(BL:118)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.databinding.ObservableArrayList.addAll(BL:60)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at com.bilibili.app.comm.comment2.comments.viewmodel.bf$1.a(BL:227)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at com.bilibili.app.comm.comment2.comments.viewmodel.bf$1.a(BL:169)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at com.bilibili.okretro.b.a(BL:50)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at b.evp$3.run(BL:216)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.os.Handler.handleCallback(Handler.java:751)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.os.Handler.dispatchMessage(Handler.java:95)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.os.Looper.loop(Looper.java:154)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at android.app.ActivityThread.main(ActivityThread.java:6097)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at java.lang.reflect.Method.invoke(Native Method)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1013)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903)
    06-12 15:33:24.021 14486 14486 I requestLayout:         at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
    

    我靠,貌似是评论区,因为一刷新就出来了。

    image.png

    滑动监听

    06-12 15:11:28.700  2474  2474 I addOnScrollListener: addOnScrollListener
    06-12 15:11:28.700  2474  2474 I addOnScrollListener: java.lang.Throwable
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at com.wenfengtou.xposedsimpledemo.HookMain$1.afterHookedMethod(HookMain.java:28)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:374)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v7.widget.RecyclerView.addOnScrollListener(<Xposed>)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at com.bilibili.app.comm.comment2.comments.view.y.a(BL:240)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at b.wy.onViewCreated(BL:49)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.moveToState(BL:1471)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(BL:1784)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.moveToState(BL:1852)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.d.b(BL:802)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.executeOps(BL:2625)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(BL:2411)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(BL:2366)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentManagerImpl.execSingleAction(BL:2243)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.d.commitNowAllowingStateLoss(BL:654)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.app.FragmentPagerAdapter.finishUpdate(BL:146)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.view.ViewPager.a(BL:1244)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.view.ViewPager.c(BL:1092)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.support.v4.view.ViewPager.setAdapter(BL:540)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at tv.danmaku.bili.ui.video.VideoDetailsActivity.a(BL:1218)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at tv.danmaku.bili.ui.video.VideoDetailsActivity.a(BL:1317)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at tv.danmaku.bili.ui.video.VideoDetailsActivity.ad(BL:852)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at tv.danmaku.bili.ui.video.VideoDetailsActivity.s(BL:216)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at tv.danmaku.bili.ui.video.VideoDetailsActivity$13.a(BL:1307)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at tv.danmaku.bili.ui.video.VideoDetailsActivity$13.a(BL:1283)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at com.bilibili.okretro.b.a(BL:50)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at b.evp$3.run(BL:216)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:360)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at b.evp$3.run(<Xposed>)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.os.Handler.handleCallback(Handler.java:751)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.os.Handler.dispatchMessage(Handler.java:95)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.os.Looper.loop(Looper.java:154)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at android.app.ActivityThread.main(ActivityThread.java:6121)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at java.lang.reflect.Method.invoke(Native Method)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
    06-12 15:11:28.700  2474  2474 I addOnScrollListener:   at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
    

    下拉评论的log

    06-12 16:20:29.669  3101  3101 I setImageDrawable: setImageDrawableandroid.graphics.drawable.BitmapDrawable@4d81131
    06-12 16:20:29.669  3101  3101 I setImageDrawable: java.lang.Throwable
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.wenfengtou.xposedsimpledemo.HookMain$1.afterHookedMethod(HookMain.java:28)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:374)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.TintImageView.setImageDrawable(<Xposed>)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.f.a(BL:107)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.f.d(BL:145)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.f.b(BL:118)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.f.a(BL:50)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.TintImageView.<init>(BL:43)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.magicasakura.widgets.TintImageView.<init>(BL:29)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at java.lang.reflect.Constructor.newInstance0(Native Method)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.createView(LayoutInflater.java:645)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:360)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.inflate(<Xposed>)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.databinding.g.a(BL:126)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.databinding.g.a(BL:95)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at b.xo.b(BL:61)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.app.comm.comment2.comments.view.ac.a(BL:84)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.bilibili.app.comm.comment2.comments.view.aa.b(BL:59)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.RecyclerView$a.c(BL:6794)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.RecyclerView$Recycler.a(BL:5975)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.ak.a(BL:286)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.ak.a(BL:343)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.ak.b(BL:359)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.ak.a(BL:366)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.support.v7.widget.ak.run(BL:397)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.os.Handler.handleCallback(Handler.java:751)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.os.Handler.dispatchMessage(Handler.java:95)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.os.Looper.loop(Looper.java:154)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at android.app.ActivityThread.main(ActivityThread.java:6121)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at java.lang.reflect.Method.invoke(Native Method)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
    06-12 16:20:29.669  3101  3101 I setImageDrawable:      at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
    

    下拉时候申请刷新

    06-12 16:22:47.960  3101  3101 I requestLayout: requestLayout
    06-12 16:22:47.960  3101  3101 I requestLayout: java.lang.Throwable
    06-12 16:22:47.960  3101  3101 I requestLayout:         at com.wenfengtou.xposedsimpledemo.HookMain$7.afterHookedMethod(HookMain.java:82)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:374)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl.requestLayout(<Xposed>)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.requestLayout(View.java:19781)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.bringChildToFront(ViewGroup.java:1349)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.bringToFront(View.java:11614)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.support.v4.widget.SwipeRefreshLayout.setTargetOffsetTopAndBottom(BL:1169)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.support.v4.widget.SwipeRefreshLayout.onInterceptTouchEvent(BL:709)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2175)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2264)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:414)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1808)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.app.Activity.dispatchTouchEvent(Activity.java:3064)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at b.ei.dispatchTouchEvent(BL:69)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at b.ei.dispatchTouchEvent(BL:69)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:376)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.View.dispatchPointerEvent(View.java:10243)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4438)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4306)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3999)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4056)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6247)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6221)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6182)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6350)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.os.MessageQueue.nativePollOnce(Native Method)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.os.MessageQueue.next(MessageQueue.java:323)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.os.Looper.loop(Looper.java:136)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at android.app.ActivityThread.main(ActivityThread.java:6121)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at java.lang.reflect.Method.invoke(Native Method)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
    06-12 16:22:47.960  3101  3101 I requestLayout:         at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
    

    晚上调试的代码

    
    

    看上去每跳一帧就会重新加载评论。
    hook住评论后,播放就流畅了。

    是什么layer的长宽有问题??
    貌似是动画还有preload的界面。
    06-19 11:07:25.249 1651 1651 I hwc : HISI_HWC gpu compose for layer cropHeight =-1,cropWidth =-1
    06-19 11:07:25.249 1651 1651 I hwc : HISI_HWC gpu compose for layer cropHeight =-1,cropWidth =-1
    06-19 11:07:25.265 1651 1651 I SurfaceFlinger: SurfaceFlinger start setPerFrameData= 1
    06-19 11:07:25.265 1651 1651 I SurfaceFlinger: SurfaceFlinger setPerFrameData= animation background stackId=1
    06-19 11:07:25.265 1651 1651 I SurfaceFlinger: SurfaceFlinger setPerFrameData= com.qljy.middlescreen/com.qljy.middlescreen.ui.activity.PrepareLoadActivity
    06-19 11:07:25.265 1651 1651 I SurfaceFlinger: SurfaceFlinger setPerFrameData end
    06-19 11:07:25.265 1651 1651 I hwc : HISI_HWC gpu compose for layer cropHeight =-1,cropWidth =-1
    06-19 11:07:25.265 1651 1651 I hwc : HISI_HWC gpu compose for layer cropHeight =-1,cropWidth =-1

    看正常使用的应用,一般会有startingwindow

    06-19 11:33:19.926  1655  1655 I SurfaceFlinger: SurfaceFlinger setPerFrameData= com.wenfengtou.xposedsimpledemo/com.wenfengtou.xposedsimpledemo.MainActivity crop=(   0,   0,1920,1080)
    06-19 11:33:19.926  1655  1655 I SurfaceFlinger: SurfaceFlinger setPerFrameData= Starting com.wenfengtou.xposedsimpledemo crop=(   0,   0,1920,1080)
    06-19 11:33:19.926  1655  1655 I SurfaceFlinger: SurfaceFlinger setPerFrameData end
    06-19 11:33:19.926  1655  1655 I hwc     : HISI_HWC gpu compose for layer cropHeight =1080,cropWidth =1920
    06-19 11:33:19.926  1655  1655 I hwc     : HISI_HWC gpu compose for layer cropHeight =1080,cropWidth =1920
    

    相关文章

      网友评论

          本文标题:内存优化

          本文链接:https://www.haomeiwen.com/subject/noddtctx.html