微信视频号Android一面凉经

今晚时间比较多,记录一次微信视频号对我来说地狱级别的面试。
开局自我介绍。
聊了两分钟项目,五分钟实习。
--------------------------------------------------
10/10复盘基本知识:

开始问基础。
Android:
1、讲一下Android发生Crash的整体流程。
Android在遇到非可检异常时就会触发该线程的unCatchExcepttionHandler中的unCatchException()方法,最终在该方法的process.kill()方法中杀死该进程,appCrash完成。
2、Native层Crash是如何捕获到的?
Android NativeCrash发生时会向该进程发出错误的不可处理信号,Linux系统收到该信号后无法处理便会杀死进程,发生Crash。
Android当中捕获的方法主要是使用了Linux系统下的核心转储机制,在发生Crash前系统会记录下当前的上下文信息,形成tombstone文件,存储起来,再杀死线程,这个tombstone文件就是我们要分析的对象。
3、Java层Crash是如何捕获到的?
JavaCrash的捕获有几个关键部分:
1) RuntimeInit类中的LoggingHandler类,用于打印日志时使用
2)RuntimeInit类中的KillApplicationHandler类,是一个系统默认的UncaughtExceptionHandler,用于发生JavaCrash时kill掉进程。
3)RuntimeInit类中的commonInit方法,其内部就是初始化了所有线程的setUncaughtExceptionHandler()。
因此在发生非可检异常时,就会调用该线程的UncaughtExceptionHandler.unCatchException方法,在该方法内部进行捕获。
4、如何做到发生异常时不会杀死APP?
UncaughtExceptionHandler.unCatchException方法调用Looper进行死循环可以。
5、讲一下Handler机制
6、Looper的定时器是用如何实现的?
通过nativePollOnce(ptr, nextPollTimeoutMillis);定时睡眠
nativeWake(mPtr);进行唤醒
7、APK包里有什么?
    主要有5个部分:
    1、dex文件:.class文件编译后的产物
    2、Assets:资源文件,如图片等,主要是通过AssetsManger来进行加载。
    3、Resource:资源文件,layout等,通过R.xxxxxx.id来进行引用
    4、Library:so库引用目录
    5、META-INF:APK 签名有关的信息

8、APP在运行时是通过什么来获取到layout文件的?
    这个问题没找到答案。
9、讲一下surfaceview跟textview。
10、Activity A 启动 Activity B 时,他们在同一个栈的情况下生命周期以及执行顺序是怎么样的?
    这个问题要分启动模式来回答,若是经典则创建新的。
    若是栈内复用则调用onRestart方法。
11、Destroy()方法是什么时候调用的?
    1、调用finish()方法。
    2、Handler中已经没有要处理的message。
    满足这两个条件才会调用。

Java:
1、有什么线程同步的机制?
2、volatile关键字讲一下。
3、volatile如何实现可见性?
4、synchronize如何实现可见性?
5、volatile防止指令重排代码级别如何实现?


操作系统:
1、讲一讲操作系统内核态跟系统态的了解。
2、操作系统内核是什么?
    操作系统内核本质上就是操作系统代码的常驻机构。
    操作系统内核就是管理所有代码和数据结构的集合。
    操作系统内核是软件和硬件之间的媒介。
3、为什么操作系统要有内核态、系统态的存在?
4、Linux有什么信号?
5、sigill信号在什么情况下会触发?

算法题:
1、给一个数组,每个值表示的是在坐标系中的点下标,找出该数组在组成的最长直线为多少,相同最长长度直线有几条?
2、给一段数字,给出其可能组成的所有IP地址。


---------------------------------------------------------------------------------------------------------------------------------------------------
结束。
这难度已经不是我能够承受的了,直接挂了,心服口服。
#面经##Android##面试题目##腾讯##安卓工程师#
全部评论
天啊,请问lz这是校招吗?
点赞 回复
分享
发布于 2021-09-30 17:32
这些问题都挺难的啊,老哥厉害啊
点赞 回复
分享
发布于 2022-03-16 21:25
百信银行
校招火热招聘中
官网直投

相关推荐

5 35 评论
分享
牛客网
牛客企业服务