自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(372)
  • 资源 (64)
  • 收藏
  • 关注

原创 手写网络访问框架

前言继上篇手写ButterKnife之后,我们进来学习一下如何手写一个网络访问框架,首先给出网络框架的流程图,点此查看源码

2018-05-21 19:01:58 497

转载 Android面试题

1.ListView的优化策略和原理参考ListView优化2.Activity和Fragment的生命周期Activity和Fragment的生命周期3.View和ViewGroup的关系View和ViewGroup的组合模式Android的UI界面都是View和ViewGroup及其子类组合而成的。View是所有UI组件的父类,其子类称为组件(Widget);ViewGroup是布局管理器,本...

2018-01-06 19:08:17 557

原创 git分支名称后面多出REBASE解决

前言git分支名后面出来REBASE字样,最后找到问题

2018-08-28 16:54:45 7088

原创 Android热修复手动实现

前言热修复,简单的说就是在不重新下载安装app的情况下,自动修复现有app的问题,今天来做一个简单的实现。效果图点击TEST我们执行下面的方法 public void test(View view) { TestCaculate testCaculate = new TestCaculate(); testCaculate.caculate(this); }...

2018-06-22 11:04:32 924

原创 如何通过adb命令查看data目录下的文件

前言最近在做ANR的检测的时候,需要查看产生的log信息,我们都知道产生的文件再data/anr/trace.txt里,但是如何通过命令来查看呢?今天记录一下步骤。步骤1.手机需要先root,我的手机是魅蓝note52.root成功以后执行adb shell,然后通过su命令获取权限,如果看到$符号变为#的话,说明我们就有权限查看目录中的文件了3.ls -al列出所有的目录,然后我们依次进入到da...

2018-06-14 09:37:09 49224 2

原创 App优化总结

启动加速方向利用提前展示出来的Window,快速展示出来一个界面,给用户快速反馈的体验;避免在启动时做密集沉重的初始化(Heavy app initialization);定位问题:避免I/O操作、反序列化、网络操作、布局嵌套等。方向一为启动的Activity设置一个主题,指定android:windowBackground属性<style name="Launcher"> ...

2018-05-15 16:04:36 492

原创 Android布局优化ViewStub源码分析

