自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (6)
  • 收藏
  • 关注

原创 图解HTTP读书笔记

返回结果的HTTP状态码服务器返回的各类状态码状态码以3位数字和原因短语组成。数字中的第一位指定了响应类型,后两位无分类。响应类型有以下五种类别原因短语1XXInformational(信息性状态码)接收的请求正在处理2XXSuccess(成功状态码)请求正常处理完毕3XXRedirection(重定向状态码)需要进行附加操作以完成请求4...

2020-02-12 15:55:45 164

原创 AndroidStudio3.5 以后修改内存大小

如图所示,从Help中选择对应选项:在打开的文件中输入内存大小:# custom Android Studio VM options, see https://developer.android.com/studio/intro/studio-config.html-Xmx5g重启Android Studio,使配置生效注意,不能直接修改bin下的配置文件,MAC直接修改配置文...

2019-12-31 17:39:16 877

原创 Android 10 获取剪切板内容

一般可以放在Activity的onResume中调用如下方法://获取剪切板内容private void getClipboardData() { this.getWindow().getDecorView().post(new Runnable() { @Override public void run() { //把获取到的内...

2019-12-17 17:40:09 15045 10

原创 Retrofit2.0 使用教程——MVP查快递

使用准备build.gradle中配置引用implementation 'com.squareup.retrofit2:retrofit:2.6.2'implementation 'com.google.code.gson:gson:2.8.2'implementation 'com.squareup.retrofit2:converter-gson:2.6.2'需要导入的包除了r...

2019-12-06 12:02:58 274

原创 ViewPager中的数据不更新

解决方式使用FragmentStatePagerAdapter,可以每次更新数据,且数据会是最新的。若使用FragmentPagerAdapter则可以在每个fragment中开放set方法,用来修改数据。注意:不能使用setArguments()方法,这个只能在新建时候使用一次,否则会发生java.lang.IllegalStateException: Fragment already a...

2019-12-04 15:38:08 249

原创 RecyclerView使用以及避坑指南

