最近很多人说,Android越来越不好找工作了,学习NDK开发会不会好点,今天就聊聊这个问题。是否应该选择学NDK?
1.哪些场景下要用到NDK开发?
跨平台的库,如FFmpeg, skip,weex,
加固,防逆向
签名校验
图片压缩
音视频解码
OpenGL ES 高级特效
热修复 andfix
人脸识别 face++
加密算法
微信apk中的so文件
由于涉及到的面试题较多导致篇幅较长,我根据这些面试题所涉及到的常问范围总结了并做出了一份学习进阶路线图及面试题答案免费分享给大家,文末有免费领取方式!
java方面
-
基本知识点 集合类的区别和适用场景 1次 java静态内部类和非静态内部类的区别 内存分配 创建过程 内存泄漏问题? 如何保证线程安全? 多次 (面试必问) 哪几种加锁方式(最好扯到monitor) 乐观锁和悲观锁 (适用场景) 锁的适用场景 线程池的概念 构成 适用场景 为什么要用线程池(扯到线程分配资源的过程,和进程分配资源过程的区别)
-
内核方面(面试必问) GC垃圾回收机制 n次 GC是怎么找要清除的对象的? java的四种引用和适用场景 GC内核清理用什么算法? 新生代复制清理,老生代标记整理 拓展:老生代标记整理如何有效的整理内存碎片? java内存结构 n次 java的内存是怎么分布的 java类的加载机制 java对象的加载机制 常量池 string对象的生成 Integer的缓存机制
计算机网络
-
网络层级结构以及对应的协议
-
TCP TCP 三次握手(第一次和第三次如果没收到回应会怎样?) TCP四次挥手 拥塞控制没考过?
-
HTTP HTTP报文,http各版本的区别,https
-
IP 为啥不将mac作为ip地址 ping实现原理 ttl生存字段
-
ARP 描述过程,广播单播
操作系统
-
线程和进程区别(资源分配上是怎样的)
-
进程通信
-
内存空间分配
-
死锁 产生死锁的条件(详细举例) 避免死锁的方法
设计模式
-
一般是自己说了解哪些模式,一定要说明适用场景
-
单例模式 懒汉式 饿汉式 线程安全,双重锁
-
观察者模式
-
适配器模式
-
外观模式
android方面(一般是根据项目问)
-
android的进程通信
-
service服务
-
handlerThread
-
handler运行机制 1次
-
recyclerView缓存机制 1次
-
view的重绘
项目方面
-
fragment和activity交互
-
webview的使用 安全问题? 和js互相调用
-
断点续传 描述过程 文件读写,怎么保证不冲突
-
asynctask内存泄漏 为什么泄漏 解决方法 调试工具是什么
-
MFCC流程 录音环节(快手问了一大堆细节,还让写伪代码)
-
MVP
-
recyclerView 和listview区别 缓存机制 item太多会内存泄漏吗
总结
首先是感觉自己的基础还是不够吧,大厂好像都喜欢问这些底层原理。
另外一部分原因在于资料也还没有看完,一面时凭借那份资料考前突击恶补个几天居然也能轻松应对(在这里还是要感谢那份资料,真的牛),于是自我感觉良好,资料就没有怎么深究下去了。
之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。
下一步还是要查漏补缺,进行针对性复习。
最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!在这里也免费分享给大家,希望大家不要犯和我一样的错误呀!!!一定要看完!
[外链图片转存中…(img-1wZZLTNi-1616835521948)]
资料获取方式:点击我的腾讯文档