前言
android心路历程.png相信大家在最近应该都有着面试的经历,现在的面试越来越往着更加高深的技术问题进行探讨,虽然大多还是能够在网络上搜索到对应的资料,但面试官大多都会从你的回答进行深入,直至你回答不出为止,在这种情况下,如若自身没有对技术原理和底层逻辑有着深入的理解,那么最终你会陷入一个尴尬的境地,同样面试的通过率也会显著下降
特别是因为之前疫情的原因,导致很多的公司都倒闭了,有部分的Android开发人员当场失业,而现在疫情又再次来袭,又有更多的人员开始居家办公,这对Android开发人员来说可谓是雪上加霜,但是同样也有一部分Android开发人员在这样的情况下依然有着跳槽的念头
当然无论是什么原因,对我们Android开发人员来说,只有拥有着更高更好的技术,才能去追求相应的薪酬待遇,可相对于面试官而言,大批的失业人员,再加上现在这种大环境,于是便出现了更多的候选人,也就意味着出现了更多选择,所以在这样的情况下,如若再不将自身的技术提升,那么工作就会显得更加难找了
面试必问题
DNK是什么
● NDK是 android native develop kits 的缩写,DNK是一个让开发人员在Android应用中嵌入使用本地代码编写的组件的工具集
● 可以把c/c++ ->编译成一个 linux下可以执行的二进制文件 java代码里面就可以通过jni 调用执行二进制的文件
Android的动画分类及阐述
可以将其分为 View Animation ,Drawable Animation ,Property Animation
● View Animation: 视图动画在古老的Android版本系统中就已经提供了,只能被用来设置View的动画
● Drawable Animation: 这种动画(也叫Frame动画、帧动画)其实可以划分到视图动画的类别,专门用来一个一个的显示Drawable的resources,就像放幻灯片一样
● Property Animation: 属性动画只对Android 3.0(API 11)以上版本的Android系统才有效,这种动画可以设置给任何Object,包括那些还没有渲染到屏幕上的对象。这种动画是可扩展的,可以让你自定义任何类型和属性的动画
什么是AIDL
● Android 使用一种接口定义语言(Interface Definition Language,IDL)来公开服务的接口,4个Android应用程序组件中的3个(Activity、BroadcastReceiver和ContentProvider)均可以进行跨进程访问,另一个Android应用程序组件Service一样能够,所以,能够将这种能够跨进程访问的服务称为AIDL(Android Interface Definition Language)服务
Android中为什么一个APP会需要多个进程
● 分散内存占用 Android对于一个进程所占用的内存是有限制的,但是如果我们程序需要大量的内存的话,可以通过多个进程来分担
● 实现多模块 应用太大了之后肯定会有多个模块
● 一个进程退出另一个进程仍可以工作 比如子进程是推送服务,那么哪怕主进程推出了,推送服务仍然能正常工作
● 守护进程 如果我们主进程需要保活,那么可以通过守护进程去唤醒主进程
APK的安装方式有几种
● 系统应用安装――开机时完成,没有安装界面
● 网络下载应用安装――通过market应用完成,没有安装界面
● ADB工具安装――没有安装界面,Android Studio就是通过这种方式安装程序的
● 第三方应用安装――通过SD卡里的APK文件安装,有安装界面,由packageinstaller.apk应用处理安装及卸载过程的界面
APK反编译是什么
● apk反编译:是通过使用apk编译工具将apk文件中的源文件和资源反编译出来,得到的源文件和资源文件可以进行处理后再进行编译,以达到个性化定制,汉化apk等目的
如何防止反编译
● 混淆代码
● 整体Dex加固
● 拆分Dex加固
● 虚拟机加固
面试真题
1.png 2.png 3.png4.png
结尾
+VX:ddz3090
备注:Android进阶资料
先到先得
更多与Android高级面试相关的指南手册,相信能够帮助大家在技术开发的道路上更进一步
知识洗礼.png
网友评论