Guofeng Blog

「离开世界之前 一切都是过程」

Only fullscreen activities can request orientation?Android O开始的坑

Only fullscreen activities can request orientation?Android O开始的坑 特征 当我们把targetSdkVersion升级到27,buildToolsVersion和相关的support library升级到27.0.1后,在Android 8.0(API level 26)上,部分Activity出现了一个莫名其妙的crash,...

《Android 开发艺术探索》示例代码修复

android-art-res-new 相信很多人都看了《Android 开发艺术探索》这本书,不知道有多少人会在运行代码学习一遍,当我浏览 git 代码时,发现项目都是 eclipse 时代的,为了方便他人学习,我统一进行了转换,并进行了部分修复工作,如下: 更新所有项目为 AndroidStudio gradle 形式 nineold 动画库现在已经用不到了,因为基本所有 ...

ActivityResult 的一切

ActivityResult 的一切 Android 中 Activity 直接通信的方式一般是 A.startActivityForResult(B) B 在 finish()之前调用 setResult()存入结果,关闭 B 页面 回到 A 页面之后,在 onActivityResult 中接收结果 这种典型的通信方式相信大家早就习以为常了,但是本文要说几个你可能没有...

Android相机实时自动对焦的完美实现

Android相机实时自动对焦的完美实现 github,由于android碎片化严重,而且各大厂商极有可能去修改相关API的实现,其中遇到了不少坑,包括实时相机高斯模糊,自动对焦的兼容问题,以及一系列性能问题。换过很多搜索引擎,访问过很多网站,访问过很多网站,拜读过很多代码,没有发现对于相机实时自动对焦特别完美的实现方式。现对相机的自动对焦问题单独做一个记录,算是对这部分的一个总结。也希望...

推荐一款战神级别的开发神器 Pandora

不用在 root 去调试应用的各项私有沙河数据,也不用反复修改 ui 看效果,不用在抓包看数据,这些都可以直接在手机上操作。 an android library for debugging what we care about directly in app. Pandora Pandora 是一款无需ROOT、可以直接在 应用内 查看和修改包括网络、数据库、UI等的Andr...

Bitmap inSampleSize 缩放

一、本文需要解决的问题 线上发现一个 OOM,是读取相册图片之后,通过 base64返回给 h5,因为目前带项目事情比较多,交给组内一个大龄同事处理。 过了半天左右,看到他提交的代码,里面写的是如果图片像素是屏幕16倍,则缩放因子是4,如果是9倍则缩放因子是3,,2,,1。看到这一坨代码,我着实害怕,虽然他说这是以前的项目就是这么干的。 作为一个多年工作的程序员,能不写死就不写死,防御性...

安卓各种抢红包插件原理--AccessibilityService

转载原文 github 代码地址 一、本文需要解决的问题 之前本人做了一个项目,需要用到AccessibilityService这个系统提供的拓展服务。这个服务本意是作为Android系统的一个辅助功能,去帮助残疾人更好地使用手机。但是由于它的一些特性,给很多项目的实现提供了一个新的思路,例如之前大名鼎鼎的微信抢红包插件,本质上就是使用了这个服务。我研究AccessibilityServ...

Facebook Sonar 移动端调试神器

Facebook Sonar 移动端调试神器 官网、github、Demo地址 简介 Sonar是Android/iOS开发调试工具,包含桌面查看器(仅限 Mac),Android/iOS 调试 SDK。前身是Stetho,仅支持 Android,所以 Facebook 继续深入开发,诞生了 Sonar,大家也可以去了解下Stetho: github, 官网 使用 下载 Mac ...

ThreadLocal 源码调试解毒

ThreadLocal 源码调试解毒 简介 如上图所示,Thread.mThreadLocal 记录着ThreadLocalMap,这个 Map 实现类似 HashMap,使用数组实现,动态扩容,容量为2 n 次幂,保证 hash 计算可以使用高效的位计算。 全局观 Thread.[ThreadLocal1.value,ThreadLocal2.value] 本质 不同的线程上面...

Android Jetpack Navigation

Android Jetpack Navigation 搬运一篇好文章备用,参见 前言 我在项目中尽量避免 使用 和 管理 Fragment, 尤其是处理Fragment的 多重嵌套 和 回退栈的情况。所幸有Activity在,我绕过了很多 Fragment 复杂的使用场景——必须承认,相比Activity的简单易上手,Fragment的古灵精怪令我头痛不已。 当然,Github上也...