自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (3)
  • 收藏
  • 关注

原创 AppWidget实现机制分析--launcher添加和删除appwidget深入分析

通过前面的《什么是桌面插件》的讲解,估计你对桌面插件应用有了一定的了解,接着那这篇文章,我们继续讲解在一个桌面上如何创建一个桌面插件实例,以及它是如何显示在我们的桌面上的,如何被删除的,这些都是这篇文章要解答的问题。    用过Android原生Launcher的都知道,长按桌面空白处会弹出一个对话框,这个对话框就对应CreateShortcut类,手上有原生launcher代码的同学可以找到

2014-02-08 17:59:31 29632 6

原创 linux消息队列总结

1.消息队列简介实现linux进程通信的方式有5种:--信号(Singal)--管道(Pipe)--消息队列(Message)--信号量(Semaphore)每种进程通信方式实现方式和功能不一样,带来适用的场景也有所不同,消息队列是链表队列,它通过内核提供一个struct msqid_ds *msgque[MSGMNI]向量维护内核的一个消息队列列表,因此linux系统支持

2013-08-26 23:07:54 48168 1

原创 AppWidget实现机制分析--什么是桌面插件

//简单写一下一个appwidget如何开发//揭示appwidget本质

2013-08-22 22:17:57 7362 4

原创 Android编译环境——ubuntu12.04上android2.3.4编译错误以及解决

1.编译前安装jdk1.5以上版本,我系统安装了jdk1.6--检查jdk是否安装:java --version--安装jdk:sudo apt-get install sun-java6-jdk2.编译前安装交叉编译工具,并把交叉编译工具bin目录放入$PATH环境变量3./bin/bash:bison:未找到命令sudo apt-get install bison4

2013-08-21 09:20:14 17390 3

原创 Android编译环境——VMware虚拟机安装配置

1.安装Linux虚拟机:下载虚拟机,路径:虚拟机版本:vmware-6.5.3安装虚拟机,选择一个空间比较大的分区,进行安装,选择典型安装,一步步按默认方式安装完成若对英文不怎么熟悉,可以下载安装一个汉化补丁2.建立一个虚拟机:--1.文件/新建虚拟机,选择客户自定义安装(custom(advanced))--2.进入虚拟机安装向导,一步步往下,若你机器已经安装了

2011-10-25 10:10:25 11855 2

原创 linux samba安装配置 总结

学习Linux嵌入式开发,原来草草按网上步骤设置的samba发现在共享目录中创建的文件目录因为是匿名用户,老是要修改文件权限,因此特花了些时间研究下samba设置共享目录的安装使用,总结如下:1.samba安装,我使用的是ubuntu10.10的linux操作系统,其它系统可能操作有所不同:--1.安装samba服务:sudo apt-get install samba        //

2011-10-21 17:31:34 34520 1

原创 Android FrameWork——Touch事件派发过程详解

对于android的窗口window管理,一直感觉很混乱,总想找个时间好好研究,却不知如何入手,现在写的Touch事件派发过程详解,其实跟android的窗口window管理服务WindowManagerService存在紧密联系,所以从这里入手切入到WindowManagerS

2011-09-08 15:07:43 70004 41

原创 Android FrameWork——Binder机制详解(2)

