由于链接出错,这里附上原文链接:Touch Me

前段时间面试,自己以及小伙伴们简要的汇总的一些面试问题,可以对照的参考一下吧~

建议就是在面一家公司之前了解好这个公司的app是以什么为驱动的,例如电商的话肯定要了解hybrid 开发的一些知识点,图像处理的公司要好好复习下bitmap canvas相关的知识点,祝好运!

UI:

1.View的绘制

Android视图绘制流程完全解析,带你一步步深入了解View(二)

2)Android自定义View的实现方法

3)canvas

Andriod中绘(画)图----Canvas的使用详解

Activity:

1.onPause和onStop的区别 // 这里有错误需要修改,修改在下方

onPause:可以看到这个activity (比如dialog) onStop:看不见这个activity

2.Activit用的启动方式

  • standard: 标准模式,一调用startActivity()方法就会产生一个新的实例。

  • singleTop: 如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,而只是调用Activity中的newInstance()方法。如果不位于栈顶,会产生一个新的实例。

  • singleTask: 会在一个新的task中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。

  • singleInstance: 这个跟singleTask基本上是一样,只有一个区别:在这个模式下的Activity实例所处的task中,只能有这个activity实例,不能有其他的实例。

3.ActivityManagerService

第6章 深入理解ActivityManagerService

4.activity的启动过程:

深入理解Activity启动流程(一)

5.Activity之间的协作当一个activity A启动了另外一个activity B,它们的生命周期是有交叉的;

  • 首先A的onPause()被调用;

  • e之后B的onCrate(), onStart()及onResume() 方法会被调用(此时B拥有用户焦点);

  • 最后,如果A在屏幕上不可见,onStop()方法被调用;

  • 因此,我们在两个activities中传递数据,或者共享资源时(如数据库连接),需要在前一个activity的onPause()方法而不是onStop()方法中进行;

Service

1)service解析

Android 中的 Service 全面总结

2)两种启动方式

Service 两种启动方式

Fragment

1)生命周期:

[整] Android Fragment 生命周期图

数据存储:

1)contentprovider

十二、ContentProvider和Uri详解

2)sqlite

Android SQLite数据库操作实例

内存泄露:

Android中使用Handler造成内存泄露的分析和解决

android开发中,可能会导致内存泄露的问题

1,不要让生命周期长于Activity的对象持有到Activity的引用

2,尽量使用Application的Context而不是Activity的Context

3,尽量不要在Activity中使用非静态内部类,因为非静态内部类会隐式持有外部类实例的引用(具体可以查看细话Java:”失效”的private修饰符了解)。如果使用静态内部类,将外部实例引用作为弱引用持有。

4,垃圾回收不能解决内存泄露,了解Android中垃圾回收机制

网络

1)volley

Android库Volley的使用介绍

Android Volley完全解析(四),带你从源码的角度理解Volley

2)如何控制TCP连接时的拥塞

TCP的流量控制和拥塞控制

3)三次握手

TCP协议中的三次握手和四次挥手(图解)

4)Android客户端和服务端如何使用Token和Session

Android客户端和服务端如何使用Token和Session

5) 移动端获取网络数据优化的几个点

0. 连接复用 :

节省连接建立时间,如开启 keep-alive。

对于 Android 来说默认情况下 HttpURLConnection 和 HttpClient 都开启了 keep-alive。只是 2.2 之前 HttpURLConnection 存在影响连接池的 Bug,具体可见:Android HttpURLConnection 及 HttpClient 选择

  1. 请求合并:

即将多个请求合并为一个进行请求,比较常见的就是网页中的 CSS Image Sprites。如果某个页面内请求过多,也可以考虑做一定的请求合并。

2. 减少请求数据的大小:

对于post请求,body可以做gzip压缩的,header也可以作数据压缩(不过只支持http 2.0)。

3. 返回的数据的body也可以作gzip压缩,body数据体积可以缩小到原来的30%左右。(也可以考虑压缩返回的json数据的key数据的体积,尤其是针对返回数据格式变化不大的情况,支付宝聊天返回的数据用到了)

4. 根据用户的当前的网络质量来判断下载什么质量的图片(电商用的比较多)

图像处理:

1.裁剪

2.Fresco:

Fresco | Fresco 中文说明

android缓存

1.LRUCache

GC:

1.GC过程:

JVM垃圾回收(GC)原理

内存:

1)内存分配:

JVM内存管理------JAVA语言的内存管理概述

多线程

1)线程池:

Java并发编程:线程池的使用

事件分发机制

1)Touch

Android 编程下 Touch 事件的分发和消费机制

算法:

1.TopK堆解决

Java最小堆解决TopK问题

优化

1)Listview的优化

listview - Android

2)convertView是如何传递到adapter的getView方法的

ListView性能优化系列之三

Hybrid

1)java和JS的交互

Android中Java和JavaScript交互

