android开发艺术探索
文章平均质量分 94
虫单
学习、分享、成长、坚持
展开
-
IPC基础概念介绍
"*"本章内总总结笔记:主要介绍 Serializable 、 Parcelable 、 Binder 。**Serializable接口**1. Serializable 是Java提供的一个序列化接口(空接口),为对象提供标准的序列化和反序列化操作。2. 只需要一个类去实现 Serializable 接口并声明一个 serialVersionUID 即可实现序列化。3. 如果不手动指定 serialVersionUID 的值原创 2018-08-06 14:51:13 · 1402 阅读 · 0 评论 -
Android的线程和线程池
本章总结:Android的线程和线程池在Android系统,线程主要分为主线程和子线程,主线程处理和界面相关的事情,而子线程一般用于执行耗时操作。在Android中,线程的形态有很多种:i. AsyncTask封装了线程池和Handler。ii. HandlerThread是具有消息循环的线程,内部可以使用handleriii.IntentService是一种Service,内部采...原创 2019-02-20 17:03:37 · 685 阅读 · 0 评论 -
Android的消息机制
Android的消息机制从开发的角度来说,Handler是Android消息机制的上层接口。Handler的运行需要底层的 MessageQueue 和 Looper 的支撑。MessageQueue是一个消息队列,内部存储了一组消息,以队列的形式对外提供插入和删除的工作,内部采用单链表的数据结构来存储消息列表。Lopper会以无限循环的形式去查找是否有新消息,如果有就处理消息,...原创 2019-02-19 16:31:27 · 178 阅读 · 0 评论 -
Bitmap的加载和Cache
本章总结:主要介绍:如何高效地加载一个BitmapAndroid中常用的缓存策略i. LruCache——内存缓存ii. DiskLruCache——磁盘缓存如何优化列表的卡顿12.1 Bitmap的高效加载BitmapFactory类提供四种方法: decodeFile 、 decodeResource 、 decodeStream 和 decodeByteAr...原创 2019-02-21 18:46:52 · 366 阅读 · 0 评论 -
Android动画深入分析
本章重点:Android动画分为三种:View动画帧动画属性动画1 View动画 View动画的作用对象是View,支持四种动画效果:平移缩放旋转透明1.1 View动画的种类 上述四种变换效果对应着Animation四个子类: TranslateAnimation 、 ScaleAnimation 、 RotateAnimation 和 AlphaAnimat...原创 2018-12-14 18:20:51 · 277 阅读 · 0 评论 -
理解Window和WindowManager
本章重点:indow是一个抽象类,具体实现是 PhoneWindow 。不管是 Activity 、 Dialog 、 Toast 它们的视图都是附加在Window上的,因此Window实际上是View的直接管理者。WindowManager是外界访问Window的入口,通过WindowManager可以创建Window,而Window的具体实现位于WindowManagerSer...原创 2018-12-19 16:00:22 · 304 阅读 · 0 评论 -
View的工作原理(二)
本章重点:1 .View的工作流程1.1 measure过程分两种情况:1. View通过 measure 方法就完成了测量过程2. ViewGroup除了完成自己的测量过程还会便利调用所有子View的 measure 方法,而且各个子View还会递归执行这个过程。View的measure过程 直接继承View的自定义控件需要重写 onMeasure 方法并设置 wrap_...原创 2018-12-07 16:57:18 · 198 阅读 · 0 评论 -
View的事件体系(一)
view的基础知识原创 2018-11-19 15:33:38 · 215 阅读 · 0 评论 -
View的工作原理(一)
本章主要内容1. 初识ViewRoot和DecorViewViewRoot的实现是 ViewRootImpl 类,是连接WindowManager和DecorView的纽带,View的三大流(mearsure、layout、draw)均是通过ViewRoot来完成。当Activity对象被创建完毕后,会将DecorView添加到Window中,同时创建 ViewRootImpl 对象,...原创 2018-11-21 15:13:50 · 138 阅读 · 0 评论 -
View的事件体系(二)
本章重点1.View的事件分发机制1.1 点击事件的传递规则 首先我们先看看下面一段伪代码,通过它我们可以理解到点击事件的传递规则:public boolean dispatchTouchEvent (MotionEvent ev){boolean consume = false;if (onInterceptTouchEvnet(ev){consume = onTouchEven...原创 2018-11-20 18:16:25 · 160 阅读 · 0 评论 -
Android中的IPC方式 - ContentProvider与Socket
使用ContentProvider 1. ContentProvider是四大组件之其底层实现和Messenger一样是BinderContentProvider天生就是用来进程间通信,只需要实现一个自定义或者系统预设置的ContentProvider,通过ContentResolver的query、update、insert和delete方法即可。 2. 创建ContentPr...原创 2018-09-14 16:11:41 · 372 阅读 · 0 评论 -
Android中的IPC方式-Binder连接池以及选择合适的IPC方式
本节重点 Binder连接池 AIDL是一种最常用的IPC方式,是日常开发中涉及IPC时的首选。前面提到AIDL的流程是 客户端在Service的onBind方法中拿到继承AIDL的Stub对象,然后客户端就可以通过这个Stub对象进行RPC。 那么如果项目庞大,有多个业务模块都需要使用AIDL进行IPC,随着AIDL数量的增加,我们不能无限制地增加Service,我们需要...原创 2018-09-17 16:58:08 · 324 阅读 · 0 评论 -
Android中的IPC方式 - AIDL(二)
本章重点总结: 使用AIDL 如果有大量的并发请求,使用Messenger就不太适合,同时如果需要跨进程调用服务端的方法,Messenger就无法做到了。这时我们可以使用AIDL。 流程如下: 1. 服务端需要创建Service来监听客户端请求,然后创建一个AIDL文件,将暴露给客户端的接口在AIDL文件中声明,最后在Service中实现这个AIDL接口即可。 ...原创 2018-09-06 16:47:25 · 508 阅读 · 0 评论 -
Android中的IPC方式(一)-Messenger
本章重点 IPC主要有以下方式: 1. Intent中附加extras来传递消息 2. 共享文件 3. Binder方式 4. 四大组件之一的ContentProvider 5. Sock 1 使用Bundle 四大组件中的三大组件(Activity、Service、Receiver)都支持在Intent中传递 Bundle 数据。 ...原创 2018-09-05 16:09:52 · 336 阅读 · 0 评论 -
Android性能优化
本章重点:Android设备作为一种移动设备,不管是内存还是CPU的性能都受到了一定的限制,也意味着Android程序不可能无限制的使用内存和CPU资源,过多的使用内存容易导致OOM,过多的使用CPU资源容易导致手机变得卡顿甚至无响应(ANR)。这也对开发人员提出了更高的要求。本章主要介绍一些有效的性能优化方法。主要包括布局优化、绘制优化、内存泄漏优化、响应速度优化、ListView优化、B...原创 2019-02-26 17:55:32 · 342 阅读 · 0 评论