这一篇文章专门整理一下研究过的Android面试题,内容会随着学习不断的增加,如果答案有错误,希望大家可以指正 1.简述Activity的生命周期 当Activity开始启动的时候,首先调用onCreate(),onStart(),onResume()方法,此时Activity对用户来说,是可见的状态 当Activity从可见状态变为被Dialog遮挡的状态的时候,会调用onPause()方法,此时的Activity对用户可见,但是不能相 应用户的点击事件 当Activity从可见状态变为被其他…
1. ArrayList,Vector, LinkedList 的存储性能和特性 ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按 序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由于使用了 synchroni zed 方法(线程安全),通常性能上较 ArrayList 差,而 LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后 向遍历,但是…
这一篇文章专门整理一下研究过的Android面试题,内容会随着学习不断的添加,假设答案有错误,希望大家能够指正 1.简述Activity的生命周期 当Activity開始启动的时候,首先调用onCreate().onStart().onResume()方法,此时Activity对用户来说,是可见的状态 当Activity从可见状态变为被Dialog遮挡的状态的时候,会调用onPause()方法,此时的Activity对用户可见.可是不能相 应用户的点击事件 当Activity从可见状态变为被其它…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/bz419927089/article/details/31386787 1.Dalvik和标准Java虚拟机之间的主要区别? Dalvik和标准Java虚拟机(JVM)之间的首要区别之中的一个,就是Dalvik基于寄存器,而JVM基于栈. Dalvik和Java之间的另外一大区别就是运行环境--Dalvik经过优化,同意在有限的内存中同一时候运行多个虚拟机的实例.而且每个 Dalvik应用作为一个…
上一篇博客我们已经带大家简单的吹了一下IoC,实现了Activity中View的布局以及控件的注入,如果你不了解,请参考:Android 进阶 教你打造 Android 中的 IOC 框架 [ViewInject] (上). 本篇博客将带大家实现View的事件的注入. 1.目标效果 上篇博客,我们的事件的代码是这么写的: 光有View的注入能行么,我们写View的目的,很多是用来交互的,得可以点击神马的吧.摒弃传统的神马,setOnClickListener,然后实现匿名类或者别的方式神马的,我…
Android事件分发机制可以说是我们Android工程师面试题中的必考题,弄懂它的原理是我们避不开的任务,所以长痛不如短痛,花点时间干掉他,废话不多说,开车啦 Android事件分发机制的发生在View与View之间或者ViewGroup与View之间具有镶嵌的视图上,而且视图上必须为点击可用.当一个点击事件产生后,它的传递过程遵循如下顺序:Activity->Window->View,即事件先传递给Activity,再到Window,再到顶级View,才开始我们的事件分发 Android事…
本文列出C++面试中经常遇到的一些问题,都是一些常见的面试考点,如果后续遇到其他常见面试问题还会再次更新.希望对近期参加面试的同学有一些帮助.先后顺序与问题的重要性无关,查看的时候,最好是全面了解一下. C++语言基础.语言特性.数据结构.操作系统知识甚至是一些内核相关的知识.网络相关知识.数据库操作.多线程多进程数据同步互斥.内存相关知识等等. 1.关键字及基本问题 const的作用,const怎么使用,有哪些应用场景? static的作用,static类成员变量怎么初始化?static成员可…
1.概述 首先我们来吹吹牛,什么叫IoC,控制反转(Inversion of Control,英文缩写为IoC),什么意思呢? 就是你一个类里面需要用到很多个成员变量,传统的写法,你要用这些成员变量,那么你就new 出来用呗~~ IoC的原则是:NO,我们不要new,这样耦合度太高:你配置个xml文件,里面标明哪个类,里面用了哪些成员变量,等待加载这个类的时候,我帮你注入(new)进去: 这样做有什么好处呢? 回答这个问题,刚好可以回答另一个问题,很多人问,项目分层开发是吧,分为控制层.业务层.…
本篇文章是根据以下内容进行的总结 1.https://segmentfault.com/a/1190000011344301 2.http://www.bslxx.com/a/mianshiti/tiku/2017/1019/953.html 3.http://www.bslxx.com/a/mianshiti/tiku/javascript/2017/1213/1505.html 前言 自从ES6发布以来,就受到了广大开发者的欢迎.它的新特性解决了很多实际开发中的痛点,并且使得JavaScri…
自定义View一直是初学者们最头疼的事情,因为他们并没有了解到真正的实现原理就开始试着做自定义View,碰到很多看不懂的代码只能选择回避,做多了会觉得很没自信.其实只要了解了View的工作机制后,会发现是挺简单的,自定义View就是借助View的工作机制开始将View绘制出来的 Android视图工作机制按顺序分为以下三步: measure:确定View的宽高 layout:确定View的位置 draw:绘制出View的形状 Android视图工作机制其实挺人性化的,当你真正理解之后,就跟我们画…
Android消息机制可以说是我们Android工程师面试题中的必考题,弄懂它的原理是我们避不开的任务,所以长痛不如短痛,花点时间干掉他,废话不多说,开车啦 在安卓开发中,常常会遇到获取数据后更新UI的问题,比如:在获取网络信息后,需要弹出一个Toast 这个时候程序就会报以下的错误 这是因为Android规定了只允许UI线程修改Activity里的UI组件,而我们刚才的操作在子线程中修改Activity里的UI组件,才会导致UI操作的线程不安全,并报出错误.为了保证Android的UI操作是线…
转载自 知乎 @西点王子 https://www.zhihu.com/people/F211/answers 1. 常用那几种浏览器测试?有哪些内核(Layout Engine)? (Q1) 浏览器:IE,Chrome,FireFox,Safari,Opera.(Q2) 内核:Trident,Gecko,Presto,Webkit. 2. 说下行内元素和块级元素的区别?行内块元素的兼容性使用?(IE8 以下) (Q1) 行内元素:会在水平方向排列,不能包含块级元素,设置width无效,heigh…
1.Collection 和 Collections 的差别. Collection 是集合类的上级接口,继承于他的接口主要有 Set 和 List. Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索.排序.线程安全化等操作. 2.HashMap 和 Hashtable 的差别. HashMap 是 Hashtable 的轻量级实现(非线程安全的实现),他们都完毕了 Map 接口,HashMap是非线程安全,效率上可能高于 Hashtable.在多个线程…
1.您在什么情况下会用到虚方法?它与接口有什么不同?当子类需要重新定义父类的一个方法时,父类的方法需要定义为虚方法:在定义接口的时候不能又方法体,但是虚方法可以有方法体,实现时,子类可以不实现父类的虚方法,但是如果要是继承了接口,那么一定要实现 2.Override与重载有什么区别?重载:就是函数名相同,根据参数类型,或者个数不同,方法的重载可以提高方法的可读性:override:重写,如果加上这个关键字,那么就会将父类的方法或者函数覆盖掉 3.值类型与引用类型有什么区别?值类型的数据时放在栈里…
  Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/finddreams/article/details/44301359 上一篇文章我们已经了解了Android笔试的一些基础题目, [<Android开发面试经——2.常见Android基础笔试题> ] (http://blog.csdn.net/finddreams…
写在前面 记得我大二时“不务正业”地自学Android并跟了老师做项目,到大三开始在目前的公司实习,至今毕业已有几年多,学习Android已经6.7年多了!但总感觉知识点很零散,并且不够深入,遇到瓶颈,所以有了这文章. 本文是我对自身的Android编程技能的总结.思考和反省,意在系统地.深入地学习Android的重难点,使自己的能力上一个台阶.下面我将会罗列Android知识体系中比较高频.重要或难懂的知识点,并未来会基于此文章列出的知识点一个一个学习研究,并写成一系列的文章,当做自己的学习总…
转自:http://blog.csdn.net/wwj_748/article/details/8868640 Android面试题目及其答案 1.Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念. 2.sim卡的EF文件有何作用 sim卡的文件系统有自己规范,主要是为了和…
内容源自:2017-2018最新Android面试题 以下是几点重点,是面试官基本必问的问题,请一定要去了解! 基础知识 – 四大组件(生命周期,使用场景,如何启动) java基础 – 数据结构,线程,mvc框架 通信 – 网络连接(HttpClient,HttpUrlConnetion),Socket 数据持久化 – SQLite,SharedPreferences,ContentProvider 性能优化 – 布局优化,内存优化,电量优化 安全 – 数据加密,代码混淆,WebView/Js调…
1. 请描述下Activity的声明周期. onCreate->onStart->onRemuse->onPause->onStop->onRestart->onDestroy 2. 如果后台的Activity由于某种原因被系统回收,如何在回收之前保存当前状态.onSaveInstanceState().程序中的某一个Activity A 在运行时,主动或被动的运行另一个新的Activity B,这个时候A会执行onSaveInstanceState().B完成以后又回…
1. 下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存   B.内存回收程序负责释放无用内存    C.内存回收程序允许程序员直接释放内存    D.内存回收程序可以在指定的时间释放内存对象  2.下面异常是属于Runtime Exception 的是(abcd)(多选)      A.ArithmeticException       B.IllegalArgumentException        C.NullPointerException   …
本文来自:http://blog.csdn.net/ouyang_peng/article/details/11358405 今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下 谦虚的天下 柳志超博客 Android中文Wiki AndroidStudio-NDK开发-移动开发团队谦虚的天下 - 博客园gundumw100博客 - android进阶分类文章列表 - ITeye技术网站CSDN博文精选:Android系列开发博客资源汇总 - CSDN.NET - CSDN资讯Android笔…
中级进阶推荐看一下以下这几本书 1.<Android从入门到精通(附光盘)> 明日科技 编 2.<第一行代码2 Android(第二版)> 郭霖 著 3.<Android开发进阶 从小工到专家 >何红辉 著 4.<Android进阶之光 >刘望舒 著 5.<Android开发艺术探索> 任玉刚 著 6.<Android群英传> 徐宜生 著 7.<疯狂Android讲义 >李刚 著 Android高级进阶 1.Android…
前言 从去年8月份开始,我开始重新找工作,在这期间刷了不少面试题和大牛博客,无意中薅到一份字节跳动大牛整理的一份"Android进阶指南",包含Android面试常见问题.主流技术.项目实战等等,图文并茂,希望可以帮助你查漏补缺.如果各位有什么其他的建议,欢迎留言交流. 废话不多说,下面开始正文: 一.2017-2020字节跳动Android面试真题解析 二.Android中高级面试大全(点击蓝字可查看详细内容) 三.Android源码解析 四.Jetpack架构组件从入门到精通(详细…
上一篇博客我们已经带大家简单的吹了一下IoC,实现了Activity中View的布局以及控件的注入,如果你不了解,请参考:Android 进阶 教你打造 Android 中的 IOC 框架 [ViewInject] (上). 本篇博客将带大家实现View的事件的注入. 1.目标效果 上篇博客,我们的事件的代码是这么写的: package com.zhy.zhy_xutils_test; import android.app.Activity; import android.os.Bundle;…
紧接上文Android进阶:七.Retrofit2.0原理解析之最简流程[上] 一.请求参数整理 我们定义的接口已经被实现,但是我们还是不知道我们注解的请求方式,参数类型等是如何发起网络请求的呢? 这时我们可能应该关注一下ServiceMethod<Object, Object>对象的构建了: ServiceMethod<Object, Object> serviceMethod = (ServiceMethod<Object, Object>) loadService…
独立博客版本请点击这里 由来 2016年我开始建立了自己的知识体系,所有的文章都是围绕着这个体系来写,随着这个体系的慢慢成长,开始有很多出版社联系我写书,因为比较看好电子工业出版社,就顺理成章的开始了<Android进阶之光>这本书的编写.写作过程中并没有遇到什么困难,就是书名一直确定不下来,后来受到了<运营之光>的启发,这本书的名字才最终确定下来,寓意就是为Android开发者的进阶之路带来指引和光明. 为什么写这本书 官方话这里我就不说了,其实就两点: 1.目前市场上的Andr…
接着上一篇分析的aidl的流程解析.知道了aidl主要就是利用Ibinder来实现跨进程通信的.既然是通过对Binder各种方法的封装,那也可以不使用aidl自己通过Binder来实现跨进程通讯.那么这篇博客就主要就写一下通过上篇(Android进阶笔记:AIDL详解(一))总结的知识来自己实现跨进程通讯从而更加透彻的了解aidl的核心逻辑. 首先上一篇博客(Android进阶笔记:AIDL详解(一))中总结出一个结论————“onTransact方法是提供给server端用的,transact…
1.错误描述 今天测试人员提了一个bug,说使用我们的app出现了闪退的bug,后来通过debug断点调试,发现我们的app转换服务器发送过来的json数据后,都是为null.而之前已经提测快一个月的功能,一直都是稳定的,为什么现在会报java.lang.NullPointerException. 2.错误原因 原来我提测了一个月的APP版本一直没有打开混淆开关,而出问题的这个APP版本在即将要发布出去的时候打开了混淆开关.这样的话,我那些要通过转换json数据为bean实体类,因为没有在pro…
读完本文你将了解: IBinder Binder Binder 通信机制 Binder 驱动 Service Manager Binder 机制跨进程通信流程 Binder 机制的优点 总结 Thanks 上篇文章 Android 进阶7:进程通信之 AIDL 中我们虽然跨进程通信成功,但是还是有很多疑问的,比如: AIDL 帮我们做了什么? 为什么要这么写? 什么是 Binder? 知其然还要知其所以然,一切都要从 Binder 讲起. IBinder Binder 继承自 IBinder,所…
读完本文你将了解: AIDL 是什么 AIDL 支持的数据类型 AIDL 如何编写 AIDL 实例 创建 AIDL 编写服务端代码 编写客户端代码 运行结果 总结 代码地址 Thanks 记得 2015 年实习面试,笔试题里就有这道题:请介绍下 AIDL. 当时的我是懵逼的,只好老老实实空着.没想到后来面试时面试官大哥嘿嘿一笑说他也没用过这玩意,真是够实诚的. 笔试完查了这个知识点,似懂非懂也没深究.去年看<安卓开发艺术探索>时也学了这部分内容,但是可能当时水平不够,或者只是看起来努力,没有真…