安卓面试常见问题开发考试问题

Android开发(29)&
关注finddreams博客:
上一篇文章我们已经了解了笔试的一些基础题目,&[《Android开发面试经&&2.常见Android基础笔试题》 ]&()&笔试完,就是面试官问你问题了,相比笔试,面试我们往往会有些许紧张,因为不知道面试官会问什么奇怪的问题,要是问的问题刚好不懂,这时就更加头皮发麻了。为了能在面试提问中取得一个满意的表现,我特别整理了一下常见的面试官提的技术问题:&&
但是做为一个有经验的开发者,仅仅知道基础题还是不够的,你的简历上说有两年以上工作经验的话,那面试官肯定会问一些深入性的问题,看你能否回答的出。所以为了找一个更好的工作,我们还需要去了解一下Android进阶的笔试题目:
1.什么是ANR,如何避免?&ANR:Application Not Responding。&在 Android 中,活动管理器和窗口管理器这两个系统服务负责监视应用程序的响应。当出现下列情况时,Android 就会显示 ANR 对话框了:&①.用户对应用程序的操作(如输入事件,按键、触摸屏事件)在5秒内无响应&②. 广播接受器(BroadcastReceiver)在10秒内仍未执行完毕&Android 应用程序完全运行在一个独立的线程中(例如 main)。这就意味着,任何在主 线程中运行的,需要消耗大量时间的操作都会引发 ANR。因为此时,你的应用程序已经没有机会去响应输入事件和意向广播(Intentbroadcast)。&避免方法:Activity 应该在它的关键生命周期方法(如 onCreate()和 onResume())里尽可能少的去做创建操作,&潜在的耗时操作。例如网络或操作,或者高耗时的计算如改变位图尺寸,应该在子线程里(或者异步方式)来完成。&主线程应该为子线程提供一个 Handler,以便完成时能够提交给主线程。
2.Handler机制原理?&andriod 提供了 Handler 和 Looper 来满足线程间的通信。Handler 先进先出原则。&Looper 类用来管理特定线程内对象之间的消息交换 (MessageExchange)。&1)Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里的 MessageQueue(消息队列)。&2)Handler: 你可以构造 Handler 对象来与 Looper 沟通,以便 push 新消息到 MessageQueue 里;或者接收 Looper 从 MessageQueue 取出)所送来的消息。&3) Message Queue(消息队列 ): 用来存放线程放入的消息。&4)线程: UI thread 通常就是 main thread, 而 Android 启动程序时会替它建立一个 MessageQueue。
3.请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。&简单的说,Handler获取当前线程中的 looper对象,looper 用来从存放 Message 的 MessageQueue中取出 Message,再有 Handler 进行 Message 的分发和处理.&Message Queue(消息队列): 用来存放通过 Handler 发布的消息, 通常附属于某一个创建它的线程,可以通过 Looper.myQueue()得到当前线程的消息队列&Handler:可以发布或者处理一个消息或者操作一个 Runnable,通过 Handler发布消息, 消息将只会发送到与它关联的消息队列,然也只能处理该消息队列中的消息&Looper:是 Handler 和消息队列之间通讯桥梁,程序组件首先通过 Handler 把消息传递给 Looper,Looper 把消息放入队列。Looper 也把消息队列里的消息广播给所有的&Handler:Handler 接受到消息后调用 handleMessage进行处理&Message:消息的类型,在 Handler 类中的 handleMessage 方法中得到单个的消息进行处理&在单线程模型下, 为了线程通信问题, Android 设计了一个 Message Queue(消息队列), 线程间可以通过该 Message Queue 并结合 Handler 和 Looper 组件进行信息交换。&下面将对它 们进行分别介绍:&1. Message&Message 消息,理解为线程间交流的信息,处理数据后台线程需要更新 UI ,则发送Message 内含一些数据给 UI 线程。&2. Handler&Handler处理者,是 Message 的主要处理者,负责 Message 的发送,Message 内容的执行处理。后台线程就是通过传进来的 Handler对象引用来 sendMessage(Message)。&而使用 Handler,需要 implement 该类的 handleMessage(Message)方法,它是处理这些&Message 的操作内容,例如 Update UI 。通常需要子类化 Handler 来实现 handleMessage方法。&3. Message Queue&Message Queue 消息队列,用来存放通过 Handler 发布的消息,按照先进先出执行。每个 message queue 都会有一个对应的 Handler。Handler 会向 messagequeue 通过两种方法发送消息:sendMessage 或 post。这两种消息都会插在 message queue 队尾并&按先进先出执行。但通过这两种方法发送的消息执行的方式略有不同:通过 sendMessage发送的是一个 message 对象,会被 Handler 的 handleMessage()函数处理;而通过 post 方法发送的是一个 runnable 对象,则会自己执行。&4. Looper&Looper 是每条线程里的 Message Queue 的管家。Android 没有 Global 的MessageQueue,而 Android 会自动替主线程(UI 线程)建立 Message Queue,但在子线程里并没有建立 Message Queue。 所以调用 Looper.getMainLooper()得到的主线程的 Looper 不为 NULL,但调用 Looper.myLooper()得到当前线程的 Looper 就有可能为 NULL。
4.Android 中线程与线程,进程与进程之间如何通信&1、一个 Android 程序开始运行时,会单独启动一个 Process。&默认情况下,所有这个程序中的 Activity 或者 Service 都会跑在这个 Process。&默认情况下,一个 Android 程序也只有一个 Process,但一个 Process 下却可以有许多个 Thread。&2、一个 Android 程序开始运行时,就有一个主线程 MainThread 被创建。该线程主要负责 UI 界面的显示、更新和控件交互,所以又叫 UI Thread。&一个 Android 程序创建之初,一个 Process 呈现的是单线程模型&即 Main Thread,&所有的任务都在一个线程中运行。所以,Main Thread 所调用的每一个函数,其耗时应该&越短越好。而对于比较费时的工作,应该设法交给子线程去做,以避免阻塞主线程(主线程被阻塞,会导致程序假死 现象) 。&3、Android 单线程模型:Android UI 操作并不是线程安全的并且这些操作必须在 UI 线程中执行。如果在子线程中直接修改 UI,会导致异常。&4.Android 的 的 IPC ( 进程间通信 ) 机制&IPC 是内部进程通信的简称, 是共享 & 命名管道 & 的资源。Android 中的 IPC机制是为了让&Activity 和 Service之间可以随时的进行交互,故在 Android 中该机制,只适用于 Activity 和 Service之间的通信,类似于远程方法调用,类似于 C/S 模式的访问。通过定义 AIDL 接口文件来定义 IPC 接口。Servier 端实现 IPC接口,Client 端调用 IPC接口本地代理。
5.Android应用程序框架&&
6.View, surfaceView, GLSurfaceView的区别&View 是最基础的,必须在 UI 主线程内更新画面,速度较慢。&SurfaceView 是 view 的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比 view 快 GLSurfaceView 是 SurfaceView 的子类,opengl 专用的。&区别:SurfaceView是从View基类中派生出来的显示类,直接子类有GLSurfaceView和VideoView,可以看出GL和视频播放以及Camera摄像头一般均使用SurfaceView&SurfaceView和View最本质的区别在于,surfaceView是在一个新起的单独线程中可以重新绘制画面而View必须在UI的主线程中更新画面。&那么在UI的主线程中更新画面 可能会引发问题,比如你更新画面的时间过长,那么你的主UI线程会被你正在画的函数阻塞。那么将无法响应按键,触屏等消息。&当使用surfaceView 由于是在新的线程中更新画面所以不会阻塞你的UI主线程。但这也带来了另外一个问题,就是事件同步。比如你触屏了一下,你需要surfaceView中thread处理,一般就需要有一个event queue的设计来保存touch event,这会稍稍复杂一点,因为涉及到线程同步。
7. AIDL的全称是什么?如何工作?&AIDL 全称 Android Interface Definition Language(Android 接口描述语言)是一种接口描述语言 ; 编译器可以通过 aidl文件生成一段代码, 通过预先定义的接口达到两个进程内&部通信进程跨界对象访问的目的.AIDL 的 IPC 的机制和 COM 或 CORBA 类似 , 是基于接口的, 但它是轻量级的。 它使用代理类在客户端和实现层间传递值 . 如果要使用 AIDL, 需要完成2件事情 :&1. 引入AIDL的相关类 .;&2. 调用 aidl产生的 class.理论上 , 参数可以传递基本数据类型和String, 还有就是Bundle的派生类&当A进程要去调用B进程中的service时,并实现通信,我们通常都是通过AIDL来操作的 。&A工程:&首先我们在net.blogjava.mobile.aidlservice包中创建一个RemoteService.aidl文件,在里面我们自定义一个接口,含有方法get。ADT插件会在gen目录下自动生成一个RemoteService.文件,该类中含有一个名为RemoteService.stub的内部类,该内部类中含有aidl文件接口的get方法。&说明一:aidl文件的位置不固定,可以任意&然后定义自己的MyService类,在MyService类中自定义一个内部类去继承RemoteService.stub这个内部类,实现get方法。在onBind方法中返回这个内部类的对象,系统会自动将这个对象封装成IBinder对象,传递给他的调用者。&其次需要在AndroidManifest.xml文件中配置MyService类,代码如下:
为什么要指定调用AIDL服务的ID,就是要告诉外界MyService这个类能够被别的进程访问,只要别的进程知道这个ID,正是有了这个ID,B工程才能找到A工程实现通信。&说明:AIDL并不需要权限&B工程:&首先我们要将A工程中生成的RemoteService.java文件拷贝到B工程中,在bindService方法中绑定aidl服务&绑定AIDL服务就是将RemoteService的ID作为intent的action参数。&说明:如果我们单独将RemoteService.aidl文件放在一个包里,那个在我们将gen目录下的该包拷贝到B工程中。如果我们将RemoteService.aidl文件和我们的其他类存放在一起,那么我们在B工程中就要建立相应的包,以保证RmoteService.java文件的报名正确,我们不能修改RemoteService.java文件&bindService(new Inten(&net.blogjava.mobile.aidlservice.RemoteService&), serviceConnection, Context.BIND_AUTO_CREATE);&ServiceConnection的onServiceConnected(ComponentName name, IBinder service)方法中的service参数就是A工程中MyService类中继承了RemoteService.stub类的内部类的对象。
8.关于AndroidOOM,以及如何避免?&Android的虚拟机是基于寄存器的Dalvik,它的最大堆大小一般是16M,有的机器为24M。因此我们所能利用的内存空间是有限的。如果我们的内存占用超过了一定的水平就会出现OutOfMemory的错误。&①.为什么会出现内存不够用的情况呢?我想原因主要有两个:由于我们程序的失误,长期保持某些资源(如Context)的引用,造成内存泄露,资源造成得不到释放。保存了多个耗用内存过大的对象(如Bitmap),造成内存超出限制。&② .如何避免优化?&1、应该尽量避免static成员变量引用资源耗费过多的实例,比如Context。Context尽量使用Application Context,因为Application的Context的生命周期比较长,引用它不会出现内存泄露的问题。使用WeakReference代替强引用。比如可以使用WeakReference mContextR&2、线程也是造成内存泄露的一个重要的源头。线程产生内存泄露的主要原因在于线程生命周期的不可控。将线程的内部类,改为静态内部类。3、Bitmap问题:可以说出现OutOfMemory问题的绝大多数人,都是因为Bitmap的问题。因为Bitmap占用的内存实在是太多了,它是一个&超级大胖子&,特别是分辨率大的图片,如果要显示多张那问题就更显著了。&如何解决Bitmap带给我们的内存问题?&及时的销毁。  虽然,系统能够确认Bitmap分配的内存最终会被销毁,但是由于它占用的内存过多,所以很可能会超过java堆的限制。因此,在用完Bitmap时,要及时的recycle掉。recycle并不能确定立即就会将Bitmap释放掉,但是会给虚拟机一个暗示:&该图片可以释放了&。设置一定的采样率。  有时候,我们要显示的区域很小,没有必要将整个图片都加载出来,而只需要记载一个缩小过的图片,这时候可以设置一定的采样率,那么就可以大大减小占用的内存。如下面的代码: BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 2;//图片宽高都为原来的二分之一,即图片为原来的四分之一。&4、巧妙的运用软引用(SoftRefrence)  有些时候,我们使用Bitmap后没有保留对它的引用,因此就无法调用Recycle函数。这时候巧妙的运用软引用,可以使Bitmap在内存快不足时得到有效的释放&5、及时释放Cursor;&6、尽量使用9path图片。Adapter要使用convertView复用等等;
9. AsyncTask 的介绍&在开发 Android 移动客户端的时候往往要使用多线程来进行操作, 我们通常会将耗时的操作放在单独的线程执行, 避免其占用主线程而给用户带来不好的用户体验。 但是在子线程中无法 去操作主线程(UI 线程) ,在子线程中操作 UI 线程会出现错误。因此 android 提供了一个类 Handler 来在子线程中来更新 UI 线程,用发消息的机制更新 UI 界面,呈现给用户。 这样就解决了子线程更新 UI 的问题。但是费时的任务操作总会启动一些匿名的子线程,太多的子线程给系统带来巨大的负担,随之带来一些性能问题。因此 android 提供了一个工具类AsyncTask,顾名思义异步执行任务。这个 AsyncTask 生来就是处理一些后台的比较耗时的任务,给用户带来良好用户体验的,从编程的语法上显得优雅了许多,不再需要子线程和Handler就可以完成异步操作并且刷新用户界面。
10.说说mvc模式的原理,它在android中的运用&答:android的官方建议应用程序的开发采用mvc模式。何谓mvc?& mvc是model,view,controller的缩写,mvc包含三个部分:&  l、模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。&  2、视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc中用户唯一可以看到的一层,接收用户的输入,显示处理结果。&  3、控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,想用用户出发的相关事件,交给m处理。& android鼓励弱耦合和组件的重用,在android中mvc的具体体现如下:&1)视图层(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入,当然,如何你对android了解的比较的多了话,就一定 可以想到在android中也可以使用+html等的方式作为view层,当然这里需要进行java和javascript之间的通 信,幸运的是,android提供了它们之间非常方便的通信实现。& 2)控制层(controller):android的控制层的重 任通常落在了众多的acitvity的肩上,这句话也就暗含了不要在acitivity中写代码,要通过activity交割model业务逻辑层处理, 这样做的另外一个原因是android中的acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。& 3)模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,当然对业务计算等操作也是必须放在的该层的。& & 11.根据自己的理解描述下Android数字签名。&答:(1)所有的应用程序都必须有数字证书,Android系统不会安装一个没有数字证书的应用程序&(2)Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证&(3)如果要正式发布一个Android ,必须使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。&(4)数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能
12. 谈谈对 Android NDK 的理解&NDK 全称:Native Development Kit。&1、NDK 是一系列工具的集合。 * NDK 提供了一系列的工具,帮助开发者快速开发 C(或 C++)的动态库,并能自动将 so 和 java 应用&一起打包成 apk。这些工具对开发者的帮助是巨大的。 * NDK 集成了交叉编译器,并提供了相应的 mk 文件隔离 CPU、平台、ABI 等差异,开发人员只需要简单修改 mk 文件(指出&哪些文件需要编译&、&编译特性要求&等) ,就可以创建出 so。 * NDK 可以自动地将&so 和 Java 应用一起打包,极大地减轻了开发人员的打包工作。&2、NDK 提供了一份稳定、功能有限的 API 头文件声明。 Google 明确声明该 API 是稳定的,在后续所有版本中都稳定支持当前发布的 API。从该版本的 NDK 中看出,这些 API 支持的功能非常有限,&包含有:C 标准库(libc) 、标准数学库(libm) 、压缩库(libz) 、Log 库(liblog) 。
13.ViewStub的应用&在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Inflate,也就是说仍然会创建对象,会被实例化,会被设置属性。也就是说,会耗费内存等资源。&推荐的做法是使用android.view.ViewStub,ViewStub是一个轻量级的View,它一个看不见的,不占布局位置,占用资源非常小的控件。可以为ViewStub指定一个布局,在Inflate布局的时候,只有ViewStub会被初始化,然后当ViewStub被设置为可见的时候,或是调用了ViewStub.inflate()的时候,ViewStub所向的布局就会被Inflate和实例化,然后ViewStub的布局属性都会传给它所指向的布局。这样,就可以使用ViewStub来方便的在运行时,要还是不要显示某个布局。&但ViewStub也不是万能的,下面总结下ViewStub能做的事儿和什么时候该用ViewStub,什么时候该用可见性的控制。&首先来说说ViewStub的一些特点:&1. ViewStub只能Inflate一次,之后ViewStub对象会被置为空。按句话说,某个被ViewStub指定的布局被Inflate后,就不会够再通过ViewStub来控制它了。&2. ViewStub只能用来Inflate一个布局文件,而不是某个具体的View,当然也可以把View写在某个布局文件中。&基于以上的特点,那么可以考虑使用ViewStub的情况有:&1. 在程序的运行期间,某个布局在Inflate后,就不会有变化,除非重新启动。&因为ViewStub只能Inflate一次,之后会被置空,所以无法指望后面接着使用ViewStub来控制布局。所以当需要在运行时不止一次的显示和隐藏某个布局,那么ViewStub是做不到的。这时就只能使用View的可见性来控制了。&2. 想要控制显示与隐藏的是一个布局文件,而非某个View。&因为设置给ViewStub的只能是某个布局文件的Id,所以无法让它来控制某个View。&所以,如果想要控制某个View(如Button或TextView)的显示与隐藏,或者想要在运行时不断的显示与隐藏某个布局或View,只能使用View的可见性来控制。
阅读(...) 评论()安卓应用开发常见笔试面试题目_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
安卓应用开发常见笔试面试题目
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩32页未读,
定制HR最喜欢的简历
你可能喜欢查看: 2076|回复: 8
都考完了,开贴记录,从今天起自学安卓开发,到年底争取月薪过万,3年内年薪过30万
发表于 16-5-8 09:45
本帖最后由 hezejuyede 于
09:54 编辑
事业单位考完了,对了对答案,也就六十出头的成绩,岗位是要20人,报名1800人,绝对是炮灰,我唯一的遗憾就是苦学某图李老师的视频和课件,加刷题了2000道,结果考试考到学的很少,我不知道考上的那批人,到底怎么怎么学的。
公务员考试,事业单位考试都结束了,本想考上当地的事业单位还有公务员,这样就不用外出奔波了,虽然赚钱不多,但起码稳定,收入中上,老家里也有房子,也不用为房子发愁了,但现在就是残酷,我必须面对。
不用等成绩了,从现在,从今天开始自己记录每天自学软件开发。
我自己情况,如下
本屌丝一个巨野纯屌丝,是8-9年的,身份证是90年12月的,其实今年已经27周岁了,离三十而立只差3年了,现在单身狗一个,相亲相的都不知道多少次了,屡次被拒绝、,目前工资不到一月2000,加上兼职一月不到3000,大专毕业6年了,每月平均收入3000多点,本人极度省吃俭用,甚至抠门,2010年毕业到去年5月份,存了18万现金,由于相亲老是被甩,一赌气花8万元买了小汽车,然后去年5月受别人影响,剩下的10万元全部进入股市,一开始赶上牛市的尾巴,多少赚了点。
但接下来,股灾1.0,股灾2.0.股灾3.0,全部赶上了,尤其股灾1.0.真是追涨杀跌,一度只剩不到3万元,目前有3万自己的钱,加一万从马云那里借的钱,一共4万多,全部在股票里,打算从现在开始装死,什么时候回本再说。
我分析了现在的经济形势,现在在伟大光荣正确的领导下,尤其在大犬这个整天朋友圈里晒旅行照,还一个靠段子手治国的里克尔梅是治理下,在我国经济一滩死水,实体经济几乎已经奔溃。不过还是有点亮点,那就是互联网行业,如果说现在最火的行业,你数一数都是互联网的上中下游,而互联网上中下游的从业者薪水也是在社会所有从业者比较高的,什么行业都是基石,互联网的基石那就是设计这个程序的人,北京为例,一个刚刚从业的安卓工程师月薪至少6000起步,工作一年以上的至少月薪一万二。
我亲弟弟,去年青岛理工大学专科毕业,专业烂的一比,找不到工作,在我同学的推荐下,去北京一个某机构培训了4个月,去年12月上班,目前工资税前8500,老板说下半年给他涨到12000.
去年我给老弟报名了北京大学计算机的成人本科,本来老弟不愿去考,在我劝说下,老弟还是去了,结果考上了,老弟现在周一到周五工作,周六周日去北京大学校本部学习,虽说是成人本科,但至少去上课,至少被北大老师在教课,3年后老弟4年的工作经验,在北大计算机学历,在跳槽到大一点公司,我觉得问题不是很大。3年后他很可能距月薪2万多,年薪接近30万。如果不买房子,在北京还是很滋润的,多说一句,老弟的女朋友,在他去年找不到工作的时候,整天甩脸子,闹分手,现在老弟的女朋友整天黏他黏的不行,看的很严,光怕老弟不要她了,对此大家都懂,我就不多说了。
发表于 16-5-8 09:50
本人条件有点差,专科毕业,拿了华北理工大学和哈尔滨工业大学的2个成人本科,但没有什么用,还有高中是学俄语的,英语也就初中2年级水平,数学也很差,计算机编程就是靠英语和数学,所以从今天开始,每天坚持学50个计算书专业英语,每天花5个小时时间去学习,争取到6月底能入门Java,然后离职,在家在入门安卓,然后去北京找工作,找点初级工作,边工作边自学,当然还是不会把公基和行测扔掉,每天坚持看一看,然后做做题,毕竟程序员最后还是要转行业的,争取到35年前,赚到钱,然后再考上编制。
发表于 16-5-8 09:52
把心里话都说出来了,现在一身轻松,一会把手头上工作干完,就开始干,每天来更新一次,说下自己的学习情况,论坛里那些如果还没有给自己找到目前的同学,大家可以一起共勉,现在社会,穷人真的只有努力才能有回报,不用怨天怨地,就是自己不努力, 我相信天道酬勤!!!!!!!!!
发表于 16-5-8 10:07
勤奋点没什么不好&&方向很关键
发表于 16-5-8 10:20
[发自手机]
挺好的,挺佩服你
发表于 16-5-8 10:44
[发自手机]
面试怎么样?看你的帖子,怎么感觉不管什么人,只要跟互联网沾点儿边,都能赚大钱
发表于 16-5-8 10:45
[发自手机]
另外,你可以在网上找视频。听说过黑马,好像跟CSDN有点儿关联。考虑考虑
发表于 17-2-17 18:19
o^_^Y^_^o^_^Y^_^o^_^Y^_^o^_^Y^_^
发表于 17-2-24 17:29
顶!只要心里愿意就行!给你加油。
Powered by Discuz! ,
GMT+8, 18-5-13 13:52拒绝访问 | www.ggdoc.com | 百度云加速
请打开cookies.
此网站 (www.ggdoc.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(41a2dc1feee743ad-ua98).
重新安装浏览器,或使用别的浏览器&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
Android笔试或者面试的几个题目
摘要:最近一直在帮项目组招聘Android开发人员。面试的过程中,要去理解面试者的项目,要提出问题,也算是个自我提高的过程。由于人基本已经招到了,我就把自己喜欢问的一些问题整理了一下,做成了这个笔试或者面试题目。希望对大家找工作有帮助。吼吼~~~1.简单描述Android中有哪几种布局?你在项目中最经常使用哪几种?2.请用xml布局的方式简单写一下下面的UI。(图片省略,可根据自身的项目要求提供。)3.简单描述Android中常用的几种数据存储方式。你在最近的项目中用到哪几种?4.
最近一直在帮项目组招聘Android开发人员。面试的过程中,要去理解面试者的项目,要提出问题,也算是个自我提高的过程。
由于人基本已经招到了,我就把自己喜欢问的一些问题整理了一下,做成了这个笔试或者面试题目。希望对大家找工作有帮助。吼吼~~~
1. 简单描述Android中有哪几种布局?你在项目中最经常使用哪几种?
2. 请用xml布局的方式简单写一下下面的UI。(图片省略,可根据自身的项目要求提供。)
3. 简单描述Android中常用的几种数据存储方式。你在最近的项目中用到哪几种?
4. View,SurfaceView,GLSurfaceView有什么区别?你认为应用开发一般使用哪种?游戏开发呢?
5. 简述Android中sp、dp、px的区别。你在项目中一般使用哪种方式?
6. 你在项目过程中是否发现某个API在不同SDK版本上有差异?请给出两个,并简述。
7. 在Android中,线程之间通信一般使用什么方式?应用程序之间通信呢?
8. 请简述使用NDK的大致过程。
9. Android应用对于内存的大小是有限制的,请简述几种解决办法。
10. Android应用容易发生ANR错误,请简述几种避免ANR错误的办法。
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
Android笔试或者面试的几个题目相关信息,包括
的信息,所有Android笔试或者面试的几个题目相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International

我要回帖

更多关于 安卓解析包时出现问题 的文章

 

随机推荐