android软件开发!Jetpack-MVVM-高频提问和解答,附带学习经验

2023-11-02

感悟

这个世界有一个“二八原则”在好多地方都发挥着作用,在Android开发上我认为也一样有用。做一个Android开发,你也许只会用到Android开发知识中的20%,有80%其实你学了也不一定会用。

而面试官也一样,他也可能只掌握了20%的知识,而且一个面试也不会有足够多的时间给你展示你全部的知识,而往往只会注意开发中最常遇到的20%。这时候,你对这些问题理解的深度就显得尤为重要。回答了10个问题,而每个问题都只是浅显分析,还没有你将一个问题讲得透彻、全面更能让面试官加分。

第一章 计算机网络基础面试题

1、网络面试题

(一)HTTP/HTTPS

1.HTTP与HTTPS有什么区别?
2.HTTP1.0和HTTP1.1的一些区别
3.请求慢的解决办法
4.Http的request和response的协议组成
5.谈谈对http缓存的了解。
6.HTTPS加密原理
7.HTTPS如何防范中间人攻击
8.有哪些响应码,分别都代表什么意思?

(二)TCP/UDP

1.为什么TCP要经过三次握手四次挥手
2.TCP可靠传输原理实现(滑动窗口)
3.Tcp和Udp的区别?
4.如何设计在 UDP 上层保证 UDP 的可靠性传输?

(三)其他网络重要概念

1.socket断线重连怎么实现,心跳机制又是怎样实现?
2.Cookie与Session的作用和原理。
3.IP报文中的内容。

2、操作系统面试题

1.操作系统如何管理内存的
2.进程调度
3.说下Linux进程和线程的区别
4.解释一下Linux的软链接和硬链接
5.安卓权限管理,为何在清单中注册权限,安卓APP就可以使用,反之不可以?

3、数据库面试题

1.数据库的四大特征,数据库的隔离级别?
2.数据库设计中常讲的三范式是指什么?


第二章 数据结构和算法面试题

剑指Offer+LeetCode124道算法题解

篇幅原因就不一一列举了,获取方式见文末
=


第三章 JAVA基础面试题

1.HashMap相关
2.ArrayList相关
3.LinkedList相关
4.Hashset源码分析
5.内存模型
6.垃圾回收算法(JVM)
7.反射与类加载过程
8.线程、多线程与线程池
9.设计模式(六大基本原则、项目中常用的设计模式、手写单例等)
10.java四大引用
11.Java泛型
12.接口、抽象类的区别


第四章 Android面试题

1.Android基础

1.什么是ANR 如何避免它?
2.Activity和Fragment生命周期有哪些?
3.横竖屏切换时候Activity的生命周期
4.AsyncTask的缺陷和问题,说说他的原理。
5.onSaveInstanceState() 与 onRestoreIntanceState()
6.android中进程的优先级?
7.Bunder传递对象为什么需要序列化?Serialzable和Parcelable的区别?
8.动画(原理及特点,区别等)
9.Android各版本的特性
10.JSON优缺点
11.android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别?
12Jar和Aar的区别
13.Android为每个应用程序分配的内存大小是多少
14.更新UI方式
15.Thread、AsyncTask、IntentService的使用场景与特点。
16.Handler机制
17.内存泄漏怎么产生、怎么查找、解决

篇幅原因不再列举了,看图

2.Android高级岗面试

一、性能优化

(1)稳定性优化

1.你们做了哪些稳定性方面的优化?
2.性能稳定性是怎么做的?
3.业务稳定性如何保障?
4.如果发生了异常情况,怎么快速止损?

(2)APP启动速度优化

1.启动优化是怎么做的?
2.是怎么异步的,异步遇到问题没有?
3.启动优化有哪些容易忽略的注意点?
4.版本迭代导致的启动变慢有好的解决方式吗?

(3)内存优化

1.你们内存优化项目的过程是怎么做的?
2.针对性优化(如内存抖动、内存泄漏或溢出)
3.如何避免内存抖动、泄漏?怎么解决

(4)APP绘制优化

1.你在做布局优化的过程中用到了哪些工具?
2.布局为什么会导致卡顿,你又是如何优化的?
3.做完布局优化有哪些成果产出?
4.你是怎么做卡顿优化的?
5.你是怎么样自动化的获取卡顿信息?
6.卡顿的一整套解决方案是怎么做的?
7.TextView setText耗时的原因,对TextView绘制层源码的理解?

