前段时间面试被问到的几个问题,有兴趣的朋友,可以帮忙回答一下。1、在开发一款Android应用时,如果让你给这个应用搭建一个框架或者叫架构,请问你主要会做哪些工作?2、开发过程中如果遇到问题,请问你解决问题的思路是什么?3、在开发应用时,我们经常会用到线程池,请问为什么要用线程池?创建线程池的时候,一般会用到哪些比较重要的参数?4、在与网络交互时,同时最多能够创建多少个http连接?最多发送多少个http请求?5、Activity切换时(比如从Activity跳转到ActivityB),经常会遇到黑屏,请问为什么会黑屏,有哪些解决方法?6、在AsyncTask的doInBackground方法里,如果想与主线程交互,都有哪些方法,直接在doInBackground方法里面new Handler()可不可以?
Android面试题
Android面试题
解决方案 »
- 在android 里,为什么从raw、drawble和从/data/data/包/文件夹里加载图片速度相差很大
- 怪现象:能解释一下用HttpGet可以获取服务器端的XML文件内容,用httpPost却不行
- 怎样加载sdcard上的so库
- 安装时出现解析包错误有人知道为什么
- android模拟器超时问题
- 多个布局文件如何共用一个Activity?
- Android socket传送音频同步问题
- 请教关于监听蓝牙耳机点击按键的广播
- 【求助】Android视频预览图像拉伸的问题
- android与电脑通过udp收发结构体信息
- 哪位高手指导怎么修改相机拍照保存图片会逆时针旋转90度的问题啊 谢谢了 内附部分代码。。
- ping通ip,QQ可以登录,打不开网页,DNS问题……
解决方式 是为 Activity 添加 style , 详细可以 google 一下。
3、线程池主要功能是线程重用,避免重复创建销毁线程
楼上几位说的直接重写系统的AsyncTack是会出问题的,重复创建AsyncTack会导致FC,这个问题有很多帖子讲了,楼主可以搜搜看。
线程池关键参数,看下线程池的构造方法就知道了,不用过多解释吧
int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue
4、做过这么多项目还真没遇见过http请求上限的问题,因为在同一个页面,如果同时请求数量太多了,那么就是设计失败,一般3个以下。后台service轮播线程一般为一个,不会太多。
5、View创建和数据加载必须分开,View创建和渲染在主线程,数据加载在子线程。
6、onPreExecute、onProgressUpdate、onPostExecute是分别在线程执行前、中、后的回调。直接new Handler()会报未执行Handler.prepare()错误。如果一定要使用Handler,可以new Handler(Looper.getMainLooper()); 并使用post方法将Runnable加入Handler