android面试题2

阅读: 评论:0

android面试题2

android面试题2

. 描述一下android的系统架构:答:android系统架构分从下往上为Linux内核层、运行库、应用程序框架层和应用程序层。    Linux内核层:负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。运行库和androidruntion:运行库:即c/c++函数库部分,大多数都是开放源代码的函数库,例如webkit,该函数库负责android网页浏览器的运行;例如标准的c函数库libc、openssl、sqlite等,当然也包括支持游戏开发的2dsgl和3dopengles,在多媒体方面有mediaframework框架来支持各种影音和图形文件的播放与显示,如mpeg4、h.264、mp3、aac、amr、jpg和png等众多的多媒体文件格式。Androidruntion负责解释和执行生成的dalvik格式的字节码应用软件架构:java应用程序开发人员主要是使用该层封装好的api进行快速开发的。应用程序层:该层是java的应用程序层,android内置的googlemaps、email、IM、浏览器等,都处于该层,java开发人员工发的程序也处于该层,而且和内置的应用程序具有平等的地位,可以调用内置的应用程序,也可以替换内置的应用程序2. Activity 与 Task的启动模式有哪些,它们含义具体是什么?答:在一个activity中,有多次调用startActivity来启动另一个activity,要想只生成一个activity实例,可以设置启动模式。    一个activity有四种启动模式:standed,signleTop,singleTask,singleInstance    Standed:标准模式,一调用startActivity()方法就会产生一个新的实例。    SingleTop:如果已经有一个实例位于activity栈顶,就不产生新的实例,而只是调用activity中的newInstance()方法。如果不位于栈顶,会产生一个新的实例。    singleTask:会在一个新的task中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。    SingleInstance:这个和singleTask基本一样,只有一个区别:在这个模式下的activity实例所处的task中,只能有这个activity实例,不能有其他实例android中常用的四个布局是framlayout,linenarlayout,relativelayout和tablelayout。android 中service的实现方法是:startservice和bindservice。5. 程序运行的结果是:_____good and gbc__________。   public classExample{  String str=new String("good");  char[]ch={'a','b','c'};  public static void main(String args[]){    Example ex=new Example();    ex.change(ex.str,ex.ch);    System.out.print(ex.str+" and ");    Sytem.out.print(ex.ch);  }  public void change(String str,char ch[]){    str="test ok";    ch[0]='g';  }}6. 简述Android应用程序结构是哪些?(7分)Android应用程序结构是:  Linux Kernel(Linux内核)、Libraries(系统运行库或者是c/c++核心库)、Application   Framework(开发框架包)、Applications  (核心应用程序)如何将一个Activity设置成窗口的样式。     在l 中定义Activity的地方一句话android:theme="@android:style/Theme.Dialog"android:theme="@android:style/Theme.Translucent"就变成半透明的 .

一.属于GLSurFaceView特性的是:

1.管理一个surface,这个surface就是一块特俗的内存,能直接排版到Android的视图view上。

2.管理一个EGL display,它能让opengl把内容渲染带哦上述的surface上

3.让渲染器在独立的线程中运作,和UI线程分离。

二、说下contentValues:

答:他与hashtable比较类似,都是存储名值对的,名是String类型,而值都是基本类型

三、Handler是线程与activity通信的桥梁,如果线程处理不当,你的机器就会变得很慢,线程销毁的方法是:

答:onDestroy()



面试官看一个Android项目看的是什么?

本人应届生,想往安卓方向发展。
有一定的java基础。现在在自学android开发。
想开发一个项目,去应聘安卓实习生。
RT,各位大神认为我的项目里最好体现些什么?
美观的UI?清晰的结构代码?项目的健壮性?新颖的图片加载算法?

注:
我的毕业设计也是一个安卓项目,结构还算清晰吧,不过没有什么亮点,基本都是api功能的实现。界面更是不堪入目。
用到了版本控制,sqlite,多线程,socket,当然集合肯定不会少的。

真心求教
当然,可能安卓实习生看重的可能更多的是java基础知识?
这方面怎么说呢,应该还可以吧,因为我自己做的项目,出现什么错误提示,我基本都能明白和解决。 添加评论  分享 按投票排序 按时间排序

8 个回答

