- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 http,websocket和socket详解
一,HTTP 1,概念:http是目前应用最广泛的一个网络传输协议,是属于网络应用层的面向对象的协议. 1.1,HTTP1.1解决TCP3次握手4次挥手耗性能问题:如果有大量的连接,每次在连接,关闭时都要经历3次握手,4次挥手,这很显然会造成性能低下.因此,HTTP1.1开始,默认采用持久连接,使用了一种叫做keepalive connections...
2018-05-31 14:19:10 21612
原创 ExpandableListView的基本使用
一,在Activity中让子条目全部展开//Group左边会默认有以上下切换的图标,假如你有强迫症可以通过mListView.setGroupIndicator(null)去除。mExpandableListView = (ExpandableListView) findViewById(R.id.exp_listview);mExpandableListView.setAdapter(new...
2018-05-23 17:39:23 252
原创 Framwork之各种Manager
一,PackageManager, 可以获取系统应用的相关信息,也可以获取当app的应用名字,包名,应用图标,权限versionName,vertionCode等各种消息.1,获取本应用的相关信息:try { PackageManager pm = this.getPackageManager(); PackageInfo info = pm.ge...
2018-05-23 12:33:33 214
原创 ArrayMap和SpareseArray
一,基本使用 Map<String,String> arrayMap = new ArrayMap(); //要求版本19以上arrayMap.put("1",null);arrayMap.put(null,"2");arrayMap.put(null,"3");二,概念介绍public final class Arra...
2018-05-22 14:30:25 2203
原创 java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getImportant
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getImportantForAccessibility()' on a null object referencegetView()方法返回null,会造成这个异常改成convertView就行@Overridepubl...
2018-05-21 14:07:20 2631
原创 Retrofit的基本使用
一,阐述 Retrofit是一个网络请求的封装,底层使用的是OKhttp。它简化了网络请求过程中参数的配置,可以将json转换成你想要的实体类,也可以配合Rxjava使用,使用简介方便。 和其他网络框架不同的是,它采用了运行时注解的方式提供功能;采用RESTful风格,它是一种架构的规范和约束、原则,符合这个规范的架构就是RESTful架构。 实...
2018-05-17 17:38:36 417
转载 java反射
按例,首先描述定义一下。Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use reflected fields, methods, and constructors to operate on thei...
2018-05-15 20:22:59 303
原创 集成友盟统计功能
需求:统计指定页面的用户点击情况一,注册账号,二,创建产品,拿到appkey三,集成SDK1,添加依赖1.1在工程gralde下添加mavenCentral仓库allprojects { repositories { jcenter() mavenCentral() }}1.2,在app的gradle下添加依赖compile 'com.umeng.sdk:c...
2018-05-15 20:02:34 1209
转载 java浅复制和深复制的区别
一、基本数据类型 & 引用类型1.1 基本概念在讨论 浅拷贝 & 深拷贝 这个问题之前,我们需要先了解 基本数据类型 & 引用类型 这两者之间的区别,否则后面会很疑惑。在Java当中,这两类的代表分别为:八种 基本数据类型:byte、short、int、long、float、double、char、boolean。引用类型:除去基本数据类型的其它类型都是引用数据类型,例如类...
2018-05-15 10:06:16 2515
原创 studio的插件gradle升级到3.0.1报错:Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2...
一,解决本项目异常:只需在工程的gradle.properties文件中添加以下命令:[java] view plain copy android.enableAapt2=false 但新建项目还是报这个异常二,永久性解决,也就是新建项目时不再报这个异常 1,找到studio下的E:\tools\android-studio\plugins\android\lib\templates\gr...
2018-05-14 12:57:08 3604 1
原创 面试题之---Okhttp源码解析
一,Okhttp优点 1,它会从很多常用的连接问题中自动回复 2,如果你的服务器配置了多个IP地址,当第一个IP连接失败的时候,Okhttp会自动尝试下一个IP.Android4.4版本开始,系统就内置了Okhttp.二,基本使用(一)添加依赖implementation 'com.squareup.okhttp3:okhttp:3.10.0'(...
2018-05-14 12:35:40 1128
原创 面试题之---Glide源码解析
(一)Glide和Picasso相比较:1,Glide可以gif动态图,Picasson不可以2,Glide默认Bitmap格式是RGB_565,图片质量不如Picasso(ARGB_8888)加载的清晰,但耗内存小.(但Glide也可以准换成ARGB_8888,而且耗内存也相对小些)2.1,如果你对默认的RGB_565效果还比较满意,可以不做任何事,但是如果你觉得难以接受,可以创建一...
2018-05-12 15:02:15 5702
原创 Android性能优化
(一)一般Java在内存分配时会涉及到以下区域:寄存器(Registers):速度最快的存储场所,因为寄存器位于处理器内部,我们在程序中无法控制栈(Stack):存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆(Heap):堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器(GC)来管理。静态域(static f...
2018-05-12 11:55:25 358
原创 面试题之---EventBus源码解析
(一)介绍1,EvenetBus是一种发布-订阅事件总线.代码简洁,开销小,并很好的实现了发送者和接收者的解耦.(是一种观察者模式)优点:代码简单,速度快;解耦;体积小,jar大概50k;稳定,大概有1亿+的应用中使用2,三要素:A,Event:事件,B,Publisher:发布者,可以在任意线程发布事件C,Subscrible:订阅者,3,通常情况下安卓...
2018-05-11 19:49:08 7801
原创 面试题之---Volley源码解析
(一)基本使用-1,添加依赖compile 'com.mcxiaoke.volley:library:1.0.19'-2,创建请求队列RequestQueue queue=Volley.newRequestQueue(this);-3,创建请求JsonObjectRequest request=new JsonObjectRequest(url, new Res...
2018-05-11 14:51:58 331
原创 面试题之---ArrayList实现原理
单列集合图 1. ArrayList是一个动态数组,实现了List<E>, RandomAccess, Cloneable, java.io.Serializable,并允许包括null在内的所有元素。1.1,实现了RandomAccess接口标识着其支持随机快速访问,实际上,我们查看RandomAccess源码可以看到,其实里面什么都没有定义.因为ArrayList底...
2018-05-10 12:31:24 8239 5
shareSDKDemo
2018-03-19
git命令行提交代码
2018-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人