2022金九銀十好像并沒有想象中的熱鬧?一套組合拳面試專題奉上
前言
往年到9月份十月份都非常熱鬧,因為到了大家跳槽,面試,企業(yè)招聘的“高潮期”,然而今年確出奇的安靜,甚至身邊朋友不提醒,我都忘記了。
市場飽和,又遇到大廠大批裁員,企業(yè)對我們的要求越來越高了,怎么才能在這一波冷熱交期的潮流中立于不敗之地。提升自身迫在眉睫。
前幾天做了一個面試專題,隨我一起看看
包含:
1.必備技能,性能優(yōu)化,
Framework
,Flutter
,架構(gòu),Compose
,音視頻,車載認(rèn)識,kotlin
2.2022最新11位大廠面試真題(含答案)
3.音視頻面試題
4.Jetpack
全家桶
5.Android
?性能監(jiān)控框架Matrix
6.JVM
解析
主頁獲取領(lǐng)取方式
騰訊Android開發(fā)筆記+2022Android十一位大廠面試真題+音視頻60道面試題+Jetpack+Matrix+JVM
20.21號車載視頻內(nèi)容:

一丶騰訊Android開發(fā)筆記
1.Android工程師必備基礎(chǔ)技能
涉及:注解、泛型、Retrofit、架構(gòu)動態(tài)編程技術(shù)原理、Butterknife、JavaSSit丶虛擬機(jī)丶并發(fā)內(nèi)存丶Synchronize丶并發(fā)原理之線程池丶數(shù)據(jù)序列化

2.核心優(yōu)化能力
涉及:啟動優(yōu)化、內(nèi)存優(yōu)化、啟動優(yōu)化速度、卡頓優(yōu)化、布局優(yōu)化、崩潰優(yōu)化、應(yīng)用啟動全流程(源碼深度解析)等內(nèi)容.

3.Framework
涉及:Framework通信、Framework底層服務(wù)、Framework事件機(jī)制等內(nèi)容.

4丶Compose(開源項目)

5.音視頻開發(fā)
涉及:C和C++基礎(chǔ)語法,H264
編碼基礎(chǔ)和進(jìn)階,H265
編碼原理和應(yīng)用MediaCodec
硬解碼,Media
內(nèi)核源碼,WeChat
視頻通話。初級-中-高

附帶音視頻開發(fā)預(yù)習(xí)資料文檔
涉及:視頻區(qū),視頻壓縮,音視頻同步,F(xiàn)Fmpeg,OPenGL,OpenSL ES,抖音美顏濾鏡,交叉編譯,視頻變速,F(xiàn)Fmpeg實現(xiàn)音視頻同步

6.Android資深架構(gòu)師
涉及:Arraylist
,Okhttp
,Retrofit
,圖片加載,Dagger 2
,MVC
.MVP
.MVVM
,Jetpack Room

7.Android車載工程師
涉及:Android Auto
,汽車媒體應(yīng)用,構(gòu)建Android Auto
即時通信應(yīng)用,構(gòu)建車載導(dǎo)航和地圖注點(diǎn)應(yīng)用,構(gòu)建Android Automotive OS
視頻應(yīng)用,測試Android
車載應(yīng)用,分發(fā)Android
汽車應(yīng)用,適用于汽車的Google Play
服務(wù),Android Automotive OS
的通知.

8.Flutter高級工程師
涉及:Dart
語法,Flutter
動畫丶組件丶網(wǎng)絡(luò)請求以及Flutter3.0
簡介。

9.Harmony OS
涉及:Ability
組件,分布式任務(wù),事件總線,Harmony OS
線程,UI
自定義控件

10.Kotlin相關(guān)
涉及:對象丶類丶繼承丶變量丶常量丶拓展函數(shù)等20多個內(nèi)容

二丶2022最新Android十一位大廠面試真題(含答案)

