https://www.gravatar.com/avatar/7a0c24f697ea1587001c36d00039b60f?s=240&d=mp

Android GC 那点事

想写一篇关于Android GC的想法来源于追查一个魅族手机图片滑动卡顿问题,由于不断的GC导致的丢帧卡顿的问题让我们想了很多方案去解决,所以就打算详细的看看内存分配和GC的原理,为什么会不断的GC, GC ALLOC和GC COCURRENT有什么区别,能不能想办法扩大堆内存减少GC的频次等等。

Android无需权限显示悬浮窗, 兼谈逆向分析app

最近UC浏览器中文版出了一个快速搜索的功能, 在使用其他app的时候, 如果复制了一些内容, 屏幕顶部会弹一个窗口, 提示一些操作, 点击后跳转到UC, 显示这个悬浮窗不需要申请`android.permission.SYSTEM_ALERT_WINDOW`权限.

如下图, 截图是在使用Chrome时截的, 但是屏幕顶部却有UC的view浮在屏幕上. 我使用的是小米, 我并没有给UC授悬浮窗权限, 所以我看到这个悬浮窗时是很震惊的.

Git:代码冲突常见解决方法

使用git,当本地文件修改后,使用git pull会报错error: Your local changes to the following files would be overwritten by merge:

此时可以使用如下解决方案

1
2
3
git stash  
git pull  
git stash pop  

但是有一个问题需要注意,合并后会生成类似====>之类的东西,需要手动去处理下,不然会有问题的。

mac 使用 nvm 管理不同版本的 node 与 npm

我最开始通过brew安装的nvm,发现各种坑,经常导致我的终端启动卡死。一堆的资源没有激活之类的提示。然后突然找到一篇文章,说通过brew安装的nvm路径有问题,建议直接全局安装nvm。然后试了下,果然效果拔萃,把brew安装的nvm卸载后,现在终端启动终于正常了。