前言
Android 工程师的竞争环境越来越激烈,但 Andorid 开发仍然是一个刚需的工种,行业对人才的需求从未终止,但与此同时也对我们提出了更高的要求。如果你仍然只是在日常开发过程中复制粘贴,或者仍以完成一个项目需求为唯一目的,只是掌握了如何去调用某个 API 或者数据结构来实现某个功能,已经不能算是合格的工程师了
对于 Android 开发者来说,要成为优秀的 Android 开发工程师,不只能够让你在工作中更加游刃有余,同样会让你在职业发展中面临更多优质的机遇
![](https://img.haomeiwen.com/i27918029/562b589dc1fe4372.png)
Android项目构建面试题分享
git常用命令有什么?
● git init:仓库的初始化
● git status:查看当前仓库的状态
● git diff:查看仓库与上次修改的内容
● git add:将文件放进暂存区
● git commit:提交代码
● git clone:克隆代码
● git bransh:查看当前分支
● git checkout:切换当前分支
git工作流你怎么理解?
● fork/clone(主流)fork:将别人的仓库代码fork到自己的仓库上clone:克隆下自己仓库的代码update、commit:修改代码并提交到自己的仓库push:提交到自己的仓库pull request:请求添加到别人的仓库
● clone
proguard是什么?
● ProGuard工具是用于压缩、优化和混淆我们的代码,其主作用是移除或混淆代码中无用类、字段、方法和属性
proguard技术功能有什么?
● 压缩
● 优化
● 混淆
● 预检测
一句话概况proguard工作原理
● 将无用的字段或方法存入到EntryPoint中,将非EntryPoint的字段和方法进行替换
为什么要混淆?
● 由于Java是一门跨平台的解释性语言,其源代码被编译成class字节码来适应其他平台,而class文件包含了Java源代码信息,很容易被反编译
annotationProcessor与compileOnly的区别
● annotationProcessor与compileOnly都是只编译并不打入apk中
● annotationProcessor:编译时生成代码,编译完就不需要了
● compileOnly:有重复的库时,可以剃除重复库,只保留一个库
AsyncTask面试题分享
AsyncTask是什么?
● 它本质上就是一个封装了线程池和Handler的异步框架
AsyncTask的工作原理
● Android进阶——多线程系列之异步任务AsyncTask的使用与源码分析
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()
![](https://img.haomeiwen.com/i27918029/8cb3153f8cd86dd5.png)
《Android 高级开发面试题以及答案整理》
下面这份资料我从2019年春招开始,就会将各博客、论坛。网站上等优质的Android开发中高级面试题收集起来,然后全网寻找最优的解答方案;每一道面试题都是百分百的大厂面经真题+最优解答,包知识脉络 + 诸多细节;节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
资料中包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目,熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率
有需要的同学,可以顺手给我点赞评论支持一下
内容如果对大家有用的话,可以转发分享一下
获取方式: 点击: 《Android 高级开发面试题以及答案整理》
《Android 高级开发面试题以及答案整理》
由于篇幅有限,仅展示部分内容
一、Handlar 相关知识
![](https://img.haomeiwen.com/i27918029/1503cf29c00f6723.png)
二、Avtivity 相关
![](https://img.haomeiwen.com/i27918029/1c227e371b3e0bb4.png)
三、Frageant 相关
![](https://img.haomeiwen.com/i27918029/1f90f4b7c357c06c.png)
四、Service 相关
![](https://img.haomeiwen.com/i27918029/a11cddc11a42cca1.png)
五、Android布局优化之ViewStub、include、 merge
![](https://img.haomeiwen.com/i27918029/25ec9f72f3fdaec0.png)
获取方式: 点击: 《Android 高级开发面试题以及答案整理》
技术是无止境的,你需要对自己提交的每一行代码、使用的每一个工具负责,不断挖掘其底层原理,才能使自己的技术升华到更高的层面
Android 架构师之路还很漫长,与君共勉
PS:有问题欢迎指正,可以在评论区留下你的建议和感受;
欢迎大家点赞评论,觉得内容可以的话,可以转发分享一下
网友评论