自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 OKHttp源码分析

OkHttp优点OkHttp是一个高效的Http客户端,有如下的特点: 支持HTTP2/SPDY黑科技 socket自动选择最好路线,并支持自动重连 拥有自动维护的socket连接池,减少握手次数 拥有队列线程池,轻松写并发 拥有Interceptors轻松处理请求与响应(比如透明GZIP压缩,LOGGING) 基于Headers的缓存策...

2019-06-13 17:14:29 403

原创 View事件传递机制

理解事件传递的基本逻辑,对于工作过程中解决滑动事件冲突非常有帮助。比如我们此时有一个父控件ViewPager,这个ViewPager其中一个Item是ScrollView,此时会发生什么问题呢?当ViewPager滑动到ScrollView这个条目的时候,再左右滑动,发现ViewPager再也左右滑动不了了。这是为什么呢?我们结合图6一起来分析一下。  1.我们都知道ViewPager是能够...

2019-06-13 12:01:35 790

原创 Android的Activity启动流程分析

-------------------------------------------------------------------------------------------------------------------------------------------------------------------...

2019-06-10 22:38:41 47821 25

转载 Android系统启动流程(四)Launcher启动过程与系统启动流程

相关文章Android系统架构与系统源码目录Android系统启动流程(一)解析init进程启动过程Android系统启动流程(二)解析Zygote进程启动过程Android系统启动流程(三)解析SyetemServer进程启动过程前言此前的文章我们学习了init进程、Zygote进程和SyetemServer进程的启动过程,这一篇文章我们就来学习Android系统启动流程的...

2019-03-08 10:56:21 224

转载 Android系统启动流程(三)解析SyetemServer进程启动过程

相关文章Android系统架构与系统源码目录Android系统启动流程(一)解析init进程启动过程Android系统启动流程(二)解析Zygote进程启动过程前言上一篇我们学习了Zygote进程,并且知道Zygote进程启动了SyetemServer进程,那么这一篇我们就来学习Android7.0版本的SyetemServer进程的启动过程。1.Zygote启动Syetem...

2019-03-08 10:56:02 124

转载 android 重识 Handler

0. 前言做 Android 开发肯定离不开跟 Handler 打交道,它通常被我们用来做主线程与子线程之间的通信工具,而 Handler 作为 Android 中消息机制的重要一员也确实给我们的开发带来了极大的便利。Handler应用之广泛,可以说只要有异步线程与主线程通信的地方就一定会有 Handler。所以搞懂 Handler 对理解Android非常有必要。那么,Handl...

2019-03-08 10:55:42 186

转载 Android系统启动流程(二)解析Zygote进程启动过程

相关文章Android系统架构与系统源码目录Android系统启动流程(一)解析init进程启动过程前言上一篇文章我们分析了init进程的启动过程,启动过程中主要做了三件事,其中一件就是创建了Zygote进程,那么Zygote进程是什么,它做了哪些事呢?这篇文章会给你这些问题的答案。1.Zygote简介在Android系统中,DVM(Dalvik虚拟机)、应用程序进程以及运行系...

2019-03-07 18:48:15 192

转载 Android系统启动流程(一)解析init进程启动过程

相关文章Android系统架构与系统源码目录前言作为“Android框架层”这个大系列中的第一个系列,我们首先要了解的是Android系统启动流程,在这个流程中会涉及到很多重要的知识点,这个系列我们就来一一讲解它们,这一篇我们就来学习init进程。1.init简介init进程是Android系统中用户空间的第一个进程,作为第一个进程,它被赋予了很多极其重要的工作职责,比如创建zyg...

2019-03-07 18:44:50 225

转载 Android应用程序进程启动过程(前篇)

相关文章Android系统架构与系统源码目录Android系统启动流程(一)解析init进程启动过程Android系统启动流程(二)解析Zygote进程启动过程Android系统启动流程(三)解析SyetemServer进程启动过程Android系统启动流程(四)Launcher启动过程与系统启动流程前言在此前我讲过Android系统的启动流程,系统启动后,我们就比较关心...

