自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小小青叶

开源代码托管:https://github.com/qingye

  • 博客(42)
  • 资源 (10)
  • 收藏
  • 关注

原创 Android 系统如何Kill进程当系统内存不足【原理】

前言        大家其实都或多或少知道,Android系统有自已的任务管理器,当系统内存不足时,系统需要KILL一些进程(应用),以回收一部分资源,来保证系统仍可以正常的运行,而不会崩溃,今天,就具体讲讲这个原理。进程优先级(importance hierarchy)        Android系统尽量保持进程运行的更久,但是仍有时候,需要结束掉老的进程,回收内存来保证新的,或更

2013-11-12 16:17:05 1676

原创 Android permission用法

一、前言        通常,我们开发的应用,只需要使用一些系统定义好的资源,比如网络访问,外部文件读写,WIFI,SMS等监听权限,这些都只需要在AndroidManifest.xml中添加XXXXXX即可,但是,AndroidManifest.xml还有一个叫的tag,大家有考虑过该用法么?二、授权与使用        其实,系统的那个权限,就是用的来定义好的,那么,谁要想使用,只

2013-11-07 16:27:58 2782

原创 【精讲】Android Activity生命周期

一、前言        一直以来,自认为Activity的生命周期很简单,确实也很简单,不过,当加入了onSaveInstanceState和onRestoreInstanceState之后,以及手机处于不同的状态时会调用哪些方法,大家真的很清楚了么?比如:竖屏进入应用,此时用户旋转屏幕,然后用户再按电源键(或放置一会让屏幕熄灭),再点亮时,会调用哪些方法?        本篇会采用图文并

2013-11-06 14:02:37 2524 3

原创 Java 单例模式

