每日一道项目构建面试题,看完直接怼项目经理

前言

Android 工程师竞争环境越来越激烈,但 Andorid 开发仍然是一个刚需的工种,行业对人才的需求从未终止,但与此同时也对我们提出了更高的要求;如果你仍然只是在日常开发过程中复制粘贴,或者仍以完成一个项目需求唯一目的只是掌握了如何去调用某个 API 或者数据结构来实现某个功能,已经不能算是合格的工程师了

对于 Android 开发者来说,要成为优秀的 Android 开发工程师,不只能够让你在工作中更加游刃有余,同样会让你在职业发展中面临更多优质的机遇,那么在大厂面试中与项目相关面试题有哪些呢?下面就给大家分享一下

Android 项目构建面试题分享

git 常用命令有什么?

  • git init:仓库的初始化
  • git status:查看当前仓库的状态
  • git diff:查看仓库与上次修改的内容
  • git add:将文件放进暂存区
  • git commit:提交代码
  • git clone:克隆代码
  • git bransh:查看当前分支
  • git checkout:切换当前分支

git 工作流你怎么理解?

  • fork/clone(主流)fork: 将别人的仓库代码fork到自己的仓库上
  • clone: 克隆下自己仓库的代码
  • updatecommit: 修改代码并提交到自己的仓库
  • push: 提交到自己的仓库pull
  • request: 请求添加到别人的仓库

proguard 是什么?

  • ProGuard 工具是用于压缩、优化和混淆我们的代码,其主作用是移除或混淆代码中无用类、字段、方法和属性

proguard 技术功能有什么?

  • 压缩
  • 优化
  • 混淆
  • 预检测

一句话概况 proguard 工作原理

  • 将无用的字段或方法存入到EntryPoint中,将非EntryPoint的字段和方法进行替换

为什么要混淆?

  • 由于Java是一门跨平台的解释性语言,其源代码被编译成class字节码来适应其他平台,而class文件包含了Java源代码信息,很容易被反编译

annotationProcessor 与 compileOnly 的区别

  • annotationProcessor: 编译时生成代码,编译完就不需要了
  • compileOnly: 有重复的库时,可以剃除重复库,只保留一个库

annotationProcessor 与 compileOnly 都是只编译并不打入 apk 中

AsyncTask 面试题分享

AsyncTask 是什么?

  • 它本质上就是一个封装了线程池和 Handler 的异步框架

AsyncTask 引起的内存泄漏

  • 原因: 非静态内部类持有外部类的匿名引用,导致 Activity 无法释放
  • 解决: AsyncTask 内部持有外部 Activity 的弱引用AsyncTask改为静态内部类 AsyncTask.cancel()

AsyncTask 生命周期

  • 在 Activity 销毁之前,取消 AsyncTask 的运行,以此来保证程序的稳定

AsyncTask 结果丢失

  • 由于屏幕旋转、Activity在内存紧张时被回收等情况下,Activity会被重新创建,此时,旧的AsyncTask持有旧的Activity引用,这个时候会导致AsyncTask的onPostExecute()对UI更新无效

AsyncTask并行or串行

  • AsyncTask在Android 2.3之前默认采用并行执行任务,AsyncTask在Android 2.3之后默认采用串行执行任务
  • 如果需要在Android 2.3之后采用并行执行任务,可以调用AsyncTask的executeOnExecutor()

就举例这么多了面试题也不是几个就能全部覆盖的,毕竟面试官不是吃素的,他会换着花样问你;有想跳槽拿高薪Android 开发的朋友,我这里分享一份 Android 精选面试 PDF 文档点击此处查看直达方式 或者私信发送 【面试】 直达获取;想拿高薪的人很多,就看你肯不肯努力了

内容展示如下:

由于篇幅有限,内容就不完全展示了;如果大家想要获取的话,可以私信发送 【面试】 即可 免费获取哦~

喜欢本文的话,不妨顺手给我点个小赞、评论区留言或者转发支持一下呗~

猜你喜欢

转载自blog.csdn.net/m0_70748845/article/details/127291020