android应用开发
stonecao
2007-2010从事B/S应用服务器开发,负责网络接口框架部分。
2010.6至2011.9,转向android开发,主要从事android平台应用开发,launcher开发,应用框架预研。
2011.10至今,从事Android底层linux驱动开发
展开
-
如何为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 · 3139 阅读 · 3 评论 -
Android FrameWork——PackageManager框架
1.接着前面讲的ActivityManager框架,继续说一下系统另一个重要的框架,PackagerManager同样先看一下静态类结构图:大部分情况我们是在Activity中使用getPackageManager方法获取一个ApplicationPackageManager的对原创 2011-07-07 22:03:34 · 37216 阅读 · 9 评论 -
Android FrameWork——Activity启动过程详解
前面发了blog分析了ActivityManager框架的大体结构,主要就是一个进程通信机制,今天我通过深入Activity的启动过程再次深入到ActivityManager框架,对其进行一个更深入的了解 以桌面启动一个应用Activity为例,onClick事件后,会调原创 2011-07-11 09:55:09 · 49622 阅读 · 20 评论 -
Android FrameWork——StatusBar
Android系统顶上的状态栏是属于FramWork的东东,由于项目上需要对状态栏进行一些修改调整,我对其作了一个初步研究,写出来大家共享一下,其实这些早已写了,只是想等研究StatusBar中ExtendsView后再整理一个blog,不过现在已经没有时间了,目前深入研究And原创 2011-07-29 14:23:49 · 35827 阅读 · 11 评论 -
Android FrameWork——Binder机制详解(2)
6.前面5个段落我主要说明了BinderProxy是如何把数据发送出去的,Ok,那么接下来,我们肯定想要知道服务端是怎么接收数据并传递给相应的BBinder进行处理的,有没有注意到前面waitForResponse我标注为蓝色的代码,这给我们一个启示,也许接收返回数据(进程作为客原创 2011-08-03 17:42:34 · 19612 阅读 · 7 评论 -
Android FrameWork——Binder机制详解(1)
1.前面我曾经发表过一篇blog介绍了aidl实现机制(aidl实现机制浅析),不过那只是停留在java表层,并遗留了一个,那就是BinderProxy.transact 该方法本地化实现,同时我指出了它的具体代码位置:\frameworks\base\core\jni\an原创 2011-08-03 17:25:03 · 31019 阅读 · 13 评论 -
Android FrameWork——Touch事件派发过程详解
对于android的窗口window管理,一直感觉很混乱,总想找个时间好好研究,却不知如何入手,现在写的Touch事件派发过程详解,其实跟android的窗口window管理服务WindowManagerService存在紧密联系,所以从这里入手切入到WindowManagerS原创 2011-09-08 15:07:43 · 70182 阅读 · 41 评论 -
Android编译环境——VMware虚拟机安装配置
1.安装Linux虚拟机:下载虚拟机,路径:虚拟机版本:vmware-6.5.3安装虚拟机,选择一个空间比较大的分区,进行安装,选择典型安装,一步步按默认方式安装完成若对英文不怎么熟悉,可以下载安装一个汉化补丁2.建立一个虚拟机:--1.文件/新建虚拟机,选择客户自定义安装(custom(advanced))--2.进入虚拟机安装向导,一步步往下,若你机器已经安装了原创 2011-10-25 10:10:25 · 11885 阅读 · 2 评论 -
Android Handler机制
在android中提供了一种异步回调机制Handler,使用它,我们可以在完成一个很长时间的任务后做出相应的通知 handler基本使用: 在主线程中,使用handler很简单,new一个Handler对象实现其handleMessage方法,在handleMessage中提供收到消息后相应的处理方法即可,这里不对handler使用进行详细说明,在看本博文前,读者应原创 2011-05-13 14:48:00 · 181074 阅读 · 60 评论 -
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 · 17442 阅读 · 3 评论 -
AppWidget实现机制分析--什么是桌面插件
//简单写一下一个appwidget如何开发//揭示appwidget本质原创 2013-08-22 22:17:57 · 7418 阅读 · 4 评论 -
Android FrameWork——ActivityManager框架
1.ActivityManager是android框架的一个重要部分,它负责一新ActivityThread进程创建,Activity生命周期的维护,本blog就是着手对ActivityManager框架作一个整体的了解 2.先看一个静态类结构图: 该图摘自 曹文斌blog 上图很清楚地描述了ActivityManager框架的几个原创 2011-07-01 15:58:00 · 42446 阅读 · 4 评论 -
Android AIDL——实现机制浅析
1.基于前面写的aidl使用,这段时间准备研究ActivityManager框架,对aidl进行了更深入的研究,因为android框架大量使用了进程通信机制,所以,在研究android framework前认真研究一下AIDL的实现机制十分有必要的 2.前面讲了aidl是 Android Interface definition language的缩写,它是一种进程通信接口的描述,通过s原创 2011-07-01 13:48:00 · 32599 阅读 · 6 评论 -
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 · 7983 阅读 · 5 评论 -
listview android:cacheColorHint,android:listSelector属性作用
<br />自定义listview的时候,当你不使用android:cacheColorHint=“#00000000”会出现下面选中一个空间黑色底色的情况,破坏整体美观度:<br /><br /> <br />当你不使用android:listSelector属性,默认会显示选中的item为橙黄底色,有时候我们需要去掉这种效果:<br />原创 2011-03-01 20:39:00 · 26514 阅读 · 7 评论 -
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 · 3595 阅读 · 0 评论 -
桌面组件开发学习笔记
1. 桌面组件开发概述a) 什么是桌面组件:桌面组件是一个很小的用于添加到桌面的应用程序,例如一个桌面日历,一个桌面时钟,或者一首后台播放歌曲的详细信息。b) 怎么打开桌面组件:当你长android桌面空白处,跳出一个Add to Home screen对话框,列表中有一个选项是widgets,这个就是桌面组件,你点击进入widgets后就会显示一个所有的桌面组件的列表,你选中一个就打开了一个桌面组件了。c) 桌面组件程序包含哪几部分:原创 2011-03-18 15:41:00 · 5989 阅读 · 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 · 439527 阅读 · 117 评论 -
Android 数据存储——shared preferences
本文章主要对自己学习shared preferences用法的总结,希望对学习android开发的其他开发人员有所帮助原创 2011-05-19 16:38:00 · 7815 阅读 · 2 评论 -
Android 数据存储——content providers
对自己学习contentproviders总结笔记,主要描述了contentproviders的服务构建,客户端用法。原创 2011-05-23 13:28:00 · 5922 阅读 · 2 评论 -
android Settings项目建立
很多开发需要整合setting原生应用,本文主要讲述怎么搭建一个能够正确编译的原生应用Settings工程。原创 2011-05-31 21:08:00 · 4762 阅读 · 2 评论 -
转-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 · 2602 阅读 · 0 评论 -
android Launcher——ui框架
1.先看图这是我正在研究的一个800*480的launcher的ui框架图,对应的桌面显示效果如下:下面一行应用是我修改桌面后的结果,在前面我的ui框架图中没有。闲话不多说,下面就一一做出讲解1.DragLayer--DragLayer继承FrameLayout,并在此基础上组合了DragController实现拖放功能,DragLayer主要监听下面两个用户事件onInterceptTouchEventonTouchEvent交给DragController进行处理,DragController根据是否在原创 2011-06-02 21:38:00 · 33128 阅读 · 23 评论 -
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 · 9538 阅读 · 2 评论 -
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 · 31130 阅读 · 15 评论 -
android Launcher——数据加载与变更
在前面我的blog中,我已经说过了,Launcher所有的桌面项数据是存储在launcher.db/favorites表中在Launcher启动时loadeworkspace函数中会从数据库中查询所有的数据并显示出来,这个桌面项数据加载过程在我的blog Launcher——启动过程详解中有比较详细的描述,这篇blog,我着重讲述Launcher桌面项的添加,变更和删除,下面就进入主题1.Laun原创 2011-06-10 11:56:00 · 22880 阅读 · 4 评论 -
android Launcher——拖放功能深入研究
Luancher有一个相对比较复杂的功能就是拖放功能,要深入了解launcher,深入理解拖放功能是有必要的,这篇blog,我将对launcher的拖放功能做深入的了解1.首先直观感受什么时候开始拖放?我们长按桌面一个应用图标或者控件的时候拖放就开始了,包括在all app view中长按应用图标,下面就是我截取的拖放开始的代码调用堆栈 at com.android.launcher2.DragC原创 2011-06-22 17:19:00 · 26127 阅读 · 16 评论 -
android 布局长度单位深入研究
要想使自己的布局在不同设备达到精准空置,理清理顺android布局长度单位之间关系很有必要,否则你也许会经常挠头为什么显示出来的布局不是自己定义的效果呢,有些东西,虽然基础,但是弄个透彻也需要花些功夫,废话不多说,下面开始。1.先了解一下android有支持哪些长度单位:px: pixels(像素). 不同设备显示效果相同,比如我们800*480的屏幕宽度就是 800pxdip: device原创 2011-06-22 17:27:00 · 15482 阅读 · 10 评论 -
AppWidget实现机制分析--launcher添加和删除appwidget深入分析
通过前面的《什么是桌面插件》的讲解,估计你对桌面插件应用有了一定的了解,接着那这篇文章,我们继续讲解在一个桌面上如何创建一个桌面插件实例,以及它是如何显示在我们的桌面上的,如何被删除的,这些都是这篇文章要解答的问题。 用过Android原生Launcher的都知道,长按桌面空白处会弹出一个对话框,这个对话框就对应CreateShortcut类,手上有原生launcher代码的同学可以找到原创 2014-02-08 17:59:31 · 29829 阅读 · 6 评论