还剩3页未读,继续阅读
文本内容:
Android工程师的面试题 校招的日子结束了,结果也算圆满忙碌了一阵子,现在终于可以安安静静的做做项目看看书写写论文了下面对这段时间面试遇到的问题并结合网上各位的大神秒下的面试题做个总结,会持续更新,希望能在面试中助各位一臂之力!
1、内存泄露的原因 资源对象没关闭 如Cursor、File等资源他们会在finalize中关闭,但这样效率太低容易造成内存泄露 SQLiteCursor,当数据量大的时候容易泄露 使用Adapter时,没有使用系统缓存的converView 即时调用recycle释放不再使用的Bitmap 适当降低Bitmap的采样率,如 3 BitmapFactory.Options options=newBitmapFactory.Options; options.inSampleSize=2;//图片宽高都为原来的二分之一,即图片为原来的四分之一 Bitmap bitmap=BitmapFactory.decodeStreamcr.openInputStreamuri,null,options;preview.setImageBitmapbitmap; 使用application的context来替代activity相关的context 尽量避免activity的context在自己的范围外被使用,这样会导致ac tivity无法释放 没取消造成内存泄露 如广播 集合中的对象没清理造成的内存泄露我们通常把一些对象的引用加入到了集合中,当我们不需要该对象时,并没有把它的引用从集合中清理掉,这样这个集合就会越来越大如果这个集合是static的话,那情况就更严重了 Handler应该申明为静态对象,并在其内部类中保存一个对外部类的弱引用如下 复制代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 static classMyHandler extendsHandler { WeakReference mActivityReference; MyHandler...。