当前位置:首页 » 安卓系统 » android面试试题

android面试试题

发布时间: 2022-01-13 13:08:42

1. android 面试题

1、前言 
  6 月  26  日,  Google Android  发布了  NDK  ,引起了很多发人员的兴趣。  NDK  全
称:   Native  Development  Kit  。下载地址为: 
http://developer.android.com/sdk/ndk/1.5_r1/index.html  。 
2、误解 
  新出生的事物,除了惊喜外,也会给我们带来一定的迷惑、误解。 
2.1、误解一:  NDK  发布之前,  Android  不支持进行  C  开发 
  在 Google  中搜索  “NDK”  ,很多  “Android  终于可以使用  C++  开发  ”  之类
的标题,这是一种对  Android  平台编程方式的误解。其实,  Android  平台从诞生起,就已
经支持  C  、   C++  开发。众所周知,   Android  的  SDK  基于  java  实现, 这意味着基于  Android 
SDK  进行开发的第三方应用都必须使用  Java  语言。但这并不等同于 “  第三方应用只能使
用  Java”  。在  Android  SDK  首次发布时,  Google  就宣称其虚拟机  Dalvik  支持  JNI  编程
方式,也就是第三方应用完全可以通过  JNI  调用自己的  C  动态库,即在  Android  平台上,  
“Java+C”  的编程方式是一直都可以实现的。 
  当然这种误解的产生是有根源的:在 Android SDK  文档里,找不到任何  JNI  方面的
帮助。即使第三方应用开发者使用  JNI  完成了自己的  C  动态链接库(  so  )开发,但是  so 
如何和应用程序一起打包成  apk  并发布?这里面也存在技术障碍。我曾经花了不少时间,
安装交叉编译器创建  so  ,并通过  asset (资源)方式,实现捆绑  so  发布。但这种方式只
能属于取巧的方式,并非官方支持。所以,在  NDK  出来之前,我们将  “Java+C”  的开发
模式称之为灰色模式,即官方既不声明 “  支持这种方式  ”  ,也不声明 “  不支持这种方
式  ”  。 
2.2、误解二:有了  NDK  ,我们可以使用纯  C  开发  Android  应用 
  Android SDK 采用  Java  语言发布,把众多的  C  开发人员排除在第三方应用开发外
(  注意:我们所有讨论都是基于“  第三方应用开发  ”  ,  Android  系统基于  Linux  ,系
统级别的开发肯定是支持  C  语言的。   )。 NDK  的发布,许多人会误以为,类似于  Symbian  、 
WM  ,在  Android  平台上终于可以使用纯  C  、  C++  开发第三方应用了!其实不然,  NDK 
文档明确说明:  it is not a good way  。因为  NDK  并没有提供各种系统事件处理支持,也没
有提供应用程序生命周期维护。此外,在本次发布的  NDK  中,应用程序  UI  方面的  API  也
没有提供。至少目前来说,使用纯  C  、  C++  开发一个完整应用的条件还不完备。 
 
3、NDK  是什么 
 
对 NDK  进行了粗略的研究后,我对  “NDK  是什么  ”  的理解如下: 
 
1、NDK  是一系列工具的集合。 
 
NDK 提供了一系列的工具,帮助开发者快速开发  C  (或  C++  )的动态库,并能自动
将  so  和  java  应用一起打包成  apk  。这些工具对开发者的帮助是巨大的。 
NDK 集成了交叉编译器,并提供了相应的  mk  文件隔离  CPU  、平台、  ABI  等差异,
开发人员只需要简单修改  mk  文件(指出 “  哪些文件需要编译  ”  、 “  编译特性要求  ” 
等),就可以创建出  so  。 
NDK 可以自动地将  so  和  Java  应用一起打包,极大地减轻了开发人员的打包工作。 
2、NDK  提供了一份稳定、功能有限的  API  头文件声明。
 
  oogle 明确声明该  API  是稳定的,在后续所有版本中都稳定支持当前发布的  API  。
从该版本的  NDK  中看出,这些  API  支持的功能非常有限,包含有:  C  标准库(  libc  )、
标准数学库(  libm  )、压缩库(  libz  )、  Log  库(  liblog  )。 
G
 
4、NDK  带来什么 
 
1、NDK  的发布,使  “Java+C”  的开发方式终于转正,成为官方支持的开发方式。 
使用 NDK  ,我们可以将要求高性能的应用逻辑使用  C  开发,从而提高应用程序的执
行效率。 
使用 NDK  ,我们可以将需要保密的应用逻辑使用  C  开发。毕竟,  Java  包都是可以反
编译的。 
NDK 促使专业  so  组件商的出现。(乐观猜想,要视乎  Android  用户的数量) 
2、NDK  将是  Android  平台支持  C  开发的开端。 
  NDK 提供了的开发工具集合,使开发人员可以便捷地开发、发布  C  组件。同时,  
Google 承诺在  NDK  后续版本中提高  “  可调式  ”  能力,即提供远程的  gdb  工具,使我
们可以便捷地调试  C  源码。在支持  Android  平台  C  开发,我们能感觉到  Google  花费了
很大精力,我们有理由憧憬 “C  组件支持  ”  只是  Google Android  平台上 C  开发的开端。
毕竟,   C  程序员仍然是码农阵营中的绝对主力,将这部分人排除在  Android  应用开发之外,
显然是不利于  Android  平台繁荣昌盛的。

2. android面试题会出现什么内容

可以让你在PC端(电脑上)安装运行模拟Android系统。并可以在电脑端进行几乎任何手机上可以进行的操作,甚至还可以像手机一样连接电脑,被手机助手检测到,可以模拟所有官方版本的安卓系统,并且有多款皮肤和屏幕样式可供选择

3. android工程师面试一般会问哪些问题

