1、谈谈你在工作中是怎样解决一个 bug
1、 异常附近多打印 log 信息;
2、 分析 log 日志,实在不行的话进行断点调试;
3、 调试不出结果,上 Stack Overflow 贴上异常信息,请教大牛
4、 再多看看代码,或者从源代码中查找相关信息
5、 实在不行就 GG 了,找师傅来解决!
2、Android 判断SD卡是否存在
首先要在AndroidManifest.xml中增加SD卡访问权限
3、Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念
DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。
4、9.进程和线程的区别
概念:进程包括多个线程,一个程序一个进程,多线程的优点可以提高执行效率,提高资源利用率
创建:Thread类和Runnable接口
常用方法有:
1、 start()用于启动线程
2、 run()调用线程对象中的run方法
3、 join()合并插队到当前线程
4、 sellp()睡眠释放cpu资源
5、 setPriority()设置线程优先级
5、Activity间通过Intent传递数据大小有没有限制?
Intent在传递数据时是有大小限制的,这里官方并未详细说明,不过通过实验的方法可以测出数据应该被限制在1MB之内(1024KB),笔者采用的是传递Bitmap的方法,发现当图片大小超过1024(准确地说是1020左右)的时候,程序就会出现闪退、停止运行等异常(不同的手机反应不同),因此可以判断Intent的传输容量在1MB之内。
6、跨进程通信的几种方式
Intent,比如拨打电话
ContentProvider数据库存储数据
Broadcast广播通信
AIDL通信,通过接口共享数据
7、View的绘制原理
View为所有图形控件的基类,View的绘制由3个函数完成
measure,计算视图的大小
layout,提供视图要显示的位置
draw,绘制
8、什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?
嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。主要用于工业控制、 军事设备、 航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬实时两种,而android是基于linux内核的,因此属于软实时。
9、SurfaceView
基于view视图进行拓展的视图类,更适合2D游戏的开发,是view的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比view快
10、怎样对 android 进行优化?
1、 对 listview 的优化。
2、 对图片的优化。
3、 对内存的优化。
4、 具体一些措施
5、 尽量不要使用过多的静态类 static
6、 数据库使用完成后要记得关闭 cursor
7、 广播使用完之后要注销