- 博客(17)
- 资源 (35)
- 收藏
- 关注

原创 重构-改善既有代码设计 读书笔记
重构,绝对是程序员职业生活中最重要的事情之一,如果一个程序员从来没做过重构,绝对不是合格的程序员;首先来说我们为什么是重构,而不是重写?在写程序之前我们不可能事先了解所有的需求,设计肯定会有考虑不周的地方,而且随着项目需求的修改,也有可能原来的设计已经被改得面目全非了。更何况,我们很少有机会从头到尾完成一个项目,基本上都是接手别人的代码,即使这个项目是从头参与的,也有可能接手其他组
2016-04-24 17:37:11
653

原创 Android View 绘制流程 与invalidate 和postInvalidate 分析--从源码角度
整个View树的绘制流程是在ViewRootImpl.java类的performTraversals()函数展开的,该函数做的执行过程可简单概况为 根据之前设置的状态,判断是否需要重新计算视图大小(measure)、是否重新需要安置视图的位置(layout)、以及是否需要重绘 (draw),所以整个View的绘制过程,总结为三步:1、 Measure:测量View大小
2016-03-12 15:26:31
1276

原创 从源码分析 Android dexClassLoader 加载机制原理
Android安全–DexClassLoader动态加载分析一直想了解 Android 动态加载类的原理,今天抽空分析了下DexClassLoader 源码源码地址:http://androidxref.com/4.4_r1/xref/libcore/dalvik/src/main/java/dalvik/system/DexClassLoader.java D
2016-01-14 11:14:14
6069

原创 从源码角度分析Android Context 对象
Context在开发Android应用的过程中扮演着非常重要的角色,比如启动一个Activity需要使用context.startActivity方法,将一个xml文件转换为一个View对象也需要使用Context对象,可以这么说,离开了这个类,Android开发寸步难行,对于这样一个类,我们又对他了解多少呢。我就说说我的感受吧,在刚开始学习Android开发时,感觉使用Context的地方一直就
2016-01-10 21:03:58
573

翻译 Android应用如何监听自己是否被卸载及卸载反馈功能的实现
一个应用被用户卸载肯定是有理由的,而开发者却未必能得知这一重要的理由,毕竟用户很少会主动反馈建议,多半就是用得不爽就卸,如果能在被卸载后获取到用户的一些反馈,那对开发者进一步改进应用是非常有利的。目前据我所知,国内的Android应用中实现这一功能的只有360手机卫士、360平板卫士,那么如何实现这一功能的? 我们可以把实现卸载反馈的问题转化为监听自己是否被卸载,只有得知自己被卸载,才可以设
2014-04-07 15:18:03
1238

原创 Android事件传递机制-View篇
Android事件传递机制绝对不是三言两语就能说得清的,在网上查了相关资料,觉得大部分都没有讲的很清楚透彻,写本文的目的就是让更多的开发者进从FrameWork层到Application层一步步深入Android事件传递机制的原理,今天先小小试牛刀,主要是讲View的事件传递机制原理,下一篇会将更复杂的控件ViewGroup事件的传递机制。比如一个页面有一个Button 按钮,设置了onCli
2013-10-20 18:39:42
1847
1

原创 Android高手进阶篇4-实现侧滑菜单框架,一分钟集成到项目中
先来看下面的这张效果图:上面这张效果图是百度影音的,现在在Android上很流行,最初是由facebook自己实现的,而后各大应用有跟风之势,那么这种侧滑效果是如何实现的呢?网上现在这种侧滑菜单的例子很对,也有开源的框架sliderMenu,而且可以定义很多样式,但大部分例子,都只是实现了这种类似效果,没有实现一种可移植的框架,仅仅是单页面效果而已,而且集成起来复杂,鉴于此,我自己实现
2013-10-13 18:49:00
3202
2

原创 Android高手进阶篇3-自定义ListView实现底部View自动隐藏和消失的功能
以后每一周会分享Android技术难点,今天主要分享这样一个功能:有这样一个ListView,要求在屏幕底部有一个筛选排序的浮动框:1、手指下拉隐藏,上滑显示 ;2、如果没做任何操作,2S之后,要自动显示;3、滑动到最底部,始终显示。首先看其效果图: 实现上述效果,其实现原理如下: 1、在屏幕顶部固定一个BottomView,XML布局最好使用RelativeLa
2013-10-13 15:10:53
4499
2

