# 所有程序包的分层结构

程序包分层结构:

- com.bokecc.sdk.mobile.ad,
- com.bokecc.sdk.mobile.decode,
- com.bokecc.sdk.mobile.download,
- com.bokecc.sdk.mobile.entry,
- com.bokecc.sdk.mobile.exception,
- com.bokecc.sdk.mobile.filter,
- com.bokecc.sdk.mobile.play,
- com.bokecc.sdk.mobile.upload,
- com.bokecc.sdk.mobile.util,
- com.bokecc.vod,
- com.bokecc.vod.adapter,
- com.bokecc.vod.callback,
- com.bokecc.vod.data,
- com.bokecc.vod.download,
- com.bokecc.vod.inter,
- com.bokecc.vod.play,
- com.bokecc.vod.upload,
- com.bokecc.vod.upload.compress,
- com.bokecc.vod.utils,
- com.bokecc.vod.view

## 类分层结构

- java.lang.Object
  - tv.danmaku.ijk.media.player.AbstractMediaPlayer (implements tv.danmaku.ijk.media.player.IMediaPlayer)
    - tv.danmaku.ijk.media.player.IjkMediaPlayer
      - com.bokecc.sdk.mobile.play.DWIjkMediaPlayer
  - com.bokecc.sdk.mobile.play.AnalyseManager
  - com.bokecc.vod.view.AnimatedGifEncoder
  - com.bokecc.vod.data.Answer
  - com.bokecc.sdk.mobile.entry.AnswerCommitResult (implements java.lang.Comparable<T>)
  - com.bokecc.vod.view.AnswerScope
  - com.bokecc.sdk.mobile.entry.AnswerSheetInfo
  - com.bokecc.sdk.mobile.entry.AnswerSheetInfo.Answer
  - android.widget.BaseAdapter (implements android.widget.ListAdapter, android.widget.SpinnerAdapter)
    - com.bokecc.vod.adapter.DefinitionAdapter
    - com.bokecc.vod.adapter.DeviceAdapter
    - com.bokecc.vod.adapter.DownloadedViewAdapter
    - com.bokecc.vod.adapter.DownloadViewAdapter
    - com.bokecc.vod.adapter.ExerciseAnswerAdapter
    - com.bokecc.vod.adapter.PlayListAdapter
    - com.bokecc.vod.adapter.PlayVideoAdapter
    - com.bokecc.vod.adapter.SelectVideoAdapter
    - com.bokecc.vod.adapter.StatisticResultAdapter
    - com.bokecc.vod.adapter.UploadDoneAdapter
    - com.bokecc.vod.adapter.UploadingAdapter
  - master.flame.danmaku.danmaku.parser.BaseDanmakuParser
    - com.bokecc.vod.data.DanmuInfoParse
  - android.widget.BaseExpandableListAdapter (implements android.widget.ExpandableListAdapter, android.widget.HeterogeneousExpandableList)
    - com.bokecc.vod.adapter.KnowledgeExpandableAdapter
  - com.bumptech.glide.load.resource.bitmap.BitmapTransformation (implements com.bumptech.glide.load.Transformation<T>)
    - com.bokecc.vod.view.RoundCornerTransform
  - android.text.style.CharacterStyle
    - android.text.style.MetricAffectingSpan (implements android.text.style.UpdateLayout)
      - android.text.style.ReplacementSpan
        - android.text.style.DynamicDrawableSpan
          - android.text.style.ImageSpan
            - com.bokecc.vod.view.UrlImageSpan
  - com.bokecc.vod.ConfigUtil
  - android.content.Context
    - android.content.ContextWrapper
      - android.app.Application (implements android.content.ComponentCallbacks2)
        - androidx.multidex.MultiDexApplication
          - com.bokecc.vod.HuoDeApplication
      - android.view.ContextThemeWrapper
        - android.app.Activity (implements android.content.ComponentCallbacks2, android.view.KeyEvent.Callback, android.view.LayoutInflater.Factory2, android.view.View.OnCreateContextMenuListener, android.view.Window.Callback)
          - androidx.core.app.ComponentActivity (implements androidx.core.view.KeyEventDispatcher.Component, androidx.lifecycle.LifecycleOwner)
            - androidx.fragment.app.FragmentActivity (implements androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback, androidx.core.app.ActivityCompat.RequestPermissionsRequestCodeValidator, androidx.lifecycle.ViewModelStoreOwner)
              - androidx.appcompat.app.AppCompatActivity (implements androidx.appcompat.app.ActionBarDrawerToggle.DelegateProvider, androidx.appcompat.app.AppCompatCallback, androidx.core.app.TaskStackBuilder.SupportParentable)
                - com.bokecc.vod.AccountInfoActivity (implements android.view.View.OnClickListener)
                - com.bokecc.vod.MainActivity
              - com.bokecc.vod.download.DownloadListActivity
              - com.bokecc.vod.upload.UploadManageActivity (implements android.view.View.OnClickListener)
          - com.bokecc.vod.upload.EditVideoInfoActivity (implements android.view.View.OnClickListener)
          - com.bokecc.vod.play.MediaPlayActivity (implements com.bokecc.vod.callback.ChoiceSelectListener, android.media.MediaPlayer.OnBufferingUpdateListener, android.media.MediaPlayer.OnCompletionListener, android.media.MediaPlayer.OnErrorListener, android.media.MediaPlayer.OnInfoListener, android.media.MediaPlayer.OnPreparedListener, com.bokecc.sdk.mobile.play.OnDreamWinErrorListener, android.hardware.SensorEventListener, android.view.TextureView.SurfaceTextureListener, android.view.View.OnClickListener)
          - com.bokecc.vod.play.SpeedPlayActivity (implements com.bokecc.vod.callback.ChoiceSelectListener, tv.danmaku.ijk.media.player.IMediaPlayer.OnBufferingUpdateListener, tv.danmaku.ijk.media.player.IMediaPlayer.OnCompletionListener, tv.danmaku.ijk.media.player.IMediaPlayer.OnErrorListener, tv.danmaku.ijk.media.player.IMediaPlayer.OnInfoListener, tv.danmaku.ijk.media.player.IMediaPlayer.OnPreparedListener, com.bokecc.sdk.mobile.play.OnDreamWinErrorListener, android.hardware.SensorEventListener, android.view.TextureView.SurfaceTextureListener, android.view.View.OnClickListener)
          - com.bokecc.vod.play.VrPlayActivity (implements android.media.MediaPlayer.OnBufferingUpdateListener, android.media.MediaPlayer.OnCompletionListener, android.media.MediaPlayer.OnErrorListener, android.media.MediaPlayer.OnInfoListener, android.media.MediaPlayer.OnPreparedListener, android.media.MediaPlayer.OnVideoSizeChangedListener, com.bokecc.sdk.mobile.play.OnDreamWinErrorListener, android.hardware.SensorEventListener, android.view.View.OnClickListener)
      - android.app.Service (implements android.content.ComponentCallbacks2)
        - com.bokecc.vod.download.DownloadService
        - com.bokecc.vod.upload.UploadService
  - com.bokecc.sdk.mobile.download.ControlSet
  - com.bokecc.vod.data.DanmuColorInfo
  - com.bokecc.sdk.mobile.play.DanmuInfo
  - com.bokecc.vod.data.DataSet
  - com.bokecc.vod.data.DataUtil
  - com.bokecc.vod.data.DefinitionInfo
  - android.app.Dialog (implements android.content.DialogInterface, android.view.KeyEvent.Callback, android.view.View.OnCreateContextMenuListener, android.view.Window.Callback)
    - com.bokecc.vod.view.CheckNetworkDialog
    - com.bokecc.vod.view.CompressProgressDialog
    - com.bokecc.vod.view.DanmuSetDialog
    - com.bokecc.vod.view.DeleteFileDialog
    - com.bokecc.vod.view.DoExerciseDialog
    - com.bokecc.vod.view.EditDanmuTextDialog
    - com.bokecc.vod.view.ExerciseGuideDialog
    - com.bokecc.vod.view.IsUseMobileNetworkDialog
    - com.bokecc.vod.view.KnowledgeDialog (implements android.widget.ExpandableListView.OnChildClickListener, android.widget.ExpandableListView.OnGroupClickListener, android.view.View.OnClickListener)
    - com.bokecc.vod.view.LandscapeVisitorInfoDialog
    - com.bokecc.vod.view.MoreSettingsDialog
    - com.bokecc.vod.view.PauseVideoAdDialog (implements android.media.MediaPlayer.OnPreparedListener, android.view.TextureView.SurfaceTextureListener)
    - com.bokecc.vod.view.PortraitVisitorInfoDialog
    - com.bokecc.vod.view.SelectCompressLevelDialog
    - com.bokecc.vod.view.SelectDefinitionDialog
    - com.bokecc.vod.view.SelectPlayerDialog
    - com.bokecc.vod.view.SelectSpeedDialog
    - com.bokecc.vod.view.SelectVideoDialog
    - com.bokecc.vod.view.ShowExeDialog
  - com.bokecc.sdk.mobile.download.DownloadConfig
  - com.bokecc.sdk.mobile.download.DownloadCopy
  - com.bokecc.sdk.mobile.download.DownloadDataTool
  - com.bokecc.vod.data.DownloadDBHelper
  - com.bokecc.vod.adapter.DownloadedViewAdapter.ViewHolder
  - com.bokecc.sdk.mobile.download.Downloader
  - com.bokecc.sdk.mobile.download.DownloaderHelper
  - com.bokecc.sdk.mobile.download.DownloadInfo
  - com.bokecc.vod.data.DownloadInfo
  - com.bokecc.sdk.mobile.download.DownloadModel
  - com.bokecc.sdk.mobile.download.DownloadOperator
  - com.bokecc.sdk.mobile.download.DownloadQuality
  - com.bokecc.vod.adapter.DownloadViewAdapter.ViewHolder
  - com.bokecc.sdk.mobile.ad.DWADRequest
  - com.bokecc.sdk.mobile.ad.DWMediaAD
  - com.bokecc.vod.view.EmoFilter (implements android.text.InputFilter)
  - com.bokecc.sdk.mobile.ad.EndADInfo
  - com.bokecc.sdk.mobile.ad.EndADInfo.AdBean
  - com.bokecc.vod.data.ExeQuestion
  - com.bokecc.vod.data.Exercise
  - com.bokecc.vod.data.ExerciseAnswer
  - com.bokecc.vod.data.ExerciseStatistic
  - com.bokecc.sdk.mobile.decode.FastYUVtoRGB
  - com.bokecc.sdk.mobile.filter.Filter
  - com.bokecc.sdk.mobile.filter.FilterUtil
  - androidx.fragment.app.Fragment (implements android.content.ComponentCallbacks, androidx.lifecycle.LifecycleOwner, android.view.View.OnCreateContextMenuListener, androidx.lifecycle.ViewModelStoreOwner)
    - com.bokecc.vod.download.DownloadedFragment (implements com.bokecc.vod.download.DownloadService.OnUpdateDownloadedView)
    - com.bokecc.vod.download.DownloadingFragment
    - com.bokecc.vod.upload.UploadDoneFragment (implements com.bokecc.vod.upload.UploadController.Observer)
    - com.bokecc.vod.upload.UploadingFragment (implements com.bokecc.vod.upload.UploadController.Observer)
  - com.bokecc.sdk.mobile.ad.FrontADInfo
  - com.bokecc.sdk.mobile.ad.FrontADInfo.AdBean
  - com.bokecc.sdk.mobile.play.HotSpotInfo
  - com.bokecc.sdk.mobile.util.HttpUtil
  - com.bokecc.vod.data.HuodeVideoInfo (implements android.os.Parcelable)
  - com.bokecc.sdk.mobile.play.InfoCollector
  - com.bokecc.sdk.mobile.play.InitializeManager
  - com.bokecc.vod.upload.compress.InputSurface
  - com.bokecc.vod.utils.JsonUtil
  - com.bokecc.vod.data.KnowledgeBean
  - com.bokecc.vod.data.KnowledgeBean.Category
  - com.bokecc.vod.data.KnowledgeBean.Category.Info
  - com.bokecc.vod.data.LogoInfo
  - com.bokecc.sdk.mobile.play.MarqueeAction (implements java.io.Serializable)
  - com.bokecc.sdk.mobile.play.MarqueeInfo (implements java.io.Serializable)
  - com.bokecc.sdk.mobile.play.MarqueeInfo.ImageBean
  - com.bokecc.sdk.mobile.play.MarqueeInfo.TextBean
  - com.bokecc.sdk.mobile.util.Md5Encrypt
  - android.media.MediaPlayer (implements android.media.AudioRouting, android.media.VolumeAutomation)
    - com.bokecc.sdk.mobile.play.DWMediaPlayer
  - com.bokecc.vod.upload.compress.MP4Builder
  - com.bokecc.vod.upload.compress.Mp4Movie
  - com.bokecc.vod.utils.MultiUtils
  - com.bokecc.vod.utils.NetUtils
  - com.bokecc.vod.data.ObjectBox
  - com.bokecc.vod.upload.compress.OutputSurface (implements android.graphics.SurfaceTexture.OnFrameAvailableListener)
  - androidx.viewpager.widget.PagerAdapter
    - com.bokecc.vod.adapter.ExerciseAdapter
    - androidx.fragment.app.FragmentPagerAdapter
      - com.bokecc.vod.download.DownloadListActivity.TabFragmentPagerAdapter
      - com.bokecc.vod.upload.UploadManageActivity.UploadFragmentPagerAdapter
  - com.bokecc.sdk.mobile.ad.PauseADInfo
  - com.bokecc.sdk.mobile.ad.PauseADInfo.AdBean
  - com.bokecc.sdk.mobile.play.PlayConfig
  - com.bokecc.sdk.mobile.play.PlayInfo
  - com.bokecc.vod.view.ProgressObject
  - com.bokecc.sdk.mobile.play.QaStatistics
  - com.bokecc.vod.view.QAView
  - com.bokecc.vod.data.Question
  - androidx.recyclerview.widget.RecyclerView.Adapter<VH>
    - com.bokecc.vod.adapter.ChoiceAdapter
    - com.bokecc.vod.adapter.DanmuColorAdapter
    - com.bokecc.vod.adapter.StatisticsAdapter
  - androidx.recyclerview.widget.RecyclerView.ItemDecoration
    - com.bokecc.vod.utils.ItemDecoration
  - androidx.recyclerview.widget.RecyclerView.ViewHolder
    - com.bokecc.vod.adapter.ChoiceAdapter.ChoiceHolder
    - com.bokecc.vod.adapter.DanmuColorAdapter.ViewHolder
  - com.bokecc.vod.upload.compress.Sample
  - com.bokecc.vod.utils.SaveLogoUtil
  - com.bokecc.vod.view.SeekBarColorConfig
  - com.bokecc.sdk.mobile.play.SortComparator (implements java.util.Comparator<T>)
  - com.bokecc.sdk.mobile.util.SSLClient
  - com.bokecc.vod.view.Subtitle
  - com.bokecc.vod.upload.compress.TextureRenderer
  - java.lang.Thread (implements java.lang.Runnable)
    - com.bokecc.vod.view.GifMakerThread
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - com.bokecc.sdk.mobile.exception.DreamwinException
      - com.bokecc.sdk.mobile.exception.HuodeException
  - com.bokecc.vod.upload.compress.Track
  - com.bokecc.sdk.mobile.play.TrustAllTrustManager (implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager)
  - com.bokecc.vod.upload.UploadController
  - com.bokecc.vod.data.UploadDBHelper
  - com.bokecc.vod.adapter.UploadDoneAdapter.ViewHolder
  - com.bokecc.sdk.mobile.upload.Uploader
  - com.bokecc.vod.data.UploadInfo
  - com.bokecc.vod.adapter.UploadingAdapter.ViewHolder
  - com.bokecc.vod.upload.UploadWrapper
  - com.bokecc.vod.data.VibrationInfo
  - com.bokecc.vod.upload.compress.VideoCompress
  - com.bokecc.vod.upload.compress.VideoController
  - com.bokecc.vod.upload.compress.VideoController.VideoConvertRunnable (implements java.lang.Runnable)
  - com.bokecc.sdk.mobile.decode.VideoExtractor
  - com.bokecc.sdk.mobile.upload.VideoInfo
  - com.bokecc.vod.data.VideoPosition
  - com.bokecc.vod.data.VideoPositionDBHelper
  - android.view.View (implements android.view.accessibility.AccessibilityEventSource, android.graphics.drawable.Drawable.Callback, android.view.KeyEvent.Callback)
    - com.bokecc.vod.view.CircleProgressBar
    - com.bokecc.vod.view.HotspotSeekBar (implements android.view.View.OnClickListener)
    - android.widget.ProgressBar
      - android.widget.AbsSeekBar
        - android.widget.SeekBar
          - com.bokecc.vod.view.SeekBarHoverView
    - com.bokecc.vod.view.ProgressView
    - android.view.ViewGroup (implements android.view.ViewManager, android.view.ViewParent)
      - android.widget.AdapterView<T>
        - android.widget.AbsListView (implements android.widget.Filter.FilterListener, android.text.TextWatcher, android.view.ViewTreeObserver.OnGlobalLayoutListener, android.view.ViewTreeObserver.OnTouchModeChangeListener)
          - android.widget.GridView
            - com.bokecc.vod.view.HeadGridView
          - android.widget.ListView
            - com.bokecc.vod.view.FullShowListView
      - android.widget.RelativeLayout
        - com.bokecc.vod.view.CompleteBlankTextView
        - com.bokecc.vod.view.CustomLogoView
        - com.bokecc.sdk.mobile.play.MarqueeView
        - com.bokecc.vod.view.SubtitleView
  - com.bokecc.vod.data.VisitorInfo
  - com.bokecc.sdk.mobile.util.VodDbHelper
  - com.bokecc.sdk.mobile.download.VodDownloadBean
  - com.bokecc.sdk.mobile.download.VodDownloadBeanHelper
  - com.bokecc.sdk.mobile.download.VodDownloadManager
  - com.bokecc.vod.utils.VrConfig
  - com.bokecc.vod.utils.VrController
  - com.bokecc.vod.utils.VrController.CustomProjectionFactory (implements com.asha.vrlib.strategy.projection.IMDProjectionFactory)

