Andorid 面试题

作者: f17cd6e43b75 | 来源:发表于2017-10-10 00:01 被阅读40次

Andorid 面试题 集合

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

解答:在Android中不能直接打开res raw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件。复制的基本方法是使用getResources().openRawResource方法获得res raw目录中资源的 InputStream对象,然后将该InputStream对象中的数据写入其他的目录中相应文件中。在Android SDK中可以使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目录中的SQLite数据库文件

例子:http://zhan.renren.com/chenelvaq?gid=3602888498034651871&checked=true

2. 什么是ANR

ANR:Application Not Responding。
在Android中,活动管理器和窗口管理器这两个系统服务负责监视应用程序的响应。当出现下列情况时,Android就会显示ANR对话框了:
  用户对应用程序的操作(如输入事件,按键、触摸屏事件)在5秒内无响应
  广播接受器(BroadcastReceiver)在10秒内仍未执行完毕
  Android应用程序完全运行在一个独立的线程中(例如main)。这就意味着,任何在主线程中运行的,需要消耗大量时间的操作都会引发ANR。因为此时,你的应用程序已经没有机会去响应输入事件和意向广播(Intent broadcast)。
避免方法:Activity应该在它的关键生命周期方法(如 onCreate()和onResume())里尽可能少的去做创建操作。

3. 什么是内存泄露

内存不在GC掌控之内了。
当一个对象已经不需要再使用了,本该被回收时,而有另外一个正在使用的对象持有它的引用从而就导致对象不能被回收。这种导致了本该被回收的对象不能被回收而停留在堆内存中,就产生了内存泄漏。

4. 变量的存储位置

a. 成员变量全部存储在堆中(包括基本数据类型,引用及引用的对象实体)---因为他们属于类,类对象最终还是要被new出来的。
b. 局部变量的基本数据类型和引用存储于栈当中,引用的对象实体存储在堆中。-----因为他们属于方法当中的变量,生命周期会随着方法一起结束。

5. 为什么要用appcompat项目

因为里面是谷歌精心准备的---解决android碎片化开发蛋疼的问题,让我们app编译出来在各种高低版本之间、不同的厂商生产的ROM之间显示出来的效果UI控件等有一较一致的体验。

6. Java内部类的作用

http://andy136566.iteye.com/blog/1061951/

7. 必须知道的八大种排序算法

http://www.jianshu.com/p/8c915179fd02

8. 泛型中 extends 和 super 的区别

https://itimetraveler.github.io/2016/12/27/%E3%80%90Java%E3%80%91%E6%B3%9B%E5%9E%8B%E4%B8%AD%20extends%20%E5%92%8C%20super%20%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%9F/

9. Fragment State Loss

http://toughcoder.net/blog/2016/11/28/fear-android-fragment-state-loss-no-more/

10. [java中equals,hashcode和==的区别 http://blog.csdn.net/hla199106/article/details/46907725
11. 事件的传递与ViewRootImpl类源码解析

http://blog.csdn.net/qianhaifeng2012/article/details/51737370
http://blog.csdn.net/qianhaifeng2012/article/details/51674022

相关文章

  • Andorid 面试题

    Andorid 面试题 集合 1. 如何将打开res aw目录中的数据库文件? 解答:在Android中不能直接...

  • android 面试你们不得不了解的问题

    百度面试题 2013-5-2号补充: 1.View和ViewGroup的关系 2.如何定位和解决Andorid的内...

  • 史上最全Websocket通信测试

    H5和H5之间通信 H5和Andorid之间通信 Andorid和Andorid之间通信 H5通过http协议调用...

  • NDK开发基本常识

    重要的事情说3遍 请使用 Andorid Studio 2.2 及以上版本! 请使用 Andorid Studio...

  • andorid

    2016.8.12 2.xml tool的使用 在设计时你会看到 TextView 中的文字,而在运行时将不会有该...

  • 物联网体系介绍三:常见的开源操作系统

    1、Andorid Things Andorid Things 是谷歌上周刚推出的物联网操作系统,是去年推出的“B...

  • Android 第十天

    到今天为止,Andorid上的基本控件已经全部学完啦,加油。 Andorid 事件 三个概念涉及到Android事...

  • andorid初级面试题(1-20题)

    三金四银,又到了一年一度的跳槽季。也许有不少Android程序员开始摩拳擦掌蠢蠢欲动了。结合以往自己的经历,今天给...

  • andorid | adb

    oh no ? -> adb command not found /library/andorid/platorm...

  • android源码中编译APK

    andorid源码中编译apk,代码中引入新的包编译不过,需要在andorid.mk中添加相对应的包使用过程参考源...

网友评论

    本文标题:Andorid 面试题

    本文链接:https://www.haomeiwen.com/subject/oadmyxtx.html