自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 问答 (3)
  • 收藏
  • 关注

原创 Android面试准备(中高级)

AndroidActivity生命周期onStart()与onResume()有什么区别?onStart()是activity界面被显示出来的时候执行的,但不能与它交互;  onResume()是当该activity与用户能进行交互时被执行,用户可以获得activity的焦点,能够与用户交互。 Activity启动流程startActivi...

2018-08-15 10:46:23 694

原创 Android自定义View之区块选择器

最近撸了一个自定义view,还是比较复杂的,感觉有必要分享下实现的过程。效果先来看下效果吧:我们来分析这个view需要实现哪些效果。 + 首先它有一个刻度尺代表了时间段(也可以是别的什么),并且可以看到完整的刻度尺是比屏幕宽度大的,因此肯定需要可以左右滑动。 + 其次,可以有不可选的区域(gif中灰色块)和选中的区域(gif中蓝色块),点击刻度的空白位置出现或者移动选中区域...

2018-05-30 14:36:39 749 1

原创 可能是最详细的ARouter源码分析

组件化被越来越多的Android项目采用,而作为组件化的基础——路由也是重中之重。本篇文章将详细的分析阿里巴巴开源的路由框架ARouter。从源码的角度解释为什么这样使用,以及避免做什么,让你使用地更加顺滑。项目地址ARouter项目结构我们把项目clone到本地,打开ARouter项目,可以看到分为如下几个Module:其中app、module-java、modu...

2018-05-07 15:22:09 1627

原创 Kotlin教程(九)泛型

写在开头:本人打算开始写一个Kotlin系列的教程,一是使自己记忆和理解的更加深刻,二是可以分享给同样想学习Kotlin的同学。系列文章的知识点会以《Kotlin实战》这本书中顺序编写,在将书中知识点展示出来同时,我也会添加对应的Java代码用于对比学习和更好的理解。 Kotlin教程(一)基础 Kotlin教程(二)函数 Kotlin教程(三)类、对象和接口 Kotlin教程(四)可空...

2018-04-24 09:34:21 1274

原创 Kotlin教程(八)高阶函数

写在开头:本人打算开始写一个Kotlin系列的教程,一是使自己记忆和理解的更加深刻,二是可以分享给同样想学习Kotlin的同学。系列文章的知识点会以《Kotlin实战》这本书中顺序编写,在将书中知识点展示出来同时,我也会添加对应的Java代码用于对比学习和更好的理解。 Kotlin教程(一)基础 Kotlin教程(二)函数 Kotlin教程(三)类、对象和接口 Kotlin教程(四)可空...

2018-04-24 09:33:35 813

原创 Kotlin教程(七)运算符重载及其他约定

写在开头:本人打算开始写一个Kotlin系列的教程,一是使自己记忆和理解的更加深刻,二是可以分享给同样想学习Kotlin的同学。系列文章的知识点会以《Kotlin实战》这本书中顺序编写,在将书中知识点展示出来同时,我也会添加对应的Java代码用于对比学习和更好的理解。 Kotlin教程(一)基础 Kotlin教程(二)函数 Kotlin教程(三)类、对象和接口 Kotlin教程(四)可空...

2018-04-24 09:32:11 387

原创 Kotlin教程(六)Lambda编程

写在开头:本人打算开始写一个Kotlin系列的教程,一是使自己记忆和理解的更加深刻,二是可以分享给同样想学习Kotlin的同学。系列文章的知识点会以《Kotlin实战》这本书中顺序编写,在将书中知识点展示出来同时,我也会添加对应的Java代码用于对比学习和更好的理解。 Kotlin教程(一)基础 Kotlin教程(二)函数 Kotlin教程(三)类、对象和接口 Kotlin教程(四)可空...

2018-04-24 09:31:29 1015

原创 Kotlin教程(五)类型

基本数据类型Java把基本数据类型和引用类型做了区分。一个基本数据类型(如int)的变量直接存储了它的值,而一个引用类型(如String)的变量存储的是指向包含该对象的内存地址的引用。 基本数据类型的值能够更高效地存储和传递,但是你不能对这些值调用方法,或是把他们存放在集合中。Java提供了特殊的包装类型(如Integer)在你需要对象的时候对基本数据类型进行封装。因此,你不能用Collec...