知乎用户 ,公众号:妙手写徽真 xY Yx、张飞、知乎用户  等人赞同 最近面试过几家公司,也找到了Android客户端开发的实习,最主要看的应该是项目的结构吧。
我当时在技术一面的时候主要讲了项目涉及到的技术,还有一些基本的Android开发问题,比如OOM的时候怎么解决等等;
技术二面的时候,就要在白板上画出整个项目架构,说明对项目各模块的包装,设计模式,性能优化等等(UI方面根本不问)。
技术三面的时候,直接谈到了软件工程,敏捷开发的东西。我对软件工程的理解仅仅来自于书本,结果被面试官(一个leader)一下就看出来是背书了,说没有跟上时代。。。

Java基础肯定是要过硬的,更看重的是语言设计层面,面向对象通用的。比如说,Java中的数据结构有哪些,使用情境在哪?(我把collection和map两大类全部讲了),override和overload区别,高度并发且线程安全的HashMap怎么实现。

总的来看,面试官都不是特别关注项目的细节,而是要在谈话中探听出你的开发经验,风格等等,我做Android开发两年了,去面试之前又有了半年的创业公司实习经历,所以前两面谈起来还是比较顺的。如果你的开发经验足够,而且开发过程中善于自己去解决问题,触类旁通,应该就没有什么问题的 发布于 2015-04-02  15 条评论  感谢  分享   收藏  •  没有帮助  •  举报  •  作者保留权利 依然饭特稀 ,程序猿,Android 工程师 志行、知乎用户、黄庆谦  等人赞同 1 ,OOM(这是Adroid开发最常见,最重要的)

2,内存管理(主要就是图片加载,缓存机制),

3,java垃圾回收,

如果这几点你都能阐述的不错,多半都会给你机会的~~~

——————————更新——————————————————
上面说了3个比较重要的点,下面根据我自己的面试经历补充一下其他的。。。。。。

面试的时候,面试官会根据你简历上的项目经历(或者是你的作品)让你自己选一个演示一下,然后会根据你演示问其中用到的一些技术。比如:
1,问你实现这个用到了哪些技术,有其他的实现方式吗?还可以做出哪些优化?

2,整个项目中用到了哪些开源框架?他们的实现思路是什么?你看过他们的源码吗?

3,说说你知道的当前几个比较火比较流行的开源框架(比如 Volley ,Universnal-image-loader等),是怎么用的,研究过他们的源码没?

4,此外还会问一些系统的常用组件,比如说 Listview 的用法,自定义Adapter,Listview中的重用优化(我记得当时面试官是这样问我的,ScrollView 和ListView 都能展示一个列表,为什么用Listview 而不用ScrollView ? 这个问题主要就是ListView 的重用,使用了covertview,只加载可见的item,释放不可见的item)。

以上基本就是基于你做的项目问的一些问题,此外还有一些常见的面试问题:

1,叫你说一下,Java中集合的类整个继承结构,list,map,set, queue的区别?
2,说一下你了解的几个常用的设计模式。(简单的要会写哦!!比如单例模式,上次我旁边的面试官同事说,他叫面试者在纸上写一个单例模式,然后没写出来,直接pass)
3 ,最好自己有个Github帐号,上面有自己的代码,这是个很好的加分项。。

好了,,,基本上就是这些,希望能够帮助到正在找工作的朋友~~~好运!!! 编辑于 2015-04-06  1 条评论  感谢  分享   收藏  •  没有帮助  •  举报  •  作者保留权利 亮中 ,资深装逼用户 纯粹文艺青年 周磊、知乎用户、知乎用户  等人赞同
想开发一个项目,去应聘安卓实习生。
如果时应聘实习生的话,技术1面的话比较多问的Android基础部分,而且大部分是和你这个项目可能没有关联的。

2面试官会问比较多关于你这个项目用的了什么技术,怎么实现的。往往会结合公司将要你做的项目模块有关。比如公司将要做电商类的应用,估计会问你这个XX界面要怎么样做,大概多长时间你能够完成。

3面估计有个总监来面,估计也没有。但是这个总监就不一定是技术类的。我发现这时候,很多问题时是和技术无关的,多是关于你这个人的,比如学校生活,产品想法,成长经历等。

当然,可能安卓实习生看重的可能更多的是java基础知识?
这个不敢保证,看什么公司吧。但是作为android开发人员,java基础还是要牢固点。建议交叉学习,主要android,遇到java上的一些问题,倒回去学习java,再回来干android。

