本篇文章主要介绍了"Android基础面试题",主要涉及到Android方面的内容,对于企业开发感兴趣的同学可以参考一下:
1. 请描述一下Activity 生命周期。答: 如下图所示。共有七个周期函数,按顺序分别是: onCreate(), onStart(), onRestart...
答:apk包大小限制不好说,有的apk为100M,还是能装到手机上。一般的apk大小为5~10M左右。读取大文件的时间应该是在main线程里面,时间限制为5秒左右。
20. ListView如何提高其效率?
答:1、使用分页加载,不要一次性加载所有数据。
2、复用convertView。在getItemView中,判断converView是否为空,如果不为空,可复用。
3、异步加载图片。Item中如果包含有webimage,那么最好异步加载。
4、快速滑动时,不显示图片。当快速滑动列表(SCROLL_STATE_FLING),item中的图片或获取需要消耗资源的view,可以不显示出来;而处于其他两种状态(SCROLL_STATE_IDLE和SCROLL_STATE_TOUCH_SCROLL),则将那些view显示出来
21. Android程序与Java程序的区别?
区别
Java程序
Android程序
执行入口点
Main
Android Mainfest.xml配置文件中的intent-filter
UI
Frame·
Activity
是否基于配置文件
否
是
是否基于组件
否
是Activity,Service,Broadcast Receiver,Content Provider
22. 谈谈对Android NDK的理解。
答: android NDK是一套工具,允许Android应用开发者嵌入从C、C++源代码编译来的本地机器代码到各自的应用软件包中。
1、 NDK是一系列工具的集合。
NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者帮助时巨大的。
NDK集成了交叉编辑器,并提供了相应的mk文件隔离CPU、平台、API等差异,开发人员只需要简单修改mk文件(指出“那些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK可以自动将so和Java应用一起打包,极大的减轻了开发人员的打包工作。
2、NDK提供了一份稳定、功能有限的API头文件声明。这些API支持的功能非常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、log库(liblog)。
23. 谈谈Android的优点和不足之处。
答: 优点如下所示:
1、android是开源、市场占有率大。
2、android能够有丰富的硬件选择。
3、android是一款基于Linux平台的开源操作系统,从而避免了专利壁垒,是一款完全免费的只能手机平台。
4、由于android是google开发的,因此能够无缝结合Google应用。
缺点如下所示:
1、安全与隐私。手机与互联网紧密联系,个人隐私很难得到保守。
24. Android系统中GC什么情况下会出现内存泄露呢?
答: 导致内存泄露主要的原因是,先前申请了内存空间而忘记了释放。如果程序中存在无用对象的引用,那么这些对象就会驻留内存,消耗内存,因为无法让垃圾回收器GC验证这些对象是否不再需要。如果存在对象的引用,这个对象就被定义为“有效的活动”,同时不会被释放。要确定对象所占内存将被回收,我们就要确认该对象不会再被使用。典型的做法是把对象数据成员设为null或者从集合中移除该对象。当出现以下情况时,会造成内存泄露:
1、 数据库的cursor没有关闭。
2、 构造adapter时,没有使用缓存contentview。
3、 Bitmap对象不使用时,采用recycle()释放内存。
4、 Activity中的对象的生命周期大于activity。
调试方法: DDMS==>HEAPSIZE==>dataobject==>[TotalSize]
25. Android UI中的View如何刷新。
答: Android中对View的更新方式有很多种,使用时要区分不同的应用场合。要分清的是:多线程和双缓冲。
1、不使用多线程和双缓冲