2019-03-07 18:42:06 156

转载 Android 应用进程启动流程

本文是 Android 系统学习系列文章中的第一章节第二小节内容,从源码出发说明了 Android 应用进程是如何启动的,经过哪些进程的通力合作,它们是如何是设计的。。对此系列感兴趣的同学,可以收藏这个链接 Android 系统学习,也可以使用 RSS 进行订阅。阅读的收益讨论的内容也就是一个应用进程是如何启动的,私以为这一部分的内容颇为重要,即便不了解细节,也要知道其中的大体步骤。特别是...

2019-03-07 18:33:31 2207 2

转载 Android启动一个app 流程

我们平时在手机桌面上点击一个app 图标, 就能启动一个app应用。从用户角度来看,这个过程看起来很简单,但是它的背后又隐藏着什么玄机 ? 在做安卓开发这么多年后,我觉得有必要认真的分析一下,启动一个app 都走了什么流程 。1. android app 进程基础理论1.1 每个Android App都在一个独立空间里, 意味着其运行在一个单独的进程中, 拥有自己的VM, 被系统分配一...

2019-03-07 18:31:03 635

转载 Android启动流程:上电到启动第一个APP的详细流程

1. 安卓启动大致如下图所示:2. BootLoader (如果想了解跟详细关于bootloader请看:安卓bootloader)从系统的角度上来讲,Android系统的启动过程可以分为 bootloader 引导,装载和启动 linux内核 启动Android系统bootloader 相当于电脑上的Bios 他的主要作用就是初始化基本的硬件设备,建立内存空间映射,...

2019-03-07 18:29:10 587

转载 Android应用安装过程及原理

Android应用安装的流程及路径: 应用安装涉及到如下几个目录:system/app 系统自带的应用程序,无法删除data/app 用户程序安装的目录,有删除权限。安装时把apk文件复制到此目录data/data 存放应用程序的数据Data/dalvik-cache ...

2019-03-07 16:52:33 12580 1

转载 Android App 构建流程分析

我们平时在android studio中点击run ,就能把代码编译成一个apk文件并安装到手机上。那么这个过程中都具体发生了什么 ?我们是怎么把代码和资源文件打包成一个apk文件,并安装到手机上的呢 ? 今天就详细研究一下这个流程 。Apk构建基本流程build-simplified.png上图是Android官方提供的打包简略流程图。清晰地展示了一个Android Proj...

2019-03-07 16:47:31 524 2

转载 简单理解Binder机制的原理

一、概述Android系统中,涉及到多进程间的通信底层都是依赖于Binder IPC机制。例如当进程A中的Activity要向进程B中的Service通信,这便需要依赖于Binder IPC。不仅于此,整个Android系统架构中,大量采用了Binder机制作为IPC(进程间通信)方案。当然也存在部分其他的IPC方式,如管道、SystemV、Socket等。那么Android为什么不使用这...

2019-03-07 16:38:40 257

转载 Binder讲解

面试的时候,面试官问你说,简单说一下Android的Binder机制,你会怎么回答?我想,我会这么说。在Android启动的时候,Zygote进程孵化出第一个子进程叫SystemServer,而在这个进程中,很多系统提供的服务,比如ActivityManagerSerivce, PowerManagerService等,都在此进程中的某一条线程上运行。而很多用户开发的应用程序,也就是我...

2019-03-07 16:34:02 652

转载 Android启动流程、app启动原理

从头分析整理学习底层知识。Android 众多基于Linux内核的系统类似, 启动系统时, bootloader启动内核和init进程. init进程分裂出更多名为"daemons(守护进程)"的底层的Linux进程, 诸如android debug deamon, USB deamon等. 这些守护进程处理底层硬件相关的接口.随后, init进...

2019-03-06 20:04:04 8587 1

转载 Binder机制 概念浅析

