木木的木头

一只爱折腾的小程序猿

Android版本号记录

迫于乱七八糟的甜点名实在记不住,因此记录在此 名称 版本号 发行日期 API等级 安全性更新状态 Android 1.0 1.0 2008年9月23日 1 不支持 Android 1...

Java volatile关键字

volatile

转载于 https://crossoverjie.top/2018/03/09/volatile/ 内存可见性 由于 Java 内存模型(JMM)规定,所有的变量都存放在主内存中,而每个线程都有着自己的工作内存(高速缓存)。 线程在工作时,需要将主内存中的数据拷贝到工作内存中。这样对数据的任何操作都是基于工作内存(效率提高),并且不能直接操作主内存以及其他线程工作内存中的数据,之...

两次灾难性的项目开发经历复盘

焦油坑的开发经历

史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人震撼。上帝见证着 恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛 兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。 –«人月神话» 在这里复盘总结我所经历过的两次最为灾难性的程序开发经历。之所以称之为灾难,是因为以下几个问题十分严重: 项目开发过程中严重延期,且...

Android Apk反编译与无源码调试

逆向工程

Android app 反编译与无源码断点调试 前置技能 1、熟悉Android开发 2、熟悉java编程语言,了解jvm运行原理,了解java字节码 3、熟练使用xposed、Magisk 4、熟练使用adb工具 工具准备 1、Android3.4(4.0之后的版本smalidea插件用不了) 下载地址 2、Smalidea-0.05 下载地址 3、Apktool 下载地...

个人服务器架构介绍

合理使用高射炮打蚊子

背景 服务器硬件:BWG 洛杉矶机房 10G+512M+1核 截止目前,我服务器(你现在看的这个页面就是在这个服务器上面)上面运行的服务有:Nginx、PHP、MySQL、Redis、Log收集器、Ngork 。这些服务全部部署在一台机器上面。但是由于我服务器经常拿来做一些测试,导致经常需要 重装系统。因此每次重装系统后的服务部署都格外头疼。基本上把这些所有的服务部署一般,半天时间就没了。...

js深拷贝记录

js经常需要用到深拷贝,深拷贝实现一般有2种: 1、遍历object,复制到新对象中,比如vue底层的实现: https://github.com/vuejs/vuex/blob/dev/src/util.js#L22 做了下整理,合成一个函数了: /** * 深拷贝 * @param {*} obj 拷贝对象(object or array) * @param {*} cach...

解决MAC操作系统所有应用报错“您无法打开应用程序'XXXX',因为它可能已损坏或不完整”

MAC系统错误

现象 我也不知道什么操作导致的,结果就是系统所有应用图标都变成一个问号,点击打开都提示“您无法打开应用程序’app name’,因为它可能已损坏或不完整”。然后注销账户,使用访客账户登录,发现一切正常。 解决过程 STEP 1 首先我怀疑是我账户的环境变量导致的,然后我用访客账户登录,进入命令行,切到root账户,清空我账户的环境变量,重启,结果没什么卵用。 STEP 2 我想了...

Golang跨平台编译

Golang

Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。 Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main...

自制按键精灵

Reboot

项目地址 由来 之前想给手游写一套很牛逼的自动化控制脚本,能够实现自动领任务,自动寻路,找怪,打怪。。。以前一直用按键精灵写简单的游戏脚本,但是按键精灵底层不够稳定,经常死掉无响应,而且按键精灵网络通信基本等于残废。于是我决定自己从轮子开始开发。 大致架构 首先,领任务,找怪。。。这些肯定得用上文字识别,在寻找很久后,最终用了cnocr 这个项目基于MXNet网络训练,并且部署及...

深入探究按键精灵(Android)的实现原理

逆向工程

深入探究按键精灵(Android)的实现原理 起因:本来想用按键精灵写点挂机脚本,但广告过于恶心,于是就想自己写一个模拟人工操作的app,但是写的时候发现各种权限问题,于是便好奇想探究一下按键精灵是如何做到Root后后台截屏并模拟手动点击的 Step 1 首先是在网上查了按键精灵的相关讨论,发现挺多人其实都在研究按键精灵的实现,但是大家都是从结果讨论的,基本上想办法做到能够模拟...