# 基于jetpack组件的joke video安卓app **Repository Path**: macwust/jetpack_joke_video_android_app ## Basic Information - **Project Name**: 基于jetpack组件的joke video安卓app - **Description**: 基于jetpack组件库实现的joke video安卓app,java练手项目 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-07-17 - **Last Updated**: 2023-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于jetpack组件库开发的joke video安卓App 技术栈: * Navigation注解处理器 * Room数据库使用及缓存设计,OkHTTP网络库的封装 * DataBinding实现数据绑定,Paging实现数据加载和分页 * ViewPager搭建Tab页面,并且在详情页将HeaderView添加到Paging * LiveDataBus、PagedList实现增删改查,CameraX视频录制拍摄 * ViewZoomBehaivor实现惯性滑动,利用WorkManager实现帖子发布 * 选择MVVM架构实现数据共享和解耦 ## 项目依赖 ```java apply plugin: 'com.android.library' android { compileSdkVersion 29 defaultConfig { minSdkVersion 21 targetSdkVersion 29 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles 'consumer-rules.pro' } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } dataBinding { enabled = true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } namespace 'com.mooc.libcommon' } dependencies { api fileTree(dir: 'libs', include: ['*.jar']) //兼容包 api 'androidx.appcompat:appcompat:1.4.2' //material组件 api 'com.google.android.material:material:1.6.1' //约束布局 api 'androidx.constraintlayout:constraintlayout:2.1.4' //navigation导航 api 'androidx.navigation:navigation-fragment:2.5.3' api 'androidx.navigation:navigation-ui:2.5.3' //包含了 viewmodel 和 livedata api 'androidx.lifecycle:lifecycle-extensions:2.2.0' // 或者指明使用viewmodel api "androidx.lifecycle:lifecycle-viewmodel:2.5.1" // 或者指明使用livedata api 'androidx.lifecycle:lifecycle-livedata:2.5.0' api 'androidx.lifecycle:lifecycle-livedata-core:2.5.1' //注解使用生命周期编译器 annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.4.1" //paging分页组件 api 'androidx.paging:paging-runtime:2.1.0' //页面刷新组件 api 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' api 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0' //viewpager2 可以禁止预加载 api "androidx.viewpager2:viewpager2:1.0.0-beta04" //视频播放组件 api 'com.google.android.exoplayer:exoplayer-core:2.10.4' api 'com.google.android.exoplayer:exoplayer-dash:2.10.4' api 'com.google.android.exoplayer:exoplayer-ui:2.10.4' //room数据库 api 'android.arch.persistence.room:runtime:1.1.1' api "android.arch.lifecycle:extensions:1.1.1" annotationProcessor 'android.arch.persistence.room:compiler:1.1.1' annotationProcessor "android.arch.lifecycle:compiler:1.1.1" //图片加载 api 'com.github.bumptech.glide:glide:4.13.0' api 'jp.wasabeef:glide-transformations:4.0.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0' //camera api 'androidx.camera:camera-core:1.0.0-alpha04' api 'androidx.camera:camera-camera2:1.0.0-alpha04' api 'androidx.camera:camera-view:1.0.0-alpha01' api 'androidx.camera:camera-extensions:1.0.0-alpha01' //workmanager api 'androidx.work:work-runtime:2.7.1' //gesture imageview api 'com.github.chrisbanes:PhotoView:2.3.0@aar' //aliyun oss api 'com.aliyun.dpa:oss-android-sdk:+' //fastjson解析 api 'com.alibaba:fastjson:1.2.59' } ```