以前只知道Java中,单例模式有两种方法:/* * 方法一: * 没有延迟加载,但却最简单 */public class Singleton { private static final Singleton mInstance = new Singleton(); private Singleton(){} public static Singleton

2013-11-05 16:46:38 1008

原创 Android 后台Service下载 (一)

一、前言        原理其实大家都懂,只不过没动手实际好好的写过,项目中也没有涉及到用这块内容,所以....所以被人问及细节时,就说不清个123了,为了一改我的慵懒,因此,我写这篇文章,至少下次再被问起时,不会尴尬。        本篇文章会涉及到以下知识点:        1. Service (两种启动方法,对应的不同生命周期不同);        2. Binder;

2013-11-05 14:51:54 9957 5

原创 Android ListView的理解(二) --- Adapter, BaseAdapter, RecycleBin

一、前述        通常,我们在使用ListView / GridView时,都需要使用Adapter,Adapter有多种,最常用的就是BaseAdapter 和 CursorAdapter了,前者是属于通用的,而后者通常会与数据库一起来使用。        1. Adapter在源码中是interface,而不是AbstractClass(http://developer.andr

2013-11-01 16:48:42 3426

原创 Android Bundle存储数据类型

曾经被问到这样一个问题:Bundle能存哪些数据类型,不能存哪些数据类型?当时那个汗啊,因为,平常使用Bundle,要么使用基本数据类型,要么序列化自定义的Class,那到底能存哪些类型,不能存哪些呢?今天查阅了下google官方的文档(http://developer.android.com/reference/android/os/Bundle.html),罗列了以下这些是可以的:

2013-10-31 18:09:25 1913

原创 Android ListView的理解(一)

一、概述        这部分主要是讲解ListView在初始时,即setAdapter之后,如何将Adapter中取得的view添加到ListView中,主要涉及到几个方法:        layoutChildren,fillFromTop,fillDown / fillUp,makeAndAddView,obtainView,setupChild;二、讲解        la

2013-10-31 16:20:07 3847

原创 Android的Touch Mode

大多数Android设备都是触摸屏的,但是实际上Android设备也支持键盘操作,允许通过键盘来完成导航,点击,输入等。      当用户通过键盘(或者轨迹球)操作的时候,有必要聚焦当前接受输入的UI元素,例如,高亮(聚焦)某个按钮,让用户知道当前正在操作的UI元素是哪个。      但是,当用户使用触摸屏与设备交互的时候,始终聚焦当前UI元素就没有必要了,而且很丑陋;用户点击哪个元素,哪

2013-10-29 10:34:24 815 1

原创 手机应用加速网络请求的一些理解

一、前言:        现在的手机应用泛烂,而大多数应用都需要与自己的服务器交互数据,采用的交互协议有很多方式,如JSon, XML, 私有协议等。        但是,在无线网络下使用流量(这里主要讲GPRS/EDGE/3G)与服务器交互,会存在比如:流量损耗,访问失败(成功率)等问题,本篇就是探讨这个话题,这也是把一个应用做好的前提,节省流量,提高成功率,提升用户体验等。二、设计

2013-10-12 15:23:20 877

原创 Android动态加载技术初探

一、前言:        现在,已经有实力强大的公司用这个技术开发应用了,比如淘宝,大众点评,百度地图等,之所以采用这个技术,实际上,就是方便更新功能,当然,前提是新旧功能的接口一致,不然会报Not Found等错。二、原理:    2.1 JAR文件:        Android使用动态加载的方法,和Java加载类似,都是加载.jar文件来实现,只不过,不同的是,这两者的虚拟机

2013-10-12 10:49:50 2262

原创 Android自定义组合控件:UIScrollLayout(支持界面滑动及左右菜单滑动)

一、前言:        我之前很早的时候,写过一篇《左右滑出菜单》的文章:        http://blog.csdn.net/qingye_love/article/details/8776650        用的是对View的LeftMargin / RightMargin进行不断的计算,并且用AsynTask来完成动画,性能不是很好,大家也在资源下载中有评论,因此,本

2013-09-02 15:44:22 2085 6

原创 Android自定义属性

一、前言:        我们在开发应用时,会经常去自定义一些UI控件,而这些UI控件可能是一个小功能,或是一个复合型的大功能集合,如果是大功能集合,可能会根据不同的需求,提供给用户一些可选择属性,并完成不同的功能;这里所说的“可选择属性”,其实就是在layout.xml中,在自定义控件里,可以提供调用者来设置一些属性。二、自定义属性:        2.1 我们来看个例子:<Re

2013-09-02 13:49:48 1177

原创 Android Event事件流分析

一、前言:        最近太忙了,因此好久没空来写博客了,差点让大家以为荒废了。。嘻嘻,这不,今天忙里偷个闲,来写这篇文章,帮助自己,也是帮助大家深入了解Event事件流的整个过程,涉及到的文件有:ViewRoot(Impl),ViewGroup,View,PhoneWindow.DecorView及Activity。这些文件,我会抽空将我的理解写到博客。二、事件流:2.1 Vie

2013-08-28 11:33:07 4541 1

原创 ListView下拉刷新及上拉更多两种状态

一、前言:        很多应用都会用到ListView,当然如果是iOS就会用UITableViewController,这两个控件在不同的OS上,功能是一样的,只是有些细微的不同(iOS的UITableViewController支持静态与动态两种),不过,大多数应用都用的是动态属性,那么,这里就涉及到一个问题:刷新及加载更多内容。        目前网上流行的有两种方式:

2013-06-17 16:03:34 2755

原创 Android Contact分析(二):实战篇之读取联系人,模糊查询,通过汉字返回拼音

上篇文章《Android Contact分析(一):Data, RawContact, Contact之间的关系》已经把联系人表之间的关系讲明了,这篇文章就写点例子,来加深一下。一、读取联系人中所有姓名和电话号码:/** * 查询所有联系人姓名及电话号码 */private void readContacts(){ StringBuilder sb = new String

2013-06-05 15:39:38 4375 1

原创 Android Contact分析(一):Data, RawContact, Contact之间的关系

一、前言:        最近任务暂时做完了,有一,两天空闲时间,因此,就想把Android Contact这块梳理下,也方便以后自己。        Android Contact的所有数据库表,都存在contacts2.db(路径: /data/data/com.android.providers.contacts/databases/contacts2.db)中,之所以叫contac

2013-06-05 15:15:57 15992

原创 Android应用图标在状态栏上显示,以及显示不同的图标

一、前方在研究《Android类似360,QQ管家那样的悬浮窗》突发奇想,想把应用的图标也显示到状态栏上,类似手机QQ,而有消息来时改变状态栏上的图标显示。二、原理其实很研究完后,才发现,很简单:2.1 显示图标在状态栏上 NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIF

2013-06-03 11:45:23 5025

原创 Android类似360,QQ管家那样的悬浮窗

一、前言:        我手机从来不装这些东西,不过,有次看到同事的android手机上,有个QQ管家在桌面上浮着,同事拖动管家时,管家就变成一只鸟,桌面下方还有个弹弓,桌面顶部有只乌鸦,把管家也就是鸟拖动到弹弓那,然后,松手,鸟就飞出去。这个过程是动画过程,做的事,实际上是清楚内存。二:原理:        其实,没什么原理,用到的就是WindowManager以及WindowMa

2013-06-03 11:32:37 2355

原创 Android进程间通信 — AIDL

一、前言Android中的RPC参考了JAVA中的RMI(remote methord invocation)方案;Android中的RPC机制是为了实现进程间通信,即一个进程使用另一个进程中的远程对象,Android用AIDL(android interface defined language,Android接口定义语言)来实现,使用户可以很方便的定义一套接口,然后通过远程Service为

2013-05-27 11:39:43 1001

原创 设计模式 - 代理模式

顾名思义,就是表面看起来是代理做的事,实际上,是代理去找真正做事的来完成。比如,我是某公司大老板,客户需要和我签一个项目合同,但是我很忙啊,天天开会啊,应酬啊,于是,客户就找到我的代理人,代理人说,你等着,过几天给你,然后,代理人就跑来找我,我签了大名,OK,代理人就把合同给客户就完成了。因此,我与代理人都需要支持同一个功能,不然,代理人怎么知道我能做哪些情事来完成这个交易呢?1. 先

2013-05-24 17:00:08 751

原创 项目建模大致流程

一、前言从10年初到现在13年5月,差不多干了3年多的管理了,虽然是部门经理的职位,带着两个技术团队(iOS & Android),但是,由于是小公司,所以,除了日常的团队管理外,更多的是技术上和项目上的管理,以及参与手机跨平台架构设计,UML建模和Coding工作,今天这篇文章,就讲讲整个项目UML建模的大致流程。虽然,小公司,像我现在所在的公司,不到100人,基本上,都是上面的领导拍着

2013-05-16 15:06:49 1107

原创 Rose 关联关系中Role、Keys/Qualifier等讲解

前言:本篇文章讲解关联关系中,对两端的类的直观表示,先来看图:图中显示了Company与Person之间的雇主与雇员的双向关联关系,同时,还在Person端加了限定词,即Company通过限定词可以找到Person。1. employs:描述Company与Person的关系是前者雇用后者;2. +employer, +employee:描述这两者在“Logical View”

2013-05-07 17:00:45 1013

原创 rose中interface的4种不同显示

本篇只是一个小记录,以免像以前读书一样,白读了。先上个图,直观的看看:以上是类C实现了三种接口,而这4种接口在ROSE逻辑视图中的表现形式却不同,其实很简单:上图中,在"Stereotype Display"中,有对应的4种显示,可以根据不同的喜好来选择。注:本文是以Interface来做一个范例,其实还有其它视图都有不同的显示。

2013-05-07 16:02:21 1056

原创 Rational Rose 之关联关系与依赖关系的区别

这两个关系对于初学者来说,看起来似乎一样,没啥感觉,但是,这两者在代码上是有细微区别的:简单的说:类A与类B,在关联关系中,A中会保存B的一个实例,即B是A中的一个成员对象;而在依赖关系中,A不需要保存B的实例,而可能只是当一个临时的参数来传递或赋值等,即A中只需要include B.h(C++中)或import package.B(Java中)即可。

2013-05-06 17:53:34 938

原创 如何用Rational Rose画聚合与组合关系(空心菱形与实心菱形)

很久没用Rational Rose了,还是在上大学时用过2003,今天突然想起来,就装了个2007,然后想使用组合关系(即实心菱形时),忘记怎么画了,-_-|||,于是捣鼓了半天,终于搞定:第一步:第二步:第三步:OK! 这里顺便讲一下聚合关系与组合关系的区别:聚合与组合都是一种结合关系,只是额外具有整体-部分的意涵。如上图中的A、B、C、D4个类的

2013-05-06 17:31:06 5821

原创 framework 之 Animator

一、前言:        之前有篇文章讲解了Animation动画,但是自从4.0后,Google引入了新的动画框架:Animator,它与Animation的区别在于,Animator是逐帧动画,而Animation是对整个view进行了透明、位移等变化;显然,逐帧动画性能更高,Animator的源码在SDK / android / animation 下,下面来看一张UML图,描述了主要的

2013-05-03 17:23:38 1051

原创 Java泛型理解

一、理解篇:1.1 何谓泛型:泛型本质上讲是指参数化类型。参数化类型的重要性在于,它们允许创建这样一些类、接口和方法:其所操作的数据类型被指定为一个参数(即类、接口、方法中所使用的变量类型由一些参数所指定)。我们把这样的参数叫做类型参数。(类型参数体现了参数化类型概念)1.2 泛型好处:泛型,是个老话题了,在SDK 1.5之后,就加入进来,其好处在于:泛型机制为我们提供了安全的开发

2013-05-02 15:03:09 1028

原创 framework 之 Animation

一、前言:        Animation是OS 4.0以前就有的一个动画框架,源代码位于SDK / android / view / animation下,此目录下还有自带实现的几种动画类,和一些Interpolater(插补器),不过,它只实现了基础的动画效果,见UML图。此类是对整个View做了动画效果,但是效率较低,因此在OS4.0 之后,又添加了新的动画框架:Animator。本篇

2013-05-02 09:48:47 1205

原创 时间间隔: SystemClock.uptimeMillis与System.currentTimeMillis

很多情况下,不管是我们自己使用时间间隔来做一些算法,或是调用系统的API,比如动画效果,都会需要基于时间间隔来做,通常做法是:记录开始时间 startTime,然后每次回调时,获取当前时间  currentTime,计算差值 = currentTime - startTime,而获取当前时间,系统提供了两种方法:SystemClock.uptimeMillis 和 System.current

2013-04-28 10:16:22 15700

原创 Animation 之 Interpolator 插补器理解

一、描述:我们在设计动画时,通常都会用到一些Interpolator,而它的作用就是控制动画的速度,即可以理解为:Interpolator是一个速度控制器,控制速度变化。Interpolator借口只有一个抽象方法getInterpolation(float input),而系统也自带了几个Interpolater供我们使用:1. AccelerateInterpolator:

2013-04-27 16:00:31 3249

原创 ListView中的item以动画的形式展开

1. 前言:        本篇并不用到ExpandableListView来实现二级展示,因为这个控件一是没有展开的动画效果,二是感觉性能不高,于是,就自己写了个类似于《应用汇》中管理的那个界面,只可惜它没有动画,我有。先上个图,让大家看看:                  应用汇管理界面                                       Demo界面

2013-04-27 11:35:41 8079 18

原创 ListView.setOnItemClickListener有时不响应

setOnItemClickListener有时不响应,实际上是当ListView的item中含有checkbox, button等控件时,会导致setOnItemClickListener不响应,解决办法有两种:1. 将checkbox, button的focusable设置为false;2. 在getView中,设置convertView接收点击事件:convertView.setOn

2013-04-27 11:06:30 2016

原创 Android NDK用法

一、前言:         以前做过一个NDK相关的项目,通常用NDK的应用,主要是目的在于数据保密(比如私有通信协议,或安全加密数据),音视频编解码相关等。先上个流程图,让大家了解这个例子的调用关系:二、代码讲解:2.1 Java层代码:MainActivity.class代码:package com.ndk.chris.test;import android

2013-04-11 11:36:35 1465

原创 Android AsyncTask用法

AsyncTask 是一个轻量级的线程,允许你直接将线程里完成的事情更新到UI线程中,类似于Thread + Handler的方式,只不过,它封闭起来完成了,如果你要完成一些费时复杂的工作,还是建议不要采用这个方法,取而代之的是使用Thread, ThreadPool等方式来完成。AsyncTask 有4个步骤:onPreExecute, doInBackground, onProgressU

2013-04-09 14:43:23 1481 1

原创 Android左右滑出菜单

现在的Android应用,只要有一个什么新的创意,过不了多久,几乎所有的应用都带这个创意。这不,咱们公司最近的一个持续性的项目,想在首页加个从左滑动出来的菜单,我查阅网上资料,并自己摸索,实现了左、右两边都能滑出菜单,并且,左、右菜单中,都可以加ListView等这类需要解决GestureDetector冲突的问题(如在首页面中,含有ListView,上下滚动时,左右不动,相反,左右滑动菜单时,上

2013-04-09 11:20:04 5193 13

转载 图片内存优化的几种方法

Android手机一次性加载图片到内存,最大不超过8MB,否则会崩溃,大家都知道,那么,我们在对超过8MB的图加载并显示,有什么办法呢?这里给出四种方法供大家参考:        1、将图片转化为缩略图再加载: BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 2;

2013-04-02 17:39:44 891

原创 Android之软引用 (SoftReference)

前言:这方面的文章,其实网上挺多的,但是都太乱,需要自己整理,或者不太适合,这篇文章,我主要是讲软引用,用在图片的下载,加载,本地缓存。由于手机的内存有限,不能将所有图标都加载到内存中,而软引用的好处在于:        1. 在内存足够时,所有的图片都在内存中;        2. 内存不足时,将释放掉当前页面不需要用到的图片内存,而只加载需要用到的,这样,就防止内存爆掉,导致手

2013-04-02 16:33:33 1085

原创 Android与iOS多分辨率适配

前言:以前做feature phone的朋友,特别是MMI的,对各公司出的分辨率适配,估计都叫烦,以为做智能机开发了,算好点了,可是,现在又涉及到各分辨率(主流)的适配了。目前,Android主流分辨率有:        1. Density 为 1.5的有:480x800, 480x854, 540x960;        2. Density 为 2.0的有:1280x720,

2013-04-02 13:50:48 1559

原创 判断iOS设备当前是否越狱

公司目前做的项目,需要用到在线充值付费功能,特别是在iOS应用上,需要AppStore内置付费,以及第三方支付宝和神洲付充值,但是在提交应用审合时,被打回来,原因是娱乐类应用不允许含第三方充值。但是,怎么看到别人的应用,带第三方的可以通过?只不过,在非越狱时,显示的只有内置付费,而越狱后,就只有第三方付费?原来,他们是用到了欺骗方法,用代码判断设备是否越狱,然后显示对应的付费界面,通过审核。

2013-04-02 10:08:52 772

DownloadService

Activity启动Service,并交互,后台下载,并更新带有进度条的状态栏。

2013-11-05

Android自定义组合控件:UIScrollLayout(支持界面滑动及左右菜单滑动)

流畅的界面左右滑动,两种类型显示,通过设置view_type来完成。

2013-09-02

ListView下拉刷新/上拉更多

通过继承ListView的方式,来实现下拉刷新,以及上拉更多,或者是点击底部加载更多的。

2013-06-17

Android悬浮窗口及状态栏显示应用图标

Android,悬浮窗口,状态栏显示应用图标

2013-06-03

ListExpand

不用expandablelistview,自己实现动画效果的展开关闭。

2013-04-27

Android左右菜单滑动

这是一个可以从左,或右端滑出菜单,菜单中可以添加ListView,并写了个公共控件来处理上下,左右手势处理,避免冲突。

2013-04-09

MTK实现动态加载的一个DEMO

将某一个模块单独编译成BIN,放置T卡目录下,系统初始化加载时,从T卡读取。 适合正在研究MTK动态加载的入门者

2010-07-19

MTK 3D效果实现源代码

可以直接应用到MTK平台中,无需修改,可以直接使用。

2010-07-01

Perl语言教程,入门级快速上手。

入门级的教程,快速上手,非常的适合新手学习。。。。。

2010-01-06

ps扣图电子版.chm

网上ps扣图教程的一些收纳,比较经典,比较适合初学者,而且有相应的网址,可以去搜索最新的学习方法

2008-09-11

空空如也

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

TA关注的人

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