Guofeng Blog

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

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上也...

WebSocket 笔记

WebSocket 笔记 前言 WebSocket 来说,它必须依赖 HTTP 协议进行一次握手 ,握手成功后,数据就直接从 TCP 通道传输,与 HTTP 无关了。 WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 剩下的 google 学习吧

饿了么UETool

饿了么UETool 搬运一篇好文章备用,参见 github 1.饿了么UETool效果图&&用途 自从我把这个工具给我们设计同学安利之后,她们就爱的不要不要的,用过安卓系统开发者选项的同学知道,有一个查看边界的按钮,但是有时候呢,觉得功能不够,因为开发者选项显示边距的和android studio的Layout Inspector 或者DDMS 的uiautomat...

Android Jetpack Navigation

Android Jetpack Navigation 搬运一篇好文章备用,参见 在刚刚结束的谷歌IO大会上,谷歌推出了Android Jetpack架构组件,里面包含了Navigation组件,这篇文章我们就来看看这个Navigation的使用。 1、安装Android Studio 3.2 目前最新版本是3.2 CANARY 15,前往https://androidstudio.g...

如何在安卓应用中使用 TensorFlow Mobile

如何在安卓应用中使用 TensorFlow Mobile 搬运一篇好文章备用,参见 TensorFlow 是当今最流行的机器学习框架之一,您利用它可以轻松创建和训练深度模型 —— 通常也称为深度前馈神经网络,这些模型可以解决各种复杂问题,如图像分类、目标检测和自然语言理解。TensorFlow Mobile 是一个旨在帮助您在移动应用中利用这些模型的库。 在本教程中,我将向您展示如何在...

AndroidP 兼容适配重点

AndroidP 兼容适配重点 参见 csdn, 直接调用 dex2oat,或者使用不支持 / 不正确的方式编译 dex 文件 原因: 从一开始,dex2oat 就被设计为系统内部使用的编译部署工具,Android 从来都未支持过开发者直接调用 dex2oat 的场景。我们会持续而不定期地对这个工具进行优化,而很多时候其行为变更 (如: 生成的文件及其格式) 都是与之前不兼容的。在大...

XPosed入门

XPosed入门 参见 csdn, Xposed是一款可以在不修改APK的情况下影响程序运行的框架服务,基于Xposed能够制作出许多功能强大的模块,且在功能不冲突的情况下同时运作,而且Xposed是彻底开源的。 **我测试的收集为华为荣耀4X,系统版本4.4.4,直接安装官网的,提示有冲突,无法安装,索性 Google 了一下,找到一个 bugfix 版本,相关文件我都上传到这里链接...

深度好文:“飙” EventBus 3

深度好文:“飙” EventBus 3 参见 腾讯Bugly, EventBus对于Android开发老司机来说肯定不会陌生,它是一个基于观察者模式的事件发布/订阅框架,开发者可以通过极少的代码去实现多个模块之间的通信,而不需要以层层传递接口的形式去单独构建通信桥梁。从而降低因多重回调导致的模块间强耦合,同时避免产生大量内部类。它拥有使用方便,性能高,接入成本低和支持多线程的优点,实乃模...