背景在业务中,我们可能需要面对在Android本地存储用户token、email等敏感数据。本文将讲述一种安全系数较高的Android本地存储方案。思路整个方案的核心思路围绕KeyStore展开,如果不太了解KeyStore的小伙伴,请先阅读Android密钥库系统。由于KeyStore在Andro ...
记一次Android本地拒绝服务漏洞的追根溯源
背景由于一些xxxxoooo的原因,我需要修复一个跨进程Service可能会被外部传入intent数据导致拒绝服务的问题。当被告知这个问题的时候,我是一脸懵逼的。复现这个问题的测试代码如下:Intent i = new Intent();i.setClassName("我要调起的应用的包名", "我 ...
一种高效通用的字符串前置匹配方法
现状一般情况下,我们使用字符串的前置匹配方法,如果要做的通用一些,忽略大小写,可能会这么写:public boolean startsWithIgnoreCase(String str, String prefix) { if (!TextUtils.isEmpty(str) &am ...
使用Synchronized对象锁的一个优化细节
背景大家在使用synchronized关键字的时候,可能经常会这么写:synchronized (this) { ...}它的作用域是当前对象,锁的就是当前对象,谁拿到这个锁谁就可以运行它所控制的代码。当有一个明确的对象作为锁时,就可以这么写,但是当没有一个明确的对象作为锁,只 ...
Jenkins中使用Appium的最佳姿势
最近在公司内部申请了一台云主机当做我们组自己的slave机器,于是把之前从北京侧同事那边借的Job迁移过来,appium相关的环境要全部重新配置。上次同事帮了我很多忙,所以我并不太清楚Jenkins这块儿到底应该怎么配置,这次是完全自己走了一遍坑,记录一下遇到的问题。撰写本文时笔者的云主机上一些环境 ...
五步让Hexo博客支持PWA
某天,突发奇想看了看PWA,觉得很有意思。正好自己有个小博客,遂实验:Hexo博客极速支持PWA。本文不讲PWA的技术原理,只给出让Hexo博客支持PWA的最快方法。第一步支持PWA的第一步,便是全站HTTPS。由于我的博客采用Hexo+Gitpage搭建,完全静态,没有任何后端服务,那怎么支持全站 ...
Java里Hashmap序列化的一个坑
发现问题在做业务需求的过程中,遇到一个非常奇怪的问题。在一个继承了Serializable接口的java bean里按照常规操作添加了一个hashmap和与之对应的getter、setter,就像这样:...private HashMap<String, String> mChooseM ...
React Native App CI
应一些小伙伴之邀,总结一篇关于react-native app CI配置的文章,分享出来抛砖引玉~撰写本文时笔者的一些环境版本:macOS:10.12.1npm:3.10.8node:6.9.1背景我们在开发react-native app的过程中,需要用一些手段来保证我们的代码质量、测试与打包,这 ...
客户端自动化测试小探索
本文背景:最近花了两三天时间小探索了一下客户端的自动化测试,起因是因为公司项目在提测之前必须自己手点一些固有的测试case,确定没问题才能提测。实在懒得点,就想探寻一下有没有比较简单的办法解决这个问题。技术选型客户端测试我了解的不是很专业,在我的之前的认知里,主要由appium,macaca等构成, ...