## 接口分层结构

- com.bokecc.vod.callback.AnswerSheetCallback
- com.bokecc.sdk.mobile.play.AnswerSheetListener
- com.bokecc.vod.inter.BlankContentListener
- com.bokecc.vod.callback.ChoiceSelectListener
- com.bokecc.vod.inter.CommitOrJumpVisitorInfo
- com.bokecc.vod.adapter.DanmuColorAdapter.OnItemClickListener
- com.bokecc.vod.inter.DeleteFile
- com.bokecc.vod.inter.DoExerciseResult
- com.bokecc.sdk.mobile.download.DownloadListener
- com.bokecc.vod.download.DownloadService.OnUpdateDownloadedView
- com.bokecc.sdk.mobile.ad.DWMediaADListener
- com.bokecc.vod.inter.ExeOperation
- com.bokecc.vod.inter.ExercisesContinuePlay
- com.bokecc.sdk.mobile.filter.FilterExecuteAsyncTaskListener
- com.bokecc.sdk.mobile.filter.FilterLoadLibraryListener
- com.bokecc.vod.view.GifMakerThread.GifMakerListener
- com.bokecc.vod.view.HotspotSeekBar.OnIndicatorTouchListener
- com.bokecc.vod.view.HotspotSeekBar.OnSeekBarChangeListener
- com.bokecc.vod.inter.IsUseMobieNetwork
- com.bokecc.vod.view.KnowledgeDialog.KnowledgeCallback
- com.bokecc.vod.inter.MoreSettings
- com.bokecc.sdk.mobile.play.OnAuthMsgListener
- com.bokecc.sdk.mobile.play.OnDanmuListListener
- com.bokecc.vod.inter.OnDanmuSet
- com.bokecc.sdk.mobile.download.OnDownloadInfoListener
- com.bokecc.sdk.mobile.download.OnDownloadSubtitleListener
- com.bokecc.sdk.mobile.play.OnDreamWinErrorListener
- com.bokecc.vod.inter.OnEditDanmuText
- com.bokecc.sdk.mobile.play.OnExercisesMsgListener
- com.bokecc.sdk.mobile.play.OnExerciseStatisticsListener
- com.bokecc.sdk.mobile.play.OnHotspotListener
- com.bokecc.sdk.mobile.play.OnMarqueeImgFailListener
- com.bokecc.sdk.mobile.play.OnPlayModeListener
- com.bokecc.sdk.mobile.download.OnProcessDefinitionListener
- com.bokecc.sdk.mobile.play.OnQAMsgListener
- com.bokecc.sdk.mobile.play.OnSendDanmuListener
- com.bokecc.sdk.mobile.play.OnSubtitleMsgListener
- com.bokecc.sdk.mobile.play.OnVisitMsgListener
- com.bokecc.sdk.mobile.play.PlayUrlProvider
- com.bokecc.vod.view.QAView.QAViewDismissListener
- com.bokecc.vod.view.SeekBarHoverView.SeekBarHoverEventListener
- com.bokecc.vod.inter.SelectCompressLevel
- com.bokecc.vod.inter.SelectDefinition
- com.bokecc.vod.inter.SelectPlayer
- com.bokecc.vod.inter.SelectSpeed
- com.bokecc.vod.inter.SelectVideo
- com.bokecc.vod.view.Subtitle.OnSubtitleInitedListener
- com.bokecc.sdk.mobile.play.ThumbnailsCallback
- com.bokecc.vod.upload.UploadController.Observer
- com.bokecc.sdk.mobile.upload.UploadListener
- com.bokecc.vod.upload.compress.VideoCompress.CompressListener
- com.bokecc.sdk.mobile.decode.VideoExtractor.OnEncodeListener
- com.bokecc.sdk.mobile.download.VodDownloadManager.OnDownloadFinishListener
- com.bokecc.sdk.mobile.download.VodDownloadManager.OnUpdateDownload
- com.bokecc.vod.utils.VrController.VrControllerListener

## 枚举分层结构

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - com.bokecc.sdk.mobile.exception.ErrorCode
    - com.bokecc.sdk.mobile.play.SubtitleModel
    - com.bokecc.sdk.mobile.play.MediaMode
    - com.bokecc.sdk.mobile.util.HttpUtil.HttpMethod
    - com.bokecc.sdk.mobile.util.HttpUtil.HttpLogLevel