android开发面试题目 Android(['ændrɔid])是一个以Linux为基础的半开源操作系统,主要用于移动设备,由Google和开放手持设备联盟开发与领导。下面就由X为大家介绍一下android面试精彩题目总结的文章,欢迎阅读。 android面试精彩题目总结篇1 1、请解释下在单线程模型中Message,Handler,MessageQueue,Looper之间的关系。拿主线程来说,主线程启动时会调用()方法,会初始化一个Looper,放入Threadlocal中,接着调用()不断遍历MessageQueue, Handler的创建依赖与当前线程中的Looper,如果当前线程没有Looper则必须调用()。Handler,sendMessage到MessageQueue,Looper不断从MessageQueue中取出消息,回调handleMessage方法。 2、如果有个100M大的文件,需要上传至服务器中,而服务器form表单最大只能上传2M,可以用什么方法。这个问题不是很明确我觉得,首先来说使用http协议上传数据,特别在android下,跟form没什么关系。传统的在web中,在form中写文件上传,其实浏览器所做的就是将我们的数据进行解析组拼成字符串,以流的方式发送到服务器,且上传文件用的都是POST方式,POST方式对大小没什么限制。回到题目,可以说假设每次真的只能上传2M,那么可能我们只能把文件截断,然后分别上传了。 3、内存溢出和内存泄漏有什么区别?何时会产生内存泄漏?内存优化有哪些方法? 内存溢出通俗理解就是软件(应用)运行需要的内存,超出了它可用的最大内存。内存泄漏就是我们对某一内存空间的使用,使用完成后没有释放。内存优化:Android中容易内存溢出的部分,就是图片的加载,我们可以使用图片的压缩加上使用LruCache缓存的目的来控制图片所能够使用的内存。还有对于比较耗资源的对象及时的关闭,例如DatabaseConn,各种传感器,Service等等。 4、AsyncTask使用在哪些场景?它的缺陷是什么?如何解决? AsyncTask运用的场景就是我们需要进行一些耗时的操作,耗时操作完成后更新主线程,或者在操作过程中对主线程的UI进行更新。缺陷:AsyncTask中维护着一个长度为128的线程池,同时可以执行5个工作线程,还有一个缓冲队列,当线程池中已有128个线程,缓冲队列已满时,如果此时向线程提交任务,将会抛出RejectedExecutionException。解决:由一个控制线程来处理AsyncTask的调用判断线程池是否满了,如果满了则线程睡眠否则请求AsyncTask继续处理。 android面试精彩题目总结篇2 1、assest文件夹里放文件,对于文件的大小有没有限制?22 assets目录更像一个附录类型的目录,Android不会为这个目录中的文件生成ID并保存在R类当中,因此它与Android中的一些类和方法兼容度更低。同时,由于你需要一个字符串路径来获取这个目录下的文件描述符,访问的速度会更慢。但是把一些文件放在这个目录下会使一些操作更加方便, 比方说拷贝一个数据库文件到系统内存中。要注意的是,你无法在AndroidXML文件中引用到assets目录下的文件,只能通过AssetManager
android开发面试题目 来自淘豆网m.daumloan.com转载请标明出处.