自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杰哥哥的专栏

记录平时在工作和学习中的一些技术

  • 博客(26)
  • 问答 (2)
  • 收藏
  • 关注

BAT大厂android面试题和答案

答案是自己写的,不是标准答案,不对勿喷Java面试题java中==和equals和hashCode的区别原始数据类型,如int,float等用 = = 进行比较时,是比较两者的值,在其他情况下是比较对象地址,而equals是比较两个对象的值,hashcode是取对象的哈希值,主要用在容器中。具体可参考java中equals,hashcode和= =的区别int、char、long各占多少...

2020-04-14 21:32:34 753

转载 Https过程学习

转载https学习

2019-07-04 09:27:12 170

原创 android模拟器root

其实最简单的方法就是在新建模拟器的时候,镜像文件不要选择后面带google play的,然后adb rootadb remount就可以了,7.0测试可以

2019-06-16 08:06:44 1385

原创 android stuidio profile使用

android studio 3.0之后新增的profile功能,可以帮助我们事实监控app的各项性能,包括cpu使用,内存消耗,网络访问等。关于profile中各个功能的使用和结果分析,请参考官方教程,链接如下:android profie使用...

2019-02-23 20:33:36 1485

翻译 Android ART 垃圾回收机制

平时有在看一些jvm的gc机制,但作为一名android开发者,竟然没有了解过android的垃圾回收机制,虽然android也是用java虚拟机跑app,但毕竟android用的是ART(5.0以后),不是原生的jvm,那androd的垃圾回收机制和jvm的是不是一样呢。今天就来学习一下,此文主要是翻译google的官方文档,原文链接如下 Debugging ART Garbage Colle...

2018-06-14 11:15:41 6845

原创 InputManagerService源码研究(一)service启动过程

本来想通过看老罗的书来学习这部分的源码,但实际对比发现8.0的android已经和老罗那时候的很大不一样,所以决定自己写一下,也当做笔记. 从名字就可以知道,InputManagerService是跟输入有关的,这不单单指键盘,只要是挂载在dev/input下面的设备都和它有关。InputManagerService的启动InputManagerService是在SystemServ...

2018-05-14 17:40:03 303

原创 RecyclerView源码学习笔记(四)滑动

前几篇学习了RecyclerView的初始化和绘制过程,主要情景都是在静止状态下,没有手动操作,这篇开始就学习在人为操作下的代码流程,先从滑动开始 - RecyclerView源码学习笔记(一)构造函数和setLayoutManager方法 - RecyclerView源码学习笔记(二)setAdapter - RecyclerView源码学习笔记(三)RecycleView的绘制过程...

2018-04-23 15:52:51 516

原创 Java 垃圾回收机制学习

什么是GCGC(Garbage Collection),也就是垃圾收集,它可以实现内存的自动回收。一般认为GC是专属于java语言的一个东西,但事实上GC早于java出现,在1960年,Lisp是第一次使用了GC技术。别的不多说了,能看这篇文章的肯定也是知道什么是GC了。哪些内存需要回收首先我们需要知道jvm在执行程序的过程中,会把它所管理的内存划分为若干个不同的数据区域如下图: ...

2018-04-19 11:03:16 391

原创 RecyclerView源码学习笔记(三)RecycleView的绘制过程onMeasure,onLayout,onDraw

前言前两篇讲了RecyclerView的构造函数和setLayoutManager以及setAdapter方法,这篇就开始学习RecyclerView的真正显示过程RecyclerView源码学习笔记(一)构造函数和setLayoutManager方法RecyclerView源码学习笔记(二)setAdapter内容RecyclerView继承自ViewGroup,所以也...

2018-04-10 17:10:47 1685

原创 RecyclerView源码学习笔记(二)setAdapter

引言上篇文章RecyclerView源码学习笔记(一)构造函数和setLayoutManager方法主要学习了RecyclerView初始化和setLayoutManager方法的源码,这篇我们学习setAdapter方法的源码内容setAdapter方法按照我们平时最简单的使用习惯,在调用完setLayoutManager方法之后就要调用setAdapter方法了,直接贴源码...

2018-04-02 15:39:26 5612

原创 RecyclerView源码学习笔记(一)构造函数和setLayoutManager方法

前言RecyclerView已经出来很久,现在几乎应该都会用RecyclerView代替Listview,虽然我觉得大多数人应该还是不太清楚这两者之前的区别的,或者说RecyclerView相对于Listview到底好在哪里。我平时也只是很简单的使用一下,并没有对其原理进行深度挖掘,现在刚好公司项目不忙,就花点时间研究一下它的源码。内容类继承关系我觉得研究任何一个类的源码首...

2018-04-01 10:47:27 3637 3

转载 android Log方法对message大小限制

转自https://blog.csdn.net/abc6368765/article/details/50474218今天写代码的时候,服务器返回的json数据量比较大,然后我想在logcat中完全输出服务器返回的Json格式的字符串事,发现logcat中返回的信息中明显少了后面一节,刚开始还以为程序有bug,调试了好半天才发现原来程序没有bug,而是LogCat中的每次的Msg输出是有上限的...

2018-03-23 11:31:01 1064

原创 android onGenericMotionEvent(MotionEvent event)

