打开微信加密数据库
微信 Android
数据库使用 SqlCipher
加密, 从代码来看, 是使用 sqlcipher 1
版本,
1 | private static final SQLiteCipherSpec qDP = |
微信 Android
数据库使用 SqlCipher
加密, 从代码来看, 是使用 sqlcipher 1
版本,
1 | private static final SQLiteCipherSpec qDP = |
加密规则, IMEI
拼接 uin
, 然后取 MD5
信息摘要 (32位小写), 最后截取前七位.
其中 IMEI
可以在拨号键盘输入 *#06#
, uin
存在 sp
中, 路径为\data\data\com.tencent.mm\shared_prefs\auth_info_key_prefs.xml
中,如图所示:
最近搭了下 SonarQube 服务器,在这里记录一下,以免下次需要的时候又花大量的时间精力找资料、找文档。
概括来说,主要分为以下几个步骤:
接下来,会分别介绍每步的操作和可能遇到的坑。
因为 Android 7.0
安全机制调整, 默认情况下 系统只信任内置的 CA
证书, 因此在使用 fiddler
, Charlse
这种通过手动安装 CA
证书,利用中间人抓包的软件都失效了.
当然,道高一尺,魔高一丈, 对于已经 Root
过的手机依然可以绕过这一限制.
在跟进线上日志上报系统时,发现上报的日志内容全部为空(c 字段内为空)。
1 | {"c":"{}","f":5,"l":1615895427708,"n":"main","i":2,"m":true} |
一个类可以有一个主构造函数和一个或多个次构造函数
1 | class Person constructor(firstName: String) { /*……*/ } |
当没有访问修饰符或者注解时可以省略constructor
关键字
上篇一口气没把所有的适配方案介绍完,今天来收个尾。
上篇文章介绍了在屏幕适配上遇到的问题,采用px
或者dp
都会与设计稿存在一定的偏差,也详细的介绍了dp
和dpi
含义和作用,本篇文章着重介绍我们应该如何做好屏幕适配的工作,以及各种屏幕适配方法发展史。
自从工作以来,一直以屏幕适配斗智斗勇。由与Android碎片化严重,存在各种奇奇怪怪的分辨率,为了开发高质量的app,必然需要尽肯能的适配多机型,其中屏幕适配就是其中一项。经过多年的磨练,学习到了一些奇技淫巧。借此机会,做个总结,也算是给自己一个交代,如果顺便能帮到一些同学,那就再好不过了。计划分成两篇文章来彻底阐述屏幕适配的前世今生。本篇先介绍下为什么需要适配,以及为下篇怎么适配提供些预备知识。