学考乐离线App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 3.9KB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. gradle 版本管理
  2. ext.android : app版本信息
  3. ext.version : 依赖包版本信息
  4. ext.dependencies_required : 必须的依赖项
  5. ext.dependencies_testImplementation : 测试依赖
  6. ext.dependencies_androidTestImplementation : 测试依赖
  7. ext.dependencies_custom : 自己添加的依赖项,按需定制
  8. androidx.appcompat:appcompat 自带jetpack中的lifecycle、viewmodel、livedata
  9. app:
  10. module : 按模块进行业务划分
  11. common:
  12. app: 获取application
  13. base: 存放业务的基础类
  14. activity、fragment、adapter的基类
  15. eventbus: livedata的事件总线
  16. 粘性事件: 不管先注册还是先发送消息,都能收到消息
  17. 非粘性事件: 必须先注册,再发送消息,如果先发送消息,再注册,则先发送的消息是监听不到
  18. util : 工具类,包含Kotlin的扩展属性
  19. media包: 实现音视频的播放封装
  20. test音频: val source = listOf("http://ws.stream.qqmusic.qq.com/C4000017AcyB00D6Cr.m4a?guid=395745734&vkey=9CF75D8FDE45B1A7755C15F93C5F74CC18E444873F498DF3F5B9F0B41889778BE0EAC45305BD444F90D777C612BC5865DB0AF55A318854E1&uin=&fromtag=66"
  21. ,"http://ws.stream.qqmusic.qq.com/C400001lePVO36SNSo.m4a?guid=748677131&vkey=A6077E31CB4A1C8A4F3D5D2BEDE8D3E16AB69FF2FEE95D9D48288EAD048AB89DC53B6846D184F842257617AF9714D97C864FB183BE05CC66&uin=&fromtag=66"
  22. ,"http://ws.stream.qqmusic.qq.com/C400000ZFBf22vBvrf.m4a?guid=921100582&vkey=C9EA33972404E2AC1C80A479614AD44A9BF132A16F9B307D9515F595B41901AE53F6681E28BDA799FC047F30D624F8A19AE9C4856ADBEF4B&uin=&fromtag=66")
  23. image包: 实现了图片加载的封装
  24. 防快速点击和跳转限制:
  25. 1 扩展点击事件和效果 -> ViewClickExtension.kt 类
  26. https://www.cnblogs.com/zh2314372037/p/13965371.html
  27. 2 BaseActivity覆写 startActivityForResult(intent: Intent, requestCode: Int, options: Bundle?),检查目标和间隔时间,判断是否可以跳转新的Activity
  28. https://blog.csdn.net/ziyexiaoxiao/article/details/85292729
  29. 注意include为merge的坑,viewbinding中需动态绑定 https://juejin.cn/post/6844904065655111693
  30. 讨论点:
  31. 状态加载的判断: 加载复习状态页没问题,学前总测试状态页也没问题,
  32. 但如何判断课程学习完成,目前是课程学习完成后才判断进入课程学后总测试
  33. 我的考虑是在进入课程详情界面时,对所有课时的学习进度进行判断,不包含课时的学后测试,当所有课时都学习完了,则进入学后总测试的状态页,
  34. 而在学习中,同样做引导课时前测试,学习,课时后测试,
  35. 课时后测试将包含 小游戏练习、再测一次、重新学习、下一步(进入学后总测试)或者下一课时(为当前课时的下一课时),
  36. 需要考虑的是,下一步或者下一课时的判断为循环判断,如,共10课时,现在点击学习的第5个,如果后面几个课时都学习完后,而1课时没有学习完成,下一课时将直接进入1课时的学习,
  37. 而下一步是在所有课时都学习完成的情况下,直接进入学后总测试的界面。
  38. 学前总测试 :不让跳过,必须测,用于进行界面判断 和 统计的判断
  39. 课时学前测试: 不让跳过,必须测,不然对统计和判断有影响
  40. Kotlin的单例模式: https://developer.aliyun.com/article/642618
  41. 饿汉式(直接获取实例)、懒汉式(一次判空获取实例)、双重校验锁
  42. object 声明: 为饿汉式单例,即直接实例
  43. 数字精度格式: https://www.jianshu.com/p/5286a44ed9b1
  44. Material Design Components 组件使用 https://www.jianshu.com/p/bc71b4179cb2
  45. // Android Gradle 插件 4.0,下述配置不再是必需的,并且会导致构建失败。外部原生 build 现在会自动打包这些库,因此使用 jniLibs 明确打包库会导致重复。
  46. // sourceSets {
  47. // main {
  48. // jniLibs.srcDirs = ['libs']
  49. // }
  50. // }