(5)APP瘦身
(6)网络优化
(7)APP电量优化
(8)Android安全优化

二、Android Framework相关

1.Android系统架构
2.View的时间分发机制
3.View绘图流程?
4.跨进程通信
5.binder机制的作用及原理
6.Android系统启动流程是什么?(提示:init进程 -> Zygote进程 –> SystemServer进程 –> 各种系统服务 –> 应用进程)
7.启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?
8.AMS家族重要术语解释。
9.说下四大组件的启动过程,四大组件的启动与销毁的方式。
10.理解Window和WindowManager。
11.Android的打包流程?(即描述清点击 Android Studio 的 build 按钮后发生了什么?)apk里有哪些东西?签名算法的原理?
12.Android虚拟机和JAVA虚拟机的区别(JVM、Davilk、ART三者的原理和区别)

第五章 Kotlin与Flutter相关面试题

1.Kotlin 特性,和 Java 相比有什么不同的地方?
2.Kotlin为什么能和Java混编?
3.什么是协程?
4.Hybrid通信原理是什么,有做研究吗?
5.JS的交互理解吗?平时工作用的多吗,项目中是怎么与Web交互的?
6.react native有多少了解?讲一下原理。
7.weex了解吗?如何自己实现类似技术?
8.flutter了解吗?内部是如何实现跨平台的?如何实现多Native页面接入?如何实现对现有工程的flutter迁移?
9.说说你用过的混合开发技术有哪些?各有什么优缺点?
10.快应用了解吗?跟其她方式相比有什么优缺点?

总结

其实要轻松掌握很简单,要点就两个:

  1. 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
  2. 多练。 (视频优势是互动感强,容易集中注意力)

你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。

roid%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)】。**

[外链图片转存中…(img-eVHe8gfG-1614856142220)]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android软件开发!Jetpack-MVVM-高频提问和解答,附带学习经验 的相关文章

