自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android SDK开发之生成AAR包、JAR包并生成本地&远程Maven仓库

前言:公司开发离不开模块化和团队合作,我们经常会用到其他小伙伴开发好的Sdk,如果我们也想开发Sdk供别人使用,这就涉及到sdk的打包等过程。今天就抽空跟大家分享一下我在sdk打包过程中遇到的坑!开发打包工具:AndroidStudio仓库:Github言归正传,我就直接进入Sdk的打包过程讲解(前提是在lib module的基础上,创建方式就不赘述了)一.在Lib的gradle文件中加入...

2020-03-09 16:09:43 1792

原创 AndroidQ(10)黑暗模式适配

前言:作为一个Android程序员,每年最期待就是Google的发布会啦!!这不,今年的AndroidQ如期而至。这里简单介绍一下Android的新特性:AndroidQ全局暗黑模式隐私权限的更新AndroidQ新版的手势导航(其实就是仿IOS)系统日程UI的优化(还有其他系统UI上的优化)Google组件(jetpack)的介绍每年的Google大会一结束就是程序员忙碌工作的开端...

2019-09-03 10:59:12 13444 6

原创 Oppo市场认领应用之OppoSignVerify.apk签名流程

前言:由于之前在oppo市场上提交过应用,但是账号密码都忘记了。因此这里需要进行应用认领,也就是对OppoSignVerify.apk进行签名并提交审核的过程。准备资料:原应用的jks签名文件、OppoSignVerify.apk、原签名文件使用的别名和密码。环境:电脑安装好jdk环境签名流程:将OppoSignVerify.apk和签名的jks文件拷贝到jdk的bin目录下。命令行切...

2019-01-17 16:41:04 3615

原创 使用正整数数组a设计当j>i时的有效算法:a[j]+a[i]的最大值,a[j]-a[i]的最大值,a[j]*a[i]的最大值,a[j]/a[i]的最大值。

问题描述:使用正整数数组a设计有效算法:a[j]+a[i]的最大值,其中j>i;a[j]-a[i]的最大值,其中j>i;a[j]*a[i]的最大值,其中j>i;a[j]/a[i]的最大值,其中j>i;解决问题:解决这些问题的难点在于j>=i的附加条件,代表被加数,被减数,被乘数与被除数都要在数组中加数,减数,乘数与除数的后面。问题一:a[j]+a...

2018-06-10 23:03:44 1063 1

原创 Android源码分析之OrientationHelper详解

前言:在Android的日常开发中,经常会与RecycleView打交道,如果你只是进行简单的列表展示,可能你不会用到OrientationHelper工具类。但是,如果你有更深层次的需求,对OrientationHelper和LayoutManager的理解和应用就必不可少了。本文,将从源码的角度,对OrientationHelper各参数及方法进行剖析。OrientationHelper源...

2018-06-01 10:15:52 3150

原创 Android滑动冲突之完美实现RecycleView+下拉刷新+上拉加载+粘性Header

前言:在日常的开发中,我们可能遇到各种各样的需求,今天我们主要来一起探究RecycleView+下拉刷新+上拉加载+粘性头部,同时避免滑动冲突的联合实现过程。看到这里,你可能心中暗想,没图说个JB!!!客官别急,下面我们就来看一下最终实现的效果: 上面就是我们最终要实现的效果,现在我们先来对它进行拆分和分析,如下图所示: 从上图可以看出,这是最原始的状态。大致可分为导航栏、广告栏、In...

2018-05-07 14:58:25 2359

原创 Android多线程之IntentService工作机制详解

前言:IntentService在我们平常的开发过程中是非常常见的,我们都习惯于用它去处理一些耗时任务,但是对于它的内部机制,你真的了解?下面我们通过几个常见的面试题,来对IntentService一一剖析。想要了解更多关于Android多线程知识,请移步 Android多线程专栏。常见面试问题:你对IntentService了解么?说一下他的用处和原理?IntentService和S...