前言关于布局优化的内容之前总结过一篇,可以移步Android布局优化总结,今天我们从源码的角度来分析一下ViewStub是如何实现的。源码分析@RemoteViewpublic final class ViewStub extends View { private int mInflatedId; // 被填充View的id private int mLayo...

2018-05-15 11:39:05 334

原创 手写ButterKnife

前言ButterKnife是一个依赖注入框架,8.0之前是通过反射的方式实现,具体实现可以参考这篇文章自定义注解,今天我们来看下8.0之后的编译时注解实现方式,编译时注解相比运行时注解效率高,是通过在编译时生成代码的方式来绑定控件。结构app:我们的Android项目butterknife-annotation:java library,定义注解butterknife...

2018-05-13 15:29:41 611

原创 并发编程总结

这篇文章总结并发编程相关内容重入锁深入重入锁ReentrantLock死锁死锁得条件和避免多线程断点续传多线程断点续传

2018-05-04 17:43:44 259

原创 数据结构

这篇文章总结数据结构

2018-05-04 16:43:31 267

原创 Android面试题总结

1.String转化为Integer的Integer.valueOf方法public static Integer valueOf(String s) throws NumberFormatException { return Integer.valueOf(parseInt(s, 10)); }先通过parseInt方法把String转化为int类型,有个格式检查publ...

2018-05-03 17:52:41 221

原创 内存泄漏总结

垃圾回收垃圾回收机制可以作为Gc Root引用的点的是JavaStack中引用的对象方法区中静态引用指向的对象方法区中常量引用指向的对象Native方法中JNI引用的对象确定是否存在内存泄漏查看Android Profile ,点击Dump Java Heap,然后我们就可以在下面的区域看到每个对象所占有的内存情况如果想对结果进行过滤,可以点击右侧的Filter,例如我们想查看我们应用的内存情况,...

2018-04-16 09:04:37 1181

原创 百度地图使用总结

前言这篇文章总结一下项目开发过程中,百度地图使用到的一些东西1.封装定位管理类/** * 定位管理 */public class LocationManager { private static LocationManager mInstance; private LocationClient mLocationClient; private LocationCli...

2018-04-05 10:34:35 405

原创 项目学习资料

概述从今天开始总结一下,项目中学到的一些东西,方便学习。1.避免从从安装页面打开app后退出后台,再点击桌面icon,多出一个任务栈在启动页的onCreate方法中做判断 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...

2018-03-21 15:03:41 309

原创 Android实现WebView和Js交互

概述今天来看看WebView和Js的交互功能如何实现效果图代码首先我们需要准备一个html文件,放在assets目录中,方便我们从代码中加载,html的代码如下<html> <head> <title>WebView和Js交互</title> <script type="text/javascript"&...

2018-03-14 19:06:23 494

原创 Android面试题

1.Activity启动模式如何查看当前的Activity栈以及Activity栈中的Activity信息adb shell dumpsys activity activities结果如下一般会有两个Stack,Stack#0代表Launcher所在的Activity另外的一个Stack就是我们自己的ActivityTask代表一个任务栈,如果有多个任务栈,会有多个TaskHist代表任务栈中某个...

2018-03-08 15:00:21 309

原创 View的post方法执行的时机

概述View的post方法我一般用来在Activity的onCreate方法中获取View的尺寸,那么为什么在这里面能够正常获取到,它的执行时机又是什么时候,今天来分析一下。首先把自定义View添加到布局文件中<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.and...

2018-03-02 17:24:37 2893

原创 如何判断ListView的某个条目是否滑出了屏幕

public class MainActivity extends AppCompatActivity { private List<String> data = new ArrayList<>(); private ListView listView; private int mPosition; @Override protec...

2018-03-01 15:10:41 3195

原创 java.util.concurrent.RejectedExecutionException异常发生的时机

概述在线程池的使用过程中,我们有时候会遇到下面的异常那么什么时候会发生这个异常呢1.线程池关闭以后,再次提交任务2.提交线程的数量大于最大线程数+任务队列中排队的个数接下来我们模拟一下情况一 ExecutorService service = Executors.newCachedThreadPool(); //执行下面的会发生RejectedExecutionExce...

2018-02-28 18:06:52 3433 1

原创 实现字符串反转

今天来看看如何实现字符串反转,比如输入Game is Over,输出Over is Gamepublic class Question { public static void main(String[] args) { String str = "Game is over adfd aaaa cccc"; System.out.println("=====...

2018-02-28 17:58:14 377

原创 Android开发艺术探索读书笔记(第12章 Bitmap的加载和Cache)

BitmapBitmap占用的内存大小可以通过下面的API获取 Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher); int byteCount = bitmap.getByteCount(); int allocationByteCount = bitm...

2018-02-26 13:26:08 377

原创 Android中注解的分类

前言注解我们可以分为两类,运行时注解和编译时注解,今天我们重点介绍一下编译时注解。运行时注解运行时注解的定义如下,在声明注解时指定@Retention(RetentionPolicy.RUNTIME)即可,相比编译时注解,性能低,但是灵活性好,实现起来比较简单,写法如下@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)//ja...

2018-02-21 11:55:23 1291

原创 ContentProvider使用

概述今天来看看ContentProvider的使用。public class DatabaseHelper extends SQLiteOpenHelper { private static final String TAG = "DatabaseHelper"; //数据库名称 private static final String DATABASE_NAME = "pe...

2018-02-08 18:33:50 330

原创 Activity,Fragment,自定义View状态的保存和恢复

概述今天我们从源码的角度来分析一下Activity,Fragment状态保存和恢复的过程,以及如何在自定义View中保存和恢复状态。通常我们在onSaveInstanceState方法里保存Activity状态。protected void onSaveInstanceState(Bundle outState) { outState.putBundle(W

2018-02-03 21:51:41 1199

原创 Android开发abiFilter

概述Android开发中,如果使用到so库,我们一般会在gradle文件中指定so库支持的架构类型 ndk { abiFilters "armeabi" }然后新建jniLibs目录,建立对应的目录,如下所示这边文章就是来介绍一下abiFilter中相关的一些东西。1.为什么要指定这么多类型 因为不同C

2018-02-01 19:00:43 4733

原创 安卓Support Anotation学习

概述今天来看看Android的support包中为我们提供的一套注解,总共可分为以下几类注解1.Null注解2.资源类型注解3.类型定义注解4.线程注解5.值范围注解6.权限注解7.重写函数注解8.返回值注解9.Keep注解Null注解和资源类型注解public class MainActivity extends AppComp

2018-01-31 19:01:54 282

转载 GPU过渡绘制和GPU呈现模式分析

概述今天学习App的优化,转载几篇别人的文章,方便自己的学习,顺便自己总结一下Android性能优化之GPU过度绘制与图形渲染优化你真的了解过度绘制吗GPU过渡绘制接下来总结一下过度绘制的优化措施1.在Theme中给activity设置背景,这样不算一次绘制,可以减少层级2.减少不必要的背景,可以减少层级,如果一个View和它的Layout有相同的背景,则指定一

2018-01-27 22:14:07 1480

原创 AIDL通信过程中设置死亡代理

概述在进行进程间通信的过程中,如何服务端进程由于某种原因异常终止,我们的远程调用就会失败,影响我们的功能,那么怎么样能够知道服务端进程是否终止了呢,那就是给Binder设置死亡代理,下面看看如何设置。 @Override public void onServiceConnected(ComponentName name, IBinder service) {

2018-01-27 17:56:48 3305

原创 关于Android的Lint检查的一些结果分析

前言在安卓开发中,Lint可以用来帮助我们检查代码中存在的一些问题,使用方法也很简单,Analyze---Inspect CodeLint检查完成后,可以在Inspection Results中看到检查结果下面总结一些常见的lint问题 1.Image without contentDescription,没有给ImageView指定

2018-01-25 10:29:22 1893

原创 关于屏蔽Android返回键的一些思考

前言在Android开发中,有时候我们需要屏蔽掉系统的返回键,比如在闪屏页面或者进行某些特定的操作时,通常的实现要如下两种方式。1.重写Activity的onBackPressed方法,当系统检测到你按下了返回键的时候会触发这个方法,通常是我们手机的back键@Override public void onBackPressed() {// su

2018-01-13 16:32:55 5045

原创 Android修改圆形进度条ProgressBar的默认颜色

前言有时候系统默认的圆形进度条不能满足我们的需求,那么下面我们来对默认的颜色和样式进行一个修改。效果图实现代码因为是圆形进度条,我们需要设置下面这个属性android:indeterminateDrawable <ProgressBar android:layout_width="40dp" a

2018-01-11 14:26:05 4067 2

原创 从零开始搭建MVC项目

前言这篇文章主要记录如何搭建一个MVP架构,同时结合Retrofit,RxJava,Okhttp等主流框架实现网络请求,方便后面的复习以及快速开发。项目分包base:放一些基类,Activity,Adapter,Present等common:存放常量,Applicationmodel:模型层,存放实体类以及网络请求相关presenter:P层,接收View层的命令,调用M层获取数据,通知Vie

2018-01-04 11:25:58 451

原创 三次握手和四次挥手

三次握手示意图四次挥手示意图

2017-12-28 14:17:07 220

原创 Android开发艺术探索读书笔记(第1章 Activity的生命周期和启动模式)

1.onStart和onResume,onPause和onStop从描述上来说差不多,对我们来说有什么实质性的不同? onStart和onStop是从Activity是否可见这个角度来区别的,onResume和onStop是从Activity是否位于前台来区分的。在实际使用中没有明显区别。2.从A Activity启动B Activity,生命周期如下 A onPause->B onCr

2017-12-27 13:14:30 254

原创 Jsp中的静态引入和动态引入

前言在jsp中,要引入一个外部文件可以通过两种方式:I.通过jsp指令<%@include file="" %>引入 II.通过jsp动作标签<jsp:inclue page="">引入其中第一种方式称为静态引入,第二种方式称为动态引入静态引入静态引入是指在把两个页面翻译成Servlet的过程中进行合并 下面是静态引入合并后的Servlet的代码 try { response.set

2017-12-22 14:40:11 932

原创 Jsp内置对象page和pageContext的区别

在jsp中有9大内置对象,其中page和pageContext有什么区别,今天讲一下。区别page代表this,也就是jsp翻译成的Servlet对象,类型是java.lang.Object,一般很少使用这个对象。pageContext代表当前页面的上下文对象,可以获得其他的内置对象,是,代表javax.servlet.jsp.PageContext,下面我们从jsp转化后的Servlet中去看看。

2017-12-22 11:13:47 2111

原创 谈谈表单在提交到Servlet时action中的路径问题

前言表单提交到Servlet,是一个很简单的功能,可是其中涉及到的一些细节你注意到了吗?今天就大家可能出现问题的一个地方进行一个说明。实现首先我们需要一个Servletpublic class HelloServlet implements Servlet {很简单,多余的代码我就不给出了,因为我们今天讨论的重点是路径问题,然后我们需要在web.xml中注册和映射这个Servlet<!--注册

2017-12-21 17:24:29 2239

原创 设置Eclipse编译后class文件的路径

前言在JavaWeb项目中,class文件一般存放在WEB-INF/classes目录中,而eclipse默认生成的class文件不在这个目录中,这个时候就需要我们手动进行设置了,具体步骤如下项目名称右键–>Build Path–>Config Build Path,进入到下面的页面点击右边的Browse,就可以选择WEB-INF下的classes目录了,设置完了以后,有些人会发现WEB-INF目录

2017-12-21 14:44:50 9936 1

原创 Tomcat配置任意目录下的web应用

前言今天来学习一下如何使用Tomcat配置任意目录下的web应用。首先,我们需要手动创建一个web应用,放在任意目录下,这里我放在C盘,起名为firstWebApp,目录结构如下所示firstWebApp ---WEB-INF ---web.xml ---index.jsp这就是一个最简单的web应用了 配置方式有两种 I. 直接把这个web应用放到Tomcat的

2017-12-21 11:53:16 2195

原创 浏览器中管理TomcatApp出现401Unauthorized

前言当我们需要在网页中管理Tomcat中的web项目时,首先在浏览器输入localhost:8080,会出现下面的页面,说明我们的Tomcat服务器启动正常,然后点击右边的Manager App,此时会弹出一个输入用户名和密码的对话框如果用户名和密码不正确,是不能进入到App的管理页面的,会出现没有权限的错误提示页面 这是因为我们没有配置相应的权限,步骤如下进入到Tomcat目录下conf/tom

2017-12-21 11:14:14 2797

自定义viewpager指示器

自定义viewpager指示器

2016-07-17

开源项目微阅

开源项目学习代码

2016-07-15

Android 名企面试题及涉及知识点整理

Android 名企面试题及涉及知识点整理,包括Android,Java,数据结构等知识,面试必备,也可以拿来用于平时的学习提高。

2016-07-07

下拉刷新框架

下拉刷新库

2016-06-23

二维码扫描库

基于谷歌libZxing封装的库,

2016-06-23

微阅读项目

Android项目,适合学习

2016-06-23

高仿大众点评服务端代码

高仿大众点评的服务端代码,可以为移动端提供数据,需要结合mysql数据库实现数据连接

2016-06-19

ListView联动

仿饿了吗等APP,实现ListView联动,包括二级和三级

2016-05-31

ViewDragHelper例子

此Demo展示了ViewDragHelper的基本使用方法,并且处理了和ListView的冲突

2016-05-31

Databinding案例

展示了DataBinding的用法,基本包含了开发常用的用法

2016-05-27

多线程断点续传

使用多线程完成多个任务的下载,支持断点续传,使用数据库保存当前进度

2016-05-18

单线程断点续传

实现了单线程断点续传的功能,服务中启动线程,用数据库保存下载信息

2016-05-17

线程池使用Demo

本Demo演示了不同线程池运行的效果图,如果对多线程学习感兴趣,可以下载

2016-05-06

RxJava使用Demo

介绍了RxJava中Single的使用方法,有兴趣的可以下载,总结的比较全

2016-04-28

RxJava学习Demo

模拟使用RxJava从多个数据源中加载数据,很好的学习资源

2016-04-28

Retroift学习Demo

Retroift学习的Demo

2016-04-25

开源项目妹纸

Meizhi Android之RxJava & Retrofit最佳实践

2016-04-25

MVP模式写的Demo

MVP模式在项目中的使用,方便大家的理解

2016-04-24

mvp模式写的请求天气信息的Demo

标准的MVP模式的使用,请求天气数据的Demo

2016-04-24

仿微信朋友圈弹出评论和赞效果

实现了微信朋友圈点赞和评论弹出的动画效果

2016-04-24

HexEditor.dll

NotePad ++ 插件,用来查看16进制内容,可以用来查看class文件结构,使用方法是在NotePad++的安装目录下的plugins目录新建一个HexEditor文件夹,然后将该文件放到里面

2020-06-12

Android热修复实现

手动实现了一个简单的热修复功能,博客链接https://blog.csdn.net/Small_Lee/article/details/80770450

2018-06-22

Mvp项目架构

利用Retrofit,RxJava,Okhttp搭建的一个Mvp模式的项目,可以在此基础上进行快速开发

2018-01-04

mchange-commons-java-0.2.7.jar

C3P0数据库配置需要的jar包,需要和C3P0和MySql的jar包同时配置

2017-12-07

commons-io-2.5-bin.tar.gz

apache提供的文件传输工具类,一般和commons-fileupload结合使用

2017-10-18

commons-fileupload-1.3.3-bin.tar.gz

apach提供的文件上传工具类,需要结合commons-io包进行使用

2017-10-18

c3p0-0.9.5.2.jar

C3P0最新数据源jar包

2017-08-24

commons-dbcp2-2.1.1.jar

Apache开源数据源所需要的jar包commons-dbcp2-2.1.1.jar

2017-08-24

commons-pool2-2.4.2.jar

Apache开源的数据源需要的jar包,版本为2.4.2

2017-08-24

mysql-connector-java-5.1.43-bin.jar

MySQL提供的用于Java中进行JDBC开发的连接驱动

2017-08-24

基于融云实现的聊天

融云Demo

2016-08-27

webview的一些操作

webview的一些使用,包括处理错误页面,自定义拦截协议,cookie同步

2016-08-22

Retroft+MVP+RxJava+Dagger2封装

Retroft+MVP+RxJava+Dagger2封装,适用于大多数的项目

2016-08-21

Retrofit结合RxJava以及MVP架构

Retrofit结合RxJava以及MVP架构,目前很流行的东西,进行了封装

2016-08-19

RxJava和Retrofit的封装

对RxJava和Retrofit进行了封装,适用于任何项目

2016-08-19

TabLayout使用Demo

使用TabLayout结合ViewPager实现的页卡切换功能

2016-08-02

基于融云的即时通信

基于融云实现的即时通信Demo,集成了会话列表,会话界面,并且实现了自定义部分界面功能,大家可以参考学习,更多功能请大家上融云官网学习。

2016-07-29

友盟推送Demo

基于友盟的推送实现,亲测可行

2016-07-28

极光推送Demo

基于极光推送的Demo,方便大家的学习,详细效果图请见博客http://blog.csdn.net/Small_Lee/article/details/52043087

2016-07-27

妹纸源代码

开源项目妹纸的源码,想学习的可以下载了

2016-07-19

空空如也

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

TA关注的人

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