自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 Nexus 搭建私有maven库

私有 maven 库我对它的评价就一个字:香!!! 本篇标题为搭建公司私有 maven 库。但我的建议是开发者人人都可以搭建自己的私有库。 在日常开发中,拿 Android 为例,开发者总是需要准备各种各样的第三方库、jar 包及 aar 包,或者我们自己也会有一些个人的工具包等。如果是本地管理,我们就需要管理一个时常要更新的本地文件夹。这样的管理不仅繁琐而且容易出现未及时更新最新包的情况。私有 maven 库可以很好的解决这个问题,下面我们就来讲讲如何搭建个人以及公司的私有 m...

2021-01-25 19:24:30 103

原创 Android 面试心得

之前总是在看别人的面经,在和一个即将面临换工作的好朋友聊完之后,感觉自己的经历还是能帮助到一些有需要的人,所以决定自己也写一篇面试心得。 目前网络上的 Android 面经中绝大部分都是从技术知识体系方向上让大家去学习比较全面的知识体系。全面的知识体系,深入的技术原理确实是大家所向往的方向。但个人感觉对于大部分的中级面试者是不太适用的。想要掌握这些东西,不仅需要大量的学习时间同时还需要学习者有很强的自制力,不然很容易就会半途而废。 在最初的刷题过程中,我总是会觉得刷的越多自己不懂的就...

2021-01-18 10:53:45 177 3

原创 Android okhttp3 网络请求工具类

在日常的开发工作中,网络请求是最基本的需求。目前使用较多的是 retrofit+okhttp 的组合使用,但是对于很多新手来说这样的组合方式可能短时间的学以致用有点难度。今天给大家推荐一个我之前使用过的基于 okhttp3 的一个网络请求工具类。 OKhttp 我想大家都比较熟悉了,所以我也不过多的去展开它的具体源码及实现细节了。直接给你们贴上代码:package com.she.suandao.network;import android.content.Context;...

2021-01-15 09:57:22 1624 1

原创 2021重新出发

时间总是在不经意间的飞速流逝。2019-2020对于我来说是特别具有意义的两年。经历了跨行学习,也经历了创业失败。虽然短暂的转化经历并没有让我成功的跨出技术圈,但对于我个人而言这两年的经历让我学会了很多。也祝愿有机会能跨出技术圈的你能够一切顺利。 回望,2019,让我体会最深的是对于公司管理上的艰辛,对于市场方向的判断及时效性。在经历过辞退一起创业的初始团队成员,到公司业务的转型。我尝到了创业路上的冷酷和艰难。在经历了赛道初期的唯唯诺诺到赛道末班车的举步维艰,我学会了果断。如果你不够快不够努...

2021-01-04 13:55:53 98

原创 2018 年终总结

    又一年很快过去了,2018 对于我来说还算是成长迅速的一年吧。    在家庭方面,父亲,母亲的体检结果是除了一些小的毛病,一切都还好。和她,还是相濡以沫,虽然由于工作原因我从上海又回到了北京,但异地并没有给我们的关系带来任何影响。    在工作方面,由于对技术上的追求,对安逸生活的一种恐惧,所以在8月份的时候从原来的公司离职到北京的一家技术型公司上班。从在上海时的朝九晚六到北京的朝九晚...

2019-01-07 18:02:56 587

原创 Android 学习进阶之路

Android 学习进阶之路java 基础知识点java 高阶知识点数据结构及算法知识点Android 基础知识点Android 高级必备素质Android 技术难点java 基础知识点Java Object类方法HashMap原理,Hash冲突,并发集合,线程安全集合及实现原理HashMap 和 HashTable 区别HashCode 作用,如何重载hashCode方法Array...

2018-10-22 11:45:52 457

原创 Android 多重点击拦截

