自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Android

想飞上天 和太阳肩并肩

  • 博客(151)
  • 资源 (29)
  • 收藏
  • 关注

原创 Android 自定义UI文章汇总

《Android ListView分类/分组效果 - 第一种实现方式》《Android ListView分类/分组效果 - 第二种实现方式》《Android ListView标题置顶效果实现》《ListView下拉刷新原理》《ListView拉出回弹效果 overscroll》《Android 自己动手写ListView学习其原理 1 显示第一屏Item》《An

2014-06-08 07:47:22 1871

原创 Android 基础学习文章汇总

一、Android开发环境与源码编译(12篇)1. 搭建Android开发环境《Ubuntu 搭建Android环境》《Ubuntu 配置识别Android手机》《Ubuntu 安装配置Android SDK》2. 下载、编译Android源码、刷机《Android 第三方ROM CyanogenMod 源码下载,编译,刷机》《下载、编译官方Android 4.1.

2014-03-17 21:05:19 3380

原创 Android View系统学习文章汇总

一、事件机制事件有很多种: 按(物理)键事件、滚轮事件、触摸事件  【都是靠消息驱动】提出问题:手指在屏幕上点击1. 屏幕 - WindowManagerService (InputReader、InputDispatcher) - Activity2. ViewGroup 与View之分3. 传递方式:首先隧道方式(向下)查找触摸事件在哪个视图内,之后再冒泡方式(向上)传递处

2013-02-19 21:47:54 2357

原创 《30天自制操作系统》 第一天 从计算机结构到汇编程序入门

效果图相关概念CPU开发环境搭建源码汇编程序指令解释启动区 boot sector效果图相关概念CPU中央处理单元,除了与别的电信号交换以外什么都不会,对于电信号只能理解开与关两种状态。 CPU就是个集成电路板,它只是忠实地执行电信号给它的指令,输出相应的电信号。指定位置显示0还是1等。 CPU最早只是发明用于处理电信号,后续发现...

2018-04-06 20:52:24 881

原创 java.lang.IllegalArgumentException: Comparison method violates its general contract!

异常信息java.lang.IllegalArgumentException: Comparison method violates its general contract!at java.util.TimSort.mergeLo(TimSort.java:747)at java.util.TimSort.mergeAt(TimSort.java:483)at java.util.Ti

2016-05-06 16:44:23 6457

原创 Android ANR分析与总结

一、什么是ANR?Android Not Response : 通常是UI线程做耗时操作会导致ANR。      A  界面操作按钮的点击等待响应时间超过5秒      B  HandleMessage回调函数执行超过10秒,BroadcasterReciver里的onRecive()方法处理超过10秒二、导出日志1. 导出log到文件中adb logcat

2015-10-30 20:00:20 10291 1

原创 从源码角度分析ViewStub 疑问与原理

一、提出疑问    ViewStub比较简单,之前文章都提及到《Android 性能优化 三 布局优化ViewStub标签的使用》,但是在使用过程中有一个疑惑,到底是ViewStub上设置的参数有效还是在其包括的layout中设置参数有效?如果不明白描述的问题,可以看下以下布局伪代码。res/layout/main.xml <ViewStub androi

2015-06-25 09:15:02 4236

原创 Android ImageView 常见问题与使用总结

一、src 与 background的区别?1. ImageView支持上下两层可以同时设置,src显示的图片会覆盖background图片2. background会根据ImageView的大小自动拉伸,而src不会3. src可以根据gravity 显示在不同位置,可以根据 scaleType、setDensity控制展示方式与缩放二、支持不同分辨率相关属性

2015-03-25 23:16:41 3848

原创 Android .9图片制作与使用总结

一、.9图片的用途可以指定拉伸与内容区域,如果不设置图片会按照比例拉伸图片,所有图片都同等放大缩小比例。可以节省图片大小,主要设置拉伸与内容区域,原本图片很多重复部分可以不要二、.9图片制作工具工具目录位置:sdk/tools/draw9patch.bat 。划黑线直接鼠标华东即可,删除黑线按着shift 去掉黑线。画红线在Android API 18 才支持详见:

2015-03-22 23:56:02 3719

原创 Android View measure (五) 支持margin属性,从一个异常说起