6.前面5个段落我主要说明了BinderProxy是如何把数据发送出去的,Ok,那么接下来,我们肯定想要知道服务端是怎么接收数据并传递给相应的BBinder进行处理的,有没有注意到前面waitForResponse我标注为蓝色的代码,这给我们一个启示,也许接收返回数据(进程作为客

2011-08-03 17:42:34 19556 7

原创 Android FrameWork——Binder机制详解(1)

1.前面我曾经发表过一篇blog介绍了aidl实现机制(aidl实现机制浅析),不过那只是停留在java表层,并遗留了一个,那就是BinderProxy.transact 该方法本地化实现,同时我指出了它的具体代码位置:\frameworks\base\core\jni\an

2011-08-03 17:25:03 30957 13

原创 Android FrameWork——StatusBar

Android系统顶上的状态栏是属于FramWork的东东,由于项目上需要对状态栏进行一些修改调整,我对其作了一个初步研究,写出来大家共享一下,其实这些早已写了,只是想等研究StatusBar中ExtendsView后再整理一个blog,不过现在已经没有时间了,目前深入研究And

2011-07-29 14:23:49 35760 11

原创 Android FrameWork——Activity启动过程详解

前面发了blog分析了ActivityManager框架的大体结构,主要就是一个进程通信机制,今天我通过深入Activity的启动过程再次深入到ActivityManager框架,对其进行一个更深入的了解     以桌面启动一个应用Activity为例,onClick事件后,会调

2011-07-11 09:55:09 49547 20

原创 Android FrameWork——PackageManager框架

1.接着前面讲的ActivityManager框架,继续说一下系统另一个重要的框架,PackagerManager同样先看一下静态类结构图:大部分情况我们是在Activity中使用getPackageManager方法获取一个ApplicationPackageManager的对

2011-07-07 22:03:34 37139 9

原创 Android FrameWork——ActivityManager框架

        1.ActivityManager是android框架的一个重要部分,它负责一新ActivityThread进程创建,Activity生命周期的维护,本blog就是着手对ActivityManager框架作一个整体的了解        2.先看一个静态类结构图:        该图摘自 曹文斌blog        上图很清楚地描述了ActivityManager框架的几个

2011-07-01 15:58:00 42345 4

原创 Android AIDL——实现机制浅析

  1.基于前面写的aidl使用,这段时间准备研究ActivityManager框架,对aidl进行了更深入的研究,因为android框架大量使用了进程通信机制,所以,在研究android framework前认真研究一下AIDL的实现机制十分有必要的  2.前面讲了aidl是 Android Interface definition language的缩写,它是一种进程通信接口的描述,通过s

2011-07-01 13:48:00 32529 6

原创 android 布局长度单位深入研究

要想使自己的布局在不同设备达到精准空置,理清理顺android布局长度单位之间关系很有必要,否则你也许会经常挠头为什么显示出来的布局不是自己定义的效果呢,有些东西,虽然基础,但是弄个透彻也需要花些功夫,废话不多说,下面开始。1.先了解一下android有支持哪些长度单位:px: pixels(像素). 不同设备显示效果相同,比如我们800*480的屏幕宽度就是 800pxdip: device

2011-06-22 17:27:00 15427 10

原创 android Launcher——拖放功能深入研究

Luancher有一个相对比较复杂的功能就是拖放功能,要深入了解launcher,深入理解拖放功能是有必要的,这篇blog,我将对launcher的拖放功能做深入的了解1.首先直观感受什么时候开始拖放?我们长按桌面一个应用图标或者控件的时候拖放就开始了,包括在all app view中长按应用图标,下面就是我截取的拖放开始的代码调用堆栈 at com.android.launcher2.DragC

2011-06-22 17:19:00 26076 16

原创 在it混了四年了,android开始半个多年头,发帖纪念一下

在it混了四年了,android开始半个多年头,发帖纪念一下!

2011-06-19 22:23:00 10665 4

原创 android Launcher——数据加载与变更

在前面我的blog中,我已经说过了,Launcher所有的桌面项数据是存储在launcher.db/favorites表中在Launcher启动时loadeworkspace函数中会从数据库中查询所有的数据并显示出来,这个桌面项数据加载过程在我的blog Launcher——启动过程详解中有比较详细的描述,这篇blog,我着重讲述Launcher桌面项的添加,变更和删除,下面就进入主题1.Laun

2011-06-10 11:56:00 22832 4

原创 android Launcher——启动过程详解

一LauncherApplication->onCreate        --1.//设置最小堆内存4M        --2.//建立应用图标缓存器        --3.//建立LauncherModel        --4.//注册Intent.ACTION_PACKAGE_ADDED,Intent.ACTION_PACKAGE_REMOVED,Intent.ACTION_PACKAGE

2011-06-10 11:49:00 31097 15

原创 android Launcher——ui框架

1.先看图这是我正在研究的一个800*480的launcher的ui框架图,对应的桌面显示效果如下:下面一行应用是我修改桌面后的结果,在前面我的ui框架图中没有。闲话不多说,下面就一一做出讲解1.DragLayer--DragLayer继承FrameLayout,并在此基础上组合了DragController实现拖放功能,DragLayer主要监听下面两个用户事件onInterceptTouchEventonTouchEvent交给DragController进行处理,DragController根据是否在

2011-06-02 21:38:00 33018 23

转载 转-Android之PreferenceActivity

<br />在着手开发原生应用Settings前还有必要了解一下PreferenceActivity ,这里有一篇介绍PreferenceActivity 的文章,还不错<br />http://www.cnblogs.com/wservices/archive/2010/07/08/1773449.html<br />以上我的四篇blog:<br />Android 数据存储——shared preferences<br />Android 数据存储——content providers<br />and

2011-06-02 21:19:00 2576

原创 android Settings项目安装

<br />接着前面的settings项目的建立,继续讲一下setting怎么安装到真机上<br />--1.先按普通run android application的方式运行settings,<br />[2011-05-19 11:31:24 - Settings] Uploading Settings.apk onto device '0123456789ABCDEF'<br />[2011-05-19 11:31:26 - Settings] Installing Settings.apk...<br

2011-06-01 21:06:00 9393 2

原创 android Settings项目建立

很多开发需要整合setting原生应用,本文主要讲述怎么搭建一个能够正确编译的原生应用Settings工程。

2011-05-31 21:08:00 4672 2

原创 Android 数据存储——content providers

对自己学习contentproviders总结笔记,主要描述了contentproviders的服务构建,客户端用法。

2011-05-23 13:28:00 5854 2

原创 Android 数据存储——shared preferences

本文章主要对自己学习shared preferences用法的总结,希望对学习android开发的其他开发人员有所帮助

2011-05-19 16:38:00 7737 2

原创 Android AIDL使用详解

<br />1.什么是aidl:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口<br />icp:interprocess communication :内部进程通信<br /> <br />2.既然aidl可以定义并实现进程通信,那么我们怎么使用它呢?文档/android-sdk/docs/guide/developing/tools/aidl.html中对步骤作

2011-05-16 17:56:00 438903 117

原创 Android Handler机制

在android中提供了一种异步回调机制Handler,使用它,我们可以在完成一个很长时间的任务后做出相应的通知    handler基本使用:        在主线程中,使用handler很简单,new一个Handler对象实现其handleMessage方法,在handleMessage中提供收到消息后相应的处理方法即可,这里不对handler使用进行详细说明,在看本博文前,读者应

2011-05-13 14:48:00 180934 60

原创 java继承覆盖总结

<br />java的继承与覆盖基本是java笔试中常出的题,也比较绕,我这里对java的继承覆盖做一个总结<br />1.构造函数:<br />        当子类继承一个父类时,构造子类时需要调用父类的构造函数,存在三种情况<br />        (1),父类无构造函数或者一个无参数构造函数,子类若无构造函数或者有无参数构造函数,子类构造函数中不需要显式调用父类的构造函数,系统会自动在调用子类构造函数前调用父类的构造函数<br />         (2),父类只有有参数构造函数,子类在构造方法中

2011-04-12 10:21:00 43282 18

原创 java基本数据类型转换

<br />java基本数据类型转换,看似简单,可很多人在工作编程中却会放错误,原因是对它的机制理解的不够<br />我这里以byte,int之间转换为例,进行说明<br />理解基本数据类型转换,首先得理解java的负数表示,java负数使用补码的方式表示,也就是说一个byte数,0x80,它的值是-128,而0xFF,表示-1,关于补码,大学基础课,我就不多说了<br />1.byte转换成int<br />byte转换成int数据变长了,原来一个字节变成了4个字节<br />java转换规则是这样的,

2011-03-22 21:20:00 6357 4

原创 桌面组件开发学习笔记

1.       桌面组件开发概述a)         什么是桌面组件:桌面组件是一个很小的用于添加到桌面的应用程序,例如一个桌面日历,一个桌面时钟,或者一首后台播放歌曲的详细信息。b)        怎么打开桌面组件:当你长android桌面空白处,跳出一个Add to Home screen对话框,列表中有一个选项是widgets,这个就是桌面组件,你点击进入widgets后就会显示一个所有的桌面组件的列表,你选中一个就打开了一个桌面组件了。c)        桌面组件程序包含哪几部分:        