直接贴一个简单实用的防止多重点击的工具类吧。/** * 多重点击 */public class FastClickUtil { private static final int MIN_DELAY_TIME = 300; // 两次点击间隔不能少于300ms private static long lastClickTime; /** * 判断是否...

2018-10-22 11:02:21 472

原创 Android Activity 的四种启动模式

经历过多家面试的人或许可以看出。activity 的启动模式这个知识点或许是所有面试官都绕不开的问题之一了。一个应用程序是由一个或多个 activity 组成。它承载了 Ui 界面,与用户交互。可以说开发 Android 应用程序,activity 是必不可少的一个部分。今天先不讨论 activity 的具体功能。让我们从它是如何启动开始,一步步的深入了解它。在说启动模式之前,我们应该先了解一些 ...

2018-04-28 13:24:34 158

原创 JAVA 设计模式之----单例模式

单例模式可以说是一种程序猿耳闻能详的设计模式之一了。基本上所有的商业项目都会使用到它。那么单例模式到底是什么?它的作用又是什么呢?在了解了它的本质、作用之后我们又应该如何实现它,优化它呢?在实际开发中,由于逻辑需求,某些类在整个项目中只需要一个实例对象,并且它会被多次使用。这个时候我们就会考虑使用单例模式来实现这个类。单例模式的特点是:1、在项目中只能存在一个实例。2、单例类必须创建自

2018-04-25 11:16:00 134

原创 JAVA 设计模式之----综述

在 JAVA 开发过程中,你总会有意或无意的使用到设计模式。通常高质量的项目也必然缺少不了设计模式的使用。总的来说,JAVA 中有23种设计模式。它们分别解决日常开发中的诸如代码简洁、代码复用、代码易读性等许多问题。设计模式的分类:   创建型模式,共五种:单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。    结构型模式,共七种:适配器模式、装饰模式、

2018-04-24 18:59:30 246

原创 JAVA 基础篇之面向对象的理解

JAVA 属于一种 OOP (面向对象)语言。那么面向对象具体指的是什么呢?面向对象的特点:1、将复杂的事物简单化2、相对于以前面向过程的执行者转变为现在的面向对象的指挥者3、面向对象的思想更符合我们习惯的理解思维面向过程实际上就是面向一个个函数,而面向对象是将一件事物的行为与属性进行了封装,方便使用。面向对象有三个基本特征:封装、继承、多态封装:从字面意思就是将对一个

2018-04-24 14:49:42 184

原创 JAVA 基础篇之静态变量与实例变量的区别

在 JAVA 日常开发中,我们在封装类的同时难免需要声明一些静态变量与实例变量。本篇主要讲解它们二者之间的一些区别。首先在语法定义上:声明静态变量时需要在前面添加 static 关键字来修饰。实例变量则不需要。然后再编译过程中的区别:静态变量属于静态存储方式,只要程序加载编译了当前类的字节码,不需要创建任何实例对象就可以直接调用静态静态变量(静态变量在类被编译后直接就会分配内存空间)。实例

2018-04-23 15:08:18 701

原创 JAVA 基础篇之进程与线程

进程进程是程序中关于数据处理的一个可以单独运行的活动,是系统进行资源分配和调度的基本单位。进程是一个实体,每个系统内存会为进程提供一个独立的地址空。通常其包含了:文本区域(存储执行代码)、数据区域(存储变量及动态分配内存)、以及堆栈(存储各种执行指令和本地变量)。进程所具有的特性有:1、动态性:进程是程序在系统中执行各种操作的一个过程,动态生成,动态销毁。2、并发性:任何进程都能和

2018-03-16 13:53:17 111

原创 JAVA 基础篇之接口与抽象类的区别

接口接口(interface),在 java 中接口属于一种引用类型,是一个抽象方法的集合。它以 interface 来声明。一个类通过重写接口中的方法来实现一个接口。接口的主要作用是达到一种类似于行为统一的“协议”。接口内的方法、返回类型等它们默认都是 static 和 final 的。它只是提供了一种形式,并没有提供具体的实现。实现一个接口必须实现它的所有抽象方法。抽象类在 JAVA 中所有对...

2018-03-15 11:28:27 120

原创 Java 基础篇之 String、Stringbuffer、StringBuilder之间的区别

在 Java 语言中,对于字符串操作中,String、Stringbuffer、StringBuilder 占据了必不可少的地位。那它们之间具体有什么区别呢?(对于一些入门程序猿来说,字符串处理似乎只用到了 String)。首先我们从性能上来对比这三个类。再大量改变字符串时 StringBuilder > Stringbuffer > String。为什么会出现这样的性能差呢,我们可以...

2018-03-14 10:23:07 302

原创 Android Handler 机制详解

Handler 机制是 Android 多线程开发中必不可少的一部分。它的常见使用场景在子线程中更新 UI 界面。开发过 Android 项目的人都应该知道,在 Android 主线程中不能进行耗时操作,所以一些耗时的(网络请求操作,大文件处理等)都应该在子线程中进行,但是由于 Android 的主线程是不安全的,不能通过子线程中进行 UI 操作。这时 Handler 机制就成为了子线程更新 UI...

2018-03-12 11:25:57 356

原创 Android 验证码控件 (计时器简单实现)

在 Android 应用开发过程中,基本上少不了注册,修改密码等实现。在这些页面中总会包含了验证码的需求,验证码获取后倒计时的实现也就成了一个应用必不可少的一部分。在 Java 中实现倒计时的方法有很多种( 通过 Handler TimeTask 实现,或者简单点直接使用 Handler HandlerThread 来实现 、Timer与TimerTask 等等)。今天我想使用的是通过自定义一个 ...

2018-03-05 11:23:53 278

原创 2017 个人总结篇

2017对于我来说应该算是一个收获满满,快乐满满的一年了吧。在家庭方面。由于地方医院的误诊,3月份就担心受怕的陪父亲在北京某医院做了各项检查,最后的结果虽然不是十分明确,但起码给了家人一颗定心丸。之后父亲回家的几次检查都显示没有问题。这应该算是2017最让我开心的事情了。母亲的身体还是老样子,偶尔会有一些小毛小病,打打麻将,卖卖小酒,干些自己喜欢的事。家里第二件重要的喜事应该算是哥哥的订婚了。

2018-02-23 16:57:03 352

原创 Android 自定义 Dialog 详解

在实际的开发过程中,原生的 Dialog 往往不能实现我们的需求。自然而然,自定义布局的 Dialog 是你所必须掌握的技术。想要实现自定义的 Dialog 其实很简单。首先你要创建一个自定义的布局文件,然后在你要使用的地方 new 一个 Dialog 实例。通过 dialog.setContentView(View view) 方法将 LayoutInflater.inflate(布局文件lay

2018-01-04 14:25:06 179

原创 Android ThreadPoolExecutor 学会管理你的线程池

初入Android 时对于线程管理是一无所知。觉得只要可以实现需求就算是完成项目了。但在接触久了之后才发现自己需要学的、做的还有那么那么多。 new Thread(new Runnable() { @Override public void run() { //todo }

2017-12-05 16:56:11 274

原创 Android 常用开发工具类之 AppVersionUtil (获取应用版本信息工具)

import android.content.Context;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;/** * 获取应用版本信息工具 * Created by Mrj */public class AppVersionUtil { /** *

2017-11-16 13:04:51 2897

原创 Android 常用开发工具类之 SPUtils (SharedPreference 工具类)

开发过程中难免会遇到如持久保存用户信息等需求,而由于数据量很少感觉使用 Sql 有些杀鸡用牛刀的感觉也有些累赘。所以善于使用 SharedPreference 可以帮助我们在本地保存一些数据量少,又使用很频繁的东西。 SPUtils 一个可以帮助我们很简洁的使用  SharedPreference  的工具类。import java.lang.reflect.InvocationTargetE

2017-11-16 10:06:37 3201

原创 Android 常用开发工具类之 DateUtilsBase (时间处理类)

基本上所有项目都会使用到时间,而一个详细的时间处理类会帮你节省下许多时间处理上的麻烦。import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import j

2017-11-16 09:53:49 467

原创 Android 常用开发工具类之 AppManager

Android 开发过程中总是需要对项目中的 activity 进行管理。如果单独处理每个 activity 的生命周期会显得很多余,也很麻烦。所以这时候就需要一个 activity 管理工具来统一管理项目中的 activity 。import android.app.Activity;import android.content.Context;import java.util.Lis

2017-11-16 09:34:41 604

原创 Android 通过 WebView 请求下载 APK

很少去研究 Webview 的具体使用,之前在项目中遇到,通过点击 H5 中的按钮来进行下载 Apk 。刚收到这个需求想到的第一个想法就是调用 JS 来实现。之后实际运用前去看了看 WebView 的 API 发现了  WebView 下有一个 setDownloadListener 方法。它主要就是负责当你需要在使用 webview 时下载资源用的。具体的下载 APK 方法:一个 Downl

2017-09-25 14:28:36 5359

原创 Android 判断应用是否安装 并打开或下载应用

在开发过程中,有时需要打开其他的应用(如调起支付宝支付),在打开其他应用前我们应该先去判断该应用是否已经安装,如果已经安装则直接打开该应用如果未安装则需要调起应用市场让用户去下载安装应用。下面是个人的一个工具类:import android.app.Activity;import android.content.ComponentName;import android.content.Cont

2017-09-25 13:44:27 2828

原创 Android EditText 使用时遇到 StackOverflowError

一直没有仔细的研究过 Android 原生的一些控件,最近在项目中遇到一个比较常见的问题,在使用 EditText 的 addTextChangedListener() 方法时,在重载方法中使用了 自身的 SetText()方法,结果报了 StackOverflowError  的错误。虽然是一个很简单的错误,但也提醒自己确实得补充更多基础知识了。由于在 EditText 的 addTextC

2017-09-14 12:15:06 467

原创 Android OkHttp 网络请求 使用详解

对于 Android 开发来说,网络请求是必不可少的一件事情,但想要自己开发一个合适又好用的网络请求框架,对于一般人来说这是一件很难实现的事。毕竟在网络请求的过程中有很多因素需要你考虑到。而且目前 Git  上提供了许多好用又方便的第三方框架让你可以更快更简单的实现网络请求的功能。OkHttp 是目前市场上主流的网络请求第三方框架,它可以让你很轻易的实现许多你想要的网络请求,如:配置网络请求缓存区

2017-06-26 02:13:03 495

原创 Android IPC 进程间通信机制之 Messenger

Messenger 作为一个跨进程通信工具,它可以让你通过互相传递 Message 来进行跨进程数据交互共享。对于Android来说,Messenger是一个轻量级的 IPC 方案,内部对 AIDL 进行了封装。它的实现较之 AIDL 方式也更为容易。1、创建我们的服务端 WorkService :import android.app.Service;import android.c

2017-06-17 17:44:24 302

原创 Android IPC 进程间通信机制之 AIDL

从事 Android 开发也跨过了1年的时间了,在之前的工作、开发中,功能实现、第三方框架使用、Copy 网上的代码占据了我的大部分开发时间。学着学着就开始发现个人的综合能力并没有得到有效的提升,虽然大部分的功能都能通过查找来实现,但离开里网络、或者说涉及到底层实现就真的有点懵逼了。经验的积累很重要,个人的学习充电更为重要。对于 Android 开发来说,进程间的通信是一门大课。总会有许许多多

2017-06-17 13:36:59 248

原创 Android 多进程使用简单实例

在 Android 开发过程中,多进程的使用是很常见的。当单进程分配的内存不能满足你的需求时,你就需要开启一个新的进程来支持内存的需求。当你的某些需求需要独立运行时,你都需要一个新的进程来实现你的功能。下面给大家提供一个简单的实现开启多进程的 Demo 。

2017-06-16 12:22:47 813

原创 Android Date、long、String相互转换的工具类

在 Android 开发过程中经常会使用的时间的类型转换,下面是个人整理的一个时间类型转换工具,直接复制就能使用。import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class DateFormatUtil { public DateFo

2017-06-02 23:34:09 1685

原创 Android 自定义 View 的重绘和更新使用

对于新手来说,自定义 View 是一种很让人头疼的实现。自定义过程网上已经很多 demo 了。主要还是让自定义 View 继承自 View 类,然后重写他的onMeasure() 、onDraw()、和 onLayout()方法。在 onMeasure()方法中测量出自定义控件的宽和高并且调用setMeasuredDimension(width, height)方法将宽高配置好,然后调用 onLa

2017-05-27 00:20:07 13500

原创 Android 广播(Broadcast)及广播接收器(BroadcastReceiver)的使用

在大部分项目开发过程中,广播会经常性的被使用到。广播的使用场景有很多,总体来说它的功用主要在于在通信的功能。它可以是不同应用程序间的通信也可以是不同线程间的通信等。作为四大组件之一,它的重要性不言而喻,Android 系统中也内置了许多广播(电量低、开机、锁屏等)。

2017-05-25 00:57:46 1322

原创 Android 使用 Handler 避免内存泄漏的一些建议

内存泄漏是 Android 开发中经常出现的错误。由于我们发送的消息会在 Handler 的 Looper 中不断轮循处理,这样 Handler 的声明周期比 Activity 会更长。所以在使用 Handler 时我们应该将其设为静态内部类,这样可以避免他的实例在 Activity 退出后还持有外部 Activity 的引用导致内存泄漏。还有在 Handler 的中使用外部成员变量是应该尽量使用

2017-05-17 16:53:21 430

原创 android 动画实现之 Tween Animation(补间动画)

对于 Android 初学者来说动画效果的实现是必须掌握的一项技能,官方提供动画分为 Property Animation(属性动画) 和 View Animation(视图动画) 两种。而 View Animation 又分为 Tween Animation 和 Frame animation (帧动画)两种。下面为大家介绍一下  Tween Animation (补间动画)的使用。

2017-05-14 23:50:44 220

原创 Android (OutOfMemory )Bitmap使用优化

对于大部分新手来说 OutOfMemory 是经常出现的错误,尤其是在大量使用 Bitmap 时这样的错误更是时常出现。对于新手来说以下几点可以很好的帮助你避免在使用 Bitmap 过程中出现的 OutOfMemory  错误。      1、及时手动回收 Bitmap 所占用的内存;手动回收 Bitmap 占用内存可以很好的避免错误。如何手动回收呢?Bitmap 类提供了 recyc

2017-05-12 18:02:15 237

原创 Android EventBus 的简单使用

自从使用了 EventBus 之后,代码中的各种广播接收器就随之消失了。不仅代码量少了,而且可读性也更高了。EventBus 的作用是:发布 / 订阅的事件总线。下面我来介绍下它的简单实现。首先为项目添加 EventBus  的依赖:compile 'org.greenrobot:eventbus:3.0.0'举一个简单的例子,在App的主界面里有一个设置界面,打开

2017-04-12 01:44:00 306

原创 Android android-times-square一款好用的日历控件

最近在项目中使用到了 android-times-square  日历控件,在网上搜了挺多博客结果都不是很满意,到 git 上看了源码。终于达到了自己想要的效果以下是我使用的一些小细节,希望可以帮到第一次使用 android-times-square 的你。1、先将 android-times-square 依赖到项目中去:  compile 'com.squareup:android

2017-04-06 22:48:31 2151

原创 Android apk签名过程中遇到的坑

由于项目之前在各大平台上打包的apk是同事使用android studio自动生成的apk文件,导致了apk签名文件使用的是他个人.android下得debug.keystore文件。在版本迭代上出现了很严重也很尴尬的问题,就是只用通过他个人电脑打包的apk才能版本迭代。所以打包apk需要我们手动将自己生成的签名文件与apk一起打包,

2017-03-29 03:38:35 347

nexus-3.21.1-64.rar

nexus maven库管理器

2021-01-22

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

TA关注的人

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