先来看下代码一、查看夏目1. 自定义控件public class CustomViewGroup extends ViewGroup { ...... @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.on

2015-03-17 21:25:17 6461 2

原创 Android Context原理与使用的总结

一、Context继承体系 与 Context是如何创建的1. Context继承体系只用记住一句:Activity 、 Service 与Application 都是继承自ContextWrapper,而ContextWrapper implements Context。每个:Activity 、 Service 与Application都是一个Context实例。

2015-03-15 15:57:52 2871

原创 《重构》读书笔记 与 Eclipse 重构功能使用

第二章 重构原则重构是什么?重构(名词):对软件内部结构的一种调整,目的是在不改变[软件之可察行为]前提下,提高其可理解性,降低其修改成本。重构(动词):使用一系列重构准则(手法),在不改变[软件之可察行为]前提下,调整其结构。两顶帽子:添加新功能和重构,不能同时进行。为何重构?改进软件设计:可能设计之初根据已有需求,是世界上最优的设计。但是可能过程中增删许

2014-12-08 09:05:37 2363 1

原创 Eclipse 重构功能的使用与重构快捷键

重构是什么?在代码写好之后改进它的设计。重构分类:物理结构、类层次结构、类内部结构。名称快捷键直译作用范围描述RenameAlt + Shift + R  可以对任意变量、类、方法、包名、文件夹进行重新命名,并且所有使用到的地方会统一进行修改。MoveAlt + Shif

2014-12-03 08:53:55 11856

原创 Android 内存 - 获取单个应用内存限制

一、问题出现OutOfMemeryError的原因?Androd针对每个应用有内存限制二、为什么每个应用都限制最大内存使用?1. 可以多任务同时运行,不可能每个任务都占用尽可能多的内存2. 如果堆很大,垃圾回收需要太多的时间缓存的清理需要先暂停所有应用,然后进行清理、整理。大概3、4、5毫秒Google I/O 2011: Memory manageme

2014-11-28 08:48:18 6284

原创 Android 内存分析工具 - LogCat GC

D/dalvikvm: , , , 一、GC_Reason 触发垃圾回收的回收的集中原因:类型描述GC_CONCURRENT内存使用将满时,并发的进行垃圾回收。GC_FOR_MALLOC当内存已满应用尝试分配内存时会出触发垃圾回收,所以系统会停止应用进行垃圾整理GC_HPROF_DUMP_HEAP当创

2014-11-23 11:39:08 3319

原创 Android 实现ListView不可滚动效果

希望得到的效果是ListView不能滚动,但是最大的问题在与ListView Item还必有点击事件,如果不需要点击事件那就简单了,直接设置ListView.setEnable(false);    如果还需要点击事件,滚动与点击都是在ListView Touch处理机制管理。    ListView点击事件是复用ViewGroup的处理逻辑,当用户点击视图并且按下与抬起手指之间移动距离很

2014-08-25 07:31:07 16820 2

原创 Android 性能优化 五 性能分析工具dumpsys的使用

Android提供的dumpsys工具可以用于查看感兴趣的系统服务信息与状态,手机连接电脑后可以直接命令行执行adb shell dumpsys 查看所有支持的Service但是这样输出的太多,可以通过dumpsys | grep "DUMP OF SERVICE" 仅显示主要的Service的信息一、列出dumpsys所有支持命令> adb shell$ dumpsys | g

2014-07-11 08:08:29 21891

原创 Android 性能优化 四 布局优化merge标签的使用

小白:之前分享了ViewStub标签的使用,Android还有其他优化布局的方式吗?小黑:标签用于减少View树的层次来优化Android的布局。先来用个例子演示一下:首先主需要一个配置文件activity_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

2014-07-09 07:15:06 3786

原创 Android 性能优化 三 布局优化ViewStub标签的使用

小黑与小白的故事,通过虚拟这两个人物进行一问一答的形式来共同学习ViewStub的使用小白:Hi,小黑,ViewStub是什么?听说可以用来进行布局优化。小黑:ViewStub 是一个隐藏的,不占用内存空间的视图对象,它可以在运行时延迟加载布局资源文件。(更多详细的API等信息可以查看官方文档ViewStub),计算机行业一向是实践里面出真知,下面用一个例子演示下效果。

2014-07-08 07:19:41 8871 5

原创 Android 性能优化 一 布局优化工具Hierarchy Viewer的使用

网上已经有很多关于Hierarchy Viewer如何使用的文章,这里就不一步步的演示具体怎样使用了,ddna兄的《【Android工具】被忽略的UI检视利器:Hierarchy Viewer》与张兴业的《Android UI 优化——使用HierarchyViewer工具》都写的很棒。    Hierarchy Viewer有两个用途,一个是用于分析当前页面视图层级,再者也能分析

2014-07-07 08:13:16 7404 3

原创 Java 线程第三版 第八章 Thread与Collection Class 读书笔记

JDK1.2引入最有争议性的改变是将集合类默认为不是Thread安全性的。一、Collection Class的概述1. 具有Threadsafe 的Collection Class:java.util.Vector(List) 列表集合,通过索引操作。java.util.Stack(List) 继承自Vector,提供LIFO的顺序操作push进入,pop出元素。ja

2014-06-17 22:25:13 1635

原创 Java 线程第三版 第六章 高级同步议题 读书笔记

多线程数据同步错误比较难检测,因为通常是与事件的特定发生顺序有关。一、同步术语Barrier(屏障)    barrier是多个Thread的集合点:所有的Thread都应该到齐在这个barrier之后才能允许它们继续下去。Condition variable(条件变量)    实际上不是变量,而是与某个lock有关联的变量。Event variable(事件变

2014-06-17 21:27:58 1659

原创 Java 线程第三版 第五章 极简同步技巧 读书笔记

一、能避免同步吗?取得锁会因为以下原因导致成本很高:    取得由竞争的锁需要在虚拟机的层面上运行更多的程序代码。    要取得有竞争锁的线程总是必须等到锁被释放后。1. 寄存器的效应计算机有一定数量的主寄存器用来存储与程序有关的数据。从逻辑上的观点来看,每个Thread都有自己的一组寄存器。当操作系统将某个Thread分配给CPU时,它会把该Thread特有的信息

2014-06-15 20:52:46 1642

原创 Java 线程第三版 第四章 Thread Notification 读书笔记

一、等待与通知public final void wait() throws InterruptedException     等待条件的发生。public final void wait(long timeout) throws InterruptedException     等待条件的发生。如果通知没有在timeout指定的时间内发生,它还是会返回。public fi

2014-06-14 09:06:55 1787

原创 Java 线程第三版 第三章数据同步 读书笔记

多线程间共享数据问题一、Synchronized关键字     atomic一词与“原子”无关,它曾经被认为是物质的最小的单元,不能再被拆解成更小的部分。     当一个方法被声明成synchronized,要执行此方法的thread必须先取得一个token,我们将它称为锁。一旦该方法取得(或者说是获得)锁,它将运行此方法然后释放掉(或者返回)此锁。不管方法时怎样返回的(包

2014-06-13 08:13:55 1525

原创 Java 线程第三版 第一章Thread导论、 第二章Thread的创建与管理读书笔记

第一章 Thread导论为何要用Thread ?非阻塞I/O     I/O多路技术     轮询(polling)     信号警告(Alarm)和定时器(Timer)独立的任务(Task)并行算法第二章 Thread的创建与管理一、什么是Thread ?    Thread是所在主机执行的应用程序任务(task)。

2014-06-12 08:05:35 1663 2

原创 《Java并发编程实战》第十六章 Java内存模型 读书笔记

Java内存模型是保障多线程安全的根基,这里仅仅是认识型的理解总结并未深入研究。一、什么是内存模型,为什么需要它Java内存模型(Java Memory Model)并发相关的安全发布,同步策略的规范、一致性等都来自于JMM。1 平台的内存模型在架构定义的内存模型中将告诉应用程序可以从内存系统中获得怎样的保证,此外还定义了一些特殊的指令(称为内存栅栏或栅栏),当

2014-06-05 07:58:40 2046 2

原创 《Java并发编程实战》第十五章 原子变量与非阻塞同步机制 读书笔记

一、锁的劣势锁定后如果未释放,再次请求锁时会造成阻塞,多线程调度通常遇到阻塞会进行上下文切换,造成更多的开销。在挂起与恢复线程等过程中存在着很大的开销,并且通常存在着较长时间的中断。锁可能导致优先级反转,即使较高优先级的线程可以抢先执行,但仍然需要等待锁被释放,从而导致它的优先级会降至低优先级线程的级别。二、硬件对并发的支持处理器填写了一些特殊指令,例如:比较并交换

2014-06-04 07:47:20 1869

原创 《Java并发编程实战》第十四章 构建自定义的同步工具 读书笔记

一、状态依赖性的管理有界缓存实现的基类@ ThreadSafepublic abstract class BaseBoundedBuffer { @GuardeBy( "this" ) private final E[] buf; @GuardeBy( "this" ) private int tail; @GuardeBy( "this

2014-06-03 08:04:42 2278

原创 《Java并发编程实战》第十三章 显示锁 读书笔记

一、Lock与 ReentrantLockLock 提供一种无条件的、可轮询的、定时的、可中断的锁获取操作,所有加锁和解锁的方法都是显式的。public interface Lock {       void lock(); // 获取锁。       void lockInterruptibly() throws InterruptedException;

2014-06-02 21:29:04 1804

原创 《Java并发编程实战》第十二章 并发程序的测试 读书笔记

并发测试大致分为两类:安全性测试(不发生任何错误的行为)和活跃性测试(某个良好的行为终究会发生)。安全测试 - 通常采用测试不变性条件的形式,即判断某个类的行为是否与其他规范保持一致。活跃性测试 - 包括进展测试和无进展测试两个方面。性能测试与活跃性测试相关,主要包括:吞吐量、响应性、可伸缩性。一、正确性测试找出需要检查的不变条件和后延条件。import

2014-06-02 21:03:17 1752

原创 《Java并发编程实战》第十一章 性能与可伸缩性 读书笔记

造成开销的操作包括:1. 线程之间的协调(例如:锁、触发信号以及内存同步等)2. 增加的上下文切换3. 线程的创建和销毁4. 线程的调度一、对性能的思考1 性能与可伸缩性运行速度涉及以下两个指标:某个指定的任务单元需要“多快”才能处理完成、计算资源一定的情况下,能完成“多少”工作。可伸缩性:当增加计算资源时(例如:CPU、内存、存储容器或

2014-05-31 07:49:04 1936

原创 《Java并发编程实战》第十章 避免活跃性危险 读书笔记

一、死锁所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。百科百科当两个以上的运算单元,双方都在等待对方停止运行,以取得系统资源,但是没有一方提前退出时,这种状况,就称为死锁。维基百科1. 顺序死锁最少有两个锁,一个线程获取到A锁需要获取B锁才能进行操作,而另外一个线程获取到了B锁,需

2014-05-30 08:13:22 2061 2

原创 《Java并发编程实战》第九章 图形用户界面应用程序界面 读书笔记

一、为什么GUI是单线程化传统的GUI应用程序通常都是单线程的。1. 在代码的各个位置都需要调用poll方法来获得输入事件(这种方式将给代码带来极大的混乱)2. 通过一个“主事件循环(Main Event Loop)”来间接地执行应用程序的所有代码。如果在主事件循环中调用的代码需要很长时间才能执行完成,那么用户界面就会“冻结”,直到代码执行完成。这是因为只有当执行控制权返回到主事件

2014-05-30 06:37:14 1689

原创 《Java并发编程实战》第八章 线程池的使用 读书笔记

一、在任务与执行策略之间的隐性解耦有些类型的任务需要明确地指定执行策略,包括:. 依赖性任务。依赖关系对执行策略造成约束,需要注意活跃性问题。要求线程池足够大,确保任务都能放入。. 使用线程封闭机制的任务。需要串行执行。. 对响应时间敏感的任务。. 使用ThreadLocal的任务。1. 线程饥饿死锁线程池中如果所有正在执行任务的线程都由于等待其他仍处于工作

2014-05-29 08:06:43 2025

原创 《Java并发编程实战》第七章 取消与关闭 读书笔记

Java没有提供任何机制来安全地(抢占式方法)终止线程,虽然Thread.stop和suspend等方法提供了这样的机制,但是由于存在着一些严重的缺陷,因此应该避免使用。但它提供了中断Interruption机制,这是一种协作机制,能够使一个线程终止另一个线程的当前工作。一、任务取消取消操作的原因:. 用户请求取消. 有时间限制的操作. 应用程序事件. 错误.

2014-05-28 08:02:23 1968

原创 《Java并发编程实战》第六章 任务执行 读书笔记

一、 在线程中执行任务无限制创建线程的不足.线程生命周期的开销非常高.资源消耗.稳定性二、Executor框架Executor基于生产者-消费者模式,提交任务的操作相当于生产者,执行任务的线程则相当于消费者。1. Executors 返回 ExecutorService2. ExecutorService方法submit、execute3

2014-05-26 07:43:27 1988

原创 《Java并发编程实战》第五章 同步容器类 读书笔记

一、同步容器类1. 同步容器类的问题线程容器类都是线程安全的,但是当在其上进行符合操作则需要而外加锁保护其安全性。常见符合操作包含:. 迭代. 跳转(根据指定顺序找到当前元素的下一个元素). 条件运算迭代问题可以查看之前的文章《Java ConcurrentModificationException 异常分析与解决方案》二、并

2014-05-25 08:04:29 1669

原创 《Java并发编程实战》第四章 对象的组合 读书笔记

一、设计线程安全的类在设计线程安全类的过程中,需要包含以下三个基本要素: . 找出构成对象状态的所有变量。 . 找出约束状态变量的不变性条件。 . 建立对象状态的并发访问管理策略。分析对象的状态,首先从对象的域开始。 变量按作用域划分:. 全局变量. 局部变量. 方法行参. 异常处理参数1. 收集同步需求如果不了解对象的不变性条件

2014-05-25 07:28:06 1795

原创 《Java并发编程实战》第三章 对象的共享 读书笔记

一、可见性什么是可见性?Java线程安全需要防止某个线程正在使用对象状态而另一个线程在同时修改该状态,而且需要确保当一个线程修改了对象的状态后,其他线程可以看到发生的状态变化。 后者就是可见性的描述即多线程可以实时获取其他线程修改后的状态。     *** 待补充   两个工人同时记录生产产品总数问题1. 失效数据可见性出现问题就是其他线程没有获取到修改后的状态,更直观

2014-05-24 08:44:28 1715

Android 多渠道批量打包

详细解释文章地址: 《Android 自动编译、打包生成apk文件 4 - 多渠道批量打包》 http://blog.csdn.net/androiddevelop/article/details/11619635

2013-09-12

Android ListView 可拖拽Item 1 - 创建浮动Item

对应博客地址 http://blog.csdn.net/love_world_/article/details/8836449

2013-04-22

Android 绘制方式实现浮动视图

当前例子对应blog地址 http://blog.csdn.net/love_world_/article/details/8816176

2013-04-17

Android 可移动悬浮窗口 WindowManager

对应博客地址 http://blog.csdn.net/love_world_/article/details/8785835

2013-04-10

Android 实现ListView 3D效果 - 2 - 弹性滚动,Fling

例子对应博文地址: http://blog.csdn.net/love_world_/article/details/8779683

2013-04-09

Android 实现ListView 3D效果 - 1

相应博文地址 http://blog.csdn.net/love_world_/article/details/8770127

2013-04-07

Android 自己动手写ListView学习其原理 3 ItemClick,ItemLongClick,View复用 2013-0

Android 自己动手写ListView学习其原理 3 ItemClick,ItemLongClick,View复用 博客地址 http://blog.csdn.net/love_world_/article/details/8744423

2013-03-31

Android 自己动手写ListView学习其原理 2

分析此例子博文地址 http://blog.csdn.net/love_world_/article/details/8743770

2013-03-31

Android 自己动手写ListView学习其原理 1

相应blog地址 http://blog.csdn.net/love_world_/article/details/8734255 当前只是第一部分可独立运行源码,只能显示一屏幕item ListView其他功能会在之后添加

2013-03-28

Android Path Button效果

Path Button效果 文章地址:http://blog.csdn.net/love_world_/article/details/8714769

2013-03-24

Android 使用Scroller自动滚动第二种实现

相应文章地址 Android 使用Scroller自动滚动第二种实现 http://blog.csdn.net/love_world_/article/details/8689077

2013-03-18

滑动菜单 - 实现手动、自动滚动视图、事件处理

滑动菜单 - 实现手动、自动滚动视图、事件处理

2013-03-13

滑动菜单 - 实现手动、自动滚动视图

滑动菜单 - 实现手动、自动滚动视图

2013-03-10

滑动菜单初步尝试失败

滑动菜单初步尝试失败 滑动菜单初步尝试失败

2013-03-09

Android Quick Action

Android Quick Action

2013-03-03

分析invalidate流程例子

分析invalidate流程例子

2012-12-23

Android ListView分类实现 - 第二种实现方式

Android ListView分类实现 - 第二种实现方式

2012-12-18

Android Touch事件rawX,rawY与x,y的区别

Android Touch事件rawX,rawY与x,y的区别

2012-11-08

Scroller简单例子-控制TextView左右移动

Scroller简单例子,控制TextView左右移动

2012-10-29

Scroller简单例子

Scroller简单例子,简单的使用下Scroller的API

2012-10-28

自定义ViewGroup+Adapter

自定义ViewGroup+Adapter

2012-10-26

自定义ViewGroup

自定义ViewGroup,覆写onLayout例子

2012-10-24

覆写onMeasure例子

Android 自定义view,覆写onMeasure例子

2012-10-23

Android ListView标题置顶效果

Android ListView标题置顶效果

2012-09-23

Android ListView分类例子

Android ListView分类例子

2012-09-23

Android ListView数据分类显示

Android ListView数据分类显示

2012-09-19

Android onFocusChaned例子

Android onFocusChaned例子

2012-09-18

AsyncTask使用注意

AsyncTask等待任务超过128会出现异常

2012-08-22

Android 使用HttpClient代理

Android 使用HttpClient代理

2012-08-20

空空如也

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

TA关注的人

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