smallSohoSolo

smallSohoSolo Blog

Android单元测试实践

为什么要引入单元测试 一般来说我们都不会写单元测试,为什么呢?因为要写多余的代码,而且还要进行一些学习,入门有些门槛,所以一般在工程中都不会写单元测试。那么为什么我决定要写单元测试。因为两个条件 我很懒:我每次改完都很懒测试 我很怂:我要是不测试,没有一次通过的信心,于是我还是要测试。。。 这篇博客看完并不会让你完全掌握单元测试,但是会给你在单元测试的开始有一个好的指引 ...

McImage插件解析

介绍 McImage插件传送门:https://github.com/Aweme/McImage McImage是一个对资源中的png和jpg图片进行压缩和图片大小检查的插件,通过pngquant算法对图片资源进行压缩,并且可以设置图片最大大小来在打包时候对所有图片资源进行检查。如果发现大于设置的大小,默认为1M,那么就会中断打包,并且提示是哪张图 与tinypng的比较 McImag...

Android自定义Gradle插件

最近各种热修复框架开源,其中使用instant run方式的框架是目前兼容性最好的,典型的有蘑菇街的Aceso和美团的Robust。两者都是使用ASM在编译的时候进行方法级别的修改来达到在运行时热修复。具体原理不详谈,本篇文章主要讲述使用插件在编译时候进行处理。 基础流程:Gradle会将Java代码打包成class,我们可以在打包成class之后插入我们的插件,在插件中使用asm来进行对...

AspectJ从入门到实用

AspectJ是Eclipse出品的Aop框架,可以帮助我们进行很方便的Aop编程。目前最新版是AspectJ 1.8.10 官网链接:http://www.eclipse.org/aspectj/ 另附带Aop(面向切面编程)科普:什么是面向切面编程AOP? 优点 无侵入性 学习成本低 支持各种格式,并且很成熟 缺点 会增加方法数 在动态修改字节码方面...

Android内存泄漏小谈

Android内存泄漏是一个经常要遇到的问题,程序在内存泄漏的时候很容易导致OOM的发生。那么如何查找内存泄漏和避免内存泄漏就是需要知晓的一个问题,首先我们需要知道一些基础知识。 Java的四种引用 强引用: 强引用是Java中最普通的引用,随意创建一个对象然后在其他的地方引用一下,就是强引用,强引用的对象Java宁愿OOM也不会回收他 软引用: 软引用是比强引用弱的引用,在Java ...

我为什么要成为一名全栈工程师?

这篇文章仅仅是自己的一点感悟,可能我写代码的时间不够长,满打满算实习一年,文章可能会有很多不正确的地方,希望大家能帮忙改正,当然菜鸟也要有小梦想和小目标咯~ 回到正题,在自己的技术道路上,是选择成为一名全栈工程师还是一个领域的技术专家呢? 写之前报一下自己的技术栈。PS:我是Google脑残粉 不想看的请跳到下面谈谈益处继续浏览^_^: Android螺丝钉开发者(啦啦啦),能...

Go简明教程

最近有需求做后端,技术选型选择主力开发语言,于是乎从Python,Go,Java,PHP中做选择,经过测试和调研 Go,天生高并发支持,语法简洁,C系列有语言基础 占用内存和CPU资源小,创业公司机器紧张哈 效率超然 通过wrk测试,递归测试,字符串拼接测试 Go完美胜出,无论是内存占用,还是处理速度,都位列第一。编译型的语言就是强 233 IDE选择 强烈推荐In...

Android IPC终极指南(二、使用Messenger进行通信)

此篇文章是看完的Android开发艺术的个人总结,摘抄了很多书上的语句,特此说明 IPC学习比较难,我们由浅入深,上一节我们了解了多进程的基础知识,这一节我们尝试进行多进程通信。 武器01:Messenger Messenger可以翻译为信使,通过它可以在不同的进程中传递Message对象,使用比较辩解,他是一种轻量级的IPC方案,底层是用AIDL实现的,他对AIDL进行了封装...

Android IPC终极指南(一、基础知识)

此篇文章是看完的Android开发艺术的个人总结,摘抄了很多书上的语句,特此说明 Android是基于Linux的操作系统,他有自己的进程间通信方式,Android通过Binder可以轻松的实现进程间通信,当然Android也可以通过Socket进行通信。 为什么要进程间通信? 可能应用因为某些原因需要进行进程间通信,例如:某些模块需要运行在独立的进程中,例如某些工具Ap...

Android使用Palette获取图片主色调

Palette简介 Palette是Android中的调色板,我们可以通过传递一个Bitmap来获取一个颜色列表,可以通过类中封装的分析算法来获取其中的 Vibrant(充满活力的) Vibrant dark(充满活力的黑) Vibrant light(充满活力的亮) Muted(柔和的) Muted dark(柔和的黑) Muted lighr(柔和的亮) ...