<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[android_ErChen的开发之路]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/android_ErChen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; android_ErChen]]></copyright><item><title><![CDATA[【Gradle学习】—— Gradle的进阶使用]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/85238690</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/85238690</guid><author>android_ErChen</author><pubDate>Mon, 24 Dec 2018 20:37:20 +0800</pubDate><description><![CDATA[前面学习了 gradle的基础——groovy的基本语法，现在可以深入点，列个知识小点目录：

闭包
	基础详解
		代码块
			参数 -&amp;gt; 左边为参数 右边为代码块 可以使用${}引用代码块
			返回值
			三个重要变量
			this：代表闭包定义处的类
				owner：代表闭包定义处的类或者对象
				delegate：代表任意对象 （默认owner一致）
				闭包的委...]]></description><category></category></item><item><title><![CDATA[【Gradle学习】—— Groovy基础语法以及数据结构]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/83865662</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/83865662</guid><author>android_ErChen</author><pubDate>Fri, 09 Nov 2018 16:10:29 +0800</pubDate><description><![CDATA[这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
欢迎使用Ma...]]></description><category></category></item><item><title><![CDATA[【解疑答惑】—— SurfaceView播放视频 来回切换出现ANR]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/81102944</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/81102944</guid><author>android_ErChen</author><pubDate>Wed, 18 Jul 2018 18:15:27 +0800</pubDate><description><![CDATA[项目中有用到SurfaceView 做视频播放，但是一直有一个问题，测试哥们今天又重新提了，貌似上任开发者并没有解决，看看吧。。。 


自己试了试，确实是有这样的bug，但是是报ANR，奇了怪了，全屏放大不至于会报ANR啊，看了看代码，发现全屏播放实际是创建了一个包含surfaceView新的activity，也就是又创建一个SurfaceView，搞不懂为什么这么设计，orz….

首先，看一...]]></description><category></category></item><item><title><![CDATA[【解疑答惑】—— Android调用系统相机，onActivityresult()回调接收到data为空]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/80989861</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/80989861</guid><author>android_ErChen</author><pubDate>Tue, 10 Jul 2018 18:00:12 +0800</pubDate><description><![CDATA[
  昨天调用系统相机拍照制作头像的时候遇到个问题，相机拍完照后返回后直接闪退，那么问题出在哪呢？先看看当时的代码:




Intent cameraIntent = new Intent(&amp;quot;android.media.action.IMAGE_CAPTURE&amp;quot;);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,getImageUri());
cam...]]></description><category></category></item><item><title><![CDATA[【解疑答惑】—— Android事件传递机制之案例分析]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/80665270</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/80665270</guid><author>android_ErChen</author><pubDate>Tue, 12 Jun 2018 14:48:41 +0800</pubDate><description><![CDATA[Touch事件的传递



Android中的每个ViewGroup的子类都有三个与TouchEvent处理相关的方法



（其实也并不是所有的View的子类，好多教程上说是所有的View的子类，只有可以向里面添加View的控件才需要分发，比如TextView，本身就是一个最小的View，就不可能向它的子视图分发了，它也没有子试图，所以它没有dispatch，intercept，只有touchE...]]></description><category></category></item><item><title><![CDATA[【每周一题】—— 线程池]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/80498765</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/80498765</guid><author>android_ErChen</author><pubDate>Tue, 29 May 2018 16:56:52 +0800</pubDate><description><![CDATA[
  Android中的线程池有哪些？ 
  他们的区别是什么？ 
  为什么要使用线程池？




为什么要使用线程池


集中管理线程的创建和销毁，提高性能
线程池可以有效控制线程池的最大并发数，避免大量的线程之间因为互相抢占资源而导致线程阻塞
对线程进行简单管理，如定时执行或者间隔循环执行


线程的分类


CachedThreadPool

数量不定且只有非核心线程
任意大的最大线程数
...]]></description><category></category></item><item><title><![CDATA[【小程序探索之路】—— 2、 小程序逻辑层]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/80395245</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/80395245</guid><author>android_ErChen</author><pubDate>Mon, 21 May 2018 17:51:19 +0800</pubDate><description><![CDATA[生命周期

小程序的生命周期： 
onLaunch  —&amp;gt; onShow —&amp;gt; onHide

页面的生命周期 
onLoad —&amp;gt; onShow —&amp;gt; onReady —&amp;gt; onHide —&amp;gt; onUnload

页面路由

路由方式： 


事件

事件处理分三个阶段


事件捕获阶段
事件处理阶段
事件冒泡阶段


事件分两种


冒泡事件：当一个组件的事...]]></description><category></category></item><item><title><![CDATA[【每周一题】—— 四大组件]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/80242388</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/80242388</guid><author>android_ErChen</author><pubDate>Mon, 21 May 2018 14:20:24 +0800</pubDate><description><![CDATA[Android四大组件中每个组件的作用是什么？它们都可以开启多进程吗？




Activity：]]></description><category></category></item><item><title><![CDATA[【小程序探索之路】——1、开发框架组成]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/80351982</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/80351982</guid><author>android_ErChen</author><pubDate>Mon, 21 May 2018 14:15:55 +0800</pubDate><description><![CDATA[小程序的框架组成

小程序的框架组成由四部分组成：


WXML
WXSS
JavaScript
WXS




WXML

官方给出的解释是：“WXML 全称是 WeiXin Markup Language，是小程序框架设计的一套标签语言，结合小程序的基础组件、事件系统，可以构建出页面的结构。”也就是HTML。


区别与HTML的两点

WXML中的标签是严格闭合的
WXML中的属性是区分大小...]]></description><category></category></item><item><title><![CDATA[【解疑答惑】—— ImageView的src和backgroud的区别]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/80205800</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/80205800</guid><author>android_ErChen</author><pubDate>Sat, 05 May 2018 14:51:42 +0800</pubDate><description><![CDATA[src和background的区别 
在imageVIew的XML属性中有两个属性src和background
src存放的是图片资源，background是背景
但是两者还是有一些区别的
首先两者在代码中设置图片的方法不同//background
mImageView.setBackground();
mImageView.setBackgroundResource();
mImageView.s]]></description><category></category></item><item><title><![CDATA[JVM和Android的内存机制]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/80205779</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/80205779</guid><author>android_ErChen</author><pubDate>Sat, 05 May 2018 14:49:39 +0800</pubDate><description><![CDATA[JVM
内存管理
垃圾回收
类加载
虚拟机性能监控和优化
内存管理
正常认为的内存区域包括：堆、栈，这种分法比较粗糙
JVM较为详细地将内存划分为若干个不同的数据区程序计数器：当前线程所执行的字节码的行号指示器，就是记录正在执行的虚拟机字节码指令的行数
java虚拟机栈：我们所谓的“栈”，描述的是java方法执行的内存模型，一个方法对应一个栈帧，存储局部变量表等，一个方法的生命周期对应一个栈帧的进栈]]></description><category></category></item><item><title><![CDATA[【每周一题】—— Android中ClassLoader]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/80205576</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/80205576</guid><author>android_ErChen</author><pubDate>Sat, 05 May 2018 14:31:05 +0800</pubDate><description><![CDATA[
  关于ClassLoader涉及到问题：
  
  
  Android中有哪几种ClassLoader？它们的作用和区别是什么？ 
  简述ClassLoader的双亲委托模型 
  简述双亲委托模型在热修复领域的应用
  




Android中的ClassLoader

 
1. BootClassLoader 
2. URLClassLoader 
3. BaseDexClassLo...]]></description><category></category></item><item><title><![CDATA[Android进程保活]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/80194554</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/80194554</guid><author>android_ErChen</author><pubDate>Fri, 04 May 2018 14:18:56 +0800</pubDate><description><![CDATA[对于程序被杀死，一般我们能做到两个方面优化：
保证进程的优先级
当进程被杀死之后的唤醒
保证进程的优先级进程的优先级进程根据优先级区分可以分为
前台进程
可见进程
服务进程
后台进程
空进程
进程中有个较为具体的值oom_adj，其数值越小对应的优先级越高红色部分是易于被回收的（4-16），绿色部分是不易被回收的（0-4），白色部分则是不会被回收的（ -0）。进程被回收的场景：
app按home键处]]></description><category></category></item><item><title><![CDATA[源码分析之Activity的启动流程]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/80092787</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/80092787</guid><author>android_ErChen</author><pubDate>Thu, 26 Apr 2018 13:43:07 +0800</pubDate><description><![CDATA[启动流程：
调用者进程通过AMS这个Framework端Binder将启动另一个Activity的信息传给SystemServer进程。
ActivityStarter处理了这些intent和flag等信息之后，然后交给ActivityStackSupervisior/ActivityStack去处理被调用进程的Activity进栈。如果被调用者进程存在，就会使用ApplicationThread这]]></description><category></category></item><item><title><![CDATA[【面试系列】—— 网络通信]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/80008062</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/80008062</guid><author>android_ErChen</author><pubDate>Thu, 19 Apr 2018 17:25:33 +0800</pubDate><description><![CDATA[##网络通信
&gt; 网络通信方面，一些基础的协议概念。比如TCP的握手挥手问题，Http和Https的区别以及Https传输过程中用到的加密方式，Http1.0、Http2.0和SPDY之间的区别，Http2.0做了哪些优化等。

### 网络的七层模型（从底层往上）
1. 物理层：网卡、集线器
2. 数据链路层：交换机
3. 网络层：路由器
4. 传输层
5. 会话层
6. 表示]]></description><category></category></item><item><title><![CDATA[OkHttp和Retrofit]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/79696155</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/79696155</guid><author>android_ErChen</author><pubDate>Mon, 26 Mar 2018 11:54:09 +0800</pubDate><description><![CDATA[介绍



OkHttp

OkHttp是由Square公司提供的处理网络请求的开源库，有以下特性：


支持Http2.0,对一台机器的所有请求共享同一个socket
内置连接池，支持连接复用，减少延迟
Interceptors（拦截器）轻松处理请求与响应，支持透明的GZIP压缩响应体
请求失败时自动重连
拥有队列线程池，轻松写并发
基于Headers的缓存策略


Retrofit

Retr...]]></description><category></category></item><item><title><![CDATA[Android跨进程之Binder机制概述]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/79630568</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/79630568</guid><author>android_ErChen</author><pubDate>Tue, 20 Mar 2018 19:44:08 +0800</pubDate><description><![CDATA[Binder（机制）首先Binder是一个类，实现了IBinder接口，其次从IPC角度来看，就是Android中跨进程通信机制。为什么使用Binder作为跨进程机制？Linux中使用管道(pipe)做为进程之间的通信方式，虽然Android内核也是使用的Linux，但是作为移动端，性能和内存角度考虑，使用Binder是最好的方式。管道和Socket数据拷贝的次数为2次，文件共享0次，但是其安全性低]]></description><category></category></item><item><title><![CDATA[【Android自定义控件】之仿网易星球浮动小球]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/79557282</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/79557282</guid><author>android_ErChen</author><pubDate>Wed, 14 Mar 2018 17:05:53 +0800</pubDate><description><![CDATA[仿网易星球浮动小球读呗开发过程中遇到新需求，类似于网易星球收集黑钻的界面，考虑到可能也有人会使用，索性封装成库，后面好移植使用先看看需要实现的效果： 
需求分析：
数据集合可能是int、double、float等类型
小球位置随机
没有数据时只有一个默认小球，位置固定
小球上下抖动，点击向上运动消失
实现分析：
小球随机的位置固定在父view的宽高范围内
可以在初始化和点击时判断集合是否为空从而显示]]></description><category></category></item><item><title><![CDATA[阿里Android开发手册--结合自身需要注意的几点]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/79461937</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/79461937</guid><author>android_ErChen</author><pubDate>Tue, 06 Mar 2018 18:18:38 +0800</pubDate><description><![CDATA[阿里Android开发手册–结合自身需要注意的几点Android资源文件命名和使用在Android开发过程，有时候头痛的不是需求实现不了，往往就是命名，阿里给出的这要命名规则，大大地减少了我们开发过程不必要的浪费时间
所有资源文件带上模块前缀，都小写
layout的命名规则（模块名_样式名称）Activity 的 layout 以 module_activity 开头
Fragment 的 layo]]></description><category></category></item><item><title><![CDATA[View的post()源码分析]]></title><link>https://blog.youkuaiyun.com/android_ErChen/article/details/79391609</link><guid>https://blog.youkuaiyun.com/android_ErChen/article/details/79391609</guid><author>android_ErChen</author><pubDate>Tue, 27 Feb 2018 18:01:19 +0800</pubDate><description><![CDATA[##View的post()和postDelayed()方法详解###子线程中不能对UI进行操作，这我们都知道，但是可以通过view.post(Runnable)的方式进行UI操作，这是为什么呢？我们通过分析源码的方式来了解一下    public boolean post(Runnable action) {        final AttachInfo attachInfo = mAttach...]]></description><category></category></item></channel></rss>