<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          跳槽助力!B站Android面試小記

          共 2732字,需瀏覽 6分鐘

           ·

          2022-04-10 00:44

          ?BATcoder技術(shù)群,讓一部分人先進(jìn)大廠

          大家好,我是劉望舒,騰訊最具價(jià)值專家,著有三本業(yè)內(nèi)知名暢銷書,連續(xù)五年蟬聯(lián)電子工業(yè)出版社年度優(yōu)秀作者,百度百科收錄的資深技術(shù)專家。

          前華為面試官、獨(dú)角獸公司技術(shù)總監(jiān)。


          想要加入?BATcoder技術(shù)群,公號回復(fù)BAT?即可。

          作者:dreamgyf?地址:https://juejin.cn/post/7077879634326454280

          看著我同學(xué)最近也在到處投簡歷,我想著我也投一下看看行情,于是在2022-02-28號,我向B站投出了第一封簡歷,說實(shí)話當(dāng)初只是想練練手,沒想到最后接了B站的offer,也是造化弄人了

          一面

          技術(shù)面,45min左右,基本圍繞你簡歷上寫的亮點(diǎn)和你的工作經(jīng)歷展開

          1、自我介紹
          2、你在項(xiàng)目中負(fù)責(zé)什么
          3、用過什么設(shè)計(jì)模式,或在Android中常常會碰見的設(shè)計(jì)模式

          單例模式,策略模式,責(zé)任鏈模式(問了一下使用場景),工廠模式等

          Android中的觀察者模式,適配器模式等

          4、有沒有做過什么比較有難度的模塊

          camera2,自定義照片裁剪View

          5、你對自定義View有什么了解

          回答了一些Path繪制以及觸摸事件的處理

          6、Android動畫

          屬性動畫,ObjectAnimator

          7、多線程并發(fā)(鎖、信號量、syncnorized),syncnorized對象和class有什么區(qū)別

          ConcurrentHashMap線程安全的原理 1.8之前用的分段式鎖,1.8之后用的synchronized,至于具體的細(xì)節(jié)沒有答上來,因?yàn)榇_實(shí)也沒看過這邊源碼

          8、jni,如何定位jni崩潰

          這個(gè)我當(dāng)時(shí)回答的是打log,因?yàn)轫?xiàng)目中用到j(luò)ni的地方確實(shí)不多,當(dāng)然jni也是可以斷點(diǎn)調(diào)試的

          9、你所開發(fā)的應(yīng)用有多進(jìn)程嗎?進(jìn)程間是怎么通信的

          這個(gè)我當(dāng)時(shí)只回答了mmap,稍微聊了一下mmap原理和binder性能對比,后來復(fù)盤想起來項(xiàng)目中用到的Broadcast和aidl binder通信都沒有回答

          10、Webview和native怎么交互的

          onUrlLoading攔截Schema

          注冊js方法(addJavascriptInterface)

          11、Android編譯打包過程

          aapt -> class -> dex -> 簽名

          12、插樁

          ASM插樁,字節(jié)碼操作

          13、性能監(jiān)控

          因?yàn)槲抑白鲞^一個(gè)性能監(jiān)控庫,cpu和mem使用TOP命令解析,Anr通過給MainLooper設(shè)置Printer

          14、LeakCanary原理

          WeakReference + ReferenceQueue,加了一些改進(jìn)點(diǎn):new一個(gè)弱引用的Object,等這個(gè)Object確認(rèn)被回收后再確認(rèn)Activity是否正常被回收

          15、Jetpack Compose

          稍微談了一下看法,是否在項(xiàng)目中用過

          16、算法題:最長公共前綴

          LeetCode 14題,easy難度:leetcode-cn.com/problems/lo…

          二面

          一面結(jié)束后5min左右,B站HR就給我打電話過來約了二面 二面也是技術(shù)面,20min左右,因?yàn)槭峭砩?點(diǎn)面的,估計(jì)人家急著想下班(笑)

          1、自我介紹
          2、工作職責(zé)
          • 工作中有什么亮點(diǎn)
          • 拍照裁剪業(yè)務(wù)
          • 單元測試庫
          • 性能監(jiān)控
          • 內(nèi)存泄漏檢測
          3、單元測試的庫是怎么做的

          基于Mockito和Robolectric:

          • 封裝了一個(gè)反射庫用來方便測試
          • 做了一個(gè)AutoCloser類用來自動關(guān)閉釋放mock的資源,這里提到了使用MockedStatic,如果在使用完后沒有釋放,那在下一次使用到同一個(gè)類的MockedStatic的時(shí)候會報(bào)錯(cuò),這里我自定義了一個(gè)注解@MockedStatic用來自動mock和釋放資源
          • 針對kotlin做了一些mock工具,比如說頂層函數(shù)的mock(這個(gè)在我以前的文章Android-Kotlin單元測試之 如何配合Mockito模擬頂層函數(shù)中介紹過)
          4、開發(fā)模式(流程規(guī)范):

          開發(fā)規(guī)范參考了阿里的Java規(guī)范和Android規(guī)范,選取了一些比較重要的條例和一些自己長時(shí)間開發(fā)的經(jīng)驗(yàn)做成了一篇文檔

          5、崩潰率的優(yōu)化,做了哪些事情

          感覺這里沒答好,有點(diǎn)答非所問的意思,我就說了說目前處理bug的一個(gè)流程,沒有談到怎么解決一個(gè)bug

          6、數(shù)據(jù)打點(diǎn)是怎么做的

          我們用的是神策第三方服務(wù)

          7、內(nèi)存泄漏工具是怎么做的

          這部分同一面LeakCanary原理

          8、看你之前做過一個(gè)MQTT協(xié)議的客戶端,是出于個(gè)人興趣嗎

          是的,當(dāng)時(shí)是想要做一個(gè)IM應(yīng)用

          9、在項(xiàng)目中有遇到需要3D渲染展示的內(nèi)容嗎

          目前沒有

          10、兩個(gè)Activity跳轉(zhuǎn)時(shí)方法執(zhí)行的順序

          一個(gè)Activity創(chuàng)建是:onCreate -> onStart -> onResume(之后便在屏幕上顯示了) 假設(shè)從A Activity跳轉(zhuǎn)到B Activity:A.onPause -> B.onCreate -> B.onStart -> B.onResume -> A.onStop從B返回到A:B.onPause -> A.onRestart -> A.onResume -> B.onStop -> B.onDestory

          11、兩個(gè)Activity傳遞數(shù)據(jù)可以通過什么方式
          • Intent

          • 如果是同一個(gè)進(jìn)程的話,可以用全局變量或者單例等

          • SharedPreference

          • 文件

          12、什么時(shí)候使用Service

          后臺任務(wù),比如說后臺播放音樂等,這里提了一下IntentService是開了一個(gè)子線程的

          13、Service怎么啟動,怎么停止

          startService <---> stopService

          bindService <---> unbindService

          14、包體積優(yōu)化

          清理資源(字體、圖片、代碼等)

          HR面

          二面結(jié)束后過了2-3天,HR發(fā)微信過來恭喜我進(jìn)入下一輪面試,我問她接下來是還有三面和HR面嗎,她回答我說后面就直接是HR面了,說實(shí)話我還是挺驚訝的 HR面15min左右,大概就問了一下,為什么要從上家公司離職,我們是一個(gè)新部門,處于項(xiàng)目初期,有什么看法之類的,然后問了一下目前的薪資和期望薪資,over~

          總結(jié)

          說實(shí)話感覺這次面試太簡單了,有點(diǎn)白瞎了我準(zhǔn)備了那么多,還做了查漏補(bǔ)缺 ㄟ( ▔, ▔ )ㄏ ,最后祝大家都能找到心儀的工作 (??????)??




          ? 耗時(shí)2年,Android進(jìn)階三部曲第三部《Android進(jìn)階指北》出版!

          ? 『BATcoder』做了多年安卓還沒編譯過源碼?一個(gè)視頻帶你玩轉(zhuǎn)!

          ? 『BATcoder』我去!安裝Ubuntu還有坑?

          ? 重生!進(jìn)階三部曲第一部《Android進(jìn)階之光》第2版 出版!

          為了防止失聯(lián),歡迎關(guān)注我的小號

          ??微信改了推送機(jī)制,真愛請星標(biāo)本公號??
          瀏覽 80
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线网站www亚洲观看 | 一本久道激情淫乱视频 | 无码日韩人妻精品久久蜜桃 | 超碰天天日日干干夜夜 | 亚洲精品久久久久久久久久久久久 |