昨天面试了一家证券公司的AndroID职位,面对技术面试明显感觉自己表达得不够好,一方面是自己的松懈,另一方面是年后第一场面试有点不够重视,现在对面试中的问题做了一下总结:
1.项目开发中assets与res文件夹有什么区别?
这个问题我一开始就想这不就是读取文件的API不同吗?还有什么特别的吗?有一篇博客解释说res占用apk空间大小,assets不占用,但是通过分析apk包目录发现,两者都占用apk空间大小。
这个问题还是从API或者编译方式来分析两者之间的差异性。res通过编译生成R文件索引IDres使用getResource()获取资源,assets使用AssetsManager获取资源
2.SharedPreferences如何进行同步提交和异步提交?
SharePreferce我们经常使用的是commit方法进行提交,但是异步提交确实很少使用到,我们在提交时候发现到了一个非常独特的API,如下:
SharedPreferences.Editor editor = getSharedPreferences("sp",MODE_PRIVATE).edit(); //editor.commit(); editor.apply();
这个apply()方法看似也是提交的意思,看了一下官方SDK说明(查看方式),这个API就是异步提交的方法,但是有一点需要注意就是,这个方法没有返回值,也就是有没有保存成功是不知道的,这个方法的存在是为了解决异步提交的效率问题,commit是等提交后再进行下一步的提交,效率较低。
3.Fragment之间如何进行通讯?
fragment之间通讯方式有很多种
以上三种是实际开发中最常用的通讯方式。
4.简单描述VIEw绘制过程
VIEw绘制过程简单描述为onMeasure()→onLayout()→onDraw();onMeasure()方法测量视图尺寸,也就是要晓得这个即将绘制的视图长宽多少,onLayout()方法是布局视图,这个方法是在布局上给这个视图腾位置,onDraw()开始绘制。
5.简单描述一下Handler原理
这个东西之前总结过,就不大想再写一遍了 总结
以上是内存溢出为你收集整理的聚焦Android面试题(一)全部内容,希望文章能够帮你解决聚焦Android面试题(一)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)