2018-03-17 16:43:52 1196

原创 Android多线程之Java 8中ThreadLocal内部实现机制详解

前言:ThreadLocal是线程内部的存储类,通过它可以实现在每个线程中存储自己的私有数据。即数据存储以后,只能在指定的线程中获取这个存储的对象,而其它线程则不能获取到当前线程存储的这个对象。ThreadLocal有一个典型的应用场景,即我们在前文中说到的Android线程间通信中的Looper。每一个线程都有一个私有的Looper对象去处理当前线程的消息队列,有不清楚的同学,可以去上篇文章查看...

2018-03-15 17:01:36 778 3

原创 Android多线程之线程池Executor详解

前言:前面说过,Android系统延续了Java的单线程设计模型,因此在开发过程中经常会去开辟新的线程,去处理与UI操作无关的任务。线程是操作系统调度的最小单元,同时线程又是一种受限的系统资源,不能无限制的产生,它的创建与销毁都会产生较多的系统开销。因此,为了方便线程的管理,Android提供了线程的管理机制-Executor线程池。这里简单复习一下,Android在UI线程进行耗时任务出现A...

2018-03-12 12:40:18 2487

原创 Handler消息机制之深入理解Message.obtain()

前言:在我们日常开发工作中,难免经常会在线程间进行消息传递,而这个过程最常用的实现方式就是Handler消息机制。当然,这并不我们今天的重点,今天我们要重点关注的是消息传递的中间体:Message。我们怎么去获取Message对象?可能大多数同学直接通过 new Message() 的方式创建一个新的对象;对性能和效率有了解的同学可能就会通过 handler.obtainMessage() 或 M...

2018-03-07 17:20:42 14135 1

原创 Android消息机制 & Android线程间通信机制

前言:由于Android系统本身决定了其自身的单线程模型结构。在日常的开发过程中,我们又不能把所有的工作都交给主线程去处理(会造成UI卡顿现象)。因此,适当的创建子线程去处理一些耗时任务是非常关键的。同时Android中非UI线程不能对UI组件进行操作,因此,熟练的掌握并应用线程间消息通信是很有必要的。接下来,我们从Android线程间通信机制和Android消息机制两个方面对以上内容进行介绍。...

2018-03-06 14:38:05 2889 1

原创 Java编程中this和static关键字的用法详解

