- 博客(17)
- 收藏
- 关注
原创 LeetCode算法题 第一天
有时间就刷两道算法题1.Two sumGiven an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and
2018-01-26 15:13:03
311
原创 接下来30天的学习计划
1.完成RxJava+OkHttp demo,在使用中较为深入的理解两大框架的源码和原理,熟练使用。2.重视基础,开始复习Java数据结构和算法,并学习新的算法,辅助网站为visualgo.net/
2017-12-21 10:30:28
718
原创 简单记录一个PoupWindow使用时碰到的问题
首先需要知道Dialog在使用的时候初始化时不能使用ApplicationContext,简单来说是因为ApplicationContext的getSystemService(Context.WINDOW_SERVICE)方法中获取到的WindowManagerImpl的实例中,token值为空,导致后续展示时在调用WindowManager的addView方法时抛出BadTokenExcepti
2017-12-04 20:16:28
440
原创 2017/11/6 学习日记
1.AIDL 大概步骤: server端 1.创建AIDL文件,系统会通过Java语言生成接口,同时会生成一个stub,这个stub是接口的一个内部类,他继承于binder. 2.实现接口方法 3.实现Se
2017-11-06 22:24:41
266
原创 2017/10/30 学习笔记
1.Synchronized的实现原理 简单的一句总结就是,Synchronized是多种锁的封装体,它并不能控制线程的状态。这里说的多种锁包括对象锁,自旋锁,轻量锁和偏向锁。 每个堆内存的对象中包含一个对象头,对象头中会创建一个Monitor对象,这个对象同时只能被一个Thread持有,Monitor会控制我们线程的状态,它只会在我们的对象锁中使用。 过程:当我们的对象未
2017-10-30 00:49:24
311
原创 2017/10/28 学习笔记
今天简单复习了JVM的内存组成,以及工作中常见的内存泄露原因,以及内存分析1.首先说下JVM的内存组成,按照我的理解看来,可以简化成三个比较常接触的内存区域,方法区,堆,栈。 那么比如我们static修饰的常量,方法,类名等是存在我们的方法区中。我们通过new方法创建的对象都是存在我们的堆内存中,那么引用我们这些对象的实例都是存在我们的栈中。2.GC
2017-10-28 00:12:55
268
原创 2017/10/22学习笔记
首先恭喜WE1.ViewRootImpl创建的时还会创建一个Choreographer,以及一个surface关于Choreographer:可以理解成一个事件处理器,内部主要有三大部分,FrameHandler,callBackQueque,Receiver,那么它对事件的处理过程大概为:首先它会通过一些方法获取到surfaceFlinger的相关fd,并将它们交给Looper监
2017-10-23 00:38:59
267
原创 2017/10/21 学习笔记
学习自http://www.cnblogs.com/samchen2009/p/3364327.html,虽然是13年的文章,但是总结的真的非常棒。关于GUI系统:GUI组成部分:ActivityManager,Activity,InputManager,WindowManager,surfaceFlinger关于窗口:对于Activity来说,是一个抽象类,Activity中最外
2017-10-21 16:21:03
565
原创 2017/10/12学习笔记
1.对ImageLoader的理解 该开源框架支持从网络,本地缓存,assets等位置加载图片 ImageLoader的加载大概流程为:UI层请求图片->先去内存中通过Key寻找图片资源->如果内存中没有去磁盘空间中寻找图片资源,如果有则通过BitapFactory中的方法解析图片并回传->若磁盘空间中没有->异步请求网络图片->请求成功后保存在内存和磁盘空间中,并显示在U
2017-10-12 16:35:45
469
原创 2017/10/10学习笔记
1. 应用架构设计 MVC模式:Module(数据层),View(显示层),controler(控制层),缺点是View和Module层耦合严重,Activity中的职责过多,代码臃肿。 MVP模式:Module(数据层),View(显示层),Presenter(前边两者的桥梁),简单来说就是避免数据层和View显示层有直接的操作接触。
2017-10-10 20:00:01
338
原创 2017/10/05 明天就回去了..
明天就回上海了,今天多陪陪家人,今天简单复习了Android的消息机制1.大概流程为,UI线程在最开始创建的时候就创建了一个Looper对象,在Looper的构造方法中,同时会创建一个Messagequeque这样的链表结构的队列,Looper会调用Loop方法不断的去队列中提取消息,然后回调我们在Handler中实现的方法,那么塞入队列的载体是Message对象,塞数据是通过Hand
2017-10-05 16:36:22
233
原创 2017/10/04(上午)学习日记
复习前面知识。Synchronized 锁住的是一个对象,而不是锁住代码。AsyncTask本质上是一个静态线程池,所有的异步任务都在这个线程池中执行,处理完成之后通过handler通知UI层级进行刷新。
2017-10-04 11:45:31
291
原创 2017/10/03 学习笔记
1.Thread的六大状态 首先通过NewThread创建 调用Start方法去让线程进入可运行状态(Runable),但是什么时候运行由系统决定。 通过wait sleep方法可以进入WaitingTimed状态,类似的还有Waiting状态 请求锁进入阻塞状态(Blocked) 结束状态2.线程的两种创建方式 (1).直接继承Thread实现
2017-10-03 17:43:53
338
原创 2017/10/2 上午 学习笔记
View的绘制流程1.首先是measure 即为获取View的宽高 需要注意的是measure方法为final方法,因此该方法是不能重写的,如果我们想写一个自定义View就去重写onMeasure()方法。 MeasureSpec作为View的内部类,在我的理解中它分为两部分,一部分是specMode,一部分是specSize,前者决定了View的测量模式, 测量模
2017-10-02 11:27:16
321
原创 2017/10/1 学习日记
1. Activity的组成 以及 绘制的流程 结构组成:Activity是由最外层的PhoneWindow包裹着它的内部类DecorView,DecorView中又根据不同的情况加载不同的布局,(带有Title或不带)+ContentView. 流程: 先说说DecorView的创建过程: Activity的初始化流程是从第一次setConte
2017-10-01 17:04:51
3858
原创 Android开发--Binder
Binder 作用:进程间通信。 组成:可以简单地理解为四个部分 1.BinderServer 可理解为服务端,与BinderClient为相对概念,可相互替换。 2.BinderClient 可理解为客户端。 3.Binder驱动(暂未详细了解) 4.ServerManager 可理解
2017-07-14 14:53:58
216
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人