项目中遇到的错误: 使用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 视频播放器