![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android开发艺术探索
Android开发艺术探索读书笔记
尘埃zza
搜索关注“开发者营地”公众号,持续分析优质技术文章
展开
-
Android开发艺术探索笔记
《Android开发艺术探索》这本书在几年前就已经买了,陆陆续续看过几次,都没有看完,没有理解透。最近重读《Android开发艺术探索》,读了两次,第一次读完感觉还有大量的知识点没有理解,再次阅读,练习书中例子,记读书笔记,理解加深了几分。[学习笔记]Android开发艺术探索:Activity的生命周期和启动模式[学习笔记]Android开发艺术探索:IPC机制[学习笔记]A...原创 2020-03-13 16:57:05 · 301 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:Android性能优化
Android设备作为一种移动设备,不管是内存还是CPU的性能都受到了一定的限制,也意味着Android程序不可能无限制的使用内存和CPU资源,过多的使用内存容易导致OOM,过多的使用CPU资源容易导致手机变得卡顿甚至无响应(ANR)。这也对开发人员提出了更高的要求。本章主要介绍一些有效的性能优化方法。主要包括布局优化、绘制优化、内存泄漏优化、响应速度优化、ListView优化、Bitmap优化...原创 2020-03-13 16:44:57 · 196 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:综合技术(Crash、Multidex、动态加载、反编译)
使用CrashHandler来获取应用的crash信息检测崩溃并了解详细的crash信息:首先需实现一个uncaughtExceptionHandler对象,在它的uncaughtException方法中获取异常信息并将其存储到SD卡或者上传到服务器中,然后调用Thread的setDefaultUncaughtExceptionHandler为当前进程的所有线程设置异常处理器。public ...原创 2020-03-13 16:43:41 · 224 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:Bitmap的加载和Cache
Bitmap的高效加载BitmapFactory类提供四种方法:decodeFile、decodeResource、decodeStream和decodeByteArray;其中decodeFile和decodeResource间接的调用了decodeStream方法;这四个方法最终在Android底层实现。如何高效的加载Bitmap?核心思想:按需加载;很多时候ImageView并没有原始图...原创 2020-03-13 16:42:04 · 267 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:Android的线程和线程池
在Android系统,线程主要分为主线程和子线程,主线程处理和界面相关的事情,而子线程一般用于执行耗时操作。在Android中,线程的形态有很多种: i. AsyncTask封装了线程池和Handler。 ii. HandlerThread是具有消息循环的线程,内部可以使用handler iii. IntentService是一种Service,内部采用HandlerThread来执...原创 2020-03-13 16:40:41 · 149 阅读 · 1 评论 -
[学习笔记]Android开发艺术探索:Android的消息机制
从开发的角度来说,Handler是Android消息机制的上层接口。Handler的运行需要底层的 MessageQueue 和 Looper 的支撑。MessageQueue是一个消息队列,内部存储了一组消息,以队列的形式对外提供插入和删除的工作,内部采用单链表的数据结构来存储消息列表。Lopper会以无限循环的形式去查找是否有新消息,如果有就处理消息,否则就一直等待着。 线程是默认没有L...原创 2020-03-13 16:39:42 · 134 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:四大组件的工作过程之ContentProvider
ContentProvider是一个内存共享型组件,他通过Binder向其他组件乃至其他应用提供数据,当ContentProvider所在的进程启动的时候,ContentProvider会同时启动并且发布到AMS中,需要注意的是,这个时候ContentProvider的onCreate要先于Application的onCreate执行,这是四大组件一个少有的现象一个应用启动的时候,入口方法在Ac...原创 2020-03-13 16:37:37 · 154 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:四大组件的工作过程之BoradcastReceiver
广播的注册过程静态注册:在应用的安装时由系统自动完成注册,具体来说是PMS(PackageManagerServer)来完成整个注册过程。其他三大组件也是。动态注册:从ContentWrapper的registerReceiver方法开始, 调用了自己的registerReceiverInternal方法。 private Intent registerReceiverInternal(B...原创 2020-03-13 16:36:18 · 160 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:四大组件的工作过程之Service
Service有两种工作状态:启动状态:执行后台计算绑定状态:用于其他组件与Service交互Service的启动过程Service的启动从 ContextWrapper 的 startService 开始在ContextWrapper中,大部分操作通过一个 ContextImpl 对象mBase实现/frameworks/base/core/java/android/conten...原创 2020-03-13 16:34:39 · 135 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:四大组件的工作过程之Activity
Activity是一种展示型组件,用于向用户直接地展示一个界面,并且可以接收用户的输入 信息从而进行交互,扮演的是一个前台界面的角色。Service是一种计算型组件,在后台执行一系列计算任务。它本身还是运行在主线程中 的,所以耗时的逻辑仍需要单独的线程去完成。BroadcastReceiver是一种消息型组件,用于在不同的组件乃至不同的应用之间传递消 息。ContentPro...原创 2020-03-13 16:33:28 · 209 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:理解Window和WindowManager
Window是一个抽象类,具体实现是 PhoneWindow 。不管是 Activity 、 Dialog 、 Toast 它们的视图都是附加在Window上的,因此Window实际上是View的直接管理者。 WindowManager 是外界访问Window的入口,通过WindowManager可以创建Window,而 Window的具体实现位于 WindowManagerService 中,W...原创 2020-03-13 16:30:56 · 156 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:动画深入分析
Android动画分为三种: View动画、帧动画、属性动画View动画View动画的作用对象是View,支持四种动画效果:平移 、缩放、旋转、透明。四种变换效果对应着Animation四个子类: TranslateAnimation 、 ScaleAnimation 、 RotateAnimation 和 AlphaAnimation 。这四种动画皆可以通过XML定义,也可以通过代码来动态...原创 2020-03-13 16:29:33 · 185 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:Android的Drawable
6.1 Drawable简介Drawable表示的是一种可以在Canvas上进行绘制的抽象概念,它的种类有很多,最常见的就是颜色和图片。优点:使用简单,比自定义View成本低很多,非图片类型的Drawable占用空间较小。全面理解Drawable的使用细节还是很有必要的,这也是本章的出发点。Drawable有很多种,都表示图像的概念,但不全是图片。Drawable是所有Drawable对象...原创 2020-03-13 16:27:30 · 119 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:理解RemoteViews
RemoteViews是一种远程View,可以在其他进程中显示,为了能够更新它的界面,RemoteViews提供了一组基础操作用于跨进程更新它的界面。本章会介绍RemoteViews在通知栏和桌面小部件上的应用,分析RemoveViews的内部机制,最后分析RemoteViews的意义并给出一个采用RemoteViews来跨进程更新界面的示例。RemoteViews的应用RemoteView...原创 2020-03-13 16:26:09 · 183 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:View的工作原理
初识ViewRoot和DecorViewViewRoot的实现是 ViewRootImpl 类,是连接WindowManager和DecorView的纽带, View的三大流程(mearsure、layout、draw)均是通过ViewRoot来完成。当Activity对象被创建完毕后,会将DecorView添加到Window中,同时创建 ViewRootImpl 对象,并将 ViewRootI...原创 2020-03-13 16:18:19 · 132 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:View的事件体系
[学习笔记]Android开发艺术探索:View的事件体系View基础知识View是Android所有控件的基类;View是一种界面层的控件的一种抽象,代表了一个控件;ViewGroup继承自View。View的位置主要由它的四个定点来决定,分别对应View的四个属性:top、left、right、bottom,这下坐标都是相对父容器而言的。获取方式getXXX()。从3.0开始View增...原创 2020-03-13 16:16:33 · 151 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索:IPC机制
Android IPC简介IPC为进程间通讯,两个进程之间进行数据交换的过程。IPC不是Android所独有的,任何一个操作系统都有对应的IPC机制。Windows上通过剪切板、管道、油槽等进行进程间通讯。Linux上通过命名空间、共享内容、信号量等进行进程间通讯。Android中没有完全继承于Linux,有特色的进程间通讯方式是Binder,还支持Socket。Android中的多进程模式...原创 2020-03-13 16:13:13 · 266 阅读 · 0 评论 -
[学习笔记]Android开发艺术探索笔记:Activity的生命周期和启动模式
Activity 生命周期的全面分析典型情况下的生命周期分析onCreate : 生命周期第一个方法,可做一些初始化工作;onRestart : Activity 重新启动,由不可见变为可见;onStart : Activity 正在启动,此时 Activity 已经可见,但没有出现在前台,还无法和用户交互;onResume : Activity 可见,出现在前台,并开始活动;onP...原创 2020-03-13 16:07:11 · 272 阅读 · 0 评论