美文网首页
音频app阅读时长统计分析

音频app阅读时长统计分析

作者: 激扬飞雪 | 来源:发表于2019-06-25 14:16 被阅读0次

描述

分析学习喜马拉雅app阅读时长统计机制,并应用到自己app中去

分析

  • 使用抓包工具charles观测app统计发送时机,发现切换音频源,或本地缓存有阅读数据进入首页app时发送(nyx/v2/track/statistic/android)


    image
  • 播放过程中,查看本地播放时长记录,发现每隔一段时间向本地SharePreferences保存阅读时长数据,并且发现mListenedDuration大概每隔5秒变化一次,切换音频发送成功后,本地缓存相应条目被删除
    adb shell cat /data/data/com.ximalaya.ting.android/shared_prefs/uploaders_com.ximalaya.ting.android\:player.xml
    
  • 播放过程中,杀掉进程。后重启会发送本地缓存的记录,并清除本地条目
  • 音频播放及切换音频源本地缓存数据变化

读取本地播放时长记录

  • 使用代码代替adb shell cat /data/data/com.ximalaya.ting.android/shared_prefs/uploaders_com.ximalaya.ting.android:player.xml mListenedDuration每个5秒观测动作
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
import datetime
import json
import time

def fenxi():
    cmd = "adb shell cat /data/data/com.ximalaya.ting.android/shared_prefs/uploaders_com.ximalaya.ting.android\:player.xml"
    timeStr = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    # time = datetime.datetime.strptime(string,'%Y-%m-%d %H:%M:%S')
    print("*" * 50 + "start:" + timeStr)
    f = os.popen(cmd)
    if f:
        content = f.read()
        # print(content)
        content = content.replace(""", '"')
        # print(content)
        startIndex = content.find("[{")
        endIndex = content.rfind("}]")

        if startIndex != -1 and endIndex != -1:
            # print(startIndex, endIndex)
            content = content[startIndex:endIndex + 2]
            # print(content)
            jsonContent = json.loads(content)
            # print(jsonContent)
            for ct in jsonContent:
                # print(ct)
                mListenedDuration = ct.get('xmPlayRecord').get('mListenedDuration')
                mSendDataTime = ct.get('xmPlayRecord').get('mSendDataTime')
                mDuration = ct.get('xmPlayRecord').get('mDuration')
                mStartTime = ct.get('xmPlayRecord').get('mStartTime')
                mStartedPosition = ct.get('xmPlayRecord').get('mStartedPosition')
                playUrl = ct.get('xmPlayRecord').get('playUrl')
                mPlaySource = ct.get('xmPlayRecord').get('mPlaySource')
                
                # timeArray = time.strptime(mStartTime, "%Y-%m-%d %H:%M:%S")
                
                print("mListenedDuration=%s"%mListenedDuration)
                print("mDuration=%s"%mDuration)
                print("mSendDataTime=%s"%mSendDataTime)
                print("mStartTime=%s"%mStartTime)
                print("mStartedPosition=%s"%mStartedPosition)
                print("playUrl=%s"%playUrl)
                # print("mPlaySource=%s"%mPlaySource)
                

                
        else:
            print("无数据")
        timeStr = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        print("*" * 50 + "end:" + timeStr)
        print("\n" * 2)


# nyx/v2/track/statistic/android
def main():
    while True:
        fenxi()
        time.sleep(3)

if __name__ == "__main__":
    main()

观测终端输出结果

    **************************************************start:2018-09-29 15:27:10
    mListenedDuration=9
    mDuration=9
    mSendDataTime=0
    mStartTime=1538206021312
    mStartedPosition=0
    playUrl=http://audio.xmcdn.com/group36/M02/0E/9D/wKgJUlo3b7aiMSvIANicyKRiMZ4986.m4a
    **************************************************end:2018-09-29 15:27:10
    
    **************************************************start:2018-09-29 15:27:13
    无数据
    **************************************************end:2018-09-29 15:27:14
    
    **************************************************start:2018-09-29 15:27:17
    mListenedDuration=0
    mDuration=0
    mSendDataTime=0
    mStartTime=1538206035483
    mStartedPosition=0
    playUrl=http://audio.xmcdn.com/group31/M0B/6C/F8/wKgJX1mG0w-Q7DXpAM_ILYxT6gU048.m4a
    **************************************************end:2018-09-29 15:27:17
    
    **************************************************start:2018-09-29 15:27:20
    mListenedDuration=5
    mDuration=5
    mSendDataTime=0
    mStartTime=1538206035483
    mStartedPosition=0
    playUrl=http://audio.xmcdn.com/group31/M0B/6C/F8/wKgJX1mG0w-Q7DXpAM_ILYxT6gU048.m4a
    **************************************************end:2018-09-29 15:27:20

分析结果

image

相关文章

网友评论

      本文标题:音频app阅读时长统计分析

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