Sample总体结构
├── algorithm //基础算法模块
├── app // 首页
├── ar // AR模块
├── avatar // Avatar模块
├── build.gradle
├── ck //
├── common // 通用工具封装
├── core // SDK调用封装
├── effect // 特效模块
├── gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
├── lens // 画质模块
├── library // SDK库
├── local.properties
├── settings.gradle
└── sports // 运动健身模块
特效模块结构
├── activity
│ ├── BaseEffectActivity.java //特效基类
│ ├── BeautyActivity.java //美颜美型
│ ├── MattingStickerActivity.java //分割贴纸
│ ├── QRScanActivity.java // 扫一扫
│ ├── SingleTabStickerActivity.java //单tab贴纸页面
│ ├── StickerActivty.java//多tab贴纸
│ └── StyleMakeUpActivity.java// 风格妆
├── adapter
│ ├── EffectButtonRVAdapter.java
│ ├── EffectButtonViewRVAdapter.java
│ ├── FragmentVPAdapter.java
│ ├── OnPageChangeListenerAdapter.java
│ └── SelectItemRVAdapter.java
├── config
│ ├── EffectConfig.java
│ └── StickerConfig.java
├── fragment
│ ├── BeautyFaceFragment.java
│ ├── EffectFragment.java
│ ├── FilterFragment.java
│ ├── MattingStickerFragment.java
│ ├── MultiTabStickerFragment.java
│ ├── SingleTabStickerFrament.java
│ ├── StickerFragment.java
│ └── StyleMakeUpFragment.java
├── gesture // 手势管理器
│ ├── BaseGestureDetector.java
│ ├── GestureHelper.java
│ ├── GestureManager.java
│ ├── RotateGestureDetector.java
│ └── TwoFingerGestureDetector.java
├── manager //特效节点数据管理
│ ├── EffectDataManager.java
│ ├── FilterDataManager.java
│ └── StickerDataManager.java
├── model // 数据模型
│ ├── ComposerNode.java
│ ├── EffectButtonItem.java
│ ├── FilterItem.java
│ └── StickerItem.java
├── qrscan //扫码下载相关
│ ├── BaseResponse.java
│ ├── DownloadParam.java
│ ├── EncryptParam.java
│ ├── EncryptResult.java
│ └── QRScanResult.java
├── res // 资源路径管理
│ └── EffectResourceHelper.java
├── task //异步任务
│ └── DownloadStickerTask.java
├── utils // 工具
│ ├── Config.java
│ └── NetworkUtils.java
└── view
├── ProgressBar.java
├── RadioTextView.java
└── ViewfinderView.java
算法模块结构
├── activity
│ └── AlgorithmActivity.java //算法页面
├── adapter
│ ├── AlgorithmButtonRVAdapter.java
│ └── FaceClusterAdapter.java
├── config
│ └── AlgorithmConfig.java
├── fragment
│ ├── AlgorithmBoardFragment.java
│ ├── FaceClusterFragment.java
│ ├── FaceInfoFragment.java
│ ├── FaceVerifyFragment.java
│ ├── FaceVerifyInfoFragment.java
│ ├── SkyInfoFragment.java
│ └── StudentIdOcrFragment.java
├── model
│ ├── AlgorithmItem.java
│ └── AlgorithmItemGroup.java
├── render // 算法渲染相关
│ ├── AlgorithmRender.java
│ ├── FaceSegmentProgram.java
│ ├── HairMaskProgram.java
│ ├── LineProgram.java
│ ├── MaskProgram.java
│ ├── PointProgram.java
│ ├── PortraitMaskProgram.java
│ ├── ShaderHelper.java
│ ├── ShaderProgram.java
│ ├── SkyMaskProgram.java
│ └── TextureRotationUtil.java
├── res // 资源路径管理
│ └── AlgorithmResourceHelper.java
├── task //异步任务
│ ├── facecluster // 人脸聚类
│ │ ├── FaceClusterHandler.java
│ │ ├── FaceClusterMgr.java
│ │ └── FaceClusterThread.java
│ └── faceverify // 人脸比对
│ ├── FaceVerifyResult.java
│ ├── FaceVerifyThreadHandler.java
│ └── RepeatedVerifyHandler.java
├── ui // UI控件
│ ├── AlgorithmUI.java
│ ├── AlgorithmUIFactory.java
│ ├── AnimojiUI.java
│ ├── BaseAlgorithmUI.java
│ ├── C1UI.java
│ ├── C2UI.java
│ ├── CarUI.java
│ ├── ConcentrationUI.java
│ ├── FaceClusterUI.java
│ ├── FaceUI.java
│ ├── FaceVerifyUI.java
│ ├── GazeEstimationUI.java
│ ├── HairParserUI.java
│ ├── HandUI.java
│ ├── HeadSegUI.java
│ ├── HumanDistanceUI.java
│ ├── LightClsUI.java
│ ├── PetFaceUI.java
│ ├── PortraitMattingUI.java
│ ├── SkeletonUI.java
│ ├── SkySegUI.java
│ ├── StudentIdOcrTestUI.java
│ ├── StudentIdOcrUI.java
│ └── VideoClsUI.java
└── view // 自定义view
├── BrandRecogTip.java
├── CarRectInfoTip.java
├── HandInfoTip.java
├── HumanDistanceTip.java
├── PetFaceInfoTip.java
├── ResultTip.java
└── TipManager.java
Common模块结构
├── adapter
│ └── ButtonViewRVAdapter.java
├── base
│ ├── BaseBarGLActivity.java //带顶部栏的GLActivity
│ └── BaseGLActivity.java //封装了GLSurfaceView的基类
├── config
│ └── ImageSourceConfig.java
├── fragment
│ └── BoardButtonFragment.java
├── imgsrc // 数据源,分图片、视频、相机三种
│ ├── ImageSourceProvider.java
│ ├── TextureHolder.java
│ ├── bitmap //图片源
│ │ └── BitmapSourceImpl.java
│ ├── camera //相机源
│ │ ├── Camera1.java
│ │ ├── Camera2.java
│ │ ├── Camera2BlackList.java
│ │ ├── CameraInterface.java
│ │ ├── CameraListener.java
│ │ ├── CameraProxy.java
│ │ ├── CameraSourceImpl.java
│ │ ├── RectUtils.java
│ │ └── focus
│ └── video //视频源
│ ├── EglCore.java
│ ├── EglSurfaceBase.java
│ ├── FullFrameRect.java
│ ├── MediaMuxerManager.java
│ ├── SimplePlayer.java
│ ├── Texture2dProgram.java
│ ├── TextureMovieEncoder.java
│ ├── VideoEncodeHelper.java
│ ├── VideoEncoderCore.java
│ ├── VideoReSampleList.java
│ ├── VideoSourceImpl.java
│ └── WindowSurface.java
├── model // 数据模型
│ ├── BubbleConfig.java
│ ├── ButtonItem.java
│ ├── CaptureResult.java
│ ├── EffectType.java
│ ├── ProcessInput.java
│ └── ProcessOutput.java
├── task
│ └── SavePicTask.java
├── utils
│ ├── BitmapUtils.java
│ ├── CommonUtils.java
│ ├── DensityUtils.java
│ ├── FileUtils.java
│ ├── FrameRator.java
│ ├── PreferenceUtils.java
│ ├── PreviewSizeManager.java
│ └── ToastUtils.java
└── view //自定义视图
├── BubbleTipManager.java
├── ButtonView.java
├── PropertyTextView.java
├── SwitchView.java
└── bubble
├── BubblePopupWindow.java
├── BubbleRelativeLayout.java
└── BubbleWindowManager.java
Core模块结构
.
├── algorithm //基础算法调用封装
│ ├── AnimojiAlgorithmTask.java
│ ├── C1AlgorithmTask.java
│ ├── C2AlgorithmTask.java
│ ├── CarAlgorithmTask.java
│ ├── ConcentrateAlgorithmTask.java
│ ├── FaceAlgorithmTask.java
│ ├── FaceClusterAlgorithmTask.java
│ ├── FaceVerifyAlgorithmTask.java
│ ├── GazeEstimationAlgorithmTask.java
│ ├── HairParserAlgorithmTask.java
│ ├── HandAlgorithmTask.java
│ ├── HeadSegAlgorithmTask.java
│ ├── HumanDistanceAlgorithmTask.java
│ ├── LightClsAlgorithmTask.java
│ ├── PetFaceAlgorithmTask.java
│ ├── PortraitMattingAlgorithmTask.java
│ ├── SkeletonAlgorithmTask.java
│ ├── SkySegAlgorithmTask.java
│ ├── StudentIdOcrAlgorithmTask.java
│ ├── VideoClsAlgorithmTask.java
│ ├── base
│ │ ├── AlgorithmResourceProvider.java
│ │ ├── AlgorithmTask.java
│ │ └── AlgorithmTaskKey.java
│ └── factory
│ ├── AlgorithmTaskFactory.java
│ └── AlgorithmTaskKeyFactory.java
├── avatar
│ ├── AvatarInterface.java
│ └── AvatarResourceProvider.java
├── effect // 特效调用封装
│ ├── EffectManager.java
│ └── EffectResourceProvider.java
├── lens // 画质调用封装
│ ├── ImageQualityInterface.java
│ ├── ImageQualityManager.java
│ ├── ImageQualityResourceProvider.java
│ └── util
│ └── ImageQualityUtil.java
├── opengl // opengl相关
│ ├── Drawable2d.java
│ ├── Extensions.java
│ ├── GlUtil.java
│ ├── Program.java
│ ├── ProgramManager.java
│ ├── ProgramTexture2d.java
│ └── ProgramTextureOES.java
└── util // 公共工具类
├── ImageUtil.java // 图像处理工具
├── LogUtils.java //日志
├── OrientationSensor.java //重力方向传感器
└── timer_record //性能日志
├── LogTimerRecord.java
└── TimerRecord.java