Android中JavaScript和Native之间的Bridge

  • WebView开启JavaScript脚本执行

  • WebView设置供JavaScript调用的交互接口。

  • 客户端和网页端编写调用对方的代码。

-----------------------------------------------------------------------------------------------

感谢@ Jaeger 的修正,之前一直以为一个dialog弹出会触发当前的activity的onPause函数,其实并没有,onPause()触发的条件为当前的actiivty即将要退出activityStack的top,然而dialog并不是一个activity所以无法让activity退出的。写了个demo的确是没有弹出来onPause里面的toast,详细解释stackoverflow也有一个比较好的答案,上链接大家更正一下,不要影响到面试最重要!
Android: Under what circumstances would a Dialog appearing cause onPause() to be called?

作者:张虾昂

链接:https://www.zhihu.com/question/36654270/answer/70041187

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

知乎上一个关于Android面试的问题答案的更多相关文章

  1. Android面试题目及其答案

    转自:http://blog.csdn.net/wwj_748/article/details/8868640 Android面试题目及其答案 1.Android dvm的进程和Linux的进程, 应 ...

  2. 知乎上一个比较好的学习QT的公众号<<跟小豆君学Qt>>

    公众号网址:https://zhuanlan.zhihu.com/p/28472916

  3. 年底Android面试整理(附答案)

    面试,无非都是问上面这些问题(挺多的 - -!),聘请中高级的安卓开发会往深的去问,并且会问一延伸二.以下我先提出几点重点,是面试官基本必问的问题,请一定要去了解! 基础知识 – 四大组件(生命周期, ...

  4. 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18) eoe上看到的

    ===============eoeAndroid社区推荐:======================= 1.Android开发新浪面试题[开发者必看哦]下载地址 http://www.eoeand ...

  5. Android开发:向下一个activity传递数据,返回数据给上一个activity

    1.向下一个activity传递数据 activity1 Button button=(Button) findViewById(R.id.button1); button.setOnClickLis ...

  6. android webview点击返回键回到上一个html

    android webview点击返回键返回上一个html @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ( ...

  7. Android学习之可滑动当前的Activity视图看见上一个活动的视图

    先看一下我的效果图吧: 好大的图啊!!! 百度音乐由一个很酷的功能,当前的UI可以滑动,然后看见上一个活动的UI,当时顿时觉得百度的牛人好多啊,能将如此前沿的技术应用到app上.当然如果你熟悉了And ...

  8. 【Android】7.0 Intent向下一个活动传递数据、返回数据给上一个活动

    1.0 可以利用Intent吧数据传递给上一个活动,新建一个叫“hellotest01”的项目. 新建活动FirstActivity,勾选“Generate Layout File”和“Launche ...

  9. Android - 返回上一个界面finish()方法

    返回上一个界面finish()方法 本文地址: http://blog.csdn.net/caroline_wendy Android能够使用finish()方法,实现函数返回的功能.当不是Activ ...

随机推荐

  1. JDK安装错误问题总结。

    Windows10安装JDK,测试java -version时出现could not open XXX\jvm.cfg的解决方法. 1. 切记,环境变量修改后重新测试时一定要关闭命令再重新打开才生效 ...

  2. java 多线程 发布订阅模式:发布者java.util.concurrent.SubmissionPublisher;订阅者java.util.concurrent.Flow.Subscriber

    1,什么是发布订阅模式? 在软件架构中,发布订阅是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者).而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话 ...

  3. 基于nginx的rtmp直播服务器(nginx-rtmp-module实现)

    首先,在搭建服务之前先了解下目前主流的几个直播协议: 1.RTMP: 实时消息传输协议,Real Time Messaging Protocol,是 Adobe Systems 公司为 Flash 播 ...

  4. SpringBoot整合Netty实现socket通讯简单demo

    依赖 <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifa ...

  5. SpringBoot项目 maven打包时候提示程序包xxx不存在

    A模块依赖B模块 A打包的时候会报程序包xxx不存在 这时候我们看下B模块的pom.xml文件是否加了 <build> <plugins> <plugin> < ...

  6. nim_duilib之virtualListbox用法(22)

    概述 本文将介绍virtualListbox的用法. 更多请参考源码. 一个样式 样式丑了点,勿喷. 重写函数 使用virtualListbox, 需要一个派生类(继承自基类VirtualListIn ...

  7. 【LeetCode】448. Find All Numbers Disappeared in an Array 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 方法一:暴力求解 方法二:原地变负做标记 方法三:使用set ...

  8. 【九度OJ】题目1475:IP数据包解析 解题报告

    [九度OJ]题目1475:IP数据包解析 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1475 题目描述: 我们都学习过计算机网络, ...

  9. 【LeetCode】81. Search in Rotated Sorted Array II 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址:https://leetcode.com/problems/search-in ...

  10. Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问

    Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问 1.使用场景: 需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏, 需求2.同时需要在外网ssh远程 ​ 关键词: frp内网 ...