学考乐离线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.

ProjectErrors.md 2.8KB

2 years ago
2 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. 项目中遇到的错误: 使用jectPack时的依赖: · androidx.appcompat: appcompat
  2. 依赖中已经带了livedata、viewmodel等,可以不用再依赖,再依赖时出现了异常编译错误,未解决 且 依赖版本不同,对应的livedata等版本也不同
  3. 使用sqlcipher 需要在application 实现 : SQLiteDatabase.loadLibs(this)
  4. kotlin 泛型 单例实现 扩展实现 导航实现
  5. svg
  6. <vector xmlns:android="http://schemas.android.com/apk/res/android"
  7. android:name="triangle" //定义矢量图的名称
  8. android:height="64dp" //drawable的固定高度,支持所有的尺寸单位,一般使用dp
  9. android:width="64dp" //drawable的固定宽度,支持所有的尺寸单位,一般使用dp
  10. android:viewportHeight="600"//视图的高度,可以理解为画布的高度
  11. android:viewportWidth="600" > //视图的宽度,下面的pathData中的内容便会在600宽高的画布内操作
  12. <group //定义一个组,可以包含path 及子group, 同时可以定义转换信息,如旋转,伸缩,位移
  13. android:name="rotationGroup"//组名
  14. android:pivotX="300.0" //X坐标中心点,默认为0
  15. android:pivotY="300.0" //Y坐标中心点,默认为0
  16. android:rotation="45.0" > //旋转角度,顺时针
  17. <path android:name="v" //路径的名称
  18. android:fillColor="#000000"//填充颜色
  19. android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" /> //路径的数据
  20. </group>
  21. </vector>
  22. apk唯一数据源:
  23. 设备唯一 : UUID 存值
  24. 第一次启动时间
  25. 课程包信息通过合成进行加解密,获取用户的课程数据
  26. 数据复制方案:
  27. 1: 使用两个apk方式:
  28. A.apk中自带数据库文件 包含功能: 复制数据文件到共有目录(document)
  29. B.apk中不包含课程数据: 运行时检查本地外置存储是否有需要的课程,如果没有,则检查共有目录(document)中是否存在有对应文件,有则复制到本地,没有则提示资源加载失败,应用无法使用
  30. 2: 只有一个apk方式
  31. 动态打包: 将需要的课程资源动态复制到asset中,再使用命令进行apk打包,这样打出的apk包只有固定的资源
  32. 3: 一个apk,包含所有课程资源... 体积超大
  33. 用户记录保存:
  34. 读取唯一数据源
  35. google 给与的唯一标识符最佳做法:
  36. 1、避免使用硬件标识符(权限限制,硬件定制)
  37. 2、只针对用户剖析或广告用例使用广告 ID
  38. 3、尽一切可能针对防欺诈支付和电话以外的所有其他用例使用实例 ID 或私密存储的 GUID。对于绝大多数非广告用例,使用实例 ID 或 GUID 应已足够。
  39. 4、使用适合您的用例的 API 以尽量降低隐私权风险
  40. 如何实现防快速点击 aspectJ