面试Android面试集锦Android精选

Android高新面试题2017汇总(带答案)

2017-09-23  本文已影响2194人  passiontim

 

前言介绍

最近汇总了一些大公司的部分面试题,包括腾讯、华为、阿里、网易等。

博客地址:

http://blog.csdn.net/androidstarjack/article

正文

 插件化、热修复 、热更新的理解

你认为Android热更新框架哪个好:

二.常用的热更新技术框架:

基础

activity生命周期图解

注意

锁定屏与解锁屏幕 只会调用onPause(),而不会调用onStop方法,开屏后则调用onResume()。在实际操作中会有所出入,比如在三星手机测试的时候锁定手机调用了onPause()和onStop()方法,解锁时候调用的是:onRestart(),onStart()和 onResume()方法。

介绍不同场景下Activity生命周期的变化过程

Activity销毁但Task如果没有销毁掉,当Activity重启时这个AsyncTask该如何解决?

比如屏幕旋转这个例子,在重建Activity的时候,会回调

Activity.onRetainNonConfigurationInstance()

重新传递一个新的对象给AsyncTask,完成引用的更新

若Activity已经销毁,此时AsynTask执行完并返回结果,会报异常么?

内存不足时,系统会杀死后台的Activity,如果需要进行一些临时状态的保存,在哪个方法进行

介绍Activity 四中launchMode:

我们可以在AndroidManifest.xml配置的android:launchMode属性为以下四种之一。

LaunchMode使用场景

如何把一个应用设置为系统应用

Activity,Window,View三者的联系和区别?

Activity启动Service的两种方式

Android两个应用能在同一个任务栈吗?

栈一般以包名命名,两个应用的签名和udid要相同

Fragment是什么?你曾经遇到哪些有关Fragment的问题?

Fragment生命周期

如何实现Activity窗口快速变暗

利用只读属性动画+WindowManager

/*  *@param from\>=0&&from\<=1.0f  * @param to\>=0&&to\<=1.0f  *  * */ private void dimBackground(final float from, final float to) { final Window window = getWindow(); ValueAnimator valueAnimator = ValueAnimator.ofFloat(from, to); valueAnimator.setDuration(500); valueAnimator.addUpdateListener(new AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) {  WindowManager.LayoutParams
 params = window.getAttributes();
 params.alpha = (Float) animation.getAnimatedValue();  window.setAttributes(params); } }); valueAnimator.start(); }

是否使用过本地广播,和全局广播有什么区别?

本地广播在本应用范围内传播,不用担心隐私数据泄露,不用担心别的应用伪造广播.相比全局广播,本地广播更高效.

注册广播的几种方法?

为什么Android引入广播机制?

了解IntentServices吗?

如何提升Service进程优先级

在AndroidManifest.xml文件中对于intent-filter可以通过android:priority = “1000”这个属性设置最高优先级,1000是最高值,如果数字越小则优先级越低,同时适用于广播。

ContentProvider和sql的区别

ContentProvider的主要还是用于数据共享,其可以对Sqlite,SharePreferences,File等进行数据操作用来共享数据。而sql的可以理解为数据库的一门语言,可以使用它完成CRUD等一系列的操作

数据存储相关

如何将打开res aw目录中的数据库文件?

什么是aar?aar是jar有什么区别?

“aar”包是 Android 的类库项目的二进制发行包。 文件扩展名是.aar,maven 项目类型应该也是aar,但文件本身是带有以下各项的 zip 文件:

这些条目是直接位于 zip 文件根目录的。 其中R.txt 文件是aapt带参数–output-text-symbols的输出结果。

jar打包不能包含资源文件,比如一些drawable文件、xml资源文件之类的,aar可以。

SQLite支持事务吗?添加删除如何提高性能?

SQLite作为轻量级的数据库,比MySQL还小,但支持SQL语句查询,提高性能可以考虑通过原始经过优化的SQL查询语句方式处理

如何将SQLite数据库(dictionary.db文件)与apk文件一起发布?

可以将dictionary.db文件复制到Eclipse Android工程中的res aw目录中。所有在res aw目录中的文件不会被压缩,这样可以直接提取该目录中的文件。可以将dictionary.db文件复制到res aw目录中

如何保证Service在后台不被kill

Android中如何获得手机的唯一标示.

参考:[http://blog.csdn.net/xushuaic/article/details/25077179]

mipmap文件夹和drawable文件夹的区别

它只是用来放启动图标的,好处就是,你只用放一个mipmap图标,它就会给你各种版本(比如平板,手机)的apk自动生成相应分辨率的图标,以节约空间。

ListView卡顿的原因以及优化策略

ViewHolder为什么要被声明成静态内部类

动画相关

Android中的动画有哪些?

Android动画原理

View绘制相关

SurfaceView和View的区别

介绍下自定义view的基本流程

谈谈View的绘制流程

measure()方法,layout(),draw()三个方法主要存放了一些标识符,来判断每个View是否需要再重新测量,布局或者绘制,主要的绘制过程还是在onMeasure,onLayout,onDraw这个三个方法中

自定义View执行invalidate()方法,为什么有时候不会回调onDraw()

事件传递机制

谈谈touch事件的传递流程

简单来说:

= OnTouchListener优先于onTouchEvent()对事件进行消费。 上面的消费即表示相应函数返回值为true。

View中setOnTouchListener中的onTouch,onTouchEvent,onClick的执行顺序

onTouch优于onTouchEvent,onTouchEvent优于onClick

触摸事件的分发机制详见:

Android触摸事件分发机制完全解析《一》

什么是Dalvik虚拟机

Dalvik虚拟机和JVM有什么区别

Android为每个应用程序分配的内存大小是多少

具体参考:

[https://liuzhichao.com/2016/use-android_largeHeap.html]

[http://www.cnblogs.com/mythou/p/3203536.html]

如何解决方法数65k问题?

使用Android Studio 的gradle 可以构建MutilDex

上一篇下一篇

猜你喜欢

热点阅读