原创 Android高手进阶篇2-自定义AttributeSet属性
前段时间因为项目的需求,而需要自定义控件的AttributeSet属性,那么我们什么时候需要这种方法来自定义控件呢?好了,不卖关子啦,直接进入主题,一般是当项目中遇到这样的场景需要自定义控件的AttributeSet属性:一个自定义控件的有些属性内容是随着外部条件而动态改变的,for example:一个自定义的ListView控件,需要在底部添加一个View,而这个View在不同的模块使用中传入.
2013-10-01 21:24:00
26351

原创 Android 高手进阶篇 1-Service
大家都知道 ,Service 是Android四大组件之一,主要是用来实现这样的需求:你需要 一个长久运行的服务在后台,比如音乐播放服务,退出界面,在后台时,仍然会在播放。一、Service的生命周期篇 首先来谈谈Service的生命周期,如下图所示: 一个 Service经过 startService 之后,会经历OnCreate->onSta
2013-09-05 18:58:09
2685

原创 Android 多线程网络下载图片
import java.io.File;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import j
2013-08-15 18:49:56
2615
1

原创 Android Handler Message Looper机制原理
在Android中谈到Handler,我们首先来讲一下Handler的机制和原理 1、Handler机制原理 Handler:主要是用来处理发送和接收消息的,作用是把消息加入特定的(Looper)消息队列中,并分发和处理该消息队列中的消息。构造Handler的时候可以指定一个Looper对象,通过Handler对象我们可以封装Message对象,然后通过send
2012-12-13 23:10:45
3412

原创 Android实现自定义锁屏控制
当在Android手机上需要实现自定义的锁屏, 往往在进入自定义的锁屏界面界面之前需要先解开屏幕锁, 以顺利的进入自定义锁屏界面 ,并能方便用户即时的做其他操作,下面用代码来实现这一功能: 1、点亮屏幕与解系统锁//light the screen PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
2012-12-12 23:01:40
4701
3

原创 Android如何检测网络的类型为3G、2G、wap、wifi
关于Android如何检测网络的类型,网上代码很多,但是有用的精品不多,前段时间,因为做项目需要涉及到具体网络类型的检查,特别是区分2G网络是为wap,还是net,类型,因为wap类型,需要配置代理上网,基于此,我将自己实现的过程代码记录下来: 1、定义常量来标识几种网络类型 /** 没有网络 */ public static final int NETWORKTY
2012-12-12 22:30:48
12154
原创 aapt 如何修改资源ID
在android项目中偶尔会出现依赖第三方库包,出现资源ID(packageId+typeId+ItemValue)发生冲突的问题(网上有很多解决方案,不一一列举,如public 限定等)。那么对于我们自己提供的库包,如果能指定其包的命令空间(默认是从127开始),特别考虑mutiDex的情况,自定义修改package ID显得意义重大。网上已经有很多修改package ID 的AAPT可执行
2016-01-10 20:55:00
3221
原创 单例模式的使用
作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式的结构 单例模式的特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。 饿汉式单例类public class EagerSingleton { private
2014-12-26 18:34:10
668
原创 关于用VB做记事本的程序
内容:讨论如何在用VB编写的记事中实现自动将日志添加到文档尾部、判断保存还是另存为、确认文件是否需要保存等功能。Windows自带的记事本即Notepad有一些功能还是颇具吸引力的,比如自动在特定的文档尾部加入计算机时钟的时间和日期,截取已经打开或者保存了的纯文档名[见记事本的标题栏]以及搜索等,给用户带来许多方便。本文就TextBox控件讨论如何实现这些功能。一、将日志添加到文档在Window
2007-11-21 23:47:00
4129
java做的学生成绩管理系统
2007-11-28
基于Linux 和 MiniGUI 的嵌入式系统软件开发指南
2007-11-26
Linux内核系统调用开发指南
2007-11-25
给java开发者的几点建议
2007-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人