毫不夸张地说,Binder是Android系统中最重要的特性之一;正如其名“粘合剂”所喻,它是系统间各个组件的桥梁,Android系统的开放式设计也很大程度上得益于这种及其方便的跨进程通信机制。理解Binder对于理解整个Android系统有着非常重要的作用,Android系统的四大组件,AMS,PMS等系统服务无一不与Binder挂钩;如果对Binder不甚了解,那么就很难了解这些系统机制,从...

2019-03-06 18:58:45 230

转载 开源最佳实践:Android平台页面路由框架ARouter

摘要:为了更好地让开发者们更加深入了解阿里开源,阿里云云栖社区在3月1号了举办“阿里开源项目最佳实践”在线技术峰会,直播讲述了当前阿里新兴和经典开源项目实战经验以及背后的开发思路。在本次在线技术峰会上,阿里云资深开发工程师刘志龙分享了Android平台页面路由框架ARouter的技术方案、解决的问题以及在实际场景中的最佳实践。演讲嘉宾介绍:刘志龙(花名正纬),阿里云资深开发工程师,主要从事An...

2019-02-17 19:32:50 718

转载 Android动态换肤原理解析及实践

前言:本文主要讲述如何在项目中,在不重启应用的情况下,实现动态换肤的效果。换肤这块做的比较好的,有网易云音乐,qq等,给用户带来了多样的界面选择和个性化定制。之前看到换肤的效果后对这块也比较好奇,就抽时间研究了下,今天给大家分享解析原理和实践中遇到的问题。为什么要做动态换肤:动态换肤可以满足日常产品和运营需求,满足用户个性化界面定制的需求等等...

2019-02-13 14:44:52 280

转载 Android动态换肤框架实现

今天介绍一下Android 中的常用的换肤策略,同时动手实现一个动态换肤的框架先上效果图:  换肤概念  换肤: 在android中是指 对 文字、 颜色、 图片 等的资源的更换。 人 : 对应于现实生活中,就是我们的 肤色 、 衣服 等的更换。   有什么好处或者说 目的是什么 ?? 对应于我们android 中呢,就是 可以 满足用户的新...

2019-02-13 14:37:56 1537 1

