- 博客(26)
- 问答 (2)
- 收藏
- 关注
BAT大厂android面试题和答案
答案是自己写的,不是标准答案,不对勿喷Java面试题java中==和equals和hashCode的区别原始数据类型,如int,float等用 = = 进行比较时,是比较两者的值,在其他情况下是比较对象地址,而equals是比较两个对象的值,hashcode是取对象的哈希值,主要用在容器中。具体可参考java中equals,hashcode和= =的区别int、char、long各占多少...
2020-04-14 21:32:34
852
原创 android模拟器root
其实最简单的方法就是在新建模拟器的时候,镜像文件不要选择后面带google play的,然后adb rootadb remount就可以了,7.0测试可以
2019-06-16 08:06:44
1475
原创 android stuidio profile使用
android studio 3.0之后新增的profile功能,可以帮助我们事实监控app的各项性能,包括cpu使用,内存消耗,网络访问等。关于profile中各个功能的使用和结果分析,请参考官方教程,链接如下:android profie使用...
2019-02-23 20:33:36
1538
翻译 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
7163
原创 InputManagerService源码研究(一)service启动过程
本来想通过看老罗的书来学习这部分的源码,但实际对比发现8.0的android已经和老罗那时候的很大不一样,所以决定自己写一下,也当做笔记. 从名字就可以知道,InputManagerService是跟输入有关的,这不单单指键盘,只要是挂载在dev/input下面的设备都和它有关。InputManagerService的启动InputManagerService是在SystemServ...
2018-05-14 17:40:03
363
原创 RecyclerView源码学习笔记(四)滑动
前几篇学习了RecyclerView的初始化和绘制过程,主要情景都是在静止状态下,没有手动操作,这篇开始就学习在人为操作下的代码流程,先从滑动开始 - RecyclerView源码学习笔记(一)构造函数和setLayoutManager方法 - RecyclerView源码学习笔记(二)setAdapter - RecyclerView源码学习笔记(三)RecycleView的绘制过程...
2018-04-23 15:52:51
544
原创 Java 垃圾回收机制学习
什么是GCGC(Garbage Collection),也就是垃圾收集,它可以实现内存的自动回收。一般认为GC是专属于java语言的一个东西,但事实上GC早于java出现,在1960年,Lisp是第一次使用了GC技术。别的不多说了,能看这篇文章的肯定也是知道什么是GC了。哪些内存需要回收首先我们需要知道jvm在执行程序的过程中,会把它所管理的内存划分为若干个不同的数据区域如下图: ...
2018-04-19 11:03:16
431
原创 RecyclerView源码学习笔记(三)RecycleView的绘制过程onMeasure,onLayout,onDraw
前言前两篇讲了RecyclerView的构造函数和setLayoutManager以及setAdapter方法,这篇就开始学习RecyclerView的真正显示过程RecyclerView源码学习笔记(一)构造函数和setLayoutManager方法RecyclerView源码学习笔记(二)setAdapter内容RecyclerView继承自ViewGroup,所以也...
2018-04-10 17:10:47
1785
原创 RecyclerView源码学习笔记(二)setAdapter
引言上篇文章RecyclerView源码学习笔记(一)构造函数和setLayoutManager方法主要学习了RecyclerView初始化和setLayoutManager方法的源码,这篇我们学习setAdapter方法的源码内容setAdapter方法按照我们平时最简单的使用习惯,在调用完setLayoutManager方法之后就要调用setAdapter方法了,直接贴源码...
2018-04-02 15:39:26
5807
原创 RecyclerView源码学习笔记(一)构造函数和setLayoutManager方法
前言RecyclerView已经出来很久,现在几乎应该都会用RecyclerView代替Listview,虽然我觉得大多数人应该还是不太清楚这两者之前的区别的,或者说RecyclerView相对于Listview到底好在哪里。我平时也只是很简单的使用一下,并没有对其原理进行深度挖掘,现在刚好公司项目不忙,就花点时间研究一下它的源码。内容类继承关系我觉得研究任何一个类的源码首...
2018-04-01 10:47:27
3779
3
转载 android Log方法对message大小限制
转自https://blog.youkuaiyun.com/abc6368765/article/details/50474218今天写代码的时候,服务器返回的json数据量比较大,然后我想在logcat中完全输出服务器返回的Json格式的字符串事,发现logcat中返回的信息中明显少了后面一节,刚开始还以为程序有bug,调试了好半天才发现原来程序没有bug,而是LogCat中的每次的Msg输出是有上限的...
2018-03-23 11:31:01
1117
原创 android onGenericMotionEvent(MotionEvent event)
在看RecyclerView源码的时候发现有一个方法实现,叫onGenericMotionEvent(MotionEvent event),从方法注释看是专门响应一些外接设备的操作的,比如游戏手柄,鼠标,滚轮,触控板等。从RecyclerView的onGenericMotionEvent实现来看,确实也是如此。 代码如下:public boolean onGenericMotionEvent...
2018-03-22 18:35:54
8412
转载 windows下载android源码
windows下载android源码的方法 http://blog.youkuaiyun.com/freekiteyu/article/details/70939672
2018-03-20 21:26:26
1958
原创 HanderThread源码分析
前言在读这篇文章之前最好先读一下我之前写的关于Handler原理的文章:Android Handler消息源码分析,这样会比较容易理解handlerThread的原理。内容HandlerThread相信很多人都已经用过,还不了解或者没有用过的同学请自行搜索。先贴一下sample code HandlerThread handlerThread = new HandlerTh...
2018-03-08 11:34:52
253
原创 Android handler消息源码分析
前言在我们平时开发过程中,经常会用到Handler,最典型的的应用场景就是在子线程中需要更新UI的时候,如果你不使用其他辅助工具,比如AsyncTask或者Rxjava等,那你几乎都会用Handler来发送消息到主线程,然后再让主线程去更新UI。至于为什么不能直接在子线程更新UI呢?因为android的主线程即UI线程是线程不安全的,如果允许其他线程操作UI,那么很容易出现问题,而且andro...
2018-03-06 16:11:14
250
转载 Android DrawingCache超詳細解析
转自Android DrawingCache超詳細解析,解決getDrawingCache方法回傳null開發Android的時候,在許多情況下會使用到View的getDrawingCache方法來取得View目前顯示出來的樣子(DrawingCache),雖然算是一個還蠻方便的方法,但是這個方法卻有著許多的缺陷,它不但效能極差,內部實作方式和回傳的結果隨著Android API版本不同還有很...
2018-03-01 14:30:50
1448
原创 Fresco源码解析:初始化过程(二)
本文承接Fresco源码解析: 初始化过程(一)从ImagePipelineConfig的构造函数开始,再贴一遍代码 private ImagePipelineConfig(Builder builder) { // We have to build experiments before the rest //目前处于实验状态的一些选项,变动很大,官方建议不要修改这些选项的默认值
2017-12-26 15:03:26
665
原创 Fresco源码解析: 初始化过程(一)
Fresco源码解析(一) 初始化过程简介以下是官网对fresco的定义: fresco是一款功能强大的图片加载工具,使用它之后,你不必再去关心图片的加载和显示这些繁琐的事情!支持Android2.1及以后的版本。 中文官网地址如下:https://www.fresco-cn.org/,代码下载地址:git clone https://github.com/facebook/fresc
2017-12-08 15:29:44
1222
原创 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
621
原创 ProGuard参数使用说明
ProGuard 使用说明本文主要是翻译proguad的官方文档,以便以后使用的时候不需要再次去看英文,每次写proguard总是那么痛苦,必须写个博客记录一下,有些地方的意思我也不懂,有注明原文,只能怪自己英语太渣!!什么是proguardproguard是一个用于对代码进行瘦身,优化,混淆的java类库,可以把没有用到的方法,变量,属性等自动移除,经过proguad处理的app
2017-03-03 15:44:21
4563
转载 android webview 电脑网页适应手机屏幕
我们平时在使用webview加载网页的时候可能出现网页超出屏幕的情况,特别是手机在加载PC网页的时候,基本上都会出现屏幕不适配的情况。网上搜一下大多是使用如下方法:webSettings.setUseWideViewPort(true)webSettings.setLoadWithOverviewMode(true) 这两行代码确实可以在手机屏幕内显示整张电脑网页,但是有一个问题,就是网页内的字体
2016-06-25 20:21:43
6122
转载 android http网络编程
分享以下两个链接使用HttpURLConnection和OKhttp编程http://blog.youkuaiyun.com/vanpersie_9987/article/details/51045017使用volleyhttp://blog.youkuaiyun.com/guolin_blog/article/details/17482095
2016-06-25 11:27:56
514
转载 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
459
原创 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
411
转载 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
359
空空如也
android 获取当前播放音乐的sampling rate
2016-05-10
android 同时连接蓝牙和耳机,怎样获取当前播放音频的设备
2016-05-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人