基本使用继承RecyclerView.Adapter,并在内部自定义对应的ViewHolderpublic class HelloRecyclerAdapter extends RecyclerView.Adapter<HelloRecyclerAdapter.ViewHolder> { private List dataList = new ArrayList(); ...

2019-10-29 18:24:04 293

原创 android新版本(8.0以上)使用Toast的那些坑

华为、三星等机型禁用通知权限后Toast不弹出原因查看Toast源码后发现,Toast显示要通过INotificationManager类来实现,而当通知禁用后,调用此类会返回异常,所以导致通知不显示,源码如下:public void show() { if (mNextView == null) { throw new RuntimeException("setView mus...

2019-10-11 16:54:43 989 2

原创 Android性能优化整理总结

性能优化的目的在不断地迭代开发过程中,我们的应用功能会越来越复杂,代码量也会不断增加。再加上偶尔的重构、人员的变更等等原因,我们曾经那个如丝顺滑的项目也会渐渐变得卡顿。那么这个时候,就不得不提性能优化这个话题了。正好这段时间有空,就整理了一下常见的性能优化的几个方面以及各个方面的注意事项。一来是给自己脑中的知识做个梳理,加深下记忆,二来也能给一些萌新提供点思路。内存优化内存优化,可以说是性...

2019-10-09 18:30:04 173

原创 Android 面试中,常见的 java 问题(1)

如何停止一个线程请求?详情Thread.stop()可以停止,但是不安全的,已废弃的方法,不建议使用Thread.interrupt()中断当前线程,可以在线程中用isInterrupted()来判断线程是否中断。在线程的合适时机抛出异常。线程之间通信方式 详情socket文件传输aidl(binder)剪切板intent+bundle使用Message线...

2019-09-25 15:46:32 278

原创 Android系统启动流程

1. 启动电源以及系统启动电源键按下以后,引导芯片代码从预定义的地方开始执行,加载引导程序BootLoader到RAM,然后开始执行。相当于电脑启动时候硬件自检并拉起主板自带启动程序的过程。2. 引导程序BootLoader引导程序 BootLoader是在 Android 操作系统开始运行前的一个小程序,它的主要作用是把安卓的定制Linux拉起来并运行。类似于电脑的主板程序拉动Window...

2019-09-19 15:45:19 137

原创 哈希算法和HashMap原理

哈希算法什么是哈希算法哈希算法不是一个特定的算法,而是一类算法的统称,也叫散列算法。算法的作用哈希算法是为了把任意一个数据,通过计算生成一个定长的key。一个数据只能与一个key对应,通过数据可以得出key值,不能通过key逆推出数据值。比较官方的说法:f(data)=key,输入任意长度的data数据,经过哈希算法处理后输出一个定长的数据key。同时这个过程是不可逆的,无法由k...

2019-09-04 15:55:23 570

原创 AndroidStudio3.5 xml格式化错乱问题解决

如下如所示,选中后点击apply->ok,然后完成

2019-08-28 10:15:11 125

原创 PackageManagerService类作用分析

程序包管理程序包管理主要有三个内容:提供一个能够根据intent匹配到具体的Activity、Provider、Service。即可以把intent转化为可以被java类加载器识别的Component进行权限检查提供安装、删除应用程序的接口以上三个功能主要在PackageManagerService类中。以后简称PMS。包管理概述​ 框架可以分成三层,是应用程序层、P...

2019-07-12 14:53:15 653

原创 WindowManagerService分析

1.WMS概述WMS是系统的其他服务,无论对于应用开发还是Framework开发都是重点的知识,它的职责有很多,主要有以下几点:窗口动画窗口间进行切换时,使用窗口动画可以显得更炫一些,窗口动画由WMS的动画子系统来负责,动画子系统的管理者为WindowAnimator。输入系统的中转站通过对窗口的触摸从而产生触摸事件,InputManagerService(IMS)会对触摸事件进...

2019-06-14 15:43:06 139

原创 Android主线程消息循环简介

主线程消息循环简介主线程就是ActivityThread,在ActivityThread的main方法中,新建了Looper并开启了Looper循环。循环开启后,每当有新消息进入,Looper会处理对应的消息,处理完后进入休眠状态,主线程的一系列操作都是在这种循环中完成的,这就是主线程的消息循环。Handler运行机制什么是HandlerHandler在日常开发中,我们经常会接触到,通...

2019-04-10 16:03:13 673

原创 Socket通信原理及举例

大家或多或少的都听过Socket这个单词,我们都知道Socket是用于网络通讯中的某个步骤,那么Socket到底是怎么一回事呢?我们下面来仔细说一下。TCP/IP协议要想理解Socket,那么就不得不先熟悉一下TCP/IP协议族。TCP/IP(Transmission Control Protocol/Internet Protocol),既传输控制协议/网间协议,定义了主机如何接...

2018-06-04 19:53:30 1498

原创 Android中的Binder详解

Binder简介由于Binder在Android的信息传输中占有比较重要的作用,所以把对Binder的分析单独出一篇文章来记录一下。什么是BinderBinder,翻译为粘合剂,在Android进程间通讯相关的知识中经常出现。一般来说对Binder的解释通常有以下几种:Binder是Android中的一个类,实现了IBinder接口。Binder是Android独有的一种跨进程...

2018-06-01 16:17:07 1635 1

原创 Android IPC之AIDL详解

AIDL基本介绍AIDL的概念AIDL,全称是Android Interface Definition Language,也就是Android接口定义语言。所以AIDL也可以算作一种编程语言,它对应的文件以.aidl结尾。这门语言的设计主要是为了进程间的通讯。这个语言其实是一个模版,通过这个模版,系统会为我们 生成一个Binder文件,这个文件才是进程间通讯的关键。 我们可以完全不使...

2018-06-01 16:10:32 490

原创 Android IPC之Messenger的使用

这篇文章主要通过一个小程序来示范一下用Messenger在进程间传递消息的过程。功能简介服务端功能在服务端进程中创建一个Service处理客户端请求。当收到客户端的消息以后,打印客户端消息。然后返回一个消息回执到客户端。客户端功能在客户端进程初始化时候,绑定对应的服务端。给服务端发送消息,发消息类型为Message对象。然后等待服务端返回并观察日志输出。当收到服务端...

2018-06-01 16:09:19 347

原创 android中常见的IPC机制

最近在项目中再次用到了多进程相关的内容,这里结合最近看到的一些资料和个人积累对android的多进程这块进行一个总结。由于android多进程的内容比较多,这里分成几篇文章来讲解:Android中的多进程关于进程与线程在android中,一般情况下,一个应用对应一个进程。这个应用内部可以创建自己的子线程用来执行网络加载、数据处理等耗时操作,可以用UI线程来控制界面的交互、动画的执行等...

2018-06-01 16:06:44 464

原创 Activity详情——Android8.0中Activity的启动流程

每个Android开发者都知道,可以用startActivity()或者startActivityForResult()来启动一个Activity。那么startActivity()这个方法到底是通过什么样的调用流程来启动Activity的呢?下面我们从源码的角度来看一下调用流程:读源码前的准备android的服务端和客户端客户端:和各个App紧密相关的部分,比如Activi...

2018-05-24 14:37:06 5853 1

原创 Activity详解——Activity生命周期整理

Activity详解——Activity生命周期整理常见的各个生命周期介绍onCreate()和onDestroy()onCreate:表示Activity正在创建,是Activity生命周期的第一个方法。在这个方法中我们可以做一些初始化工作。比如加载布局资源,初始化数据等。onDestroy:表示Activity即将被销毁,是Activity生命周期中的最后一个回调。我们一般...

2018-05-17 18:31:22 333

原创 Activity详解——Activity的xml配置

首先是一些生命周期一览。如下xml中是Activity的xml配置方法的一览以及简介,详细的介绍可以继续往下阅读。&amp;lt;activity &amp;lt;!--是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务,默认false--&amp;gt; android:allowTaskReparenting=[&quot;true&quot; | &quot;false&quot;]

2018-05-17 14:51:06 6756

原创 Activity详解—— Activity基本用法

Activity详解—— Activity基本用法Activity的xml配置Activity在使用时候必须在xml中设置,否则在启动Activity时候会找不到当前的类。下面配置是常用的作为程序入口的Activity配置。如下设置后,点击应用启动图标,第一个启动的就是当前Activity。 &amp;lt;activity android:nam...

2018-05-17 14:45:22 15981

原创 Dialog类型的二三级联动选择器

picker使用方法:构建数据使用的是一个自定义类,支持传入泛型。基本数据类如下:public class PickerModel<T> { private String name = ""; private List<PickerModel> models; private T t;}以时间选择器为例,构建数据的方法如下:private static List<PickerM

2017-09-05 12:11:19 379

原创 Android中View的事件体系(3)——自定义横向滚动viewGroup

通过前几个知识,可以自定义一个横向滚动的viewGroup这个可以横向类似于viewpage+fragment而fragment中包含listView的效果,如果不做处理会有横向和纵向的滚动冲突,现在处理后可以实现既可以横向滚动又可以走纵向滚动,这里比较简单,只支持每个子view都是同样的宽高的情况,而且不支持子view的padding和margin。 具体的代码如下,里面有详细说明:@Suppr

2016-06-30 18:00:30 611

原创 自定义横向日期选择器,可滑动,可点击

可以点击时间,然后触发不同时间下不同的操作,在项目中有用到,所以分享一下

2016-06-21 16:54:30 7231 2

原创 AIDL简单实现(2)

在以上基础上调用添加书本接口,如下方法:先查看一下书籍列表,然后添加书籍,然后再请求书籍列表。 修改的代码如下:public void onServiceConnected(ComponentName name, IBinder service) { // 通过Binder来传递bookManager IBookManager bookManager = IBookManager.

2016-06-04 19:06:04 432

原创 AIDL简单实现(1)

1、服务端服务端首先要创建一个Service用来监听客户端的连接请求,然后创建一个AIDL文件,将暴露给的客户端的接口在这个AIDL文件中声明,最后在Service中实现这个AIDL接口即可2、客户端客户端首先要绑定服务端的Service,绑定成功后,将服务端返回的Binder对象转成AIDL接口所属的类型,接着就可以调用AIDL中的方法了。3、AIDL接口创建AIDL支持如下接口类型:除去shor

2016-06-04 19:04:10 447

原创 自定义android折线图,实现左右滑动和快速滑动

由于折线统计图在绘制过程中,会经常拖动,而每次拖动都需要重新绘制,所以考虑使用surfaceview。1、继承Surfaceview,实现SurfaceHolder.Callback, Runnable接口 /** * 画布创建时候执行的方法 * * @param holder */ @Override public void surf

2016-05-23 16:47:58 5818 1

原创 SurfaceView简单模版

代码比较简单,需要实现SurfaceHolder.Callback接口和Runnable接口,同时继承SurfaceView类,然后直接上代码吧:package com.wscq.linechart;import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet;im

2016-05-23 16:03:15 393

原创 自定义时间选择器

首先简单介绍一下这个选择器,可以旋转表针的方式旋转选择时间,然后在下一个视图中选择分钟数。通过两个接口回调来返回选择的结果。接下来说一下编程思路:

2016-05-16 18:01:41 464

原创 Android自定义View的一般步骤

设置当前View自定义属性需要在res的values文件夹下新建个attrs文件,在attrs文件中设置相关的自定义属性设置自定义属性的名称

2016-05-08 22:19:34 5528

原创 android绘图常用方法归纳

自定义绘图中难免会用到各种绘图方法,所以我在这里归纳一下。可能还有一些方法没有归纳完整,以后我会慢慢整理,直到达到一个比较完善的程度。

2016-04-24 10:19:23 591

原创 android中Drawable方法详解

常用的drawable方法总结,在网上收集了好久。

2016-04-23 22:04:36 4738

原创 Android中View的事件体系(2)——View滑动与事件分发

1、View的滑动1.1、使用ScrollTo和ScrollBy滑动ScrollTo(x,y):滑动到某个位置,传递的是位置的坐标 ScrollBy(x,y):滑动某个距离,传递的是移动过的距离 同时这两个方法移动的是view中的内容,而不是view本身,比如作用于Layout,将会移动的是layout中button的位置。从理解上来说,可以理解为画布在移动。操作简单,适合于对View的内容滑动

2016-04-13 13:40:58 447

原创 Android中View的事件体系(1)——坐标体系与移动

view的一些基本概念的整理和汇总,自己记录一下,用来方便以后的学习,同时也可以在使用时方便的找到对应的知识点。

2016-04-03 20:50:22 576

原创 android属性动画常用方法总结

一些android常用的属性动画总结,包含一些常用的方法,以及这些方法的作用

2016-03-28 15:52:29 418

原创 Android中,单位dp、sp、px互相转换工具类

可以定义一个工具类,用来获取系统的转化比值,然后需要使用时调用即可。具体代码如下:/** * dp、sp转化工具 * * @author h55l5 * */public class DisplayUtil { /** * 将px转化为dip,保证尺寸大小不变 * * @param context * @param pxValue

2016-03-27 22:10:26 691

原创 利用ObjectAnimator实现侧滑菜单的效果

objectAnimator是一种焦点可以随着动画移动的动画,下面用一个简单的平移动画的例子,来实现侧滑菜单。

2016-03-23 11:28:14 616

可以左右拖动和快速滑动的折线统计图

使用surfaceview开发的折线统计图,可以左右滑动,手指快速滚动后可以有快速滚动的效果,只需要传入一个对应的list 既可以使用。

2016-05-23

时间选择器

一个可以用来选择小时和分钟的时间选择器,选择完成以后可以回调对应的接口方法,用来给外部赋值

2016-05-16

圆形时间选择器

圆形时间选择器

2016-05-16

购物车支付列表,支持下拉刷新,上提加载

通过chockBox实现多选支付列表,可以实现下拉加载多条数据。数据大于一个屏幕也可以精确多选并且计算金额。

2015-07-27

仿ios导航栏滚动的例子

一个类似ios的导航栏滚动效果,适合于企业介绍,新闻浏览等内容时使用。下载后既可运行。

2015-04-23

基于jsp的班级信息管理系统

一个简单的jsp网站,可以实现对班级内部信息的简单增删改查操作。方便查看学生信息,前后台分工明确,可以为初学者提供参考。此次上传的直接是web工程,推荐用myeclipse进行导入后打开。本程序用的是jdk7以及tomcat6.0和myeclipse8.6开发完成,在安装了mysql的电脑上运行成功。其余情况未做测试

2014-06-01

空空如也

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

TA关注的人

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