JackPeng

Keep on going never give up

管理Bitmap的内存占用

管理Bitmap的内存占用 编写:kesenhoo - 原文:http://developer.android.com/training/displaying-bitmaps/manage-memory.html 作为缓存Bitmaps的进一步延伸, 为了促进GC与bitmap的重用,你还有一些特定的事情可以做. 推荐的策略会根据Android的版本不同而有所差异. Displa...

Android DiskLruCache完全解析,硬盘缓存的最佳方案

概述 记得在很早之前,我有写过一篇文章Android高效加载大图、多图解决方案,有效避免程序OOM,这篇文章是翻译自Android Doc的,其中防止多图OOM的核心解决思路就是使用LruCache技术。但LruCache只是管理了内存中图片的存储与释放,如果图片从内存中被移除的话,那么又需要从网络上重新加载一次图片,这显然非常耗时。对此,Google又提供了一套硬盘缓存的解决方案:Dis...

Bugreport源码篇(一)

一、概述 通过adb命令可获取bugrepport信息,并输出到文件当前路径的bugreport.txt文件: adb bugreport > bugreport.txt 对于Android系统调试分析,bugreport信息量非常之大,几乎涵盖整个系统各个层面内容,对于分析BUG是一大利器。 本文先从从源码角度来分析一下Bugreport的实现原理,下一篇文章再进一步阐述Bu...

Atom编辑器

一、概述 Atom是Github专为hacker推出的开源的文本编辑器,支持linux、window等多平台,界面简洁优雅,当第一眼看到atom界面的时候就深深地被吸引: ; Atom提供非常方便进行主题二次开发,插件扩展化等非常适合定制,并且可以直接方便得修改所有相关的config配置,可以打造自己独有的编辑器。 关于atom很多操作都在Settings菜单里,进入方式: File...

layoutparams分析

在上一篇文章里,我总结了一下自定义控件需要了解的基础知识:View的绘制流程——《自定义控件知识储备-View的绘制流程》。其中,在View的测量流程里,View的测量宽高是由父控件的MeasureSpec和View自身的LayoutParams共同决定的。MeasureSpec是什么,上一篇文章里已经说得很清楚了(啥,没看过?快去路克路克,(๑•̀ㅂ•́)و✧)。而LayoutParams...

View的绘制流程

在自定义控件这个学习系列里,首先写篇文章记录一下View的绘制流程,压压惊:-P。也为以后的自定义控件实践打个基础。虽然讲解View工作流程的文章很多,其中不乏很多精品文章,不过自己能从中理清思路,以自己之言总结出来,也是十分必要的。好的,我要开始装…不,总结了。 1. 前言 当我们打开手机,开始看朋友圈,刷微博的时候,我们有考虑过在我们眼前的一个个View是如何从无到有的展示在我们眼前...

五分钟读懂 UML 类图

五分钟读懂 UML 类图 相信各位同学在阅读一些源码分析类文章或是设计应用架构时没少与UML类图打交道。实际上,UML类图中最常用到的元素五分钟就能掌握,经常看到UML类图但还不太熟悉的小伙伴赶紧来一起认识一下它吧:) 一、类的属性的表示方式 在UML类图中,类使用包含类名、属性(field)和方法(method)且带有分隔线的矩形来表示,比如下图表示一个Employee类,它包含na...

Welcome to Jekyll!

You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run je...

Android Broadcast广播机制分析

基于Android 6.0的源码剖析, 分析android广播的发送与接收流程。 一、概述 广播(Broadcast)机制用于进程/线程间通信,广播分为广播发送和广播接收两个过程,其中广播接收者BroadcastReceiver便是Android四大组件之一。 BroadcastReceiver分为两类: 静态广播接收者:通过AndroidManifest.xml的标签...

Android JNI原理分析

引言:分析Android源码6.0的过程,一定离不开Java与C/C++代码直接的来回跳转,那么就很有必要掌握JNI,这是链接Java层和Native层的桥梁,本文涉及相关源码: frameworks/base/core/jni/AndroidRuntime.cpp libcore/luni/src/main/java/java/lang/System.java libcore/...