android面试
文章平均质量分 73
TOP_WARNING
这个作者很懒,什么都没留下…
展开
-
HashMap 里的“bucket”、“负载因子” 介绍
【以下内容摘抄自点击打开链接 末尾几段】对于 HashMap 及其子类而言,它们采用 Hash 算法来决定集合中元素的存储位置。当系统开始初始化 HashMap 时,系统会创建一个长度为 capacity 的 Entry 数组,这个数组里可以存储元素的位置被称为“桶(bucket)”,每个 bucket 都有其指定索引,系统可以根据其索引快速访问该 bucket 里存储的元素。转载 2016-08-14 13:41:00 · 31368 阅读 · 14 评论 -
《Android 开发工程师面试指南》
【原文地址 点击打开链接】《Android 开发工程师面试指南 LearningNotes 》,作者是知乎Android开发工程师陶程,由梁观全贡献部分。大家可以去知乎关注这两位用心的少年。这份指南包含了大部分Android开发的基础、进阶知识,不仅可以帮助准备面试的同学,也可以帮助正在学习和工作的同学梳理自己的知识点。有心的同学也可以帮他们不断完善。第一部分:An转载 2016-08-10 13:59:34 · 707 阅读 · 0 评论 -
面试集锦
【原文地址 点击打开链接】国内一线互联网公司内部面试题库以下面试题来自于百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐内部题库熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。欢迎一线公司员工提交内部面试题库,欢迎star。一、java基础1.接口的意义(百度)规范、扩展、回调2.抽象类的意义(乐视转载 2016-08-08 15:24:38 · 580 阅读 · 0 评论 -
Java HashMap工作原理
【原文地址 hashmap工作原理】大部分Java开发者都在使用Map,特别是HashMap。HashMap是一种简单但强大的方式去存储和获取数据。但有多少开发者知道HashMap内部如何工作呢?几天前,我阅读了java.util.HashMap的大量源代码(包括Java 7 和Java 8),来深入理解这个基础的数据结构。在这篇文章中,我会解释java.util.HashMa转载 2016-08-14 12:21:35 · 374 阅读 · 0 评论 -
DeerResume:在线MarkDown简历工具
【原文地址 点击打开链接】DeerResume是一款支持实时预览、阅读密码、一键PDF生成的在线MarkDown简历工具。本文包括两个部分,特点介绍及安装指南。特点介绍拥有以下突出特点:简单低调又不失雅致的界面可自行搭建,细节可控猴子都会安装在线编辑,实时预览阅读密码,只有你愿意的人才能看到你的简历特点一:简单低调转载 2016-08-15 13:58:21 · 800 阅读 · 0 评论 -
Android内存泄漏检测利器:LeakCanary
是什么?一言以蔽之:LeakCanary是一个傻瓜化并且可视化的内存泄露分析工具为什么需要LeakCanary?因为它简单,易于发现问题,人人可参与。简单:只需设置一段代码即可,打开应用运行一下就能够发现内存泄露。而MAT分析需要Heap Dump,获取文件,手动分析等多个步骤。易于发现问题:在手机端即可查看问题即引用关系,而MAT则需要你分析,找到Path转载 2016-08-17 11:07:35 · 269 阅读 · 0 评论 -
Java 多线程同步的五种方法
一、引言前几天面试,被大师虐残了,好多基础知识必须得重新拿起来啊。闲话不多说,进入正题。二、为什么要线程同步因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常。举个例子,如果一个银行账户同时被两个线程操作,一个取100块,一个存钱100块。假设账户原本有0块,如果取钱线程和存钱线程同时发生,转载 2016-08-18 16:06:06 · 280 阅读 · 0 评论 -
Android EventBus源码解析 带你深入理解EventBus
【原文地址 点击打开链接】转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40920453,本文出自:【张鸿洋的博客】上一篇带大家初步了解了EventBus的使用方式,详见:Android EventBus实战 没听过你就out了,本篇博客将解析EventBus的源码,相信能够让大家深入理解该框架的实现转载 2016-08-21 15:16:32 · 207 阅读 · 0 评论 -
深入理解AsyncTask
【原文地址 点击打开链接】什么是AsyncTaskAsyncTask是一个轻量级的异步任务类,它可以在线程池中执行后台任务,然后把执行的进度和结果传递给主线程并在主线程中更新UI。AsyncTask这个类的声明如下:public abstract class AsyncTask它提供了 Params,Pro转载 2016-08-23 10:07:01 · 585 阅读 · 0 评论 -
Android项目重构之路:实现篇
【原文地址 点击打开链接】原创文章,转载请注明:转载自Keegan小钢并标明原文链接:http://keeganlee.me/post/android/20150629微信订阅号:keeganlee_me写于2015-06-29Android项目重构之路:架构篇Android项目重构之路:界面篇Android项目重构之路:实现篇前两篇文章An转载 2016-08-23 22:54:35 · 280 阅读 · 0 评论 -
Android线程的正确使用姿势
【原文地址 点击打开链接】线程是程序员进阶的一道重要门槛。对于移动开发者来说,“将耗时的任务放到子线程去执行,以保证UI线程的流畅性”是线程编程的第一金科玉律,但这条铁则往往也是UI线程不怎么流畅的主因。我们在督促自己更多的使用线程的同时,还需要时刻提醒自己怎么避免线程失控。除了了解各类开线程的API之外,更需要理解线程本身到底是个什么样的存在,并行是否真的高效?系统是怎么样去调度线程转载 2016-08-24 13:19:44 · 283 阅读 · 0 评论 -
EventBus源码解析
【原文地址 点击打开链接前面一篇文章讲解了EventBus的使用,但是作为开发人员,不能只停留在仅仅会用的层面上,我们还需要弄清楚它的内部实现原理。所以本篇博文将分析EventBus的源码,看看究竟它是如何实现“发布/订阅”功能的。相关文章EventBus使用详解EventBus源码解析事件注册根据前一讲EventBus使用详解我们已经知转载 2016-08-26 21:54:49 · 442 阅读 · 0 评论 -
面试前的准备
【原文地址 面试前的准备】May 12, 2016长期准备:1. 订阅几个高质量的公众号2. 加入一个本地android组织3. 看几本必看的进阶书4. 收藏几个博客,紧跟几个专家5. 写自己的独立技术博客6. 看源码7. 提交自己的开源代码短期准备:1. 去NewCoder刷题2. 去极客学院阅读几本微书3. 看几篇转载 2016-08-27 14:07:09 · 542 阅读 · 0 评论 -
LruCache 源码解析
【原文地址 LRUcache源码分析】LruCache 源码解析1. 简介LRU 是 Least Recently Used 最近最少使用算法。曾经,在各大缓存图片的框架没流行的时候。有一种很常用的内存缓存技术:SoftReference 和 WeakReference(软引用和弱引用)。但是走到了 Android 2.3(Level 9)时代,垃圾回收机制转载 2016-08-27 16:33:10 · 494 阅读 · 0 评论 -
各种源码解析
【原文地址 各种源码解析】转载 2016-08-27 16:36:40 · 650 阅读 · 0 评论 -
APP启动过程
【原文地址 APP启动过程】It's right time to learn Android's Framework !前言一个App是怎么启动起来的?App的程序入口到底是哪里?Launcher到底是什么神奇的东西?听说还有个AMS的东西,它是做什么的?Binder是什么?他是如何进行IPC通信的?Activity生命周期到底是什么时候调用的?被谁调用的?等等...转载 2016-08-28 00:54:16 · 3434 阅读 · 0 评论 -
java(Android)线程池
【原文地址 点击打开链接】介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用。本文是基础篇,后面会分享下线程池一些高级功能。1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗?Java1234567new Thread(new Runnable() { @转载 2016-08-28 23:17:37 · 330 阅读 · 0 评论 -
为什么Dialog不能用Application的Context
【原文地址 点击打开链接】有网友在我的一篇和Context相关的面试题文章提到这个问题。我觉得一两句话,不好说清楚(我需要一些图表),所以用这篇文章来回答一下。先试一下用Application的上下文来创建Dialog,在调用它的show方法时程序会Crash,LogCat的异常信息如下:Caused by: android.view.WindowManager$BadTokenE转载 2016-08-29 09:56:15 · 538 阅读 · 0 评论 -
HTTP/2协议–特性扫盲篇
【原文地址 点击打开链接】HTTP/2协议–特性扫盲篇随着web技术的飞速发展,1999年制定的HTTP 1.1已经无法满足大家对性能的要求,Google推出协议SPDY,旨在解决HTTP 1.1中广为人知的性能问题。SPDY得到了Chrome、Firefox和Opera的支持,很多大型网站(如谷歌、Twitter、Facebook、淘宝)都对兼容客户端使用SPDY转载 2016-10-18 16:21:56 · 617 阅读 · 0 评论 -
App网络传输协议(Json、XML、protobuf)
【原文地址 点击打开链接】版权声明:本文为博主原创文章,未经博主允许不得转载。转载请标明出处:一片枫叶的专栏上一篇文章中我们讲解了如何在App中统计数据,其实现主要分为两种:使用第三方服务统计和自身实现数据统计。一般而言我们使用第三方统计服务已经可以很好的满足我们的也无需求了,只有部分数据敏感型的App,由于其数据敏感性在app中实现数据统计转载 2016-10-05 23:03:57 · 12389 阅读 · 0 评论 -
性能优化之省电篇
【原文地址 点击打开链接】移动网络下的性能优化之省电篇2016年2月20日王, 军鹏随着3G和4G网络的普及,用户使用APP的场景更多地集中在移动网络下。同时也带来了手机电量消耗更快和网络延迟更高的问题。想开发出用户体验更好的应用,就需要对移动网络有更深入的了解。本系列文章分为上下两篇,分别介绍如何开发出更省电和网络延迟更低的移动应用程序。本篇文章主要介绍移动网络的转载 2016-10-05 23:06:04 · 1057 阅读 · 0 评论 -
Android性能调优利器StrictMode
【原文地址 点击打开链接】作为Android开发,日常的开发工作中或多或少要接触到性能问题,比如我的Android程序运行缓慢卡顿,并且常常出现ANR对话框等等问题。既然有性能问题,就需要进行性能优化。正所谓工欲善其事,必先利其器。一个好的工具,可以帮助我们发现并定位问题,进而有的放矢进行解决。本文主要介绍StrictMode 在Android 应用开发中的应用和一些问题。转载 2017-01-12 12:54:09 · 527 阅读 · 0 评论 -
Android 内存泄漏总结
【原文地址 Android 内存泄漏总结】内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。最近自己阅读了大量相关的文档资料,打算做个 总结 沉淀下来跟大家一起分享和学习,也给自己一个警示,以后 coding 时怎么避免这些转载 2016-08-11 13:42:34 · 661 阅读 · 1 评论 -
HTTP协议详解
【原文地址点击打开链接】本书是介绍怎么编写一个Web服务器,而Web服务器是基于HTTP(HyperText Transfer Protocol)协议实现的,所以要实现一个Web服务器就必须了解HTTP协议,本章主要介绍HTTP协议的相关知识,让我们对HTTP协议有个理性的认识。1.1 HTTP协议简介我们日常生活中经常会使用浏览器访问Web站点,但是大家有思考过在转载 2017-01-10 22:48:29 · 441 阅读 · 0 评论 -
Android 业务组件化开发实践
【原文地址 点击打开链接】原文链接:http://kymjs.com/code/2016/10/18/01在 MDCC 中冯森林老师的《回归初心,从容器化到组件化》,为我们这些没有那么多精力折腾黑科技开发者们打开了另一扇门 —— 由 kymjs张涛 分享本文原创,转载请以链接形式注明地址:http://kymjs.com/code/2016/10/18/01转载 2016-10-22 13:22:52 · 5356 阅读 · 0 评论 -
给 Android 开发者的 RxJava 详解
【原文地址 点击打开链接】前言我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 。而最近这几个月,我也发现国内越来越多的人开始提及 RxJava 。有人说『RxJava 真是太好用了』,有人说『RxJava 真是太难用了』,另外更多的人表示:我真的转载 2016-09-04 19:07:19 · 654 阅读 · 0 评论 -
Android组件化和插件化开发
【原文地址 点击打开链接】Android组件化和插件化开发什么是组件化和插件化?组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发的过程中我们可以让这些组件相互依赖或者单独调试部分组件等,但是最终发布的时候是将这些组件合并统一成一个apk,这就是组件化开发。 插件化开发和组件化开发略有不用,插件化开发时将整个app拆分转载 2016-12-02 16:14:59 · 396 阅读 · 0 评论 -
Android中子线程真的不能更新UI吗?
【原文地址 点击打开链接】正文Android的UI访问是没有加锁的,这样在多个线程访问UI是不安全的。所以Android中规定只能在UI线程中访问UI。但是有没有极端的情况?使得我们在子线程中访问UI也可以使程序跑起来呢?接下来我们用一个例子去证实一下。新建一个工程,activity_main.xml布局如下所示:转载 2016-10-21 10:43:39 · 509 阅读 · 0 评论 -
Android内存优化(使用SparseArray和ArrayMap代替HashMap)
【原文地址 点击打开链接】版权声明:本文为博主原创文章,未经博主允许不得转载。转载注明出处:Sunzxyong目录(?)[+]在Android开发时,我们使用的大部分都是Java的api,比如HashMap这个api,使用率非常高,但是对于Android这种对内存非常敏感的移动平台,很多时候使用一些java的api并不能达到更好的性能转载 2016-10-20 21:33:18 · 331 阅读 · 0 评论 -
Android对象池
【Android对象池 点击打开链接】【 Handler Message对象池的应用点击打开链接】对象池以及其在Android中的应用。Object pool模式如果你对object pool模式还不太了解的话,可以先看看这里。简单总结一下,对象池可以看做一种空间换时间的策略。可以看作是减少GC压力的首选方法,同时也是最简单的方法。在下面两种分配模式转载 2016-10-30 19:44:06 · 555 阅读 · 0 评论 -
内存优化方案(二)【汇总篇】
【原文地址 点击打开链接】Android的内存优化是性能优化中很重要的一部分,而避免OOM又是内存优化中比较核心的一点,这是一篇关于内存优化中如何避免OOM的总结性概要文章,内容大多都是和OOM有关的实践总结概要。理解错误或是偏差的地方,还请多包涵指正,谢谢!(一)Android的内存管理机制Google在Android的官网上有这样一篇文章,初步介绍了An转载 2016-10-30 18:57:36 · 2177 阅读 · 0 评论 -
ListView中的观察者模式
【原文地址 点击打开链接】虽然现在RecyclerView 很好用,也在逐渐替代 ListView。很多github的开源大神也在对其进行更加实用的封装。我现在写的一个音乐播放器也在使用 RecyclerView。但是这些都不阻碍我们学习 ListView 优秀的源码设计。进入正题,我用的是 Api-23 的源码。接下来就从源码的角度带你学习ListVi转载 2016-10-20 10:55:08 · 336 阅读 · 0 评论 -
Android 工程师必备技能!
【原文地址 点击打开链接】原文链接:http://www.jianshu.com/p/d791bbede02c吐血推荐!!!! —— 由 Maat红飞 分享Step 1. 玩转RxJava使用RxJava处理异步极其方便,各种操作符可以对数据做流水线式操作,再加上与Retrofit的结合,使得Andorid开发变的极其简单。唯一美中不足的就是RxJa转载 2016-10-20 10:53:27 · 654 阅读 · 0 评论 -
项目难点
1、 进程保活这里写链接内容这里写链接内容2、时间线界面的textView中的表情图标的替换,之前是用正则匹配、imagespan的方式直接将textview 中的表情文字替换成图片,这样的方式每次加载textview都要过滤替换一次,性能很低,而且这种方式不能很好控制表情图片大小,后来进行优化,主要是优化两方面,一是文字、表情bitmap的缓存,二是异步加载。1、本身的表情文件是项目初始化时保存原创 2016-09-18 19:18:35 · 1226 阅读 · 0 评论 -
Android 进程保活招式大全
【原文地址 点击打开链接】目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对 Android 进程拉活进行一个总结。Android 进程拉活包括两个层面:A. 提供进程优先级,降低进程被杀死的概率B. 在进程被杀死后,进行拉活本文下面就从这两个方面做一下总结。1. 进程的优先级Android 系统将转载 2016-10-19 17:24:10 · 206 阅读 · 0 评论 -
下拉刷新控件实现(尤其headview如何实现隐藏和下拉显示)
【整体界面如何实现 点击打开链接】【如何实现headerview的隐藏和下拉显示 点击打开链接】转载 2016-10-29 10:13:50 · 1372 阅读 · 0 评论 -
QQ空间 安卓App热补丁动态修复技术介绍
【原文地址 点击打开链接】1.背景当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App、测试、向各个应用市场和渠道换包、提示用户升级、用户下载、覆盖安装。有时候仅仅是为了修改了一行代码,也要付出巨大的成本进行换包和重新发布。这时候就提出一个问题:有没有办法以补丁的方式动态修复紧急Bug,不再需要重新发布A转载 2016-10-20 14:53:39 · 830 阅读 · 0 评论 -
内存优化方案
【原文地址 点击打开链接】转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/42238627有不少朋友都问过我,怎样才能写出高性能的应用程序,如何避免程序出现OOM,或者当程序内存占用过高的时候该怎么样去排查。确实,一个优秀的应用程序,不仅仅要功能完成得好,性能问题也应该处理得恰到好处。为此,我也是转载 2016-10-28 21:59:38 · 423 阅读 · 0 评论 -
Activity界面显示全解析
【原文地址 点击打开链接】前几天凯子哥写的Framework层的解析文章《Activity启动过程全解析》,反响还不错,这说明“写让大家都能看懂的Framework解析文章”的思想是基本正确的。我个人觉得,深入分析的文章必不可少,但是对于更多的Android开发者——即只想做应用层开发,不想了解底层实现细节——来说,“整体上把握,重要环节深入“是更好的学习方式。因为这样转载 2016-08-29 15:10:10 · 1752 阅读 · 0 评论 -
正确使用Android性能分析工具——TraceView
【原文地址 点击打开链接】Android NotesHOMEARCH#ANDROID #开发技巧 #经验技术前面唠叨最近公司app中有些列表在滑动的时候会有卡顿现象,我就开始着手解决这些问题,解决问题之前首先要分析列表滑动的性能瓶颈在什么地方。因为之前不会正确使用TraceView这个工具,主要是看不懂TraceView界转载 2016-08-31 11:18:28 · 356 阅读 · 0 评论