android面试/笔试题归纳1
毕业生,最近在找android方面的工作,遇到的面试题记录下来,不会的不要再错第二次,会的当做复习吧。
持续更新中
题目:
1,上下文菜单和普通的菜单有什么区别
2,java里面的线程之间是怎么沟通的
3,handler和looper分别有什么用,他们的区别是什么
4,隐式intent的作用是什么
5,你对数字签名的理解
6,说下对ndk的理解
7,对MVC模式的理解
8,listview和Recyclerview的区别
9,广播。广播的类型,广播怎么传递信息。
答案:
1,上下文菜单和普通的菜单有什么区别
答:上下文菜单类似右键菜单,对某一个控件长按后弹出菜单。和普通菜单的区别在于,普通的菜单是对activity进行注册的,而上下文菜单是对一个控件注册。
2,java里面的线程之间是怎么沟通的
答:这个不太懂~。~跪求大神告诉我
3,handler和looper分别有什么用,他们的区别是什么
答:handler用于进程间的传递信息的工具。而looper则是为某一特定线程运行一个信息环。
线程通过handler的sendMessage方法把信息,即message,传递给另外一个线程,message会被放入该线程的MessageQueue(信息队列)中排队,而该线程对应的looper不断从MessageQueue中取出message,交给handleMessage方法处理。
4,隐式intent的作用是什么
答:启动其他程序的活动。
5,你对数字签名的理解
答:同一个开发者的多个程序尽可能使用同一个数字证书,这可以带来以下好处。
(1)有利于程序升级,当新版程序和旧版程序的数字证书相同时,Android系统才会认为这两个程序是同一个程序的不同版本。如果新版程序和旧版程序的数字证书不相同,则Android系统认为他们是不同的程序,并产生冲突,会要求新程序更改包名。
(2)有利于程序的模块化设计和开发。Android系统允许拥有同一个数字签名的程序运行在一个进程中,Android程序会将他们视为同一个程序。所以开发者可以将自己的程序分模块开发,而用户只需要在需要的时候下载适当的模块。
(3) 可以通过权限(permission)的方式在多个程序间共享数据和代码。Android提供了基于数字证书的权限赋予机制,应用程序可以和其他的程序共 享概功能或者数据给那那些与自己拥有相同数字证书的程序。如果某个权限(permission)的protectionLevel是signature, 则这个权限就只能授予那些跟该权限所在的包拥有同一个数字证书的程序。
参考自:http://www.cnblogs.com/maxinliang/p/3169335.html
6,说下对ndk的理解
答:NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。
NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。
NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。
7,对MVC模式的理解
答:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
8,listview和Recyclerview的区别
答:Recyclerview是android5.0新出的控件。提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator实现令人瞠目的效果。
自己没用过~。~参考自:http://blog.csdn.net/lmj623565791/article/details/45059587
9,广播。广播的类型,广播怎么传递信息。
答:有序广播,无序广播。
通过intent传递数据。sendBroadcast(intent)。