转载 Android 服务保活

 自己曾经也在这个问题上伤过脑经,前几日刚好有一个北京的哥们在QQ说在做IM类的项目,问我进程保活如何处理比较恰当,决定去总结一下,网上搜索一下进程常驻的方案好多好多,但是很多的方案都是不靠谱的或者不是最好的,结合很多资料,今天总结一下Android进程保活的一些方案,都附有完整的实现源码,有些可能你已经知道,但是有些你可能是第一次听说,(1像素Activity,前台服务,账号同步,Jobsc...

2019-01-22 10:46:54 2376 1

原创 Android dex加密与解密 application替换

libcore\dalvik\src\main\java\dalvik\system    ClassLoader​ 1、dx   sdk/build-tools,class/jar生成dex文件命令: dx  --dex --output 文件名.dex  文件名.jar2、zipalign  sdk\build-tools ,apk整理对齐工具。  未压缩的数据开...

2019-01-21 15:13:48 1575 1

转载 Android 热修复

本文框架什么是热修复?热修复框架分类技术原理及特点Tinker框架解析各框架对比图总结  通过阅读本文,你会对热修复技术有更深的认知,本文会列出各类框架的优缺点以及技术原理,文章末尾简单描述一下Tinker的框架结构。一、什么是热修复?正常开发流程热修复开发流程热修复优势修复什么?二、热修复框架分类现状:百花齐放百家争鸣简单分类更合理的分类三、技...

2019-01-21 14:44:04 121

原创 AsyncTask源码分析

各版本AsyncTask之间的差异各版本AsyncTask之间的差异主要集中在线程池的使用这一块。主要的分界点有2个,分为3个阶段。第一阶段是3.0以前的版本,第二是3.0-4.4版本的阶段,第三个是4.4版本以后的阶段。那我们一个一个阶段来看。3.0之前版本中AsyncTask这里使用2.3版本的AsyncTask源代码: private static final int...

2019-01-18 16:40:11 120

原创 android 图片内存处理

Bitmap内存占用内存大小计算     ARGB_8888  ARGB各占8位,即WIDTH*HEIGHT*4     RGB_565    R5位,G6位,B5位,即16位 WIDTH*HEIGH*2      getByteCount  返回可用于存储此位图像素的最小字节数。BitmapFactory.Options  控制解码图片参数inDensity:  表示这个...

2019-01-17 16:15:15 389

原创 Android 文件压缩方式(重点libjpeg-turbo)

文件压缩方式1.质量压缩 2.尺寸压缩 3.格式选择:JPEG/WEBP (4.0以上) 质量压缩  质量压缩也是清晰度的压缩。它牺牲掉了一些画面细节,这些丢失的细节或许可以被肉眼观察到,这种压缩也叫有损压缩。尺寸压缩  尺寸压缩就是图片宽高的减小。图片宽高减小了,图片文件大小也就减小了。格式选择  jpeg比png压缩率高,webp压缩率一般比jpeg高...

2019-01-17 15:57:02 389

原创 SparseArray ArrayMap 代替HashMap 以及 onTrimMemory与onLowMemory

SparseArray  ArrayMap    代替HashMap  以及   onTrimMemory与onLowMemory在Android开发时,我们使用的大部分都是Java的api。其中我们经常会用到java中的集合,比如HashMap       使用HashMap非常舒服,但是对于Android这种内存敏感的移动平台,很多时候使用这些java的api并不能达到更好的性能,相反...

2019-01-08 20:13:54 139

原创 内存抖动、gc回收算法以及OOM

内存抖动、gc回收算法以及OOM内存抖动    内存抖动是指内存频繁地分配和回收,而频繁的gc会导致卡顿,严重时和内存泄漏一样会导致OOM。    内存抖动为什么会造成OOM这关系到Java的垃圾回收。 垃圾回收    在对对象进行回收前需要对垃圾进行采集,不同的虚拟机实现可能使用不同的垃圾收集算法,不同的收集算法的实现也不尽相同。不同的算法各有各的优劣势。常用的收集算...

2019-01-08 20:00:37 3180

原创 内存优化

内存泄漏内存管理内存模型    Android原生开发以java为主。在java中,Java内存模型,往往是指Java程序在运行时内存的模型,而Java代码是运行在Java虚拟机之上的,所以Java内存模型,也就是指Java虚拟机的运行时内存模型。          java中内存全权交给虚拟机去管理,那虚拟机的运行时内存是如何构成的?        很多时候,我们...

2019-01-08 14:59:18 1532

原创 Android 布局渲染流程与原理

       首先,我们要知道Android系统每隔16ms就重新绘制一次Activity,也就是说,我们的应用必须在16ms内完成屏幕刷新的全部逻辑操作,这样才能达到每秒60帧,然而这个每秒帧数的参数由手机硬件所决定,现在大多数手机屏幕刷新率是60赫兹(赫兹是国际单位制中频率的单位,它是每秒中的周期性变动重复次数的计量),也就是说我们有16ms(1000ms/60...

2019-01-07 17:14:34 2479

原创 app启动原理及优化

 App 启动时间是什么 ,从哪里开始 (我们要知道启动时间是怎么算出来的)https://segmentfault.com/a/1190000007406875#articleHeader20 启动定义当手指点击app图标 到加载第一个页面为止 trace文件分析http://www.ituring.com.cn/article/273967 启动类型...

2019-01-07 14:18:07 854

原创 AndroidUI绘制流程

UI绘制流程 1、Measure MeasureSpec:在Measure流程中,系统将View的LayoutParams根据父容器所施加的规则转换成对应的MeasureSpec, 在onMeasure中根据这个MeasureSpec来确定view的测量宽高 1)、测量模式 EXACTLY :父容器已经测量出所需要的精确大小,这也是childview的最终大小 ...

2019-01-04 15:44:10 555

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除