2012年2月8日

android Launcher——ui框架

摘要: 着手开发laucher 我个人觉得首先要从ui框架入手,了解清楚了ui框架对laucher就有了一个大致的了解,知道关键的几个类在哪里,对后面进一步深入地研究作出铺垫。废话不多说了,直接进入主题:1.先看图这是我正在研究的一个800*480的launcher的ui框架图,对应的桌面显示效果如下:下面一行应用是我修改桌面后的结果,在前面我的ui框架图中没有。闲话不多说,下面就一一做出讲解1.DragLayer--DragLayer继承FrameLayout,并在此基础上组合了DragController实现拖放功能,DragLayer主要监听下面两个用户事件onInterceptTouchEve 阅读全文

posted @ 2012-02-08 16:32 小小博客小小员 阅读(1526) 评论(0) 推荐(0) 编辑

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

摘要: 对于android的窗口window管理,一直感觉很混乱,总想找个时间好好研究,却不知如何入手,现在写的Touch事件派发过程详解,其实跟 android的窗口window管理服务WindowManagerService存在紧密联系,所以从这里入手切入到 WindowManagerService的研究,本blog主要讲述一个touch事件如何从用户消息的采集,到 WindowManagerService对Touch事件的派发,再到一个Activity窗口touch事件的派发,并着重讲了Activity窗口 touch事件的派发,因为这个的理解对我们写应用很好地处理touch事件很重要一.用户事 阅读全文

posted @ 2012-02-08 16:29 小小博客小小员 阅读(3161) 评论(0) 推荐(0) 编辑

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

摘要: 1.前面我曾经发表过一篇blog介绍了aidl实现机制(aidl实现机制浅析),不过那只是停留在java表层,并遗留了一个问题,那就是BinderProxy.transact 该方法本地化实现,同时我指出了它的具体代码位置:\frameworks\base\core\jni\android_util_Binder.cpp->static jboolean android_os_BinderProxy_transact(JNIEnv* env, jobject obj,jint code, jobject dataObj,jobject replyObj, jint flags)要进一步深 阅读全文

posted @ 2012-02-08 16:27 小小博客小小员 阅读(1192) 评论(0) 推荐(0) 编辑

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

摘要: 6.前面5个段落我主要说明了BinderProxy是如何把数据发送出去的,Ok,那么接下来,我们肯定想要知道服务端是怎么接收数据并传递给相应的BBinder进行处理的,有没有注意到前面waitForResponse我标注为蓝色的代码,这给我们一个启示,也许接收返回数据(进程作为客户端)和接收命令(进程作为服务端)处理的是同一个函数,但这是我的一个猜测,而实际上我参阅其它blog和代码后并非这么回事,waitForResponse只在客户端发送完数据等待接收数据才被调用的,那么服务端是怎么接收数据的呢?做过socket编程的同仁们可能知道,服务端为实现接收数据和链接,一般会启动一个监听线程去监听 阅读全文

posted @ 2012-02-08 16:27 小小博客小小员 阅读(910) 评论(0) 推荐(0) 编辑

Android FrameWork——StatusBar

摘要: Android系统顶上的状态栏是属于FrameWork的东东,由于项目上需要对状态栏进行一些修改调整,我对其作了一个初步研究,写出来大家共享一下,其实这些早已写了,只是想等研究StatusBar中ExtendsView后再整理一个blog,不过现在已经没有时间了,目前深入研究Android Binder机制,废话不多少,开始进入statusbar的探索 1.先从StatusBar的布局文件入手,文件位置位置:frameworks/base/core/res/res/layout/status_bar.xml 2.我对status_bar.xml布局文件进行分析,画出结构图,以便对Status. 阅读全文

posted @ 2012-02-08 16:25 小小博客小小员 阅读(1484) 评论(0) 推荐(0) 编辑

Android FrameWork——PackageManager框架

摘要: 1.接着前面讲的ActivityManager框架,继续说一下系统另一个重要的框架,PackagerManager同样先看一下静态类结构图:大 部分情况我们是在Activity中使用getPackageManager方法获取一个ApplicationPackageManager的对 象,ApplicationPackageManager实际上是包装了一个IPackageManager.Stub.Proxy的对象由IPackageManager.Stub.Proxy代理执行PackageManager相关操作,IPackageManager.Stub.Proxy实际代理的是PackageMana 阅读全文

posted @ 2012-02-08 16:24 小小博客小小员 阅读(2695) 评论(0) 推荐(2) 编辑

Android FrameWork——Activity启动过程详解

摘要: 前面发了blog分析了ActivityManager框架的大体结构,主要就是一个进程通信机制,今天我通过深入Activity的启动过程再次深入到ActivityManager框架,对其进行一个更深入的了解 以桌面启动一个应用Activity为例,onClick事件后,会调用startActivityForResult(Intent, int) public void startActivityForResult(Intent intent, int requestCode) { if (mParent == null) { //Activity启动执行交由Instrumentation对象去. 阅读全文

posted @ 2012-02-08 16:23 小小博客小小员 阅读(1866) 评论(0) 推荐(1) 编辑

Android FrameWork——ActivityManager框架

摘要: 1.ActivityManager是android框架的一个重要部分,它负责一新ActivityThread进程创建,Activity生命周期的维护,本blog就是着手对ActivityManager框架作一个整体的了解 2.先看一个静态类结构图: 该图摘自 曹文斌blog<Activity Manager框架解析> 上图很清楚地描述了ActivityManager框架的几个主要类之间的关系,我们做应用开发接触很多的其实就是ActivityManager类,该类也在SDK中公布,应用可以直接访问,它提供了我们管理Activity的一些基本的方法如下: public void tes 阅读全文

posted @ 2012-02-08 16:19 小小博客小小员 阅读(2454) 评论(0) 推荐(0) 编辑

2012年1月6日

android简单图片处理

摘要: 网上收集一些对图片处理的代码以便以后能用到一、图片翻转(得到翻转180度后的图片)Matrix m = new Matrix(); m.setScale(-1, 1); Bitmap newBit = Bitmap.createBitmap(bit, 0, 0, bit.getWidth(), bit.getHeight(), m,true);二、图片放大缩小Matrix m = new Matrix();m.setScale(0.5f, 0.5f);//缩小为一半,缩放比例大于一放大sBitmap newBit = Bitmap.createBitmap(bit, 0, 0, bit.get 阅读全文

posted @ 2012-01-06 15:05 小小博客小小员 阅读(274) 评论(0) 推荐(0) 编辑

2011年8月26日

初试javax.mail

摘要: 最近在项目中用到发送邮件的功能,由于以前没有接触过,找了很多资料才终于把它弄出来,今天写下这些,算是做个总结吧。 1、首先定义一个邮件的数据结构类 public class EmailData() { String from = null;//发件人 String[] recipients = null;//收件人,可以多个 String subject = null;//邮件主题 String content = null;//邮件内容 String contentType = null;//邮件内容格式(文本或html) String fileName = null;//附件文件名(目前. 阅读全文

posted @ 2011-08-26 09:26 小小博客小小员 阅读(165) 评论(0) 推荐(0) 编辑

导航