自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Handler源码分析

相信很多同学都使用过Handler,他是安卓提供的跨线程通信方案,一般是在子线程发送消息,主线程处理消息更新ui。现在我们来分析一下Handler是怎么工作的。 本文涉及几个重要的对象:### Handler### Lopper### MessageQueue### Message### ThreadLocal...

2020-05-06 17:08:07 234

原创 如何快速的安装AndroidStudio

前言 写这篇文章的用意主要是给Android开发初学者提供一个快速搭建安卓开发环境的一个建议,并不是必须按照文章中所写的步骤去安装,也可以按照ide的默认步骤去安装,那样安装时间可能会比较久,究其原因是因为国内网络防火墙的原因,谷歌网站访问会特别慢。这里我给出的安装教程也主要是为了解决这个问题,当然不是翻墙,那是另一种途径这里不做讨论。 准备工作,首先要保证你的电脑已经搭...

2020-04-25 16:16:22 475

原创 Java中的浅拷贝与深拷贝

Java中的对象拷贝(Object Copy)指的是将一个对象的所有属性(成员变量)拷贝到另一个有着相同类类型的对象中去。举例说明:比如,对象A和对象B都属于类S,具有属性a和b。那么对对象A进行拷贝操作赋值给对象B就是:B.a=A.a; B.b=A.b;在程序中拷贝对象是很常见的,主要是为了在新的上下文环境中复用现有对象的部分或全部 数据。Java中的对象拷贝主要分为:浅拷贝(Shal...

2020-04-23 10:11:45 276

原创 线程池ThreadPoolExecutor概述

为什么用线程池创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率例如:记创建线程消耗时间T1,执行任务消耗时间T2,销毁线程消耗时间T3如果T1+T3>T2,那么是不是说开启一个线程来执行这个任务太不划算了!正好,线程池缓存线程,可用已有的闲置线程来执行新任务,避免了T1+T3带来的系统开销线程并发数量过多,抢占系统资源从而导致阻塞我们知道线程能共享系统资源,如...

2020-04-17 14:17:45 173

原创 使用TortoiseGit进行代码回滚和代码合并

1、TortoiseGit进行代码回滚:回滚分为两部分,本地回滚和服务器回滚。本地回滚:1.1、Showlog 显示你的提交记录。1.2、选择要回滚到的记录,右击选择Reset this to this vision。在弹出的对话框中选择reset Type 为hard。1.3、之后就完成了本地代码的回滚。服务器端回滚:如果想将本地回滚的代码,提交到服务器...

2020-04-08 15:55:28 4442

原创 DCL单例模式详解

public class Test { private volatile static Test instance; private Test() { } public static Test getInstance() { if (instance == null) { synchronized (Test.class) { ...

2020-01-03 11:46:20 2792 1

转载 ImageView的scaleType的属性理解

ImageView的scaleType的属性值有MATRIX,FIT_XY,FIT_START,FIT_END,FIT_CENTER,CENTER,CENTER_CROP,CENTER_INSIDE.1.android:scaleType=“center”保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size时,多出来的部分被截掉。2.androi...

2019-12-16 17:11:10 124

原创 Android手绘涂鸦PaintView

推荐一款很好用的涂鸦自定义控件PaintViewhttps://github.com/duoduoyoumaicai/PaintViewPaintView一个很好用的绘图板 可以绘制曲线、橡皮擦功能(可以擦除曲线)、直线、矩形、圆、添加图片 可以对直线、矩形、圆、图片进行移动缩放旋转如何集成Project的build.gradle文件中加上allprojects...

2019-06-26 17:33:25 1610 2

转载 如何让自已在GitHub的开源库给第三方App依赖调用

使用Android Studio只要在gradle添加依赖就可以使用别人写的开源库,比添加到libs目录下要方便,这点与xCode的pods管理三方库很像。需要准备的资源1.注册一个github帐号2.上传一个Project到github且有一个module为Library3.https://jitpack.io/网站下面就记录我的一个Demo工程如何使用依赖调用github的使用...

2019-06-24 12:03:08 453

原创 矩阵基础

定义由 m × n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称m × n矩阵。记作:这m×n 个数称为矩阵A的元素,简称为元,数aij位于矩阵A的第i行第j列,称为矩阵A的(i,j)元,以数 aij为(i,j)元的矩阵可记为(aij)或(aij)m × n,m×n矩阵A也记作Amn。元素是实数的矩阵称为实矩阵,元素是复数的矩阵称为复矩阵。而行数与列数都等于n的矩阵称为n...

2018-10-11 17:13:27 322

转载 二进制、八进制、十进制、十六进制之间的转换

进制也就是进制位,我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。具体的用法小编今天不着重解释,主要针对他们之间的转换加以讨论(今天只讲整数)。二进制与十进制之间的转换 1 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续...

2018-08-22 14:30:15 254

转载 java位运算

位移动运算符:<<表示左移, 左移一位表示原来的值乘2.例如:3 <<2(3为int型)1)把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,2)把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,3)在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 00...

2018-07-31 20:30:05 2395

转载 Java和Android中的注解

1.引言从JDK1.5开始,引入了注解类Annotation,Annotation其实是一种接口,可以作用于类、方法、属性等等 ,它可以通过反射机制来访问annotation信息,获取所加上注解信息,做相应的操作。相当于给相关的作用对象打上“tag”,使用方便,作用广泛。2.java.lang中的注解     在java.lang中,用到三种注解类,即常用到的Deprecated,Ov...

2018-07-31 11:07:24 299

转载 安卓onTextChanged参数解释及实现EditText字数监听 Editable使用

由于最近做项目要检测EditText中输入的字数长度,从而接触到了Android中EditText的监听接口,TextWatcher。它有三个成员方法,第一个after很简单,这个方法就是在EditText内容已经改变之后调用,重点看下面两个方法:beforeTextChanged(CharSequence s, int start, int count, int after)这个方法...

2018-07-27 11:00:28 1356

转载 事半功倍:Android Studio 优秀插件汇总

第一部分 插件的介绍Google 在2013年5月的I/O开发者大会推出了基于IntelliJ IDEA Java IDE上的Android Studio。AndroidStudio是一个功能齐全的开发工具,还提供了第三方插件的支持。让开发人员更快速更好的开发程序。第二部分 插件的安装in Android Studio: go to File → Settings → Plugins ...

2018-07-24 15:53:25 1868

转载 两分钟彻底让你明白Android Activity生命周期(图文)!

大家好,今天给大家详解一下Android中Activity的生命周期,我在前面也曾经讲过这方面的内容,但是像网上大多数文章一样,基本都是翻译Android API,过于笼统,相信大家看了,会有一点点的帮助 ,但是还不能完全吃透,所以我今天特意在重新总结一下.首先看一下Android api中所提供的Activity生命周期图(不明白的,可以看完整篇文章,在回头看一下这个图,你会明白的):...

2018-07-24 14:04:38 160

转载 Android性能优化之提高ListView性能的技巧

ListView优化一直是一个老生常谈的问题。无论是面试还是寻常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看怎样最大化的优化ListView的性能。1.在adapter中的getView方法中尽量少使用逻辑2.尽最大可能避免GC3.滑动的时候不载入图片4.将ListView的scrollingCache和animateCache设置为false5.item的布...

2018-07-08 16:36:17 180

转载 Activity的四种启动模式和onNewIntent()

Activity的四种启动模式1.standard:默认启动模式,每次启动Activity时都会创建一个新的Actiity,并放入任务栈。2.singleTop:单一顶部模式,当任务栈的栈顶正好存在该Activity的实例,就会重用该实例,否则重新创建新的实例放入栈顶。3.singleTask:单一任务栈模式,当任务栈中存在该Activity的实例,就会重用该实例(会调用实例的onNe...

2018-07-08 15:56:23 595

转载 二叉树的四种遍历方法笔记

二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次。前序中左右中序左中右后序左右中st=>start: 开始e=>end: 结束op=>operation: 根结点op2=>operation: 左子树io=>inputoutput: 右子树cond=&...

2018-07-08 15:00:09 269

转载 数组、链表等常用数据结构和集合浅解(java)

------数据结构:是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。1.集合数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;2.线性结构数据结构中的元素存在一对一的相互关系;3.树形结构数据结构中的元素存在一对多的相互关系;4.图形结构数据结构中的元素存在多对多的相互关系。常用数据结构:数组、栈、队列、链表、树、图、堆、散列表---...

2018-07-08 14:00:08 291

转载 Android 数据结构以及常用的算法

一、Android常见数据结构&优缺点。分享给大家,希望对大家有帮助!数组优点:查询快,如果知道索引可以快速地存取缺点:删除慢,大小固定有序数组优点:比无序数组查找快缺点:删除和插入慢,大小固定栈优点:提供后进先出的存取方式缺点:存取其他项很慢队列优点:提供先进先出的存取方式缺点:存取其他项都很慢链表优点:插入快,删除快缺点:查找慢(一个个节点查)二叉树优点:查找,插入,删除都快(平衡二叉...

2018-07-08 13:05:17 2520 1

转载 GreenDao教程(4):数据库升级

下面开始升级的介绍,首先贴出热心大神封装greendao数据库升级的开源地址,再次感谢这些牛逼的巨人们宽大的肩膀。点这里 我们要升级数据库,说明我们的表有字段变了,或者增加了表,或者删除了表。 我们的数据库版本是在greendao生成文件时的那个java类中指定的,例:// 生成数据库实体类xxentity 对应的是数据库的表 Schema schema ...

2018-07-02 16:57:39 280

转载 GreenDao教程(3):一对一,一对多,多对多

前言一对一1 注解2 示例21 实体类定义22 insert一组数据23 delete一组数据3 结语一对一一对多1 注解2 示例21 实体类定义22 insert一组数据3 结语一对多多对多1 注解2 示例21 实体类定义22 绑定类定义23 insert一组数据3 结语多对多1. 前言主要介绍GreenDao 一对一,一对多,多对多应用这部分还是有些坑的,注意看示例代码中注释即可避开本文资料来...

2018-07-01 21:17:16 578

转载 GreenDao教程(2):基本应用

前言应用层原理简介1 编译后自动注入的文件有哪些2 获取一个Dao对象的过程21 代码示例22 分段解释创建过程关于注解基本应用1 创建一个Bean2 获取Dao实例21 获取DaoSession实例22 获取Dao实例23 Dao操作增删改查示例结语1. 前言主要介绍GreenDao的基本应用。本文资料来源网络公开资源,并根据个人实践见解纯手打整理,如有错误请随时指出。本文主要用于个人积累及分享...

2018-07-01 21:06:45 371

转载 GreenDao教程(1):配置流程

一、GreenDao 简介GreenDAO 是一款开源的面向 Android 的轻便、快捷的 ORM 框架,将 Java 对象映射到 SQLite 数据库中,我们操作数据库的时候,不在需要编写复杂的 SQL语句, 在性能方面,GreenDAO 针对 Android 进行了高度优化, 最小的内存开销 、依赖体积小 同时还是支持数据库加密。GreenDAO 官网地址:http://greenrob...

2018-06-30 15:33:59 580

转载 图解 Android 事件分发机制

在Android开发中,事件分发机制是一块Android比较重要的知识体系,了解并熟悉整套的分发机制有助于更好的分析各种点击滑动失效问题,更好去扩展控件的事件功能和开发自定义控件,同时事件分发机制也是Android面试必问考点之一,如果你能把下面的一些事件分发图当场画出来肯定加分不少。废话不多说,总结一句:事件分发机制很重要。Android 事件分发流###关于Android 事件分发机制网上的博...

2018-06-29 14:16:41 406 2

转载 Android 三大图片加载框架比较

1.哪三大图片加载框架?        1)    Picasso        2)    Glide        3)    Fresco2.介绍:    Picasso :和Square的网络库一起能发挥最大作用,因为Picasso可以选择将网络请求的缓存部分交给了okhttp实现。        Glide:模仿了Picasso的API,而且在他的基础上加...

2018-06-27 16:35:02 5880

转载 Android中RelativeLayout和LinearLayout性能分析

先看一些现象吧:用eclipse或者Android studio,新建一个Activity自动生成的布局文件都是RelativeLayout,或许你会认为这是IDE的默认设置问题,其实不然,这是由 android-sdk\tools\templates\activities\BlankActivity\root\res\layout\activity_simple.xml.ftl 这个文件事先就定...

2018-06-26 10:40:56 151

转载 安卓内存泄露成因和解决办法

内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打算做个 总结 沉淀下来跟大家一起分享和学习,也给自己一个警示,以后 coding 时怎么避免这些情况,提高应用的体验和质量。 我会从 java 内存泄漏的基础知识...

2018-06-26 09:43:49 1241

转载 Android进程保活的一般套路

自己曾经也在这个问题上伤过脑经,前几日刚好有一个北京的哥们在QQ说在做IM类的项目,问我进程保活如何处理比较恰当,决定去总结一下,网上搜索一下进程常驻的方案好多好多,但是很多的方案都是不靠谱的或者不是最好的,结合很多资料,今天总结一下Android进程保活的一些方案,都附有完整的实现源码,有些可能你已经知道,但是有些你可能是第一次听说,(1像素Activity,前台服务,账号同步,Jobsched...

2018-06-25 17:49:18 636

转载 Android 属性动画:这是一篇很详细的 属性动画 总结&攻略

前言动画的使用 是 Android 开发中常用的知识本文将详细介绍 Android 动画中 属性动画的原理 & 使用动画类型关于Android动画的系列文章动画的使用,请参考文章:Android 属性动画:这是一篇很详细的 属性动画 总结&攻略Android 动画:手把手教你使用 补间动画Android 逐帧动画:关于 逐帧动画 的使用都在这里了!Android 动画:你真的会使用...

2018-06-25 16:04:17 305

转载 Android 动画总结

在日常的Android开发中,经常会使用到动画,这里就对Android开发中的动画做一下总结。Android 动画分类总的来说,Android动画可以分为两类,最初的传统动画和Android3.0 之后出现的属性动画;传统动画又包括 帧动画(Frame Animation)和补间动画(Tweened Animation)。传统动画帧动画帧动画是最容易实现的一种动画,这种动画更多的依赖于完善的UI资...

2018-06-25 11:08:00 313

转载 Andriod开发技巧——Fragment的懒加载

我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在这个activity刚创建的时候就变成需要初始化大量资源。这样的结果,我们当然不会满意。那么,能不能做到当切换到这个fragment的时候,它才去初始化呢?答案就在Fragment里的setUserV...

2018-06-24 12:54:54 160

转载 Android_Dagger2篇——从小白最易上手的角度 + 最新dagger.android

Dagger2这枚大名鼎鼎的匕首,相对于Rxjava、Retrofit、Okhttp等可能是最难上手的的框架了;许多人都学习它不下数遍,网上的教程也都是从入门到放弃、再从入门到放弃,如此反复才最终恍然大悟;这其中也有许多人看了一两遍之后对他望而却步。早就听说Dagger的大名,Dagger是安卓界最棒的依赖注入框架,第一代由大名鼎鼎的Square公司共享出来,第二代则是由谷歌接手后推出的。我在20...

2018-06-24 11:49:06 580

转载 Android Fragment 真正的完全解析(下)

上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上)。本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创建对话框,如何与ActionBar,...

2018-06-24 11:05:12 167

转载 Android Fragment 真正的完全解析(上)

自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务;以及Fragment的一些特殊用途,例如:没有布局的Fragme...

2018-06-24 11:02:34 143

转载 Android开发中常见的设计模式

Android开发中常见的设计模式对于开发人员来说,设计模式有时候就是一道坎,但是设计模式又非常有用,过了这道坎,它可以让你水平提高一个档次。而在android开发中,必要的了解一些设计模式又是非常有必要的。对于想系统的学习设计模式的同学,这里推荐2本书。一本是Head First系列的Head Hirst Design Pattern,英文好的可以看英文,可以多读几遍。另外一本是大话设计模式。单...

2018-06-24 10:05:15 167

转载 关于RxJava的详解

关于RxJava的详解2018年01月23日 17:34:15阅读数:3082 在正文开始之前的最后,放上 GitHub 链接和引入依赖的 gradle 代码: Github: https://github.com/ReactiveX/RxJava https://github.com/ReactiveX...

2018-06-23 22:33:53 463

转载 Android性能优化之布局优化

Android性能优化之布局优化  Android性能优化方面也有很多文章了,这里就做一个总结,从原理到方法,工具等做一个简单的了解,从而可以慢慢地改变编码风格,从而提高性能。一、Android系统是如何处理UI组件的更新操作的  既然和布局相关,那么我们需要了解Android系统是如何处理UI组件的更新操作的。  1、Android需要把XML布局文件转换成GPU能够识别并绘制的对象。这个操作是...

2018-06-23 12:02:15 166

原创 JNI入门之C/C++基础六

1.6预编译指令1.6.1 C语言执行的流程编译:形成目标代码(.obj)连接:将目标代码与C函数库连接合并,形成最终的可执行文件执行1.6.2预编译预编译(预处理),为编译做准备工作,完成代码文本的替换工作1.6.3宏定义、宏替换、预编译指令#include命令#include是文件包含命令,主要用来引入对应的头文件。#include的处理过程很简单,就是将头文件的内容插入到该命令所在的位置,从...

2018-05-31 14:11:51 243

空空如也

空空如也

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

TA关注的人

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