写点什么

Android 开发五年,面试阿里才发现这些知识点没完全掌握;你知道吗

用户头像
Android架构
关注
发布于: 刚刚

因此常见的方法是:


  • 全局 WebVi


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


ew。


  • 客户端代理页面请求。WebView 初始化完成后向客户端请求数据。

  • asset 存放离线包。


除此之外还有一些其他的优化手段:


  • 脚本执行慢,可以让脚本最后运行,不阻塞页面解析。

  • DNS 链接慢,可以让客户端复用使用的域名与链接。

  • React 框架代码执行慢,可以将这部分代码拆分出来,提前进行解析。


FC(Force Close)什么时候会出现?


Error、OOM,StackOverFlowError、Runtime,比如说空指针异常


解决的办法:


  • 注意内存的使用和管理

  • 使用 Thread.UncaughtExceptionHandler 接口


如何解决 View 的事件冲突?


常见开发中事件冲突的有 ScrollView 与 RecyclerView 的滑动冲突、RecyclerView 内嵌同时滑动同一方


向。


滑动冲突的处理规则:


  • 对于由于外部滑动和内部滑动方向不一致导致的滑动冲突,可以根据滑动的方向判断谁来拦截事件。

  • 对于由于外部滑动方向和内部滑动方向一致导致的滑动冲突,可以根据业务需求,规定何时让外部 View 拦截事件,何时由内部 View 拦截事件。

  • 对于上面两种情况的嵌套,相对复杂,可同样根据需求在业务上找到突破点。


滑动冲突的实现方法:


  • 外部拦截法:指点击事件都先经过父容器的拦截处理,如果父容器需要此事件就拦截,否则就不拦截。具体方法:需要重写父容器的 onInterceptTouchEvent 方法,在内部做出相应的拦截。

  • 内部拦截法:指父容器不拦截任何事件,而将所有的事件都传递给子容器,如果子容器需要此事件就直接消耗,否则就交由父容器进行处理。需要配合 requestDisallowInterceptTouchEvent 方法


Draw 的基本流程


绘制基本上可以分为六个步骤:


  • 首先绘制 View 的背景;

  • 如果需要的话,保持 canvas 的图层,为 fading 做准备;

  • 然后,绘制 View 的内容;

  • 接着,绘制 View 的子 View;

  • 如果需要的话,绘制 View 的 fading 边缘并恢复图层;

  • 最后,绘制 View 的装饰(例如滚动条等等)。


setWillNotDraw 的作用


如果一个 View 不需要绘制任何内容,那么设置这个标记位为 true 以后,系统会进行相应的优化。


  • 默认情况下,View 没有启用这个优化标记位,但是 ViewGroup 会默认启用这个优化标记位。

  • 当我们的自定义控件继承于 ViewGroup 并且本身不具备绘制功能时,就可以开启这个标记位从而便于系统进行后续的优化。

  • 当明确知道一个 ViewGroup 需要通过 onDraw 来绘制内容时,我们要显示地关闭 WILL_NOT_DRAW 这个标记位。


invalidate() 和 postInvalidate()的区别 ?


invalidate()与 postInvalidate()都用于刷新 View,主要区别是 invalidate()在主线程中调用,若在子线程


中使用需要配合 handler;而 postInvalidate()可在子线程中直接调用


数据库的四大特征,数据库的隔离级别?


数据库的四大特征:


  • 原子性(Atomicity):原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。

  • 一致性(Consistency):一个事务执行之前和执行之后都必须处于一致性状态。

  • 隔离性(Isolation):隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

  • 持久性(Durability):持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的。


数据库的隔离级别:


  • Serializable(串行化):可避免脏读、不可重复读、幻读的发生。

  • Repeatable read (可重复读):可避免脏读、不可重复读的发生。

  • Read committed (读已提交):可避免脏读的发生。

  • Read uncommitted (读未提交):最低级别,任何情况都无法保证。

文末

好了,由于内容太多文章篇幅有限,今天的分享就到这里了,有需要完整资料的朋友可以私信我【资料】免费获取或者点这里


还有 高级架构技术进阶脑图、Android 开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。


Android学习PDF+架构视频+最新面试文档+源码笔记


【Android 核心高级技术 PDF 文档,BAT 大厂面试真题解析】



【Android 必备核心知识点】



用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android开发五年,面试阿里才发现这些知识点没完全掌握;你知道吗