当前搜索:

Android中使用Handler造成内存泄露的分析和解决

Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收。也就是说,一个对象不被任何引用所指向,则该对象会在被GC发现的时候被回收;另外,如果一组对象中只包含互相的引用,而没有来自它们外部的引用(例如有两个对...
阅读(136) 评论(0)

Android 服务之IntentService 详解

1. IntentService 概述 2.IntentService如何使用 3. IntentService源码解析 1. IntentService 概述 IntentService继承自Service,所以,我们可以用来执行后台耗时任务。那为什么又要封装一个这样的Int...
阅读(270) 评论(0)

Java设计模式——观察者模式

1.观察者模式概述 1.1观察者模式定义 1.2 观察者模式UML 类图 1.3 观察者的优缺点对比 1.4 观察者模式适应场景 2.观察者模式实例 3.Java内置观察者模式 1.观察者模式概述 1.1观察者模式定义 观察者模式是使用频率最高的设计模式之一,它用...
阅读(224) 评论(0)

Android窗口管理框架——View的绘制流程和工作原理

1.概述 源码分析基于Android O 。 如上图,Activity由window组成,Activity内部有个Window成员,它的实例为PhoneWindow,PhoneWindow有个DecorView(这个也是最顶层的View),这个DecorView就是存放布局文件的,里面有T...
阅读(224) 评论(0)

Android系统窗口管理框架——View的生命周期

1.View的概述 This class represents the basic building block for user interface components. A View occupies a rectangular area on the screen and ...
阅读(72) 评论(0)

Java 线程池详解

什么是线程池 为什么要使用线程池 线程池的处理逻辑 如何使用线程池 如何合理配置线程池的大小 1.什么是线程池 线程池,顾名思义就是装线程的池子。其用途是为了帮我们重复管理线程,避免创建大量的线程增加开销,提高响应速度。 2.为什么要用线程池 作为一个严谨...
阅读(42) 评论(0)

Linux系统编程——I/O多路复用select、poll、epoll的区别

1.概述 I/O 多路复用技术是为了解决进程或线程阻塞到某个 I/O 系统调用而出现的技术,使进程不阻塞于某个特定的 I/O 系统调用。 select(),poll(),epoll()都是I/O多路复用的机制。I/O多路复用通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者...
阅读(47) 评论(0)

Android 读取文件的正确打开方式

1.Java 读取操作基本知识 图片来自: 2017java文件操作(读写操作) 从上图可以开出,java的读写操作(输入输出)可以用“流”这个概念来表示,总体而言,java的读写操作又分为两种:字符流和字节流。 1.1 流相关知识 流是一个抽象的概念。当Java程序需要从数据源读取...
阅读(84) 评论(0)

记一次从上层到HAL层的历程

仅限个人查看 CTRL+SHIFT+H 通过服务接口.Stub查找 通过 _服务类.cpp类全局查找 CTRL+SHIFT+F 硬件人员维护这个值!
阅读(80) 评论(0)

Android消息机制--Handler 深入解析(JAVA层)

1. Android 消息机制概述 阅读本文之前,你需要知道以下几点: 1.Handler的使用必须依赖于一个Looper对象 2.线程是默认没有Looper的,但是UI线程有一个Looper对象; 3.在启动APP的时候,UI线程Looper会初始化完毕,所以可以得出,UI线程可以直接使...
阅读(234) 评论(0)

Android 进阶(三)--Android事件分发机制

1.前言 Android事件分发机制在Android开发者必须要了解的知识,并且是解决View的滑动冲突的基础。 2.事件分发的基础 要想了解事件分发的机制,我们必须要知道事件分发的基础,即,事件分发的对象和流程。 2.1 事件分发的定义 将点击事件(MotionEvent)向某...
阅读(364) 评论(0)

Android进阶(二)--序列化Serializable和Parcelabel使用与区别

1.序列化 1.1 序列化的定义 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。简单地说,“序列化”就是将运行时的对象状...
阅读(596) 评论(2)

Android开发进阶(一) Intent与IntentFilter

1.前言 在Android中有四大组件,这些组件中有三个组件与Intent相关,可见Intent在Android整个生态中的地位高度。Intent是信息的载体,用它可以去请求组件做相应的操作,但是相对于这个功能,Intent本身的结构更值得我们去研究。 读完本篇你将会了解: 1.Inte...
阅读(1164) 评论(1)

简单封装弧形广告轮播图(ViewPager+贝塞尔曲线)

前言通过ViewPager和贝塞尔曲线实现了一个弧形广告轮播图。效果图实现方法想要实现这个效果,现在几行代码就可以了:Step 1. Add it in your root build.gradle at the end of repositories:allprojects { ...
阅读(1732) 评论(0)

自定义控件 | 仿《最美有物》点赞效果

前言最近在跟着Hencode学习自定义控件,一直想着自己能够照着别人写的demo写一个好看的View,就科学上网看看了别人的一些demo,看到了一位大神写的模仿《最美有物》的点赞效果,觉得胜似喜欢,于是也跟着写了一个demo。主要是看着流程分析自己撸出来的,之前用了自己的写法,然后看到了大神dem...
阅读(822) 评论(1)

Android自定义数字键盘(支持随机数字)

前言也是最近想写个demo玩玩,不知道写哪个方面的好,就随便写了一个自定义的键盘,比较简单,但是做了封装,支持jitpack库依赖(这也是我一次开源自己的库,比较水的一个开源项目,仅供学习使用)。概述主要完成了以下功能: 1.自定义数字键盘 2.切换到随机数字键盘 3.自定义确定和删除等键(...
阅读(1235) 评论(6)

How to become a better Android developer: 30+ bite-sized pro tips

转自:https://techbeacon.com/how-become-better-android-developer-30-bite-sized-pro-tipsBecoming an Android developer is easy, but becoming a successful ...
阅读(995) 评论(0)

Java反射机制详解

前言Java反射机制很早的时候就有耳闻,期间也会去看看相关资料,但是又很快会忘记,所以,写一篇Blog来加深记忆与理解!!Java反射的定义Java反射机制是指在运行状态(非编译)中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取...
阅读(483) 评论(3)

RecycleView实现MVP框架下的双列表联动与悬停

前言最近看了别人的一篇blog,也是实现recycleview的双列表联动,同时应用了MVP框架。于是就模仿写了一个类似的双列表联动与悬停。在MVP方面,我仿照的是官方的todo-mvp,感觉写得有点不伦不类了,这里就不详述,另外在实现需求方面,和那个大神相比,也做了许多改变,当然有些具体的难点我...
阅读(1710) 评论(0)

Android:dagger2让你爱不释手-重点概念讲解、融合篇

前言看这篇博文请先移步基础篇: Android:dagger2让你爱不释手-依赖注入框架基础篇,这篇讲解了Inject,Component,Module,Provides是如何构成dagger2整个依赖注入框架的因为dagger2的整个依赖注入框架已经构建完成,所以dagger2中剩下的Quali...
阅读(355) 评论(0)
    个人资料
    持之以恒
    等级:
    访问量: 10万+
    积分: 1626
    排名: 3万+
    最新评论