1.百度篇
1.關(guān)于okhttp
和Retrofit
2.view
的繪制流程
3.觸摸的傳遞機(jī)制
4.自定義view
主要重寫哪個方法
5.講一下策略模式和狀態(tài)模式的各自的特點(diǎn)和區(qū)別
6.說一下線程安全,線程同步的原子性,可見性和有序性
7.講一下雙重檢查鎖中的?volatile
?關(guān)鍵字的作用
8.講一下jvm
的堆棧
9.二叉樹的層次遍歷
10.自定義Navigator
切換fragment
11.Navigation
使用和源碼剖析
12.volatile
的作用
2.阿里篇
1.Android
?插件化.Hook
?插件化框架 (?Hook Activity
?啟動流程 |?Hook
點(diǎn)分析
2.Android
中Handler
處理Runnable
任務(wù)的常見方法
3.講講對Handler
的認(rèn)識
4.求二叉樹中兩個節(jié)點(diǎn)之間的最大距離。
5.談?wù)剬?code>Binder的認(rèn)識
6.動態(tài)代理實現(xiàn)
7.ASM
的原理
8.內(nèi)存泄漏常見場景以及解決方案
9.touch
?事件源碼問題。
10.Android
自定義崩潰收集器捕獲java
層和native
層崩潰異常
11.如果 int 的值大于了 3 需要提示
12.介紹下?flutter
?的啟動流程
13.介紹下?flutter
?與?weex
?的區(qū)別
14.組件化介紹一下
15.webview
?與?js
?交互的實現(xiàn)方法
16.介紹下?flutter_boost
?的原理
3.騰訊篇
1.講一下MVVM, MVP,MVC
2.LiveData
在項目里的實踐是怎樣的,遇到了什么問題;有沒有想過怎么去解決LiveData
膨脹的問題
3.Handler
,messageQueue
懂多少說多少,越詳細(xì)越好
4.View
繪制的三個流程;onMeasure
中的measureSpec
,wrapContent
為什么會失效
5.內(nèi)存泄漏是怎么避免的?LeakCanary
原理是什么,沒看過源碼的話現(xiàn)在想一下該怎么實現(xiàn)
6.項目里的webView
是如何優(yōu)化加載速度的的
7.RecyclerView
和ScrollView
為什么不能一起使用
8.線程池用過嗎,工作組件有哪些,OkHttp
用的是什么線程池,為什么要用
9.synchronized
鎖升級的過程,為什么要設(shè)計這個鎖升級
10.HashMap
的實現(xiàn),如果要自己實現(xiàn)多線程安全的HashMap怎么操作
11.如果我想要自定義個任務(wù)有優(yōu)先級的線程池,應(yīng)該從哪些方面入手
12.為啥打開一個app
以后默認(rèn)會顯示白屏嗎,為啥不是黑屏呢?
13.進(jìn)程間通信方式有哪些,Binder
講一下,和共享內(nèi)存的區(qū)別是什么
14.動態(tài)代理和靜態(tài)代理
15.數(shù)據(jù)結(jié)構(gòu)和23種設(shè)計模式
16.RecyclerView
的性能優(yōu)化怎么實踐
17.堆排序?qū)崿F(xiàn)
4.京東篇
1.Activity
相關(guān)(生命周期、啟動模式)
2.service
的意義
3.Handler
內(nèi)存泄漏相關(guān)
4.OKhttp
源碼相關(guān)
5.手寫Singletion
5.字節(jié)篇
1.弱引用與軟引用,HashMap
的各個版本差異
2.什么是線程安全,如何實現(xiàn)線程安全 .常用的線程池種類,為什么要這么設(shè)計
3.單例常見的實現(xiàn)方式
4.DCL
為什么要加兩層判斷
5.ReentrantLock
如何實現(xiàn)公平鎖的
6.線程池里面非核心線程什么時候會被回收
7.handler
機(jī)制,
8.AsyncTask
原理,
9.Activity
窗口層級,
10.binder
機(jī)制,
11.Activity
的啟動流程,
12.mmap
,Intent
傳輸數(shù)據(jù)的限制,
13.ANR
原理,
14.RxJava
?線程池的使用注意問題,
15.OKHTTP
攔截器
16.Activity
的啟動流程
17.OKhttp
,Retrofit
18.布局優(yōu)化,內(nèi)存優(yōu)化,網(wǎng)絡(luò)優(yōu)化,apk瘦身
19.kotlin
,
20.常用設(shè)計模式,
21.MVC,MVVM,MVP
22.main
方法執(zhí)行之前發(fā)生了什么
6.Bilibili篇
1.啟動Activity
的方法
2.intent
可以傳遞的數(shù)據(jù)
3.Activity
和Fragment
的關(guān)系,生命周期,如何傳遞數(shù)據(jù)
4.項目用到了ViewModel
,說說看他的原理,為什么Fragment
可以獲取到Activity
的ViewModel
5.你說到了內(nèi)存泄露,有用過別的內(nèi)存檢查的工具嗎,什么時候會發(fā)生內(nèi)存泄露
6.說說進(jìn)程和線程的理解
7.請說說看mvp
和mvvm
模式有什么區(qū)別嗎
8.JVM
的內(nèi)存結(jié)構(gòu)是怎樣的,哪個地方不會出現(xiàn)內(nèi)存泄露
9.App
的啟動流程
10.對Handler
的理解,handler
的內(nèi)存泄露了解嗎
7.網(wǎng)易篇
1.線程進(jìn)程
2.IPC
3.HashMap
4.創(chuàng)建線程三種方式
5.鎖、volatile
6.動態(tài)代理
7.http
相關(guān)(https、響應(yīng)碼、請求方式)
8.Handler
9.Binder
10.view
繪制
8.小米篇
1.Android
啟動模式
2.不同啟動模式活動跳轉(zhuǎn)的生命周期
3.handler
機(jī)制
4.一個線程中幾個handler
同時發(fā)送一個相同的消息,怎么分辨哪個消息是哪個handler
發(fā)送的
5.Android
服務(wù)的生命周期
6.Android
持久化存儲的方式
7.Android
廣播的分類和使用場景
8.自定義view
三個方法,每個方法都要覆寫嗎
9.java
怎么使得一個同步方法變?yōu)楫惒椒椒?br>10.synchnoized
作用
11.java
?抽象類和接口的區(qū)別
12.抽象類的方法一定要繼承嗎
9.攜程篇
1.Glide
講一講。你為什么選擇glide
2.Glide
三級緩存
3.Glide
怎么加載圖片進(jìn)Imageview
的
4.OKhttp
攔截器
5.get
和post
請求區(qū)別
6.項目里面內(nèi)存優(yōu)化
7.LeakCanary
8.Bitmap
高效緩存
9.項目中啟動優(yōu)化
10.渲染布局優(yōu)化
11.ViewStub
懶加載
12.MVP
和MVVM
,談?wù)勀銓λ鼈兊牧私?br>13.設(shè)計模式項目里邊有用過哪些
14.HTTPS
通信
15.JVM內(nèi)存模型
16.怎么保證線程安全
17.垃圾回收gc
講一講
10.小紅書篇
1.Java
深拷貝和淺拷貝的區(qū)別
2.自定義View
是怎么繪制的?ViewGroup?
3.Handler
機(jī)制,
4.TCP
和UDP
的區(qū)別
11.愛奇藝篇
1.Android
布局嵌套深有什么問題
2.kotlin
協(xié)程
3.HashMap
原理
4.算法:手寫快排
5.Activity
啟動模式
6.Activity A → B
的生命周期在這四種啟動模式下的狀態(tài)
7.有序廣播如何實現(xiàn)的按順序收到廣播
8.SharedPreferences
的格式
9.xml
解析方式
10.json
與xml
的區(qū)別,json
為什么比xml
更好
11.Android view
繪制流程
12.surfaceView
13.機(jī)型大小適配
14.ANR
?什么時候出現(xiàn),如何排查
15.Android
?動畫
16.startService
與bindService
的區(qū)別
17.Service
?;罘绞?br>18.java
泛型
19.重寫equals
方法需要重寫hashCode
方法嗎
三丶60道經(jīng)典音視頻面試題(含答案)

