自定义View实践 Android系统默认提供大量的View,但是会因为需求的改动导致原生View不能符合需求,就需要进行自定义控件去使用。 实现方式 继承特定View 拓展某种已有View的功能就可以在原有View的基础上增加新功能,而且这种实现方式就不需要自己去处理那些注意事项,例如wrap_content、pandding等属性。 继承View并重写onDraw() 当需要实现一些不规则的效果,比 2019-01-02 Android
Android-线程相关 在Android中进程一般指代App,线程又分为 主线程:进程所拥有的线程,默认情况下一个进程只有一个线程,这个线程就是主线程。Android中对应UI线程 子线程:工作线程,除主线程以外的线程都是工作线程。Android中的子线程的作用是处理耗时任务,比如网络请求,IO操作。 Thread AsyncTask 轻量级的异步任务,可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给 2018-12-21 Android
RecyclerView简析 RecyclerView定义 RecyclerView是一个新的组件,用来代替ListView组件的。 相比于ListView来说,RecyclerView的最大一个特性就是灵活性,主要体现在以下几个方面: 多样式:可以对数据展示进行定制,可以显示成列表,表格或者是瀑布流,你还可以自定义成任何显示样式。 局部刷新:可以刷新指定的Item或者区域 刷新动画:支持对Item的添加和移除添加动画 2018-12-20 Android
Java多线程基础 Java多线程基础 基础概念进程 操作系统结构的基础,是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的基本单位。进程就是程序的实体 线程 线程是进程的一个实体,是CPU调度和分配的基本单位,线程是一个比进程更小的执行单位,一个进程在执行期间可以产生多个线程。一个进程至少一个线程。一般应用于高并发场景,可以提高CPU的利用率。 多进程 每个进程都拥有自己独立的资源,多个进程可在单核 2018-12-19 Java
Java-synchronized原理及解析 synchronizedsynchronized场景一般用在以下场景 修饰实例方法(锁定当前对象实例)12345public class SynchronizedInstance{ public synchronized void test(){ //... }} 锁定的是访问该方法的实例对象,如果在多个线程中的不同对象访问该方法,则不可保证互斥 2018-12-18 Java
CAS操作&Atomic原子操作类分析 CAS与原子操作乐观锁与悲观锁悲观锁认为每次访问共享资源时都会发生冲突,必须对每次对象操作进行上锁,以保证临界区的程序同时只能有一个线程执行。 乐观锁假设对共享资源的访问不会发生冲突,线程可以不停的执行,无需加锁。 一旦发生线程冲突,通常都会采用CAS操作保证线程执行的安全性 悲观锁适用于写多读少的环境,避免频繁失败和重试影响性能。 乐观锁适用于写少读多的环境,避免频繁加锁影响性能。 CAS 2018-12-18 JVM Java
Java-volatile原理及解析 volatile基础概念volatile的主要作用是保证可见性以及有序性,不一定保证原子性。 JVM提供的最轻量级的同步机制。 当一个变量被volatile关键字修饰后,就会具备两层语义: 保证此变量对所有线程的可见性,这里指 当一条线程修改了这个变量的值,新值对于其他线程来说是立即可得知的。 禁止进行指令重排序优化 volatile 保证可见性在使用volatile关键字修饰一个变量后 2018-12-17 Java
Java - 反射 Java反射机制基础 反射机制定义反射(Reflection)是Java的特征之一,它允许运行中的Java程序获取自身的信息,并且可以操作类或对象的内部属性。对于任何一个类,能够知道这个类中的所有属性和方法;对于任何一个对象,都能够调用它的任意一个方法和属性。 反射机制功能通过反射,可以在运行时获取程序中的每一个类型的成员和成员信息。利用Java的反射机制可以动态的创建对象并调用其属性。反射可以提 2018-12-14 Java
设计模式--基本原则 单一职责原则(SRP) 单一职责原则英文名称为Single Responsibility Principle,简称SRP。 优点: 类的复杂性降低,实现什么职责都有清晰明确的定义 可读性提高,复杂性降低 可维护性高 对于开发过程来说,接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。 里氏替换原则(LSP) 所有引用父类的地方都必须能透明的使用其子类的对象。简单的说就是 父类能 2018-12-14 设计模式
设计模式--单例模式 单例模式 一个类只能产生一个对象。确保某一个只有一个实例,而且自行实例化并向整个系统提供这个实例且构造函数私有化。 12345678910111213//单例模式通用代码public class Singleton{ private static final Singleton singleton = new Singleton(); private Singleton 2018-12-13 设计模式
Android需要的必备知识 第一关:Binder、AIDL、多进程(建议学习时间:2周)知识点:Binder原理、AIDL的使用、多进程的定义和特性学习资料:① Android开发艺术探索第2章【推荐理由】地球人都知道学Android要看艺术探索。② Android Bander设计与实现 - 设计篇 - universus的专栏 - CSDN博客 【推荐理由】Binder底层史上最牛逼分析,没有之一。③ 艺术探索第2章的例 2018-12-09 Android
Android-动画分析 Android的动画就可以分为3种: View动画 View Animation 帧动画 Drawable Animation 属性动画 Property Animation 1.View动画 View动画的作用对象是View。View动画的View移动只是视觉效果,并不能真正的改变位置。 View动画的种类 种类 标签 子类 效果 平移动画 <translate> 2018-06-11 Android