2018-03-29 15:18:16 253

原创 Kotlin教程(四)可空性

系列文章的知识点会以《Kotlin实战》这本书中顺序编写,在将书中知识点展示出来同时,我也会添加对应的Java代码用于对比学习和更好的理解。 Kotlin教程(一)基础Kotlin教程(二)函数Kotlin教程(三)类、对象和接口Kotlin教程(四)可空性[Kotlin教程(五)类型][Kotlin教程(六)Lambda]这一章实际上在《Kotlin实战》中是第六章,...

2018-03-28 10:45:32 625

原创 Kotlin教程(三)类、对象和接口

系列文章的知识点会以《Kotlin实战》这本书中顺序编写,在将书中知识点展示出来同时,我也会添加对应的Java代码用于对比学习和更好的理解。 Kotlin教程(一)基础Kotlin教程(二)函数Kotlin教程(三)类、对象和接口Kotlin教程(四)可空性[Kotlin教程(五)类型][Kotlin教程(六)Lambda]定义类继承结构Kotlin中的接口...

2018-03-23 17:36:21 402

原创 Kotlin教程(二)函数

写在开头:本人打算开始写一个Kotlin系列的教程,一是使自己记忆和理解的更加深刻,二是可以分享给同样想学习Kotlin的同学。系列文章的知识点会以《Kotlin实战》这本书中顺序编写,在将书中知识点展示出来同时,我也会添加对应的Java代码用于对比学习和更好的理解。 Kotlin教程(一)基础Kotlin教程(二)函数Kotlin教程(三)类、对象和接口[Kotlin教程(四)L...

2018-03-21 15:23:54 680 1

原创 Kotlin教程(一)基础

写在开头:本人打算开始写一个Kotlin系列的教程,一是使自己记忆和理解的更加深刻,二是可以分享给同样想学习Kotlin的同学。系列文章的知识点会以《Kotlin实战》这本书中顺序编写,在将书中知识点展示出来同时,我也会添加对应的Java代码用于对比学习和更好的理解。 Kotlin教程(一)基础Kotlin教程(二)函数Kotlin教程(三)类、对象和接口[Kotlin教程(四)L...

2018-03-19 15:09:03 661 1

原创 Android拖拽详解

Android中实现拖拽其实很简单,系统早已经提供了api让我使用,主要用到了View的startDrag(startDragAndDrop API24+) 方法以及OnDragListener。startDrag先来看下方法介绍:/** * Starts a drag and drop operation. When your application calls t...

2018-03-09 16:44:21 5840 1

原创 java web入门——概念理解、名词解释

引言:当你想入门java web后,一定会查阅到很多相关的名词:Servlet,HTML,Spring…等等之类的,但是对于他们之间的关系总是比较混乱的,这篇文章就是理清这些名词的关系。什么是web应用?web应用是一种可以通过Web访问的应用程序。在J2EE领域下,web应用就是遵守基于JAVA技术的一系列标准的应用程序。最简单的web应用什么样?2个文件夹、1个xml文...

2018-03-08 14:12:05 1059

转载 apt(Annotation Processor Tool) 注解处理知识汇总

【Annotation】Processing-Tool详解注解(Annotation)是java 1.5的新特性,是一种能够添加到 Java 源代码的语法元数据。类、方法、变量、参数、包都可以被注解,可用来将信息元数据与程序元素进行关联。元注解元注解就是用来描述注解的注解,在java中有以下几个元注解:@Documented作用是告诉JavaDoc工具,当前注解...

2018-02-11 15:18:23 812

原创 Android使用责任链模式处理二维码扫描结果

众所周知,二维码的扫描结果其实就是一个字符串,我们拿到一个结果需要对内容进行校验,是否是我们需要的信息,然后做一些特殊的处理。比如先判断是不是一个url链接,是则打开这个链接,不是的话进行下一种判断,比如是否是项目中的约定的跳转某个功能的信息…依次下去。普通的做法是使用if-else或者switch-case,但是当有很多种情况需要处理,则会出现很多的if-else,并且每增加一种处理,就需要

2018-02-02 13:58:31 367

原创 Architecture Components源码分析之ViewModel

如果还不清楚什么是ViewModel,可以看下[译] Architecture Components 之 ViewModel 这个系列的文章,翻译自Android Developer的官方文章。ViewModel 类是被设计用来存储和管理 UI 相关的数据,主要实现了两个功能: 1. 在配置更改(如:屏幕旋转)时数据可以保留下来。 2. 在 Fragment 之间共享数据。接下来会通过分析源码的

2017-12-26 10:28:06 446

原创 Architecture Components之LiveData的扩展

最近研究了一下Architecture Components,尝试用这个架构写了一个小demo,发现了一些问题,也有了一些心得,想分享给大家。

2017-12-11 13:32:10 1556

原创 Kotlin 实战翻译 —— 仿微信图片选择开源库ImagePicker

自看了Kotlin的教程后,总感觉简短的示例代码并不能熟练掌握Kotlin,而直接从公司项目练手又又太过风险了。 正巧项目中用到的一个仿微信图片选择库ImagePicker出现了进图片预览界面crash的bug(android.os.TransactionTooLargeException),查找github发现作者已经声明不维护这个库了,issues中也有人提出类似的问题,但并没有解决。于是只能

2017-10-24 17:41:34 970

原创 推荐一个好用小巧的Android引导蒙版(浮层)库

前言每当一个项目开发一个新功能,总会想办法及时让用户得知有这样一个新功能,这时通常会采用引导页或者蒙版(浮层)的方式提心用户,这里有需要关注的新内容。 遇到这种需求,最简单的想法就是将引导的布局直接写在对应的页面中,在首次打开时显示,之后隐藏。但是用这种做法来显示只会出现一次的布局,显然有些浪费资源。而且很low,完全体现不出OOP的编程思想。我们的项目中原来使用的是:http://www.jia

2017-07-30 14:07:26 3997 2

原创 一个关于java初始化的问题

先来看这道题目吧,执行main方法会输出的是什么?public class FieldTest { private int a = 1; private boolean b = true; public FieldTest() { a = 2; print(); } public void print() { Sys

2017-07-20 16:24:23 353

原创 IDEA创建maven项目:Spring4+Mybatis3

打开IDEA,新建项目 这里我们选择webapp,自动创建web.xml。GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。 ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。剩下的一路next就到finish,进入项目,此时会自动下载maven的一些文件,联网耐心即可。打开pom.xml,这是maven

2017-07-05 13:15:18 714

原创 后端api之路——初窥门径

前言环境搭建开始项目@ControllerJSON数据数据校验前言作为一名优秀的(自认为)Android开发工程师,在工作之余研究一些新的有趣的技术是我的乐趣,每当有一些想法就会想去尝试实现,demo敲的多了就产生了自己制作一款个人的app的想法。但是如今互联网的发展,没有后端支持的单机app很难有亮点,每每一些有趣的想法终止于没有后端api的支持,多次之后终...

2017-07-03 13:26:08 1908

原创 Mac 安装mysql问题

如果你是Mac,那记得是要在官网下载DMG Archive的安装包。另外,需要注意,MySQL安装成功之后会弹出提示框,给出了root用户的临时密码,这个密码一定要记住。弹窗的内容如下:2017-06-27T05:38:39.060347Z 1 [Note] A temporary password is generated for root@localhost: p0f*t<YfeDtrIf yo

2017-06-27 14:15:29 461

原创 Android自定义View 时段选择器

android 自定义view 实践

2017-06-22 16:51:22 1281 1

转载 录制App操作生成Gif动态图教程(Android)

本文转载自:http://www.jb51.net/article/78236.htmAndroid App开发完了,或者写了某个特别厉害的功能,自然希望录个gif做个展示。 下图是我录制的一个短信轰炸机应用的效果图: 本文教大家如何录制gif,分享给大家供大家参考,具体内容如下思路生成gif的思路是两步 1、把App操作过程录制成视频 2、根据视频转换成Gif 目前网上录制GIf的思路也

2017-05-05 09:45:29 1586

原创 Mac编译android源码

原本我只是一个开发app应用的android开发工程师,无奈被赶鸭子上架,公司要求我编译android源码,转战系统层的开发。于是上网研究如何编译,资料还是挺多的,看着也不是很难,马上自己上手,结果发现问题还是很多。首先当然是跟着官方的教程: https://source.android.com/source/building 描述最详细的,如果英语不要的话可以结合着看下这篇文章,差不多是翻译

2017-04-27 10:12:09 629

转载 Mac 配置可动态切换的JDK

命令行输入:vi .bash_profile 进入编辑模式,输入以下内容:# 设置 JDK 7 export JAVA_7_HOME=`/usr/libexec/java_home -v 1.7` # 设置 JDK 8 export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`# 可添加其他版本。。 #默认JDK 7 export JAV

2017-04-25 13:15:40 806

原创 常用SQL语句汇总

常用sql语句

2017-04-17 15:31:20 506

原创 android面试题

2017.5补充:线程和进程的区别进程是资源分配的最小单位,线程是cpu调度的最小单位。 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个

2017-04-12 06:53:26 5221 3

原创 《Effective Java》笔记(一)

effective java 笔记

2017-04-02 21:37:37 319

原创 解决ViewPager与父ViewGrop的事件冲突

ViewPager必然消耗事件,父View无法获取事件

2017-04-02 21:02:05 877

原创 Https证书校验不当引起的安全问题

1. 使用Webview进行HTTPs通信Android系统内置了一些可信机构办法的证书,可用于作HTTPs证书校验。实际上,使用Webview组件进行HTTPs通信,其证书验证环节也是系统默认会去做的。若发现证书不合法,Webview将显示一个空白页面,其错误在onReceivedSslError()这个方法里进行处理。使用Webview进行HTTPs通信应当遵循如下安全规范: 1) on

2017-02-16 14:28:12 13216

原创 android 仿IOS弹出框

由于公司禁掉了上传功能,无法使用github等,将自己的代码分享出去。 但是自己做了一个仿IOS的弹出框感觉非常好用,想分享出来,因此就直接把相关代码贴出来,有兴趣的可以直接拷贝使用,遇到使用问题也可以留言。 做之前在网上也看到过很多类似的,但是觉得封装的都不好,因此重新封装了一下,更便于使用。 先来看下使用:new IOSActionSheetDialog.Builder(mActivi

2017-01-13 16:46:32 2020

原创 APP瘦身之webp实践

app瘦身 webp格式图片在android中的使用

2016-11-25 14:32:33 7592 4

转载 崩溃日志 全局crash捕获

android应用不可以避免的会发生crash,也称之为崩溃,无论你的程序写的多么完美,也无法完全避免crash的发生,可能是由于android系统底层的bug,也可能是由于不充分的机型适配或者是糟糕的网络状况。用户发生了crash,由于无法模拟,也无法知道用户当时的crash信息,所以往往也无能为力。幸运的是android提供了处理这类问题的方法

2016-11-08 15:18:31 716

原创 android 实用知识点

此篇文章为记录我android开发工作中使用一些小功能或小技巧,相信总会有你需要的。不定时更新。。。。动态改变EditText的输入内容mIdentificationEt.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequ

2016-10-26 15:46:30 393

转载 android-stuido设置 配置

设置主题,窗口大小,动画效果①修改主题 ②修改全局窗口字体(需要选择中文字体,最好默认不做修改),字号 ③ 窗口动画(电脑性能不怎样可以禁止掉) 修改menu或者toolBar这里我是添加了创建class,fragment,activity的ToolBar,这个根据个人情况 打开工程设置①禁用自动打开上次关闭工程 ,禁用退出提示 ②打开新项目提示方式 禁用自动检查更新①取消as自动更新 ②

2016-10-18 21:06:12 703

原创 Listview优化总结

Listview是andorid中最常用的控件之一,但要用好这个控件并不是那么容易。不注意优化的使用经常出现页面卡顿,OOM等问题的出现。在此本人将自己的拙见整理汇总,归纳listview的优化措施。 1.复用convertView 2.viewHolder保存控件 3.分页加载 4.UI卡顿优化 5.OOM

2016-07-28 17:23:37 663

转载 Http Status Code(状态码)

HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。消息(1字头)这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0

2016-05-13 12:46:56 409

空空如也

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

TA关注的人

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