1. Android经验
如果不是校招,Android经验是必须的,我比较喜欢问一些基础概念与技术原理,比如Activity、View、Window的理解,各LaunchMode的使用场景,View的绘制流程,Touch事件机制,Android动画的原理,Handler, Looper的理解,Android跨进程通讯的方式,Binder的理解,Android Mashup设计的理解等等。
2. Java水平
基本上就是Effective Java那本书里提到的东西,如果你背完那本书里的问题,并且对答如流,没问题,就要你这样的。其实也会考察关于final用法,反射原理,注解原理,java编译过程,GC等一些常见问题。
3. IT基础知识
其实就是计算机科班学生学校里学到的一些东西,在校招时这块是重点,社招会放宽,但一些基本的常识是要有的,比如不少人都不知道http的get post有啥区别,https的那个s是什么意思,讲不清进程与线程的概念,不知道二分算法是个啥东西。这些简单问题的筛选,可以过滤一些所谓野路子的程序员,是不是科班出身不重要,搞这行就得对一些基本常识有概念,不然以后怎么愉快的交流呢?
4. 代码质量的认识
我们需要的是一个对代码味道有感觉的人,关于这点,看下《Clean Code》就够了,面试中这点其实不好考察,可以让他聊一聊对代码质量的认识,虽然不能排除对方夸夸其谈,至少想法不多,只能提到命名风格这一点的人是不符合要求的,也可以在写Code的环节中观察。
5. 技术视野
比如对Android开发新技术的了解与学习,对其它流行技术领域的了解,这其实与我刚才提到的技术广度的考察有关,就我面试过程中,发现很多非互联网行业的从业人员,因为公司各种操蛋规定与公司技术氛围的原因,技术视野相当狭窄。
我个人对这点深有体会,2011年我还在传统行业从事软件研发,当时的公司因为担心技术信息泄露,不让上网,相当封闭,我个人虽然自认为已在那个行业内做到业内专家的级别,但总感觉哪里不对,有一天我很兴奋的打算跟身边同事聊一聊Android的时候,发现他们居然都不知Android为何物?2011年啊同志们,当时的震惊无法言表,深切感觉到需要作出改变了,毅然放弃多年行业积累,转战移动互联网,直到现在。时至今日,多年前的小伙伴也有很多混出了名党,开始走向人生巅峰,我也从来没有后悔当初做出的选择。
6. 技术想象力
一个优秀的技术人,如果知识的深度与广度足够,知识已成体系,那么他对于一些从未接触过的领域,也是可以做出足够合理的想象与判断,面试过程中如果问到一些领域候选人没有涉猎,这时候一般不用过多纠缠,但如果你想借这个问题考察下他的技术想象力,可以深入下去,比如问他:“你觉得这个东西应该是什么原理呢?”,“这个酷炫的控件,如果要你来做,你会怎么实现?”。在这方面表现出色的同学无疑是有深厚基础与足够广度的人。

4. 好程序员android面试都面试哪些问题,不知道难不难。

  1. 根据公司的项目需求,比如公司做的是一个涉及到地图定位,支付和聊天的项目,那一般就会找在这方面有开发经验的人。

  2. 根据面试者简历上的项目经验,看看这个人做了哪些项目,根据这些项目问一些相关的技术问题。

  3. 假设一些工作情况和条件,问面试者是如何面对和解决的。

有些公司确实会很刁难人,但这不能怪人家,毕竟他们想找一个能真正胜任工作的人,而你也想这样的工作。所以,面试的时候最重要的还是做你自己。让他们了解你,你自己也去了解他们。遇上自己很喜欢的工作但是人家又不要你,那你就努力提升自己。

5. Android面试题一道

面介绍一下RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignPar..

6. 关于android面试题,求解!

像素数组int[]data里就是一个个像素的颜色值,你循环和0xffffffff比较,如果相等,那么就把这个值换成0x88ffffff就行了,这样像素数组里所有的白色不透明(0xffffffff)都变成的半透明

7. 软通动力培训android面试题 答案

还是要把基础学好了,才可以把成绩提高的,在网上是问不到答案的哈
多背书,是有好处的 多思考,才会有进步

8. android 面试,算法题。

final int size = data.length;
for(int i = 0; i< size; i++){
if(data[i] == 0xffffffff)
data[i] = 0x80ffffff;
}

不知道你是不是这个意思。

9. android 面试题编程题

你这个要是写的话内容真的不少,只能给你一些提示,然后自己去找一下吧。。
1、显示加载等待框
开启线程,在子线程中调用加载数据方法,加载完成后使用Handler通知界面刷新
在Handler中调用刷新界面方法
2、第二个的内容更多了,需要重写ListView,在网上搜一下“ListView分页加载”会有很多的。

10. 谁能推荐几套android的好的面试题

一般面试公司笔试的都是网络到的题,面试的时候就看考官了。把网络到的背下来过笔试就没问题了。面试就看你水平了。

热点内容
主流可编译语言 发布:2024-11-15 00:42:23 浏览:729
excel缓存清除 发布:2024-11-15 00:39:53 浏览:486
机械键盘可编程 发布:2024-11-15 00:39:09 浏览:912
php判断字符开头 发布:2024-11-15 00:35:33 浏览:507
网易苹果游戏怎么转移到安卓 发布:2024-11-15 00:07:52 浏览:270
win7php环境搭建 发布:2024-11-15 00:06:55 浏览:17
erpjava 发布:2024-11-14 23:52:23 浏览:253
电脑版地平线四怎么连上服务器 发布:2024-11-14 23:46:42 浏览:472
ios怎么变安卓 发布:2024-11-14 23:46:36 浏览:333
win7共享xp打印机拒绝访问 发布:2024-11-14 23:45:29 浏览:750