自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 图片选择器发送图片

导入依赖 //加载图片框架 implementation 'com.github.bumptech.glide:glide:3.7.0' //图库的框架 implementation 'com.lzy.widget:imagepicker:0.5.4' Application初始化 val imagePicker = ImagePicker.getInstance() imagePicker....

2019-08-09 22:29:52 170

原创 同步

重入锁与条件对象 synchronized 关键字自动提供了锁以及相关的条件。大多数需要显 式锁的情况使用synchronized非常方便,但是等我们了解了重入锁和条 件对象时,能更好地理解synchronized关键字。重入锁ReentrantLock是 Java SE 5.0引入的,就是支持重进入的锁,它表示该锁能够支持一个线 程对资源的重复加锁。 这一结构确保任何时刻只有一个线程进入临界区...

2019-08-08 22:22:14 83

原创 线程基础

1.什么是进程 先了解一下什么是进程。进 程是操作系统结构的基础,是程序在一个数据集合上运行的过程,是系 统进行资源分配和调度的基本单位。进程可以被看作程序的实体,同 样,它也是线程的容器。上面这段话,比较抽象,对于进程可以看图4- 1进行理解。该图是Windows任务管理器,里面列表中的exe程序就是一 个进程。再举一个例子,如图4-2所示,这是Android Device Monitor中 的...

2019-08-07 22:33:02 78

转载 Git总结

创建版本库 版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。 1、选择一个合适的地方,创建一个空目录: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit pwd命令...

2019-08-06 20:10:40 85

原创 Material Design概述

2.1 Material Design概述 这里只是大概地讲解Material Design的基本知识点,若想要了解 Material Design的更多内容,可以查看其官方英文文档: http://www.google.com/design/spec/material-design/。 2.1.1 核心思想 Material Design的核心思想,就是将物理世界中的体验带入屏幕, 并且去掉物理...

2019-08-05 22:20:23 950

原创 解析ButterKnife

ButterKnife从严格意义讲不算是依赖注入框架,它只是专注于 Android系统的View注入框架,并不支持其他方面的注入。它可以减少 大量的findViewById以及setOnClickListener代码,简化代码并提升开发 效率。 1.ButterKnife的注解使用方法 (1)添加依赖库 (2)绑定控件 用注解@BindView绑定控件id class LoginActivity ...

2019-08-02 21:24:58 739

原创 第 3 章 应用程序进程启动过程

应用程序选程简介 要想启动一个应用程序,首先要保证这个应用程序所需要的应用程序进程已经启动。 AMS 在启动应用程序时会检查这个应用程序需要的应用程序进程是否存在,不存在就会请 求 Zygote 进程启动需要的应用程序进程。在 2.2 节中,我们知道在 Zygote 的 Java 框架层 中会创建一个 Se凹er 端的 Socket,这个 Socket 用来等待 AMS 请求 Zygote 来创建...

2019-07-25 21:25:18 181

原创 第 2 章 Android 系统启动

init 进程启动过程 init 进程是 Android 系统中用户空间的第一个进程,进程号为 1 ,是 Android 系统启动 流程中一个关键的步骤,作为第一个进程,它被赋予了很多极其重要的工作职责,比如创 建 Zygote (孵化器)和属性服务等。 init 进程是由多个源文件共同组成的,这些文件位于 源码目录 system/core/init 中。 it 进程 为了讲解 init 进程,首...

2019-07-24 21:19:56 71

原创 第一章:Android 系统架构

Android系统架构分为五层,从上到下依次是应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层 一、应用层(System Apps) 系统内置的应用程序以及非系统级的应用程序都属于应用层,负责与用户进行直接交互,通常都是用java进行开发的 二、应用框架层(Java API Framework) 应用框架层为开发人员提供了开发应用程序需要的API,我们平常开发应用程序都是调用这一层所...

2019-07-23 21:04:59 159

原创 自定义view刻度尺

画尺三步 第一步,画刻度 可以自定义刻度长度,每隔一段画一个小刻度、大刻度 //画刻度 for (int i=0;i<getWidth();i+=5){ if (i%20==0){ if (i%200==0){ canvas.drawLine(i,50,i,100,paintb); ...

2019-07-22 21:33:22 133

转载 Rxjava

RxJava 是一个 基于事件流、实现异步操作的库 1、作用 类似于 Android中的 AsyncTask 、Handler作用 2、特点 由于 RxJava的使用方式是:基于事件流的链式调用,所以使得 RxJava: 逻辑简洁 实现优雅 使用简单 更重要的是,随着程序逻辑的复杂性提高,它依然能够保持简洁 & 优雅 3、原理介绍 Rxjava原理 基于 一种扩展的观察者模式 即RxJav...

2019-07-19 21:36:13 76

转载 MVP模式

MVP简介 MVP(Model,View,Presenter) MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的...

2019-07-18 21:20:28 131

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除