随机推荐

  • Vue实现底部导航栏切换页面及图片

    前言 刚进新公司 有幸接触到从前后端不分离到前后端分离的一个过程 最开始对vue不太熟悉 下班自学一周就开始做了 可能会有很多问题 若有写不好的地方大佬们可以提出 一 实现效果 需求 vue底部导航点击切换图标 效果 二 大概思路图 三 代
  • 数据库系统概论 第十一章 并发控制(3)小结 封锁粒度 封锁粒度与系统的并发度和并发控制的开销的关系 多粒度封锁 什么时多粒度封锁 多粒度封锁的方法 意向锁 三种意向锁 相容矩阵

    第二十三讲 封锁的粒度 封锁粒度 封锁对象的大小称为封锁粒度 Granularity 封锁的对象 逻辑单元 物理单元 例 在关系数据库中 封锁对象 逻辑单元 属性值 属性值集合 元组 关系 索引项 整个索引 整个数据库等 物理单元 页 数据
  • JavaWeb项目中如何让后端的数据传递到前端(包括JSP、JS)

    后端传递给前端的方式很多 如果是后端传递给JSP 我想大家很多人都知道 可以使用 后端可以使用 req setAttribute msg msg 前端可以使用 或者用JSP的el表达式比如 msg 这边小编重点讲讲如何在JS和后端通信 如果
  • 混杂设备动态次设备号分析

    今天看驱动源码时 发现一个MISC DYNAMIC MINOR宏 于是分析了一下内核源码 先粘出源码 在misc register函数中 有如下语句 if misc gt minor MISC DYNAMIC MINOR int i DYN
  • 开始使用OpenCV

    开始使用OpenCV 1 编译OpenCV 1 1 使用命令行的方式配置OpenCV OpenCV官网教程 OpenCV官网教程使用命令行的方式进行配置 写的很详细 按照教程操作 一般都能成功 由于国内访问GitHub不稳定 所以推荐使用w
  • Python 微信机器人

    使用python构造一个微信聊天机器人 最近在学python的过程中无意间发现一个python库 wxpy 其可以实现让微信自动接收 处理消息并进行回复的一系列功能 感觉挺有意思的 便自行摸索学习 并成功地实现了其功能 故写下此博客作学习分
  • 谷歌浏览器插件Automa(入门,编写中,开专栏填坑中)

    谷歌浏览器插件Automa 入门 编写中 0 待成长的无代码化爬虫 1快速入门模块 1 1 中文设置 1 2 定位你想要操作的位置 1 3 进行操作 1 3 1 点击 1 3 2 输入 1 4 官方案例实战教学 1 4 1 百歌一下 1 4
  • spring boot 2.0.3 mybatis升级mybatis-plus

    项目原来是使用mybtais durid 现升级为mybatis plus2 3 durid mysql 官方文档地址 请注意 mybatis plus3 0 的配置有变化 请查看官网文档 可能是旧的 或demo 步骤如下 1 引入pom
  • Linux中文件的传输

    文件在系统中的传输 1 scp 上传 scp 本地文件 远程主机用户 远程主机ip 远程主机目录 步骤如下 下载 scp 远程主机用户 远程主机ip 远程主机目录 本地目录 步骤如下 2 rsync 远程同步 速度快 默认会忽略 文件属性
  • 【AnyQ】遇到的问题整理(一)

    一 编译出错 问题描述 In file included from home jockeyyan git repository QuestionAnsweringBot AnyQ build third party paddle src e
  • 分布式计算的基本原理

    author skate time 2010 03 08 从最近几次MMI设计会议讨论的结果来看 嵌入式程序员对于分布式计算知之甚少 他们对分布式计算有种恐惧 所以对分布式架构极力排斥 而他们的人数又占绝对优势 讨论N次 MMI的架构还是没
  • Jupyter Notebook 工作环境配置

    目录 背景 为什么要配置jupyter的工作环境呢 因为可以更方便的找到自己写的脚本所在的文件 步骤 1 新建一个文件夹 随便在哪里建 例如我在D盘新建了一个文件夹 D pythonworkspace 2 接下来配置环境变量 新建一个变量W
  • mysql的sql语句获取两点之间的距离

    一张表 表的经度和维度都为double或者decimal类型 传入参数经度116 366216 纬度39 939834 SELECT ROUND 6378 138 2 ASIN SQRT POW SIN 40 0497810000 PI 1
  • 真难!!!Java初中级岗位都能被卷到怀疑人生....

    Java一个初中级岗位有上千人同时竞争 内卷程度简直怀疑人生 最近不少群友吐槽 初中级岗位的面试简直是地狱级难度 面试官对常用框架的考察扣的都很细 但是在日常开发中又很难注意到这些细节 导致吃了很多亏 其实说到底 还是这个问题 主流框架都熟
  • SQL查询重复数据出现的次数

    背景 关系型数据库中 有这样一种情况 假设用户信息表中有一列idCard字段 该字段用来存储用户的身份证号 现在导入进来一批数据后有人告诉你库里存在重复的数据 那么此时 你需要重复的规则是什么 到底是哪列关键数据出现了重复 首先人名重复的情
  • JVM - 的类加载器(类加载子系统)

    文章目录 类加载子系统 Class Loader 作用 类加载过程 加载阶段 Loding 连接阶段 Linking 验证 Verification 准备 Preparation 解析 Resolution 初始化 Initializati
  • InsightFace_Pytorch人脸识别项目部署运行

    一 下载InsightFace Pytorch master 二 导入各种包 三 运行take pic py搜集样本 四 运行face verify py识别 遇到问题解决方法 1 导包失败 需使用python3 7版本 可以安装好 2 找
  • 2023最新C语言经典面试题汇总

    写出Bool int 指针变量 float与 零值 比较的if语句 Bool型 if flag if flag int型 if flag 0 if flag 0 指针变量 if p NULL if p NULL float型 const f
  • [机器学习与scikit-learn-49]:特征工程-特征选择(降维)-4-二级过滤-特征值与标签之间的关系:卡方过滤

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 124073917 目录 前言 第1章
  • android软件开发!Jetpack-MVVM-高频提问和解答,附带学习经验

    感悟 这个世界有一个 二八原则 在好多地方都发挥着作用 在Android开发上我认为也一样有用 做一个Android开发 你也许只会用到Android开发知识中的20 有80 其实你学了也不一定会用 而面试官也一样 他也可能只掌握了20 的