自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(454)
  • 资源 (1)
  • 收藏
  • 关注

转载 ItemDecoration解析(二) onDraw onDrawOver

转载于:http://www.jianshu.com/p/6a093bcc6b83上篇文章介绍了利用ItemDecoration的getItemOffsets方法来设置每个ItemView的间隔,这篇文章继续介绍下ItemDecoration剩下的两个方法(未过时的)——onDraw和onDrawOver。在官方的开发文档中有指出,onDraw是在itemview绘制之前,onD

2017-10-26 10:28:36 977

转载 ItemDecoration解析(一) getItemOffsets

介绍An ItemDecoration allows the application to add a special drawing and layout offset to specific item views from the adapter's data set. This can be useful for drawing dividers between items, highl

2017-10-25 21:40:51 5535 1

转载 Android-三张图搞定Touch事件传递机制

之前看了很多关于Android事件Touch传递机制的文章,感觉还是老外讲的最清楚。原版PDF地址:Mastering the Android Touch System,github的demo地址:demo上图之前先讲下Android事件的基础知识:所有的Touch事件都封装到MotionEvent里面事件处理包括三种情况,分别为:传递—-dispatchTouchEvent(

2017-08-30 15:21:18 872

转载 fragment 懒加载3

使用前需知2017-7-14更新: 目前有人使用后出现了诸如首次打开显示空白界面,但点击有反应;或来回切换又变空白界面的问题。这些问题我暂时还不知道该怎么解决,后期有时间时会具体去分析下问题该怎么解决。所以你如果要使用该代码,希望考虑一下,我自己的小应用目前是没碰到这些问题。效果老规矩,先来看看效果图演示log没错,我又入坑了,又重新做了个 Gank

2017-08-25 17:31:23 379

转载 fragment 懒加载2

效果老规矩,先来看看效果 效果图ANDROID和福利两个Fragment是设置的Fragment可见时加载数据,也就是懒加载。圆形的旋转加载图标只有一个,所以,如果当前Fragment正处于加载状态,在离开该Fragment时需要隐藏加载动画,因为另一个Fragment并不一定处于加载状态,当返回Fragment时,如果还是处于加载状态,则要可以实现自动显示加载动画,如果数据已

2017-08-25 17:30:11 358

转载 Fragment结合ViewPager之懒加载 1

什么是懒加载?为什么要用懒加载?1、什么是懒加载懒加载就是当ViewPager和Fragment结合在一起使用时,Fragment呈现在用户面前时才加载数据,当其从未被呈现在用户面前时,不会执行加载数据的代码。这就是我所理解的懒加载。2、为什么要用懒加载ViewPager默认会预加载下一页,对于某些重量级的Fragment来说无疑会造成很大的开销,当然了,如果对于你来说这些开销是必

2017-08-25 17:29:14 406

转载 LinkedBlockingQueue源码分析

前言在前面的文章ArrayBlockingQueue源码分析中,已经对JDK中的BlockingQueue中的做了一个回顾,同时对ArrayBlockingQueue中的核心方法作了说明,而LinkedBlockingQueue作为JDK中BlockingQueue家族系列中一员,由于其作为固定大小线程池(Executors.newFixedThreadPool())底层所使用的阻塞队列,分析

2017-08-18 14:42:46 432

转载 ArrayBlockingQueue源码分析

前言本文的主要详细分析ArrayBlockingQueue的实现原理,由于该并发集合其底层是使用了java.util.ReentrantLock和java.util.Condition来完成并发控制的,我们可以通过JDK的源代码更好的学习这些并发控制类的使用,同时该类也是所有并发集合中最简单的一个,分析该类的源码也是为之后分析其他并发集合做好基础。1.Queue接口和BlockingQ

2017-08-18 14:41:18 288

转载 java 虚拟机

http://www.jianshu.com/p/83177b1a2876http://www.jianshu.com/p/a83cc1f61a04http://www.cnblogs.com/lao-liang/p/5110710.html

2017-08-17 16:46:59 1160

转载 理解Java虚拟机体系结构

1 概述  众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么。正是得益于Java虚拟机,它号称的“一次编译,到处运行”才能有所保障。1.1 Java程序执行流程  Java程序的执行依赖于编译环境和运行环境。源码代码转变成可执行的机器代码,由下面的流程

2017-08-17 13:52:01 404

转载 深入理解Java虚拟机小结

1、Java内存区域划分:Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域.区域权限生命周期1、方法区线程共享2、堆线程共享虚拟机启动时创建,虚拟机关闭时销毁3、虚拟机栈线程私有与线程同步4、本地方法栈线程私有 5、程序计数器线程私有

2017-08-17 13:50:49 309

转载 《深入理解Java虚拟机》笔记

一、内存管理1、运行时的内存区域线程私有:虚拟机栈、本地方法栈、程序计数器线程共享:堆、方法区2、各个内存区域可能抛出的异常栈1、当单线程时,栈的深度太大,会发生StackOverflowError,比如无穷的递归调用。2、当多线程时,若不停地创建线程,则会导致OutOfMemoryError,因为除去堆和方法区之外,剩下的栈总空间是有限的,不停创建线程则会不停申请

2017-08-17 13:49:54 282

转载 Android Studio-Memory Monitor

一、Android Studio-Memory Monitor使用方法run起你的项目,找到Memory Monitor窗口,选择Memory[转]内存变化波形图另外,还可选择查看CPU和GPU还有NetWork的使用情况。网络使用波形图.png其中NetWork的频繁使用是造成应用耗电的关键,70%左右的电量是被上报数据,检查位置信息,定时

2017-08-14 18:30:00 798

转载 在Android Studio下使用Hierarchy Viewer

最近看到这篇文章《Android UI性能优化详解》,里面使用了Hierarchy Viewer来对布局进行优化。开发android这么久了,一直都有听过这个工具,但是重来都没真正去使用过,不得不说是一种失败。现在刚好趁着空闲,研究一下Hierarchy Viewer的使用方法。启动Android Device Monitor网上搜索了教程,直接在sdk>tools下面找到hierarch

2017-08-14 18:29:06 7860 1

转载 应用开发进阶必经之路之性能优化

为了方便在手机上阅读,文章也会在公众号发出,更多原创文章和优质资源请关注公众号:公众号:open_dev更多Android技术资源交流请加群“Android技术资源交流群”,第1期群分享精华已在微信公众号发出,本群的建群宗旨是分享优质的Android技术资源。群成员可以自由分享任何Android方面的技术资源和文章,并会不定期总结成文章方便大家阅读。群已满,请加群助理微信:Jf-199

2017-08-14 18:26:55 334

转载 屏幕适配方案一

http://www.jianshu.com/p/ec5a1a30694b

2017-08-10 18:35:04 226

转载 Android 于Webview 交互

上述功能是由Android的WebView实现的,其中涉及到Android客户端与Web网页交互的实现今天我将全面介绍Android通过WebView与JS交互的全面方式阅读本文前请先阅读:Android开发:最全面、最易懂的Webview详解目录目录1. 交互方式总结Android与JS通过WebView互相调用方法,实际上是:Androi

2017-08-10 18:02:41 395

转载 Webview使用详解

转载于:http://www.jianshu.com/p/3c94ae673e2a前言现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图京东首页那么这种该如何实现呢?其实这是Android里一个叫WebView的组件实现的。今天我将全面介绍WebView的常用用法。目录文章目录

2017-08-10 18:01:03 372

转载 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion

当你发布一个应用之后,(取决于具体的发布时间)可能没过几个月 android 系统就发布了一个新版本。这对你的应用意味着什么,所有东西都不能用了?别担心,向前兼容是 Android 非常关注的事情。用户在升级到新版 Android 的时候,用以前版本的 SDK 构建的现有应用应该不会出问题。这就是 compileSdkVersion, minSdkVersion 和 targetSdkVe

2017-08-08 17:42:09 252

转载 ListView 源码解析

在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况。ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。另外ListView还有一个非常神奇的功能,我相信大家应该都体验过,即使在ListView中加载非常非常多的数据,比如达到成百上千

2017-08-07 16:55:26 288

转载 HashMap,ArrayMap,SparseArray源码分析及性能对比

ArrayMap及SparseArray是android的系统API,是专门为移动设备而定制的。用于在一定情况下取代HashMap而达到节省内存的目的。一.源码分析(由于篇幅限制,源码分析部分会放在单独的文章中)二.实现原理及数据结构对比三.性能测试对比四.总结一.源码分析稍后会在下一篇文章中补充(都写在一篇,篇幅太长了)二.实现原理及数据结构对比1. hashMa

2017-08-07 16:02:25 486

转载 mat--- -MAT比Menmery Monitor更强大

在Android性能优化第(一)篇---基本概念中讲了JAVA的四大引用,讲了一下GCRoot,第二篇Memory Monitor检测内存泄露仅仅说了Menmery Monitor的使用,这篇博客谈一下MAT来寻找内存泄露,相对来说,Memory Monitor没有MAT强大,但是在开始介绍MAT之前,上两篇没有说清楚的问题先说一下。GC回收对可回收对象的判定什么样的对象是可以被回

2017-08-04 17:25:22 336

转载 mat---Memory Monitor检测内存泄露

上篇说了一些性能优化的理论部分,主要是回顾一下,有了理论,小平同志又讲了,实践是检验真理的唯一标准,对于内存泄露的问题,现在通过Android Studio自带工具Memory Monitor 检测出来。性能优化的重要性不需要在强调,但是要强调一下,我并不是一个老司机,嘿嘿!没用过这个工具的,请睁大眼睛。如果你用过,那么就不用在看这篇博客了。先看一段会发生内存泄露的代码public cla

2017-08-04 17:24:22 424

转载 Mac下配置Sdk platform-tools目录的环境变量

为了要使用一个sdk工具,但是在终端中输入命令却又不识别,各种头疼,网上找了老久。总算是找到一个配置环境的良方,有需要的同学可以试试。首先在终端中输入  echo $HOME  然后 输入touch .bash_profile  然后 输入open -e .bash_profile 在打开的编辑框中输入如下文字 export PATH=${PATH}:/Us

2017-08-03 22:47:54 3382

转载 Android 彻底组件化方案实践

模块化、组件化与插件化项目发展到一定程度,随着人员的增多,代码越来越臃肿,这时候就必须进行模块化的拆分。在我看来,模块化是一种指导理念,其核心思想就是分而治之、降低耦合。而在Android工程中如何实施,目前有两种途径,也是两大流派,一个是组件化,一个是插件化。提起组件化和插件化的区别,有一个很形象的图:组件化和插件化对比

2017-07-30 22:29:08 1279 2

转载 深入理解阻塞队列(一)——基本结构

BlockingQueue是一个继承自Queue的接口,在Queue的队列基础上增加了阻塞操作。简单来说,就是在在BlockingQueue为空时从队头取数据将会被阻塞,因为此时还没有数据可取,一旦队列中有数据了,取数据的线程就会释放得到了数据;如果BlockingQueue有容量限制且满了,那么插入数据的线程将会阻塞,知道队列中有空闲位置可以插入数据了,才会释放。经过上面一段描述,可以发现这不就

2017-07-27 17:36:47 465

转载 Activity启动过程简要介绍

无论是通过点击应用程序图标来启动Activity,还是通过Activity内部调用startActivity接口来启动新的Activity,都要借助于应用程序框架层ActivityManagerService服务进程。在前面一篇文章Android系统在新进程中启动自定义服务过程(startService)的原理分析中,我们已经看到,Service也是由ActivityManagerService进

2017-07-21 16:15:10 378

转载 java 虚拟机 内存分配

JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身.3.一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。

2017-07-21 14:22:43 252

转载 移动开发构架漫谈——反劫持实战篇

汽车之家是全球访问量最大的汽车网站。为广大汽车消费者提供买车、用车、养车及与汽车生活相关的全程服务,以全面、专业、可信赖、高互动性的内容,多层次、多维度地影响最广泛的汽车消费者,是中国最具价值的互联网汽车营销平台。在UPYUN Open Talk 第八期《移动应用技术架构的解读》技术沙龙上,来自汽车之家技术架构师莫松为开发者分享APP产品遭遇到网络劫持后的解决方案,并且分析产生劫持原因以及

2017-07-20 14:06:28 990

转载 DNS域名劫持的几种解决方法

现在国内上网的用户,大多家用的都是用的网通或者电信的adsl,这中间还分各省地区的拨号服务器,dns(Domain Name System)就成了上网时,很关键的一环,dns的快慢与稳定与否,关系着浏览时的正常;更有甚者,dns的健康与否,更会直接影响各个拨号客户端的健康。dns劫持现在不算新名词了,从理解WWW以后,网络的普及,it知识的丰富积累,大家都知道了能够浏览网络的基本原

2017-07-20 10:17:33 35923 1

转载 线程池的原理及实现(2)

前言线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的使用线程池对线程进行统一分配、调优和监控,有以下好处:1、降低资源消耗;2、提高响应速度;3、提高线程的可管理性。Java1.5中引入的Executor框架把任务的提交和执行进行解耦,只需要定义好任务,然后提交给线程池,而不用关心该任务是如何执行、被哪个线程执行,以及什么时候执行。dem

2017-07-19 14:53:02 243

转载 线程池的原理及实现(1)

1、线程池简介:    多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。        假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。    如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。                一个线程

2017-07-19 14:46:27 255

转载 轻松理解 Android Binder,只需要读这一篇

转载于:http://www.jianshu.com/p/bdef9e3178c9在 Android 系统中,Binder 起着非常重要的作用,它是整个系统 IPC 的基石。网上已经有很多文章讲述 Binder 的原理,有的讲的比较浅显,没有触及到关键,有的讲的太过于深入底层,难以理解,本文会比较全面,以一个比较轻松的方式,从面到点,大处着眼,小处着手的形式去讲述 Binder 在 A

2017-07-17 16:50:02 302

转载 Android初学路上会遇到的瓶颈

供参考Android布局和屏幕适配 Android初学者遇到的第一个瓶颈就是Android 布局的编写。首先Android的layout是用XML写的,而大多数大学生在大学阶段学习网页制作,都是用HTML绘制基本控件,然后用CSS进行页面美化;而Android却用XML绘制界面,style也是用XML写。学习XML最重要的熟能生巧,多练习练习就顺手了,另外XML和HTML有很多

2017-07-16 21:16:17 391

转载 oom

以下为正文:Android的内存优化是性能优化中很重要的一部分,而避免OOM又是内存优化中比较核心的一点。这是一篇关于内存优化中如何避免OOM的总结性概要文章,内容大多都是和OOM有关的实践总结概要。理解错误或是偏差的地方,还请多包涵指正,谢谢!(一)Android的内存管理机制Google在Android的官网上有这样一篇文章,初步介绍了Android是如何管理应用的

2017-07-06 09:18:03 688

转载 Android内存优化之OOM

以下为正文:Android的内存优化是性能优化中很重要的一部分,而避免OOM又是内存优化中比较核心的一点。这是一篇关于内存优化中如何避免OOM的总结性概要文章,内容大多都是和OOM有关的实践总结概要。理解错误或是偏差的地方,还请多包涵指正,谢谢!(一)Android的内存管理机制Google在Android的官网上有这样一篇文章,初步介绍了Android是如何管理应用的

2017-07-05 19:47:50 444

转载 Android中RelativeLayout和LinearLayout性能分析

先看一些现象吧:用eclipse或者Android studio,新建一个Activity自动生成的布局文件都是RelativeLayout,或许你会认为这是IDE的默认设置问题,其实不然,这是由 android-sdk\tools\templates\activities\BlankActivity\root\res\layout\activity_simple.xml.ftl 这个文件事先

2017-07-05 14:41:15 259

转载 如何给100亿个数字排序?

场景之前写过一篇海量数据中统计ip出现次数最多的博客,今天再写篇类似的,当然会有不同的地方,相同的地方我快速写过,详细的可以看之前的博客。今天要给100亿个数字排序,100亿个 int 型数字放在文件里面大概有 37.2GB,非常大,内存一次装不下了。那么肯定是要拆分成小的文件一个一个来处理,最终在合并成一个排好序的大文件。实现思路1.把这个37GB的大文件,用哈希分成1000

2017-07-03 17:46:46 869

转载 单链表冒泡排序

/** * 链表结点类 */class Node{ private int data; private Node next; //链表结点的指针域,指向直接后继结点 public Node(){ next = null; } public Node(int data, Node next){ this.data = data; this.next = next; } publ

2017-07-03 16:45:41 317

转载 Android系统篇之—-Binder机制和远程服务调用机制分析

转载于:http://www.wjdiankong.cn/android系统篇之-binder机制和远程服务调用机制分析一、前景概要最近要实现Android中免注册Activity就可以运行的问题,那么结果是搞定了,就是可以不用在AndroidManifest.xml中声明这个Activity即可运行,主要是通过骗取系统,偷龙转凤技术的,这个知识点后面会详细讲解的,

2017-06-27 17:28:47 555

android test

android junit testing framework !

2011-05-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除