在看RecyclerView源码的时候发现有一个方法实现,叫onGenericMotionEvent(MotionEvent event),从方法注释看是专门响应一些外接设备的操作的,比如游戏手柄,鼠标,滚轮,触控板等。从RecyclerView的onGenericMotionEvent实现来看,确实也是如此。 代码如下:public boolean onGenericMotionEvent...

2018-03-22 18:35:54 7924

转载 windows下载android源码

windows下载android源码的方法 http://blog.csdn.net/freekiteyu/article/details/70939672

2018-03-20 21:26:26 1903

原创 HanderThread源码分析

前言在读这篇文章之前最好先读一下我之前写的关于Handler原理的文章:Android Handler消息源码分析,这样会比较容易理解handlerThread的原理。内容HandlerThread相信很多人都已经用过,还不了解或者没有用过的同学请自行搜索。先贴一下sample code HandlerThread handlerThread = new HandlerTh...

2018-03-08 11:34:52 228

原创 Android handler消息源码分析

前言在我们平时开发过程中,经常会用到Handler,最典型的的应用场景就是在子线程中需要更新UI的时候,如果你不使用其他辅助工具,比如AsyncTask或者Rxjava等,那你几乎都会用Handler来发送消息到主线程,然后再让主线程去更新UI。至于为什么不能直接在子线程更新UI呢?因为android的主线程即UI线程是线程不安全的,如果允许其他线程操作UI,那么很容易出现问题,而且andro...

2018-03-06 16:11:14 223

转载 Android DrawingCache超詳細解析

转自Android DrawingCache超詳細解析,解決getDrawingCache方法回傳null開發Android的時候,在許多情況下會使用到View的getDrawingCache方法來取得View目前顯示出來的樣子(DrawingCache),雖然算是一個還蠻方便的方法,但是這個方法卻有著許多的缺陷,它不但效能極差,內部實作方式和回傳的結果隨著Android API版本不同還有很...

2018-03-01 14:30:50 1340

原创 Fresco源码解析:初始化过程(二)

本文承接Fresco源码解析: 初始化过程(一)从ImagePipelineConfig的构造函数开始,再贴一遍代码 private ImagePipelineConfig(Builder builder) { // We have to build experiments before the rest //目前处于实验状态的一些选项,变动很大,官方建议不要修改这些选项的默认值

2017-12-26 15:03:26 620

原创 Fresco源码解析: 初始化过程(一)

Fresco源码解析(一) 初始化过程简介以下是官网对fresco的定义: fresco是一款功能强大的图片加载工具,使用它之后,你不必再去关心图片的加载和显示这些繁琐的事情!支持Android2.1及以后的版本。 中文官网地址如下:https://www.fresco-cn.org/,代码下载地址:git clone https://github.com/facebook/fresc

2017-12-08 15:29:44 1134

原创 Andrid6.0申请SYSTEM_ALERT_WINDOW和WRITE_SETTINGS权限

SYSTEM_ALERT_WINDOW首先确认app是否拥有该权限,然后再弹出UI申请权限:public static int OVERLAY_PERMISSION_REQ_CODE = 1234;public void someMethod() { if (!Settings.canDrawOverlays(this)) { Intent intent = new Inte

2017-03-05 21:39:57 586

原创 ProGuard参数使用说明

ProGuard 使用说明本文主要是翻译proguad的官方文档,以便以后使用的时候不需要再次去看英文,每次写proguard总是那么痛苦,必须写个博客记录一下,有些地方的意思我也不懂,有注明原文,只能怪自己英语太渣!!什么是proguardproguard是一个用于对代码进行瘦身,优化,混淆的java类库,可以把没有用到的方法,变量,属性等自动移除,经过proguad处理的app

2017-03-03 15:44:21 4384

转载 android webview 电脑网页适应手机屏幕

我们平时在使用webview加载网页的时候可能出现网页超出屏幕的情况,特别是手机在加载PC网页的时候,基本上都会出现屏幕不适配的情况。网上搜一下大多是使用如下方法:webSettings.setUseWideViewPort(true)webSettings.setLoadWithOverviewMode(true) 这两行代码确实可以在手机屏幕内显示整张电脑网页,但是有一个问题,就是网页内的字体

2016-06-25 20:21:43 5958

转载 android http网络编程

分享以下两个链接使用HttpURLConnection和OKhttp编程http://blog.csdn.net/vanpersie_9987/article/details/51045017使用volleyhttp://blog.csdn.net/guolin_blog/article/details/17482095

2016-06-25 11:27:56 488

转载 Android网络连接相关笔记

此文是将网上看到的一些关于网络状态判断和监听的笔记,持续更新首先需要在AndroidManifest.xml中加入Internet权限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_W

2016-06-24 22:09:59 415

原创 android <merge>标签的使用

当我们用inclue标签复用layout的时候,会将复用layout的根视图导入进来,比如你的主layout main.xml是一个Linearlayout,然后你的复用layout reuse.xml的根视图也是Linearlayout,这样当你用include 标签将reuse.xml 导入到main.xml的时候,其实main.xml中就有两个嵌套的Linearlayout,其实这不是我们需

2016-04-10 17:01:34 376

转载 java 多线程相关知识

JAVA多线程程序开发基础知识转载:http://www.panshy.com/articles/201602/dev-2534.htmlJAVA使用Executor框架实现多线程并发转载: http://www.panshy.com/articles/201604/dev-2568.html

2016-04-05 16:43:11 326

空空如也

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

TA关注的人

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