2011-03-18 15:41:00 5822 2

原创 Tween动画

<br />1.Tween动画简介:Tween动画主要通过进行图形矩阵变换,camera投影,和透明度变换来实现动画效果。<br />主要实现有以下四个子类<br />AlphaAnimation:明暗变换动画<br /><set xmlns:android="http://schemas.android.com/apk/res/android" ><br /><alpha<br />android:fromAlpha="0.1"<br />android:toAlpha="1.0"<br />androi

2011-03-15 16:11:00 3564

原创 listview android:cacheColorHint,android:listSelector属性作用

<br />自定义listview的时候,当你不使用android:cacheColorHint=“#00000000”会出现下面选中一个空间黑色底色的情况,破坏整体美观度:<br /><br /> <br />当你不使用android:listSelector属性,默认会显示选中的item为橙黄底色,有时候我们需要去掉这种效果:<br />

2011-03-01 20:39:00 26456 7

原创 android 源代码导入调试方法

a.下载android编译好的系统源码,编译好的源码包含out文件夹里面包含编译生成的内容 b.把android2.2/development/ide/eclipse/.classpath文件拷贝到根目录android2.2/ c.新建一个java工程选择Create project from existing source ,选择源路径为android2.2/ d.按默认java工程(注意不是android工程)建立方法建立该工程,注意默认的工程会引用四个jar包:javalib.jar,arity.ja

2011-02-26 09:16:00 7946 5

原创 如何为sdk设置源码

adk不能像其它jar包一样方便的设置源码,我在网上搜了一下为adk设置 源码的方法:a.在对应adk版本下建立source文件夹,如我在我本机为adk2.2设置源码建立文件夹如下:android-sdk/platforms/android-8/sources b.从网上下载对应adk2.2的源代码解压到前面建立的文件夹中.c.重启eclipse,ok了,在你的eclipse种你可以进入adk看源码了,也可以在调试的时候在adk源码中插入断点。

2011-02-26 09:03:00 3097 3

原创 在it混了三年了,最近想开始写自己的技术博客

在it混了三年了,最近想开始写自己的技术博客了,一方面共享自己的心得,知识,另一方面顺便提高一下自己的知名度,呵呵

2011-01-28 12:47:00 1852

aidl使用示例代码

配合我在博客中讲解的aidl使用的一个完整的示例 示例有参考:http://blog.csdn.net/saintswordsman/archive/2010/01/04/5130947.aspx

2011-05-16

Handler机制示例代码

写了一篇blog,Handler机制,这里是测试的例码

2011-05-13

android2.2-src

android2.2 sdk api对应的源代码

2011-01-28

空空如也

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

TA关注的人

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