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

项目中遇到的错误: 使用jectPack时的依赖: · androidx.appcompat: appcompat 依赖中已经带了livedata、viewmodel等,可以不用再依赖,再依赖时出现了异常编译错误,未解决 且 依赖版本不同,对应的livedata等版本也不同

使用sqlcipher 需要在application 实现 : SQLiteDatabase.loadLibs(this)

kotlin 泛型 单例实现 扩展实现 导航实现

svg <vector xmlns:android=“http://schemas.android.com/apk/res/android

android:name="triangle"     //定义矢量图的名称 
android:height="64dp"       //drawable的固定高度,支持所有的尺寸单位,一般使用dp
android:width="64dp"        //drawable的固定宽度,支持所有的尺寸单位,一般使用dp
android:viewportHeight="600"//视图的高度,可以理解为画布的高度 
android:viewportWidth="600" >   //视图的宽度,下面的pathData中的内容便会在600宽高的画布内操作
<group //定义一个组,可以包含path 及子group, 同时可以定义转换信息,如旋转,伸缩,位移 
    android:name="rotationGroup"//组名
    android:pivotX="300.0"  //X坐标中心点,默认为0 
    android:pivotY="300.0"  //Y坐标中心点,默认为0 
    android:rotation="45.0" >   //旋转角度,顺时针
<path android:name="v"  //路径的名称
        android:fillColor="#000000"//填充颜色 
        android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" /> //路径的数据
</group>

apk唯一数据源:

设备唯一 : UUID 存值
第一次启动时间
课程包信息通过合成进行加解密,获取用户的课程数据

数据复制方案: 1: 使用两个apk方式:

A.apk中自带数据库文件 包含功能: 复制数据文件到共有目录(document) 
B.apk中不包含课程数据: 运行时检查本地外置存储是否有需要的课程,如果没有,则检查共有目录(document)中是否存在有对应文件,有则复制到本地,没有则提示资源加载失败,应用无法使用

2: 只有一个apk方式

动态打包: 将需要的课程资源动态复制到asset中,再使用命令进行apk打包,这样打出的apk包只有固定的资源

3: 一个apk,包含所有课程资源… 体积超大

用户记录保存:

读取唯一数据源

google 给与的唯一标识符最佳做法:

1、避免使用硬件标识符(权限限制,硬件定制)
2、只针对用户剖析或广告用例使用广告 ID
3、尽一切可能针对防欺诈支付和电话以外的所有其他用例使用实例 ID 或私密存储的 GUID。对于绝大多数非广告用例,使用实例 ID 或 GUID 应已足够。
4、使用适合您的用例的 API 以尽量降低隐私权风险

如何实现防快速点击 aspectJ

SpellTipsLinearLayout onDraw为什么不调用?为什么设置背景后就有效过了? 实现dialog动画:从底部进入和从底部滑出 DialogFragment原理 BottomSheetDialog 固定高度和原理 BottomSheetDialog中使用TextView滑动的冲突? Behavior MMKV实现和保存原理 canvas.translate 视频播放器