01 2017 档案

摘要:app编译与打包过程 阅读全文
posted @ 2017-01-30 13:40 everhad 编辑
摘要:Volley简析 阅读全文
posted @ 2017-01-30 13:36 everhad 编辑
摘要:TODO: 待写 消息处理管道 一个App看作是系统,外部输入消息需要经过一系列处理,涉及不同接收者。消息处理的跟踪(Trace)和结果的保存。 比如设计一个用来接收服务器推送消息的处理框架? 以Android中处理InputEvent的设计作为借鉴。 案例 android.view.ViewRoo 阅读全文
posted @ 2017-01-22 23:15 everhad 编辑
摘要:对象复用 使用链表作为pool来保存要复用的对象。 pool字段 obtain recycle 案例1 android.os.Message 案例2 android.view.ViewRootImpl 案例3 android.view.MotionEvent java private static 阅读全文
posted @ 2017-01-22 22:28 everhad 编辑
摘要:安卓SystemUI 阅读全文
posted @ 2017-01-21 22:39 everhad 编辑
摘要:Surface系统和SurfaceFlinger 阅读全文
posted @ 2017-01-21 22:34 everhad 编辑
摘要:ActivityManagerService 阅读全文
posted @ 2017-01-21 22:30 everhad 编辑
摘要:PackageManagerService 阅读全文
posted @ 2017-01-21 22:30 everhad 编辑
摘要:WindowManagerService 阅读全文
posted @ 2017-01-21 22:27 everhad 编辑
摘要:View系统和ViewRootImpl 阅读全文
posted @ 2017-01-21 22:26 everhad 编辑
摘要:动画框架 阅读全文
posted @ 2017-01-18 22:19 everhad 编辑
摘要:控件:Toolbar 阅读全文
posted @ 2017-01-18 22:16 everhad 编辑
摘要:CollapsingToolbarLayout 阅读全文
posted @ 2017-01-18 22:11 everhad 编辑
摘要:AppBarLayout 阅读全文
posted @ 2017-01-18 22:10 everhad 编辑
摘要:newAPI:CardView 阅读全文
posted @ 2017-01-18 22:06 everhad 编辑
摘要:NOTE: 笔记,碎片式内容 控件 App界面的开主要就是使用View,或者称为控件。View既绘制内容又响应输入,输入事件主要就是触摸事件。 ViewTree 控件基类为View,而ViewGroup是其子类。ViewGroup可以包含其它View作为其child。任何一个ViewGroup及其所 阅读全文
posted @ 2017-01-18 20:22 everhad 编辑
摘要:View绘制流程 阅读全文
posted @ 2017-01-18 20:19 everhad 编辑
摘要:RecyclerView源码 阅读全文
posted @ 2017-01-18 15:03 everhad 编辑
摘要:Java内存管理 阅读全文
posted @ 2017-01-18 14:57 everhad 编辑
摘要:ListView源码 阅读全文
posted @ 2017-01-18 14:56 everhad 编辑
摘要:SwipeRefreshLayout源码 阅读全文
posted @ 2017-01-17 13:02 everhad 编辑
摘要:笔记:Android线程消息循环模型 阅读全文
posted @ 2017-01-16 19:50 everhad 编辑
摘要:内容简述 类似Binder机制,MessageQueue、Looper也有底层的C++实现,涉及文件管道和驱动等。 以下仅从Java层的Looper、Handler和MessageQueue等相关类型的源码来分析线程消息处理的机制。 MessageQueue的创建 Looper用来创建和启动消息队列 阅读全文
posted @ 2017-01-16 19:45 everhad 编辑
摘要:笔记:安卓App安装和显示过程 阅读全文
posted @ 2017-01-16 19:44 everhad 编辑
摘要:笔记:安卓应用程序进程启动过程 阅读全文
posted @ 2017-01-16 19:41 everhad 编辑
摘要:简述 Android设备启动过程中,先是Linux内核加载完,接着Android中的第一个进程init启动,它会启动一些需要开机启动的进程。 Zygote就是进程init启动起来的。Android中所有应用程序进程,以及运行系统关键服务的System进程都是由Zygote创建的。它通过复制自身的形式 阅读全文
posted @ 2017-01-16 19:40 everhad 阅读(467) 评论(0) 推荐(0) 编辑
摘要:Handler Thread HandlerThread 阅读全文
posted @ 2017-01-13 23:04 everhad 编辑
摘要:概述 一个Activity允许用户完成一些操作,甚至,Android中设计Activity为组件的形式,这样,多个Activity——甚至是其它App的Activity可以一起完成一项任务。 Task 多个Activity一起完成一项工作时,它们的集合被称作一个Task。 A task is a c 阅读全文
posted @ 2017-01-13 15:55 everhad 编辑
摘要:Activity启动模式 阅读全文
posted @ 2017-01-13 15:52 everhad 编辑
摘要:adb 命令整理 阅读全文
posted @ 2017-01-13 01:03 everhad 编辑
摘要:简介 Android 3.0 (API level 11)引入了属性动画系统,它是一个完善的框架,可以用来对几乎任何对象进行动画。只需要指定要动画的对象属性,动画时长,属性值区间等,无论对像是否在屏幕中显示与否,都可以随时间改变其属性值达到动画效果。 属性动画支持以下特性: Duration:动画持 阅读全文
posted @ 2017-01-12 11:46 everhad 阅读(232) 评论(0) 推荐(0) 编辑
摘要:线程简述 进程是一个程序的一个运行中的实例,os为进程分配内存、IO等资源。进程拥有若干个(至少一个)线程来获得CPU执行其中的指令,线程使用进程的资源。 使用 线程的典型使用流程如下: 1. 实现Runnable接口,具体的执行逻辑。 2. 创建一个Thread对象,Runable作为它的任务。 阅读全文
posted @ 2017-01-12 11:43 everhad 阅读(139) 评论(0) 推荐(0) 编辑
摘要:算法:查找 阅读全文
posted @ 2017-01-11 17:07 everhad 阅读(91) 评论(0) 推荐(0) 编辑
摘要:简述:transitions framework 下面翻译transition为“过渡”,强调动画过程的含义,不过更多时候使用transition单词本身。 Android 4.4.2 (API level 19) 引入了 ,它用来在两个view hierarchies(就是ViewGroup实例) 阅读全文
posted @ 2017-01-10 23:13 everhad 阅读(1321) 评论(0) 推荐(0) 编辑
摘要:aar aar 文件是android 类库项目的输出文件,其中可以包含普通的.class,清单,以及android项目特有的资源文件。 使用方式 1. 将.aar文件放在在自己项目的libs目录下 2. 在gradle中做如下配置: 之后就可以在代码中import其中的类型,进行使用。 阅读全文
posted @ 2017-01-06 19:40 everhad 阅读(137) 评论(0) 推荐(0) 编辑
摘要:react native入门 阅读全文
posted @ 2017-01-03 23:31 everhad 阅读(107) 评论(0) 推荐(0) 编辑
摘要:JavaScript基础 阅读全文
posted @ 2017-01-03 23:27 everhad 阅读(91) 评论(0) 推荐(0) 编辑
摘要:CSS基础 阅读全文
posted @ 2017-01-03 23:25 everhad 阅读(112) 评论(0) 推荐(0) 编辑
摘要:Html基础 阅读全文
posted @ 2017-01-03 23:23 everhad 阅读(107) 评论(0) 推荐(0) 编辑
摘要:Java:反射和类加载 阅读全文
posted @ 2017-01-03 23:15 everhad 阅读(111) 评论(0) 推荐(0) 编辑
摘要:一些约定 java命令行程序 算法的学习和语言无关,下面使用一个 来作为实例程序。 一个算法一个类 排序算法使用一个方法就可以表示,不需要是一个对象。但为了让各种排序算法的表示相互独立,接下来分别为它们定义不同的类型,并提供一些工具类来产生随机数序列,打印数字序列,对数列进行校验等。 以整数序列升序 阅读全文
posted @ 2017-01-03 23:05 everhad 阅读(317) 评论(0) 推荐(0) 编辑
摘要:Https知识整理 阅读全文
posted @ 2017-01-03 23:03 everhad 阅读(110) 评论(0) 推荐(0) 编辑
摘要:Http知识整理 阅读全文
posted @ 2017-01-03 22:55 everhad 阅读(88) 评论(0) 推荐(0) 编辑
摘要:算法:HashMap 阅读全文
posted @ 2017-01-03 22:54 everhad 阅读(76) 评论(0) 推荐(0) 编辑
摘要:算法:ArrayList源码学习 阅读全文
posted @ 2017-01-03 22:53 everhad 阅读(84) 评论(0) 推荐(0) 编辑
摘要:Git知识整理 阅读全文
posted @ 2017-01-03 22:52 everhad 阅读(89) 评论(0) 推荐(0) 编辑
摘要:Android 热修复 阅读全文
posted @ 2017-01-03 22:51 everhad 阅读(106) 评论(0) 推荐(0) 编辑
摘要:ProGuard的使用 阅读全文
posted @ 2017-01-03 22:50 everhad 阅读(97) 评论(0) 推荐(0) 编辑
摘要:Android项目中gradle的使用 阅读全文
posted @ 2017-01-03 22:49 everhad 阅读(80) 评论(0) 推荐(0) 编辑
摘要:笔记:RxJava整理 阅读全文
posted @ 2017-01-03 22:47 everhad 阅读(110) 评论(0) 推荐(0) 编辑
摘要:gradle入门 阅读全文
posted @ 2017-01-03 22:47 everhad 阅读(94) 评论(0) 推荐(0) 编辑
摘要:Android插件框架DroidPlugin解析 阅读全文
posted @ 2017-01-03 22:46 everhad 阅读(231) 评论(0) 推荐(0) 编辑
摘要:Android插件化实现过程 阅读全文
posted @ 2017-01-03 22:45 everhad 阅读(101) 评论(0) 推荐(0) 编辑
摘要:Android插件化入门 阅读全文
posted @ 2017-01-03 22:44 everhad 阅读(150) 评论(0) 推荐(0) 编辑
摘要:笔记:butterknife的工作原理 阅读全文
posted @ 2017-01-03 22:42 everhad 阅读(91) 评论(0) 推荐(0) 编辑
摘要:笔记:butterknife的基本使用 阅读全文
posted @ 2017-01-03 22:40 everhad 阅读(94) 评论(0) 推荐(0) 编辑
摘要:效果图 app中下面这样的控件很常见,像默认的TabHost表现上不够灵活,下面就简单写一个可以结合ViewPager切换内容显示,提供底部“滑动条”指示所显示页签的效果。 ![效果图][show1] ![效果图][show2] 这里控件应对的场景是“水平等长度”的若干标题,标题不可滚动。 控件设计 阅读全文
posted @ 2017-01-03 22:39 everhad 阅读(306) 评论(0) 推荐(0) 编辑
摘要:广播概述 广播用来在组件之间传递消息,可以是同进程或跨进程。 广播机制是基于发布订阅的事件驱动模型,使用上比Binder通信(跨进程接口回调)更低耦合、简单。 ActivityManagerService(简称AMS)作为广播消息发布订阅的注册中心,广播接收器(Broadcast Receiver, 阅读全文
posted @ 2017-01-03 22:38 everhad 阅读(900) 评论(0) 推荐(0) 编辑
摘要:NOTE 超简化版 本文内容是对老罗《Android源码情景分析》Service启动章节的笔记。 Service的创建特点 作为四大组件之一,Service的创建不是普通对象那样new出来的,而是用startService()、bindService()这样的方式启动。和Activity一样,它需要 阅读全文
posted @ 2017-01-03 22:37 everhad 阅读(999) 评论(0) 推荐(0) 编辑
摘要:Activity的创建特点 作为四大组件之一的Activity,它不像普通java对像那样,可以new出来,然后去使用。而是调用 startActivity()这样的方式启动。那么Android系统是如何创建并启动Activity的呢?本文就来 一探究竟。 NOTE:本文内容就是对老罗《Androi 阅读全文
posted @ 2017-01-03 22:36 everhad 阅读(558) 评论(0) 推荐(0) 编辑
摘要:设计模式:面向对象设计原则和模式分类 阅读全文
posted @ 2017-01-03 22:34 everhad 阅读(106) 评论(0) 推荐(0) 编辑
摘要:设计模式:桥接模式 阅读全文
posted @ 2017-01-03 22:30 everhad 阅读(93) 评论(0) 推荐(0) 编辑
摘要:设计模式:访问者模式 阅读全文
posted @ 2017-01-03 22:29 everhad 阅读(106) 评论(0) 推荐(0) 编辑
摘要:设计模式:责任链模式 阅读全文
posted @ 2017-01-03 22:28 everhad 阅读(65) 评论(0) 推荐(0) 编辑
摘要:设计模式:解释器模式 阅读全文
posted @ 2017-01-03 22:27 everhad 阅读(96) 评论(0) 推荐(0) 编辑
摘要:设计模式:观察者模式 阅读全文
posted @ 2017-01-03 22:26 everhad 阅读(76) 评论(0) 推荐(0) 编辑
摘要:设计模式:备忘录模式 阅读全文
posted @ 2017-01-03 22:25 everhad 阅读(80) 评论(0) 推荐(0) 编辑
摘要:设计模式:状态模式 阅读全文
posted @ 2017-01-03 22:24 everhad 阅读(75) 评论(0) 推荐(0) 编辑
摘要:设计模式:适配器模式 阅读全文
posted @ 2017-01-03 22:23 everhad 阅读(100) 评论(0) 推荐(0) 编辑
摘要:设计模式:装饰模式 阅读全文
posted @ 2017-01-03 22:22 everhad 阅读(86) 评论(0) 推荐(0) 编辑
摘要:设计模式:迭代器模式 阅读全文
posted @ 2017-01-03 22:16 everhad 阅读(114) 评论(0) 推荐(0) 编辑
摘要:设计模式:命令模式 阅读全文
posted @ 2017-01-03 22:16 everhad 阅读(84) 评论(0) 推荐(0) 编辑
摘要:设计模式:策略模式 阅读全文
posted @ 2017-01-03 22:15 everhad 阅读(87) 评论(0) 推荐(0) 编辑
摘要:模板方法 使用基类定义整体步骤,即若干方法的调用过程,将一些可变的步骤由子类去重写。这样就可以利用多态在不改变操作的整体结构下定制一些特殊细节。 代码解释 可以联想在线电子邮件和普通邮递的区别。 基类定义操作过程的整体结构: 子类根据需要定制某些步骤: 案例 Activity Activity类定义 阅读全文
posted @ 2017-01-03 22:14 everhad 阅读(152) 评论(0) 推荐(0) 编辑
摘要:设计模式:原型模式 阅读全文
posted @ 2017-01-03 22:12 everhad 阅读(108) 评论(0) 推荐(0) 编辑
摘要:设计模式:享元模式 阅读全文
posted @ 2017-01-03 22:11 everhad 阅读(81) 评论(0) 推荐(0) 编辑
摘要:设计模式:外观模式 阅读全文
posted @ 2017-01-03 22:10 everhad 阅读(63) 评论(0) 推荐(0) 编辑
摘要:设计模式:代理模式 阅读全文
posted @ 2017-01-03 22:09 everhad 阅读(85) 评论(0) 推荐(0) 编辑
摘要:设计模式:中介者模式 阅读全文
posted @ 2017-01-03 22:07 everhad 阅读(88) 评论(0) 推荐(0) 编辑
摘要:设计模式:组合模式 阅读全文
posted @ 2017-01-03 22:05 everhad 阅读(95) 评论(0) 推荐(0) 编辑
摘要:抽象工厂概念 将工厂定义为接口,它提供创建一系列相关对象的方法。 代码示例 接口Car、Ship是要得到的抽象产品类型,BigCar、BigShip、MiniCar、MiniShip是可能的不同具体的产品,有可能扩展。 ProductFactory定义了不同类型Car、Ship的获取方式。 Prod 阅读全文
posted @ 2017-01-03 22:02 everhad 阅读(171) 评论(0) 推荐(0) 编辑
摘要:简单工厂概念 又叫做静态工厂方法(Static Factory Method)模式,由一个工厂对象决定创建出哪一种产品类的实例。 代码示例 Car是要得到的目标类型,BigCar、MiniCar可能的不同具体的产品,有可能扩展。 CarFactory定义了不同品牌Car的获取方式。 客户端代码使用C 阅读全文
posted @ 2017-01-03 21:52 everhad 阅读(194) 评论(0) 推荐(0) 编辑
摘要:简介 建造者模式(Builder),将一个复杂对象的表示和它的构建分离,这样同样的构造过程可以创建出不同的对象状态。 类图 下面的Product是要创建的对象的目标类型,产品。 Builder 创建一个Product对象涉及的操作的抽象接口,定义了Product各个部分的创建方法。 Director 阅读全文
posted @ 2017-01-03 21:50 everhad 阅读(190) 评论(0) 推荐(0) 编辑
摘要:简介 单例模式使得一个类的实例是唯一的,外部对它的访问都针对同一个对象。 单例模式的使用可以是业务上的原因,比如一个User对象需要全局唯一,或者是性能上的考虑,避免创建代价较高的对象反复实例化。 实现方式 饿汉式:性能不是问题时,且对象一定需要被实例化,线程安全 双重锁定 线程安全,较高的性能,无 阅读全文
posted @ 2017-01-03 21:39 everhad 阅读(220) 评论(0) 推荐(0) 编辑
摘要:TODO: 待修正 Binder简介 Binder是android系统中实现的一种高效的IPC机制,平常接触到的各种XxxManager,以及绑定Service时都在使用它进行跨进程操作。 它的实现基于OpenBinder项目,属于核心库。framework层的Binder通信用到的相关java类型 阅读全文
posted @ 2017-01-03 21:38 everhad 阅读(13797) 评论(2) 推荐(2) 编辑

点击右上角即可分享
微信分享提示