05 2018 档案
摘要:1 建造者模式 建造者模式概述 建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离, 客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即可。 它关注如何一步一步创建一个的复杂对象,不同的具体建造者定义了不同的创建过程,且具体建造
阅读全文
摘要:1.单例模式 【转载地址】http://www.runoob.com/design-pattern/singleton-pattern.html 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这
阅读全文
摘要:1.单链表 1.1 删除指定节点 【说明】 【1】需要分三种情况:头节点、尾节点、中间普通节点; 【2】公司会要求手写算法(在纸上); 1.2 删除指定数值的节点 【说明】有两种方法:利用栈和不利用栈 1.3 删除单链表中重复的节点 【说明】使用hash链表 1.4 两个单链表生成相加的链表 【说明
阅读全文
摘要:1.Http协议的基本认识 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(www.baidu.com)服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等
阅读全文
摘要:1.Java中多线程相关 1.1 线程的创建方式 【方法1】 【方法2】android中实现多线程,一般使用此方法为主; 【调用】【说明】认识:start方法调用之后并非直接可以开启多线程的执行,具体线程开始执行的时间由操作系统决定; 【共同点】都需要使用到Thread类产生线程;然后start开启
阅读全文
摘要:1.MVC架构设计模式 1.1 MVC定义 Model(模型)表示应用程序核心(比如数据库记录列表)。 View(视图)显示数据(数据库记录)。 Controller(控制器)处理输入(写入数据库记录) Model(模型)表示应用程序核心(比如数据库记录列表)。 View(视图)显示数据(数据库记录
阅读全文
摘要:1.anr异常 1.1 异常的认识 产生的主要原因是在主线程中做了耗时的操作; 1.2 主线程有哪些 1.3 解决anr 【摘抄文章】 2.oom异常 2.1 什么是oom? 【什么】Android系统会为每个app分配固定的内存空间 2.2 概念的分辨 【内存抖动】内存抖动是指在短时间内有大量的对
阅读全文
摘要:1.okhttp网络框架 【使用的3个步骤】 【构建者模式的使用】将复杂对象的构建和表示相分离;同样的构建过程可以使用不同的表示; 【源码解读--同步请求】 【说明】okhttp内部其实也是用了分层的概念,每一个intercepter都是一层;将复杂的内容拆分成了一个一个独立的内容; 【源码解读--
阅读全文
摘要:1.Android 的构建流程 【说明】 流程概述: 1、打包资源文件,生成R.java文件 2、处理aidl文件,生成相应java 文件 3、编译工程源代码,生成相应class 文件 4、转换所有class文件,生成classes.dex文件 5、打包生成apk 6、对apk文件进行签名 7、对签
阅读全文
摘要:1.view树的绘制 【重要的参数-MeasureSpec】 1.1 measure 【说明】 【说明】下面的3个方法都会被调用到; 【串联】measure是树遍历,从上到下,measure会为每个view和子节点的宽高进行赋值,该值可以通过get方法获取到,注意:这个宽高必须在父节点试图的宽高内;
阅读全文
摘要:1.Handler的认识 【内存泄露出现的问题】非静态内部类使用外部引用造成的内存泄露; 【说明】下面的bug是因为在子线程进行UI操作; 【什么是Hanlder?】 2.Handler的使用方法 【第一种方法】post(runnable对象) 【第二种方法】sendMsg 3.Handler的原理
阅读全文
摘要:1.课程基本讲解 2.activity面试问题 2.1 Activity的生命周期 2.1.1 Activity的四种状态 【running状态】Activity是处于活动状态的,用户可以点击屏幕,然后屏幕可以做出响应;此时的Activity处于栈顶; 【paused状态】Activity失去焦点,
阅读全文
摘要:【原文地址】https://blog.csdn.net/b10060224/article/details/51325775 1、第一种方式,也是最常用的方式,就是使用Bundle来传递参数 然后在Fragment中的onCreatView方法中,通过getArgments()方法,获取到bundl
阅读全文
摘要:1.长连接的认识 【本章内容提要】 1.1 长连接的基本概念 1.2 长连接的原理 1.3 长连接的意义 1.4 mina优势 2.mina框架讲解 【说明】app与服务器中间隔就是mima; 【说明】服务器与app通信需要三个步骤: 【1】服务器将数据发送给session中; 【2】session
阅读全文
摘要:1.GreenDao的认识 1.1 简单的介绍 【官网地址】http://greenrobot.org/greendao/ 【ORM】 1.2 GreenDao的优点 2.Greendao学习方法和相关资源下载 【下载代码】下载代码的时间和编译可能比较长 1.5 【eclipse中使用该框架】下载对
阅读全文
摘要:1.Proguard的基本介绍和保留字段 2.使用Proguard去除日志信息 【使用Proguard去除打印日志的信息】 【选项的配置】打开优化开关 【第一个文件的配置】 【第二个文件的配置】 【总结】 3.对抗反编译工具 4.对抗Android 模拟器 【在终端上输入信息打印信息】 【检测ids
阅读全文
摘要:【内容提要】 1.small插件化框架 1.1 集成small框架 【说明】新建工程的app包名不要进行改动,不然需要根据samll的要求需要对app名称进行配置; 【small框架的主要作用】主要作用:改变原有文件的加载流程; 【验证是否编译成功】 1.2.插件的创建 【内容提要】 1.3.编译插
阅读全文
摘要:1.对插件化的认识 【说明】插件化并非是每个app必须要的,只有较大的app才会用到; 1.1 背景、概念、不同 【说明】将一个大的apk封装为一个容器,然后将各个小的apk作为插件,在用户点击的时候再加载; 1.2 几个概念的对比 1.3 插件化需要用到的知识 【说明】插件化使用到的内容和知识比较
阅读全文
摘要:1.代码分支管理 【内容提要】 1.1 代码分支管理 【说明】 【1】在没有引入热修复的时候,使用到的分支管理如下; 【2】master分支(一直存在)、dev分支(一直存在);其他分支(各种开发人员的分支,开发结束之后就可以删除) 【3】【注意1】master分支:只能进行代码的合并和dev分支的
阅读全文
摘要:1.Tinker的基本介绍 【本章内容提要】 1.1 Tinker的基本介绍 1.2 Tinker的核心原理 2.使用Tinker完成bug的修复 2.1 Tinker的集成 【说明-区别】 provided是指编译的时候依赖这个jar包,但是最终打包的时候不打进去 compile所指编译内容可以是
阅读全文
摘要:1.热修复的基本认识 【内容提要】 1.1 热修复的基本概念-动态更新 1.2.热修复的好处 【1】开发团队可以避免繁琐的开发流程,使得bug的修改变得容易; 【2】避免用户的流失; 【3】可以轻易的实现小功能的更新; 1.3.热修复的看法 【说明】高质量的版本加上热修复的技术,才是最好的; 【1】
阅读全文
摘要:【转载地址】https://blog.csdn.net/a19881029/article/details/16117251 Class文件是一组以8位字节为基础单位的二进制流,包含多个数据项目(数据项目的顺序,占用的字节数均由规范定义),各个数据项目严格按照顺序紧凑的排列在Class文件中,不包含
阅读全文
摘要:1.热修复和插件化解决的问题 【讲解的模块】 【说明】在接入热修复之后,版本发布具有较大的改变; 2.class文件与dex文件解析 【本章提要】 3. Class文件的解析 3.1 Class文件的认识 【解释】Class文件:能够被JVM识别,加载并执行的文件格式; 【说明】有很多的语言都会生成
阅读全文
摘要:1.AsyncTask的基本认识 1.1 异步使用的场景 1.2 AsyncTask类 1.3 AsyncTask调用的时机 【运行结果】 【增加进度数据的返回】 2.AsyncTask的使用示例 2.1 网路数据转换为本地数据 【说明】加载本地图片,然后显示加载的进度; 【创建AsyncTask类
阅读全文
摘要:1.BitMap高效加载 1.1 BitMap的基本概念 【说明】 【1】BitMap本身是计算机中的非常重要的概念,非Android 独有; 【2】BitMap还有一个类:BitMapShower,可以进行一些特效的制作; 1.2 BitMap的加载方式 【说明】 【1】根据文件来源的不同,分为以
阅读全文
摘要:Android程序员搭建一个属于自己的服务器 Android程序员搭建一个属于自己的服务器 时间:2017-10-09 10:44来源:未知 作者:卓一哥 点击: 3126 次 前言 最近在跟小伙伴合作开发一款app,苦于没有合适的公共api接口,所以决定自己搭建一个服务器,目前已实现注册、登录,爬
阅读全文
摘要:1.自定义GIF 【gif使用的场景】在社交类的app上居多;一般继承的父类就是下面所列的几种; 1.1 加载本地的gif图片的播放 【专门监听生命周期】需要使用到SurfaceView控件; 【获取外界的gif资源】获得到的i资源不能直接播放,需要使用使用线程播放; 【播放】需要使用线程播放 【添
阅读全文
摘要:1.登陆页面的布局的分析 2.搭建登录UI界面 【说明】增加了权重,等比例划分; 【源码】layout/activity_login.xml 【ToolBar源码】 3.登录功能实现 3.1 登陆界面的MVP框架的搭建 【View】 【Presenter】 【model】 3.2 绑定代理 3.3
阅读全文
摘要:1. 精华Tab的布局分析 【说明】前面的Tab使用的空间; 【说明】精华布局要实现的实例样式如下: 2.精华布局实现 2.1 圆角图片的处理 【说明】此处使用了自定义的控件 【源码】 【布局】 【源码】 3.配置网络请求框架 【说明】系统自带的网络请求已经android放弃,使用okHttp; 【
阅读全文
摘要:1.项目搭建会遇到的问题 2.MVP架构原理图 【说明-重要】一个项目的核心是:架构; 【MVP】本质:将view和model完全分离开,通过中介Presenter同一调度管理; 3. 【举例】MVP项目架构登录流程原理图 4.MVP架构层次含义 5.MVP和MVC区别 6.MVP项目框架搭建 【优
阅读全文
摘要:【转载-原文地址】https://blog.csdn.net/vv_bug/article/details/52389846 最近在做一个银行的项目,所以需要自定义键盘,不再使用系统的键盘了,从中也遇到了很多问题,比如怎么控制系统键盘不弹出,然后怎么控制软键盘与当前Activity的交互,是时候了解
阅读全文
摘要:【1】【 android.os.DeadObjectException】 【解决方法】 网上怎么解决的呢? 这个有的问题确实能解决,但是,不是出现这个问题都能解决的! 出现这个问题其实大多源于当前程序异常崩溃,进程直接被杀死,但是as或者其他的软件未能捕获到bug 所以就爆出了这个DeadObjec
阅读全文
摘要:1.http的基本概念 【说明】对于做网页开发的,tcp/ip协议的了解不用很清楚,但是做嵌入式开发的必须了解清楚; 【短连接/长连接】会话结束即断开/保持一定的时间的连接; 2.HTTP请求 2.1 关于请求的一个问题 【说明】发出3次请求,取数据/取图片是分开的;一般具有专门服务器,存储图片/存
阅读全文
摘要:1.观察者模式的认识 【说明】此处主要讲解推送的过程; 2.观察者模式的简单类图 3.观察者模式的实现 【主体对象的定义】注册/注销观察者,更新状态; 【主题管理者的子类】 【观察的接口】 【观察者的实现类】 【调用】主题的状态发生了改变,观察者接收到的同样也发生了改变; 4.使用java本身类库实
阅读全文
摘要:1.建造者模式的认识 【说明】建造使用的场景:如果被建造的对象比较复杂,存在各种各样的组件,建造的组件之间具有先后的顺序; 【说明】可以结合工厂模式生成不同的组件; 2.构造者模式的基本实现 【飞船类/飞船组件】 【builder接口】 【构建者的实现类】 【装配者实现类】 【装配者的调用】 3.增
阅读全文
摘要:1.Myeclipse的破解 https://blog.csdn.net/u012318074/article/details/71310553 MyEclipse 2016 破解详细过程 文件资源 MyEclipse 和 破解程序可以到百度云下载:http://pan.baidu.com/s/1j
阅读全文
摘要:1.工厂模式的认识 2.不使用工厂模式的代码的编写 3.增加简单工厂模式 【目前类的关系】对于调用者关系简单了; 【两种实现方式】 4.工厂方法模式详解 【父类接口】 【子类继承】 【调用】 【如果新增加一个类】新增加一个产品,不需要修改原来的代码,直接增加代码即可; 【uml关系图】 【两者的选择
阅读全文
摘要:1.单例模式_应用场景_饿汉式_懒汉式 2.单例-饿汉式 3.单例-懒汉式 4.双重检测锁-不使用 5.静态内部类的实现方式--推荐使用 【说明】在很多的框架都使用该单例的书写方式 6.枚举实现单例模式 【说明】JVM天然对枚举单例进行了保证,可以防止通过反射的调用; 7.类图的制作 8.如果选择
阅读全文
摘要:1.单例+静态工厂方法 【测试代码】 2.简单工厂模式 【可以生成任意定制交通工具的类型和生产过程】除了car之外可以生成多种交通工具; 2.1 【可以生成任意定制交通工具】 【说明】首先书写一个接口(抽象出交通工具共有的方法),不同的子类(交通)实现此接口; 【接口】 【子类】实现公有方法; 2.
阅读全文
摘要:1.效果 【说明】使用的是第三方的库和fragment的切换 2.布局 2.1 顶部布局 2.2 主布局 3.逻辑实现 3.1 添加依赖 【1】https://github.com/JakeWharton/ViewPagerIndicator 【2】https://github.com/LuckyJ
阅读全文
摘要:1.滑动切换效果的完成 【修改布局】 【变量的声明及去掉titileBar】 【初始化工作】iniitView;initEvent; 【继承的变化】 【初始化数据】 【适配器的初始化】 【运行效果】此时可以完成事件的滑动切换的效果 2.点击切换效果的完成及Tab状态的改变 【抽取代码】 【VIewp
阅读全文
摘要:【优化布局层次】 1.新建fragment 【说明】将上一个项目中的所有的布局文件全部拷贝过来,然后新建fragment,分别新建四个fragment; 【布局修改】改为frameLayout 【初始化布局】 【初始化事件】 【切换图片的颜色】 【点击事件的响应】切换不同的fragment进行显示和
阅读全文