聚焦Android面试题(一)

聚焦Android面试题(一),第1张

概述昨天面试了一家证券公司的Android职位,面对技术面试明显感觉自己表达得不够好,一方面是自己的松懈,另一方面是年后第一场面试有点不够重视,现在对面试中的问题做了一下总结:1.项目开发中assets与res文件夹有什么区别?这个问题我一开始就想这不就是读取文件的API不同吗?还有什么特

昨天面试了一家证券公司的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之间通讯方式有很多种

如果fragment创建有先后,先创建的fragment完全可以持有另一个fragment的引用,这时直接调用该引用的public方法就行了,这种方式一定要考虑到生命周期的因素,避免出现内存泄漏。通过第三方eventbus实现通讯,eventbus底层所使用的观察者和反射当然也能实现。SharedPreferences/文件存储,在保证线程安全的情况下,这种方式通讯都是行得通的。

以上三种是实际开发中最常用的通讯方式。
4.简单描述VIEw绘制过程
VIEw绘制过程简单描述为onMeasure()→onLayout()→onDraw();onMeasure()方法测量视图尺寸,也就是要晓得这个即将绘制的视图长宽多少,onLayout()方法是布局视图,这个方法是在布局上给这个视图腾位置,onDraw()开始绘制。
5.简单描述一下Handler原理
这个东西之前总结过,就不大想再写一遍了 总结

以上是内存溢出为你收集整理的聚焦Android面试题(一)全部内容,希望文章能够帮你解决聚焦Android面试题(一)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1066692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存