1.為什么巨大的原始視頻可以編碼成很小的視頻?這其中有什么技術(shù)?
2.怎么做到直播秒開優(yōu)化
3.直方圖在圖像處理里面最重要的作用是什么?
4.數(shù)字圖像濾波有哪些方法?
5.圖像可以提取的特征有哪些?
6.衡量圖像重建好壞的標(biāo)準(zhǔn)有哪些?怎么計算?
7.AAC
和PCM
的區(qū)別?
8.H264
存儲的兩個形態(tài)
9.FFmpeg
:圖像如何合成視頻?
10.常見的音視頻格式有哪些?
11.1080P
的意義
12.請解釋顏色的本質(zhì)及數(shù)字記錄原理,并說出你知道的色域
13.請解釋矢量圖和位圖的區(qū)別
14.請從光圈,快門速度,感光度,白平衡,景深中任意選2個進(jìn)行敘述?
15視頻分量YUV
的意思及數(shù)字化格式
16.在MPEG
標(biāo)準(zhǔn)中圖像類型有哪些?
17.列舉一些音頻編解碼常用的實現(xiàn)方案?
18.敘述MPEG
視頻基本碼流結(jié)構(gòu)?
19.SPS
和PPS
的區(qū)別
20.敘述AMR
基本碼流結(jié)構(gòu)?
21.預(yù)測編碼的基本原理是什么?
22說一說FFmpeg
的數(shù)據(jù)結(jié)構(gòu)
23.說一說AVFormatContext
和AVIntFormat
之間的關(guān)系?
24.說一說AVFormatContext
,?AVStream
和AVCodecContext
之間的關(guān)系?
25.說一說視頻拼接處理步驟?(細(xì)節(jié)處理,比如分辨率大小不一,時間處理等等)
26.NV21
如何轉(zhuǎn)換成I420
?
27.DTS
與PTS
共同點(diǎn)?
28.影響視頻清晰度的指標(biāo)有哪些?
29.編解碼處理時遇到什么困難?
30.如何秒開視頻?什么是秒開視頻
31.如何降低延遲?如何保證流暢性?如何解決卡頓?解決網(wǎng)絡(luò)抖動?
32.需要把網(wǎng)絡(luò)上一段視頻存儲下來(比如作為mp4 ), 請實現(xiàn)并說出方法(第一個視頻需要翻墻才能進(jìn))?
33.需要把網(wǎng)絡(luò)上一段語音存儲下來(比如作為mp3 ), 請實現(xiàn)并說出方法?
34.為什么要有YUV
這種數(shù)據(jù)出來?(YUV
相比RGB
來說的優(yōu)點(diǎn))
35.H264/H265
有什么區(qū)別?
36.視頻或者音頻傳輸,你會選擇TCP
協(xié)議還是UDP
協(xié)議?為什么?
37.平時說的軟解和硬解,具體是什么?
38.何為直播?何為點(diǎn)播?
39.簡述推流、拉流的工作流程?
40.如何在直播中I
幀間隔設(shè)置、與幀率分辨率選定?
41.直播推流中推I
幀與推非I幀區(qū)別是什么?
42.常見的直播協(xié)議有哪些?之間有什么區(qū)別?
43.點(diǎn)播中常見的數(shù)據(jù)傳輸協(xié)議主要有哪些?
44.RTMP、HLS
協(xié)議各自的默認(rèn)端口號是?
45.簡述RTMP
協(xié)議,如何封裝RTMP
包?
46.m3u8
構(gòu)成是?直播中m3u8
、ts
如何實時更新?
47.何為音視頻同步,音視頻同步是什么標(biāo)準(zhǔn)?
48.播放器暫停、快進(jìn)快退、seek
、逐幀、變速怎么實現(xiàn)
49.說說你平時在播放過程中做的優(yōu)化工作?
50.你研究過哪些具體的流媒體服務(wù)器,是否做過二次開發(fā)
51.什么是GOP
?
52.音頻測試的測試點(diǎn),音頻時延如何測試?
53.美顏的實現(xiàn)原理,具體實現(xiàn)步驟?
54.如何直播APP
抓包過來的文件,如何過濾上行,下行,總碼率?
55.如何測試一個美顏掛件?
56.為什么要用FLV
?
57.如何測試一個美顏掛件?
58.平常的視頻格式?
59.何為homebrew
?你用它安裝過什么?常用命令有哪些?
60.RTMP
、HLS
協(xié)議各自的默認(rèn)端口號是?
四丶Jetpack全家桶
1.Jetpack
之Lifecycle
2.Jetpack
之ViewModel
3.Jetpack
之DataBinding
4.Jetpack
之Navigation
5.Jetpack
之LiveData

五丶Android性能監(jiān)控框架Matrix
1.Matrix
介紹
2.內(nèi)存泄漏監(jiān)控及原理介紹
3.內(nèi)存泄漏監(jiān)控源碼分析
4.Hprof
文件分析
5.卡頓監(jiān)控
6.卡頓監(jiān)控源碼解析
7.插樁
8.資源優(yōu)化
9.I/O
監(jiān)控及原理解析

六丶JVM解析

20.21號車載視頻內(nèi)容:

主頁獲取領(lǐng)取方式
騰訊Android開發(fā)筆記+2022Android十一位大廠面試真題+音視頻60道面試題+Jetpack+Matrix+JVM