前言:在平时的编码过程中,相信大家都会频繁地使用到this或static关键字。但可能你仅仅是了解它的用法,而对其内部机制知之甚少。今天我们就一起来探讨一下它们的内部机制。一.this关键字的详解 首先我们来总结一下this常见的应用场景,下面我们定义一个User类,基本包含了我们常见的this的用法,如下所示:public class User { private Str...

2018-03-02 17:18:24 1279

原创 IntelliJ IDEA 创建maven项目

前言:对于J2EE初学者来说,用Idea创建Maven项目可能会有一些困难,也会对项目结构存在大量疑惑。本想写一篇博客来阐述这个过程,但是发现了一篇对Maven项目描述非常清晰的博客,同时可以解决大多数同学对Maven项目不能正常运行的问题。在此记录,和大家共同学习,同时也非常感谢@Angelaboy的分享.博客链接:IntelliJ IDEA 创建maven项目详细步骤解析

2018-01-13 09:33:32 5382

原创 Android自定义View之进度条(带进度提示框)

Android自定义水平进度条,带当前进度值的提示框

2017-10-21 07:07:47 13881 4

原创 Android获取View的宽度和高度

前言:可能很多情况下,我们都会有在activity中获取view 的尺寸大小(宽度和高度)的需求。面对这种情况,很多同学立马反应:这么简单的问题,还用你说?你是不是傻。。然后立马写下getWidth()、getHeight()等方法,洋洋得意的就走了。然而事实就是这样的吗?实践证明,我们这样是获取不到View的宽度和高度大小的,可能很多同学又会纳闷了,这是为什么呢?一直不都是这样获取大小的嘛!疑问解

2017-09-15 16:08:47 12962

原创 利用RxJava和 RxBinding实现倒计时按钮、关键词搜索和按钮防抖效果

前言:最近在进行Android项目开发的时候,遇到了点击按钮获取验证码并且按钮自带倒计时功能的场景、通过输入框进行关键词搜索的应用场景、为防止按钮短时间多次点击的防抖场景。相信这不仅是我遇到的问题,相信在大多数项目中都会遇到这些使用场景。今天我们就来对这些场景进行统一的分析和处理,同时比较传统实现方式和利用RxJava实现方式的异同点,并且通过RxJava去优雅的实现这些功能。废话不多说,接下来我们

2017-06-11 22:48:21 1360

转载 阿里巴巴Java开发手册-命名规约

Java日常开发规范之命名规范及规则。

2017-05-21 21:58:28 4950

原创 mybatis精通之路之TypeHandler初探

前言:直入正题,在我们利用mybatis作为持久层框架存储数据时,从mybatis接收参数到mysql存储数据,都会用到typeHandler类型处理器。这也就是从JavaType->JdbcType的转化过程。由于mybatis初始时已经内置大部分基础类型转化的TypeHandler,已经足够我们平常的简单应用开发了,所以大多数情况下并不需要我们自己去定义类型转换器。但是,当遇到一些特殊情况时,为

2017-05-20 12:21:49 17352 3

原创 mybatis精通之路之插件分页(拦截器)进阶

前言:在上一篇博客中,我们讲到了mybatis的四种简单分页方式。分别是基于数组、Sql语句、分页插件和RowBounds的简单分页实现。不清楚的可以移步mybatis四种简单分页方式,这里详细讲解了几种分页方式的原理和优缺点,适合于初学者,很容易理解,不清楚的同学可以回去瞟上几眼。。任务分析:当然,这并不是我们这篇博客讲解的重点。记得在上一篇中,我们只是实现了最简单的插件分页实现,还非常简陋,功能

2017-05-15 15:36:58 18777 10

原创 MyBatis精通之路之分页功能的实现(数组分页、sql分页、拦截器,RowBounds分页)

前言:学习hibernate & mybatis等持久层框架的时候,不外乎对数据库的增删改查操作。而使用最多的当是数据库的查找操作, 而当数据库数据过多时,符合查找条件的数据可能也会是很庞大的数据。往往在这个时候,我们都不会希望一次性的将所有的数据一起性读取出来,并且显示在UI界面上。常用的操作,就是对查找到的数据进行分页,每次处理小部分数据。这样每次处理的数据量就会在可控的范围,UI的展示也会很协

2017-04-27 21:34:48 53816 19

原创 在CentOs虚拟机下进行网络配置和vsftpd的ftp文件服务器配置

说明:在CentOs虚拟机下进行网络配置和vsftpd的ftp文件服务器配置前言:最近需要在CentOs虚拟机下搭建文件服务器进行文件管理,但是在配置vsftpd服务的时候出现了很多坑,特别在此记录下从CentOs安装完成—>网络配置—>安装vsftpd组件—>防火墙配置—>设置开机重启的完整过程,以供初学者们进行参考。。(1)安装CentOS虚拟记得过程在这里就不多说了,网上有很多教程都很好,也很

2017-03-30 23:13:58 2108 3

原创 Android多线程之线程同步机制(synchronized)详解

前言:相信大家在进行Java开发的时候经常会接触到同步的概念,在多线程并发的情况下,为保证同一个时间点只能被一个线程访问到,就需要用到同步机制。想要了解更多关于Java多线程知识,请移步:Android多线程机制专栏对于一段代码片,或者一个方法怎么进行线程同步?这时就会用到我们今天的主角(synchronized)了。我们日常使用synchronized的时候,经常会直接在方法前面加上sync...

2017-03-23 15:41:32 3389

原创 Java单例模式的各种写法和最优写法推荐

话不多说,直接上代码: 1.懒汉模式 只适合单线程环境,在需要的时候才去创建对象实例(时间换空间)。 优点:在不要对象实例的时候,节省了内存空间。 缺点:在使用的时候会先判断是否为空,为空的话,才去创建对象。所以获取对象实例相对较慢。 class Singleton{ private static Singleton Instance = null; public Single

2017-03-09 21:55:51 1510

原创 Java虚拟机对象创建管理与垃圾回收知识整理与分析--Jvm虚拟机篇

一.Java framwork基础面试笔试知识整理–java基础篇(1)内存模型以及分区,需要详细到每个区放什么。堆:Java虚拟机管理内存中最大的一块,线程共享区域。所有对象实例和数组都在堆上分配内存空间。栈:线程私有,每个线程都会创建一个虚拟机栈,生命周期与线程相同。每个方法被执行的时候就会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口等信息。一个方法执行的过程对应着一个栈帧的入

2017-02-25 20:31:02 2929 2

原创 Java基础知识和常用数据结构整理与分析--Framwork篇

Java基础知识总结及常见面试笔试题整理--Java基础篇

2017-02-25 20:01:49 2722

原创 从0开始搭建rxjava+retrofit+mvp+dagger2整合基础框架(rxjava+retrofit网络层搭建)

古语有云,没有规矩,就不成方圆。其实做什么事都一样,做什么事都要有自己熟悉且大家都认同的一套规矩,这样既能提高自己的做事效率,也方便他人的理解。在移动开发中,mvp是新兴的一种软件开发模式,是经过时间的考验并且大家都认同的解耦框架。它不仅能让我们的代码逻辑更加清晰,不同层间分工不同又相互协作,服务于我们的项目。mode层负责本地数据和网络数据的处理,presenter层负责业务逻辑的处理,view层

2016-12-20 12:00:16 3878

原创 android端快速生成二维码和进行二维码扫描

android端快速即成微信扫一扫功能,并且根据自己的需求快速生成二维码

2016-06-08 23:14:14 23849 12

原创 Clipping Views安卓裁剪工具的使用,使用Android5.0新技术绘制圆角矩形,圆形控件。

最近由于项目中腰经常使用到圆角的图形,以前是直接在drawable文件夹下定义图形的背景样式,由于android系统推出了原生的裁剪方法,因此潜心研究了一下Clipping Views,在这里跟所有小伙伴们分享一下具体使用方法,接下来我将从每个具体方法进行讲解: (1)首先是裁剪矩形,系统提供了两个构造方法对view进行举行裁剪: 第一种是四个参数的构造方法,前两个参数表示裁剪矩形的左上方点的坐

2016-06-02 00:22:49 2714

原创 Java单例模式的各种写法和最优写法推荐

话不多说,直接上代码:(1)//只适合单线程环境,懒汉模式 class Singleton{ private static Singleton Instance = null; public Singleton() { } public static Singleton getInstance(){ if(Ins

2016-05-24 18:55:38 5870 1

转载 csdn博客c币积分获取及管理方法

http://blog.csdn.net/evangel_z/article/details/7256840

2016-05-18 22:43:30 2190 28

原创 如何优雅的实现recycleview加入顶部headerview,实现一起滑动效果

上次使用recyclerviewheader实现了在recycleview的顶部成功加入了headerview,但是随着开发的深入,发现其使用局限性越来越大,代码层次感也不够清晰,感觉太冗余,经过深思熟虑之后,决定使用另一种优雅的方法,直接修改adapter,将headerview绑定到第一个布局,实现效果相当完美,代码层次感也出来了,话不多说,直接上代码:继上一篇通过加入recyclervi

2016-05-18 17:12:33 4754 2

原创 android解决genymotion模拟器无法下载虚拟机问题

genymotion下载虚拟机时出现Unable to create virtual device,Server returned HTTP status code 0

2016-05-13 13:34:42 6889 1

原创 Recycleview实现顶部添加headerview

你还在为recycleview移除了listview的addheaderview方法而发愁??recycleview虽然是listview和gridview的升级版,使用更加方便灵活。内存方面优化也是非常突出的。但是丢弃了很多以前我们在listview里面使用非常顺手并且常用的方法。开始遇到时,真的很想吐槽一下,但是研究一下,原来google把这些方法都留给我们自己去写了,在recycleview

2016-05-12 12:01:48 2489

原创 android面试笔试常见面试题

一.View事件分发机制dispatchTouchEvent->onTouch(返回true,事件已被消费,不会继续往下执行。返回false)->onTouchEvent->onClick().二.ViewGroup事件分发机制(1) 事件从Activity.dispatchTouchEvent()开始传递,只要没有被停止或拦截,从最上层的View(ViewGr

2016-05-11 11:55:27 696 1

原创 androidstudio for windows最常用几个快捷键整理

Windows:(1)cotrl+shift+enter 自动补全代码(2)alt+enter 快速进行强制类型转换(3)alt+上 移动到上一个函数(4)alt+下 移动到下一个函数(5)cotrl+x 剪切一行代码(6)cotrl+alt+s 打开设置界面(7)cotrl+alt+l 格式化代码(8)cotrl+shift+u 大

2016-05-11 11:49:27 545

转载 ssh框架org.hibernate.InvalidMappingException: Unable to read XML解决方法

hbm.xml中:"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd ">在dtd后面有个空格,导致无法解析,将此空格去掉即可。myEclipse自动生成的汪汪会导致这种问题的存在!

2016-01-27 16:11:53 480

原创 myEclipse出现An internal error occurred during...的解决方案

1、首先关闭MyEclipse工作空间。2、然后删除工作空间下的“/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.ast.deploy.core.prefs”这个文件。在这个文件中存储了一些部署项目的信息。删了这个部署的项目的信息就没有错误了。3、重启启动MyEclipse即可解

2016-01-22 18:24:49 2012

原创 linux系统中启动tomcat时出现permission denied的解决方案

出现permission denied问题时代表用户权限受到限制,解决方案:(1)打开终端,通过cd命令切换到下载好的tomcat包下的bin目录(2)执行chmod 777 *.sh 增加权限  (3)ok;

2015-11-07 09:41:01 3480

原创 Android屏幕适配解决方案

众所周知,我们编写的程序要在不同的设备中运行,使客户有完美的体验效果,就需要对不同分辨率的设备作不同的是配方案,接下来以手机和平板为例进行是配方案,以新闻客户端中新闻阅读为例(1)编写再手机和平板中的不同布局文件手机布局:RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns

2015-11-04 19:04:42 410

原创 AndroidStudio使用Android Design Support Library方法

使用条件:sdk更新到对应版本1.引用这个库:在 build.gradle 文件中加上这段代码: compile 'com.android.support:design:22.2.0 。2.可以使用控件包括:TextInputLayout(EditText)FloatingActionButton (Button)Snackbar (Toast)Ta

2015-10-14 22:40:07 1493

RxJava&RxBinding实现验证码倒计时、关键词搜索和按钮防抖效果

利用RxJava&RxBinding实现发送短信验证码倒计时、关键词搜索和按钮防抖效果,同时实现自动获取发送的短信验证码显示到输入框功能。

2017-06-10

RxJava&RxBinding实现倒计时,关键词搜索

学习RxJava和RxBinding操作符的使用,实现按钮防抖,关键词搜索和获取短信验证码并显示倒计时功能。

2017-06-10

Android端最新二维码生成与创建库

提供一刻android端的最新二维码生成与创建的库,直接引入到项目中,进行主项目依赖,简单快捷的创建和生成二维码

2016-06-08

空空如也

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

TA关注的人

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