-题外-

作为Android实习生的话,有完整项目经历外,还需要多一点的其他知识。
建议,看完 Android Design,Training文档部分。 发布于 2015-04-02  2 条评论  感谢  分享   收藏  •  没有帮助  •  举报  •  作者保留权利 刘志龙 ,主业Android应用开发,向全栈进军;开源项… Cyrus蒋、唐荣意、吴周道  等人赞同 手机打字版式不对请见谅。
-------------------
仔细回答下吧。做了5年安卓了。负责技术招聘这块大概两年半吧。说下我现在的面试流程,我们可能跟其他大公司不一样,我们这边一般一面就可以了。两面的也有但是很少。一面一般是我再加我一个小弟直接去面,非技术方面会在面试过程中根据面试者的交流来判断是否容易沟通,思路是否清晰,工作稳定性是否高。楼主主要问技术方面吧。技术方面是这样的。首先会看面试者想要面的职位,根据不同的级别会问不同的问题。我这边没有面试题给你做。做了也没用,一般直接让面试者拿项目看,初级或者实习生的职位,就会问如下几点1.这个app都用到什么技术点?2.app分了几层,如何分层的?3.这么设计有什么优势?能解决什么问题。有没有其他方式设计?(这是为了看知识的广度)4.用了哪些开源库,同类库还知道哪些?他们大概怎么实现的。5.项目用到的一些系统组件的大概用法以及相关衍生提问。基本上初级程序员就问这些。
高级程序员呢,上面的问题会问一部分,但是主要是看他对安卓本身的理解,比如如下。1.为什么会有fragment这个东西,他是干嘛的?能解决什么问题?用view能做的事情为什么还要用fragment? 2.用到开源库了吧。用的啥啊?用的slidemenu?OK 他怎么写的啊?view绘制流程什么样啊?touch事件怎么分发的啊?他为什么加到decor view上啊?等等基于开源库的相关于framework层的实现3.listview用过吧,他怎么实现的啊?4.MVC mvvm他俩啥区别啊?哪个更适合安卓架构的开发啊?为啥呢?5.OOM肯定都遇到过吧?为什么会产生OOM?GC的机制是什么样的?别说大图片加载导致oom,那只是oom的一种,本质原因是啥?怎么避免?说到这个会问handler啊内部类啊为什么会导致内存泄漏什么的。等等吧。 然后还会问一些后台的相关知识。
————————————
总结下来,基础程序员我看中的是你对技术的热情,以及你做过什么。而高级程序员我看中的是你对安卓本身的理解。

插播软广告
招各方面大牛,技术产品运营都要。base苏州。薪资看齐北上广。团队成员很多bat。欢迎加盟。 发布于 2015-04-05  14 条评论  感谢  分享   收藏  •  没有帮助  •  举报  •  作者保留权利 Rowandjj ,Android developer/移动互联网 xY Yx、江城小二  赞同 面试官通常关注以下方面: 
1. 项目是否完整;
2. 面试者是否能完整阐述项目架构,项目难点或创新点;
3. 安卓和java基础是否扎实: 
安卓主要是四大组件,网络通信,性能优化,数据存储,内存管理,UI; 
java主要是 IO/NIO 集合 异常 线程 并发 注解 网络 内存管理 ;
4. 是否有独立解决问题的能力; 发布于 2015-04-05  添加评论  感谢  分享   收藏  •  没有帮助  •  举报  •  作者保留权利 匿名用户 曹先进、janisns sinsids、知乎用户  赞同 talk is cheap, show me the code.
所以,放个项目GitHub上,有几百上千个star就可以随意找了。 发布于 2015-04-04  1 条评论  感谢  分享   收藏  •  没有帮助  •  举报  •  作者保留权利 匿名用户 背离记  赞同 其它答案说的差不多了,我补充一点

对于应届生 首先是确认这个应用确实是你写的。

你知道....现在来面试的....不知道哪里复制点代码...或者哪个培训课程里弄一个项目就来的太多了.........所以你自己写项目......千万不要和各大培训机构的训练项目 相似...... 发布于 2015-04-06  添加评论  感谢  分享   收藏  •  没有帮助  •  举报  •  作者保留权利 乔红 做一个完整的应用比一个demo值钱得多,也复杂得多


本文发布于:2024-01-29 19:45:26,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170652873217840.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:面试题   android
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23