Android FramWork
文章平均质量分 85
舒大飞
南朝四百八十寺,多少楼台烟雨中
展开
-
Android的异步消息处理机制
尊重原创,转载请注明出处。 Android的消息机制是安卓系统里很重要的一部分,平常我们用Handler来很方便的实现消息的传输与接收,那么具体消息是如何传输的,又是如何接收的,接收后做的事又是什么。 当我们在开发中遇到任务需要实时常驻并且需要根据外部传递的消息来执行不同的操作时(其实就是Handler的作用),我们就要考虑使用异步消息处理线程。 第一步原创 2016-03-17 18:28:13 · 543 阅读 · 0 评论 -
Serializable与Parcelable
我们在传输数据的时候经常会碰到想传输对象或者一些除了基础类型以外的类型,如果我们想直接通过intent传输的话是无法成功的,我们必须先给这个对象进行序列化之后,他才能传输,然后接受方通过反序列化把他接收并解析出来,像前面说到的进程间的通信,数据传输都必须实现序列化才能被传输。 对象的序列化Java里面一般用的是 Serializable接口,Serializab原创 2016-04-21 15:45:48 · 579 阅读 · 0 评论 -
View事件体系之--View的滑动
我们在安卓开发中会碰到各种各样的滑动,比如ListView的滑动,Viewpager的滑动,scrollview的滑动,滑动让我们的app看起来更加的生动,用户体验也大大增强,如果我们想基于View或者ViewGroup来自定义View的话,那么对View的滑动更加要有所了解。 总体来说一般使View产生滑动可以通过以下几种办法: 一.View自带的scrol原创 2016-04-24 17:30:02 · 483 阅读 · 0 评论 -
View的事件体系之--View的弹性滑动Scroller
上一篇说了View的几种滑动方式,但是哪几种方式滑动起来都比较生硬,没有弹性,这里介绍一种弹性滑动--Scroller。他的原理实际上就是:把一次大的滑动分成若干个小的滑动(而且这些每一次的小滑动并不是平均的,而是根据时间的流逝而起变化)。 Scroller mScroller = new Scroller(context); //调用此方法渐进性滚动到原创 2016-04-24 17:57:47 · 491 阅读 · 0 评论 -
Android网络请求处理异步回调风险方案
尊重原创,转载请标明出处http://blog.csdn.net/zcxwww 我们都知道网络请求是异步的,所以就存在异步回调风险,具体来说,就是发出网络请求后,由于各种原因,如果view被回收,这时候执行回调函数就会因为找不到view而报空指针异常导致crash,而这种异步回调在我们程序中无处不在,不仅是网络请求,本地的异步任务,或者动画等都存在这种风险。可见如果不对异步回调原创 2016-09-04 12:17:51 · 4925 阅读 · 0 评论 -
ClassLoader的工作原理(Java中和Andriod中的一些区别)
早期使用过 Eclipse 等 Java 编写的软件的同学可能比较熟悉,Eclipse 可以加载许多第三方的插件(或者叫扩展),这就是动态加载。这些插件大多是一些 Jar 包,而使用插件其实就是动态加载 Jar 包里的 Class 进行工作。这其实非常好理解,Java 代码都是写在 Class 里面的,程序运行在虚拟机上时,虚拟机需要把需要的 Class 加载进来才能创建实例对象并工作,而完成这一转载 2016-12-14 11:18:17 · 1417 阅读 · 0 评论 -
应用窗口的从创建到显示的过程
首先了解一下安卓系统窗口的类型,系统定义了三种窗口类型,包括: 1.应用窗口。这类窗口一般一个Activity对应一个应用窗口。 2.子窗口。这种类型的窗口必须要有一个父窗口,如PopupWindow即属于这类窗口。 3.系统窗口。如Toast即属于这类窗口。 每一类窗口都有一代表原创 2016-04-12 10:56:05 · 726 阅读 · 1 评论 -
Android Framework概述
转发请注明转自:http://blog.csdn.net/zcxwww/article/category/6139115 这里写一些关于Android Framework比较重要的知识点,这些东西对于之后理解和研究Android Framework有很大好处,就是让我们脑子里先有一个大概的模型,以及认识一点之后经常会碰见的角色。 首先贴一张图,刚原创 2016-04-17 17:20:59 · 18585 阅读 · 0 评论 -
APK动态加载框架(DL)解析(一)
载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/39937639 (来自singwhatiwanna的csdn博客)前言好久没有发布新的文章,这次打算发表一下我这几个月的一个核心研究成果:APK动态加载框架(DL)。这段时间我致力于github的开源贡献,开源了2个比较有用且有意义的项目,一个是PinnedHeade转载 2016-05-02 18:37:37 · 755 阅读 · 0 评论 -
Android apk动态加载机制的研究(二)
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客)前言为了更好地阅读本文,你需要先阅读Android apk动态加载机制的研究这篇文章,在此文中,博主分析了Android中apk的动态加载机制,并在文章的最后指出需要解决的两个复杂问题:资源的访问转载 2016-05-02 18:39:16 · 521 阅读 · 0 评论 -
Binder源码分析之Java层
前面的几节中我们介绍了Native层Binder通讯的原理和用法,那么在Java层如何使用Binder通讯呢?其原理又与Native层的Binder有什么关系呢? 与Native层的ServiceManager类似,Android在Java层也有一个ServiceManager用于处理Java层Service的注册、申请。只不过,Java层的这个ServiceManager,其实转载 2016-05-26 12:13:18 · 628 阅读 · 0 评论 -
异步任务AsyncTask的实现原理
做安卓开发,平常我的项目里很经常会用到异步任务,特别是一些获取网络数据的地方,我们都知道这种耗时操作要新起线程去获取,但是获取到数据后我们不能在非UI线程里操作控件,这个时候我们通常的做法是利用Handler进行跨线程传递信息。而AsyncTask实际上就是封装了这么一个新起Thread做耗时操作+利用Handler跨进程通信实现异步任务的这么一个过程,使我们用起来十分方便。原创 2016-03-23 13:56:47 · 931 阅读 · 0 评论 -
View的事件体系之--View的事件分发机制
View的事件分发机制很重要,我们的每一次Touch,每一次Click后触摸和点击事件如何被分发的,如果要自定义View或者处理滑动冲突的时候,比较系统的理解事件的分发机制都是十分必要的,也是自定义View已经解决滑动冲突相关问题的基础。 事件的分发过程基本上是由View里的三个方法完成的,他们分别是: 1.dispatchTouchEvent(Moti原创 2016-04-25 13:31:36 · 562 阅读 · 0 评论 -
App性能优化浅谈
前言前段时间给公司的小伙伴们进行了关于app性能优化的技术分享,这里我稍微整理一下也给大家分享一下,关于性能优化这个话题很大,涉及面可以很广,也可以很深入,本人能力有限,不会给大家讲特别难懂,特别底层的东西,都是我们开发能着手去做的点,大家都在讲性能优化,但对于项目经验不够丰富的朋友很难有一个概念,做优化的时候也会比较茫然,这里我就给大家指明方向。从何讲起?笔者在做产品开发转载 2016-04-12 23:08:18 · 628 阅读 · 0 评论 -
Android Framework的启动过程
我们平常如果只是简单的编写安卓App,特别是很多人只是更加单纯的关注View层面的代码编写,那么或许很难去思考或者注意整个安卓系统从最初启动到第一个Activity打开的这么一个过程,但是如果需要对安卓开发有更深入的了解的话,这方面的知识还是必不可少的,知其然且知其所以然,才能更好的控制它,驾驭它,这段时间学习了,一方面想记录下来,另一方面也是分享给有需要的人,废话不多说了。原创 2016-04-13 12:16:51 · 1639 阅读 · 0 评论 -
Activity的启动过程--startActivity()
当我们调用startActivity()启动一个Activity的时候,首先他会调到startActivityForResult()方法: @Override public void startActivity(Intent intent, @Nullable Bundle options) { if (options != null) { st原创 2016-04-26 17:40:50 · 3785 阅读 · 0 评论 -
Android中View和ViewGroup介绍
1. 概念Android中的View与我们以前理解的“视图”不同。在Android中,View比视图具有更广的含义,它包含了用户交互和显示,更像Windows操作系统中的window。ViewGroup是View的子类,所以它也具有View的特性,但它主要用来充当View的容器,将其中的View视作自己的孩子,对它的子View进行管理,当然它的孩子也可以是ViewGroup类型。转载 2016-04-15 13:09:20 · 700 阅读 · 0 评论 -
点击桌面图标startActivity()的过程分析
上一篇《Android Framework的启动过程》分析了安卓系统从启动到进入桌面(Home)的这么一个过程,接下来说说,点击桌面上的某一个图标,进入某个App到打开Activity,也就是startActivity()的这么一个过程。 之前自己整理了startActivity()的这么一个过程,后来网上看到一篇博文,觉得人家写的更加清楚,图文并茂,更有助于理解,所以原创 2016-04-17 11:14:30 · 1271 阅读 · 0 评论 -
自定义View:View的Measure测量过程解析
    相信绝大多数Android开发者都有自定义View来满足各种各样需求的经历,也知道一个View的绘制展示要经过measure、layout、draw三大流程,三者中measure的过程相比是稍微复杂一点点的。这篇文章作为一个Android基础的分享,分享一下view/viewGroup measure的过程,view/viewGroup是如何通过me...原创 2018-04-16 22:59:33 · 296 阅读 · 0 评论