android
文章平均质量分 67
HBpencil
鉴于CSDN的浏览体验之差,本博客已经停用。
https://hb-pencil.github.io/
展开
-
使用okHttp发起请求并用fastJson解析
使用okHttp发起请求并用fastJson解析。 第一步要先在AndroidStudio添加支持库。 okHttp:http://square.github.io/okhttp/ fastJson:https://github.com/alibaba/fastjson/wiki/Android%E7%89%88%E6%9C%ACpublic class okHttpUtils{ /**原创 2017-03-19 16:57:33 · 1575 阅读 · 0 评论 -
Activity启动大致流程
Activity启动大致流程public static void main(String[] args) { ...... Looper.prepareMainLooper();//实例化,同时里面引用有个ApplicationThread,是个binder,也同时实例化 ActivityThread thread = new...原创 2018-03-31 15:12:01 · 187 阅读 · 0 评论 -
AIDL,广播,Provider注意的一些小细节
关于使用AIDL需要注意的几个点服务端的进程可能异常停止,此时客户端拿到的binder是失效的,所以要为拿到的binder设置监听,即linkToDeath(实现接口的匿名内部类);然后在接口实例的方法里面调用unlinkToDeath(),之后可以进行服务重绑定当为服务端注册客户端监听时,客户端使用的Listener接口应该是定义为AIDL接口,普通接口不能跨进程,服务端集合使用Remo...原创 2018-04-22 16:27:16 · 510 阅读 · 0 评论 -
Android暑期实习面经部分记录(二)
Bigo客户端2019届实习面经周一在华工参加了bigo笔试,感觉答得不好,然后很意外这周收到面试通知。昨天下午大概准备了下,早上又参加了趋势科技的笔试。下午就去面试bigo了,三面大概持续了>=2.5小时,也是挺累了,天气又热,但愿后面有好结果吧。一面先聊聊笔试上的编程题(看见自己答卷上的分数惨不忍睹,确实是发挥的不好)原创 2018-05-19 20:27:47 · 767 阅读 · 0 评论 -
OkHttp基本原理浅析
OkHttp基本原理浅析我们先来看下OkHttp的两个使用方法 同步: //同步执行方法,不应该在UI线程使用 response = client.newCall(request).execute(); //异步方法 response = client.newCall(request).enqueue(new Callback() { ...原创 2018-05-07 13:35:20 · 3284 阅读 · 0 评论 -
由电脑屏幕刷新频率所联想到的一些Android知识点
由屏幕刷新频率所联想到的一些Android知识点仅结合自己以前了解的片面知识做出的不负责任的猜想我们知道,当前笔记本电脑屏幕刷新频率大都是60Hz,据说屏幕帧数只要过了30Hz,就能感到流畅,实际上,GPU(显卡)即使性能很强,玩游戏帧数达到上百帧(每秒计算上百副图像的数据,也就是渲染),屏幕刷新频率低也没有用,所以才有电竞屏,通常都在120Hz以上。那么,这个跟手机有什么关系呢。我记...原创 2018-06-04 12:34:54 · 488 阅读 · 0 评论 -
Fragment的一些注意事项
Fragment的一些注意事项我们注意到,使用Fragment的时候,传参数是利用argument,而不是直接通过构造方法传参,那是为什么呢?实际上,因为fragment的生命周期依赖于Activity,加入Activity销毁重建(屏幕旋转),Fragement也要创建的,这个时候,按照官方文档的说法,只有无参构造函数才会被调用。那么问题就很清晰了,自然是不能利用构造函数传参的。官方...原创 2018-05-30 20:16:07 · 341 阅读 · 0 评论 -
Http状态码
Http状态码分为五类消息成功重定向请求错误服务器错误消息状态码为100~199,表示服务器已经接受了请求但并不完全接受,需要返回给用户一个临时响应,用户需要进一步请求。比较少用或者说谨慎使用。eg. 100 continue成功状态码200~299,表示服务器已经成功接受了请求并已经做出处理或将要处理。eg. 200 OK 202 ...原创 2018-06-09 14:52:41 · 194 阅读 · 0 评论 -
轻量级线程——Kotlin之协程
轻量级线程——Kotlin之协程协程是一种“轻量级线程“,从Kotlin 1.1开始引入。由于一些耗时操作(如网络IO、文件 IO、CPU或GPU密集型任务)会使线程阻塞直到操作完成,协程提供了一种避免线程阻塞、开销更小且更加可控的异步操作。为什么需要协程阻塞还是挂起协程可以被挂起而不阻塞线程,线程的阻塞代价是昂贵的。尤其是创建线程数量是有限的,当线程被阻塞,那些重要的任务...原创 2018-07-18 14:41:07 · 9520 阅读 · 0 评论 -
【转】Android状态栏、导航栏、DecorView高度
文章非原创 原文地址:这里写链接内容1:DecorView的高度 DecorView的高度代表的是: 整个装饰窗口的高度, 这个高度包括:状态烂的高度和导航栏的高度.(状态栏和导航栏通常叫做装饰窗口, 而ActionBar不属于装饰窗口)这个高度, 可以代表着整个玻璃屏幕的高度.获取方式:mActivity.getWindow().getDecorView()2.Window...转载 2018-07-19 14:25:56 · 2177 阅读 · 0 评论 -
关于类加载机制的一些笔记
类加载流程基本过程:加载——验证——准备——解析——初始化——使用——卸载 加载: 1.获取定义这个类的二进制流,不一定从class文件获取,所以可以自定义类加载器。 2.将二进制流转为JVM方法区的数据结构,载入方法区 3.在方法区中生成Class对象,作为访问这个类信息的外部接口 验证: 1.文件格式验证,校验合法性,比如魔数值”cafebabe” 2.元数据验证,比如类和字...原创 2017-11-13 20:01:47 · 173 阅读 · 0 评论 -
JVM/Android View知识点
JVM部分基础回忆jdk8取消了永久代,jdk7常量池移到堆中新生代中Eden和Survivor内存比为8:1:1,每次只有一个survivor可以用,实际可用为90% 。新时代:老年代为1:2。大对象直接进入老年代,小对象优先进入Eden,GC发生时没有被回收,则进入survivor,熬过一定次数进入老年代,当然也并非绝对。survivor内存不足时会进入老年代,老年代不足会进行GC...原创 2018-02-20 19:44:47 · 249 阅读 · 0 评论 -
Android 动画复习
Android常用动画有frame(帧动画)动画,tween(补间动画)动画,属性动画。 1.frame动画 作为帧动画,frame动画根据快速切换图片而达到动画效果。通常用xml定义动画会更好。在res/drawable目录下新建xml文件。<?xml version = "1.0" encoding = "utf - 8"?><animation-list xmlns:android="h原创 2017-04-25 22:59:11 · 193 阅读 · 0 评论 -
Android4.4之后以及7.0访问相册和裁剪相关问题
Android4.4之后我们知道,android4.4以后,如果以下代码直接访问系统图库Intent intent = new Intent(Intent.ACTION_GET_CONTENT);intent.setType("image/*");得到的Uri不再是content://media/类型的Uri,而是conten://…provider/类型的Uri。Android4.4之前返回的格原创 2017-07-31 19:57:05 · 1142 阅读 · 0 评论 -
android实现gradle动态依赖打包
一、gradle基本知识gradle是基于Groovy语言的,一个Android Project项目基本会生成三种gradle文件:module gradle、project gradle 和 setting gradle - module gradle一个模块有一个,如 上图所示app.gradle和firstflavor.gradle。该gradle是配置本模块信息的 - project原创 2017-10-16 23:10:26 · 4900 阅读 · 0 评论 -
Android 4.4 6.0 7.0拍照、访问图库一些记录
Android 4.4 6.0 7.0拍照、访问图库一些记录按照个人实践和理解,总结出以下一些情况。 以下内容纯粹是本人自己目前总结出来的,可能存在重大误导错误,请持怀疑态度4.4以后使用Intent 的 GET_CONTENT,setType访问图库返回的uri为带doucument的content://…provider类型Uri,为只读Uri无法存入更改后图片,可以转化为绝对路径,再转化为f原创 2017-11-20 19:41:48 · 222 阅读 · 0 评论 -
自定义View的构造函数
一些琐碎的随手笔记canvas.drawBitmap()直接画图片,可以用matrixcanvas.drawPath()直接按路径画canvas.drawXXX()直接画图形,可以用Shader加渲染效果,如渐变,和附加图片渲染BitmapShadercanvas.clipPath()按路径裁剪画布new一个canvas时注意传入一个bimap实例,但是这个bitmap应该是未绘制的...原创 2018-02-10 16:46:50 · 564 阅读 · 0 评论 -
关于方法内部的类使用final
原因在方法中的内部类访问方法内的局部变量时,jdk8之前必须使用final。反编译后看出,内部类实际上也会生成一个有构造方法的类,引用的变量作为参数传递了进来,包括外部类实例(这也是为什么内部类默认会持有外部对象的引用,容易造成内存泄漏),然后赋值给了自己的变量,也就是说如果在内部类里面改变外部变量的值,实际上改变的只是内部类自己的变量值,并非外部变量的值,就像方法传变量过来一样,无法在方法里...原创 2017-10-11 16:56:02 · 1083 阅读 · 0 评论 -
十二月份复习部分重要知识点总结
十二月份复习部分重要知识点总结kotlin 中data class只做数据类,不要有封装其他逻辑操作。“null”也可以以有 toString()。Java 内部类的final字段,从反编译结果可知本质上是为了杜绝数据的不一致性。因为传递的实际上是拷贝而不是值或对象本身,如同方法传参无法在方法里面改变原来的值或者对象的引用。如果不为final,在内部类中看似可以成功改变外部的值或引用,但实...原创 2018-01-01 15:06:37 · 247 阅读 · 0 评论 -
Android暑期实习面经部分笔试记录(一)
Android暑期实习面经记录阿里一面,15min估计阿里一开始也是没打算要我的, = =面试管聊了不久,也没问什么问题,都是闲聊。项目单向链表(插入,删除快)双向链表(这个就厉害了,比如LinkedList,比如LinkedHashMap,使用双链表刚好可以实现队列的功能,并且是双队列Dequeue)各自的应用归并排序腾讯一面,57min项目V...原创 2018-03-16 19:57:17 · 711 阅读 · 0 评论 -
Android 之Context
Android之Context理解context,一直以来,即是我熟悉又陌生的东西。我知道一个app的context数量=activity+service+application,也知道各种context的作用范围,却依然似懂非懂。今天,根据源码和自己的理解,简单梳理下,以作备忘。何为Context?context意为上下文、环境。我个人认为所处的上下文即所处的环境,也就是某对象所...原创 2018-07-21 13:25:33 · 266 阅读 · 0 评论