1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 2732字,需瀏覽 6分鐘

         ·

        2022-04-10 00:44

        ?BATcoder技術群,讓一部分人先進大廠

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

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


        想要加入?BATcoder技術群,公號回復BAT?即可。

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

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

        一面

        技術面,45min左右,基本圍繞你簡歷上寫的亮點和你的工作經歷展開

        1、自我介紹
        2、你在項目中負責什么
        3、用過什么設計模式,或在Android中常常會碰見的設計模式

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

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

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

        camera2,自定義照片裁剪View

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

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

        6、Android動畫

        屬性動畫,ObjectAnimator

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

        ConcurrentHashMap線程安全的原理 1.8之前用的分段式鎖,1.8之后用的synchronized,至于具體的細節(jié)沒有答上來,因為確實也沒看過這邊源碼

        8、jni,如何定位jni崩潰

        這個我當時回答的是打log,因為項目中用到jni的地方確實不多,當然jni也是可以斷點調試的

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

        這個我當時只回答了mmap,稍微聊了一下mmap原理和binder性能對比,后來復盤想起來項目中用到的Broadcast和aidl binder通信都沒有回答

        10、Webview和native怎么交互的

        onUrlLoading攔截Schema

        注冊js方法(addJavascriptInterface)

        11、Android編譯打包過程

        aapt -> class -> dex -> 簽名

        12、插樁

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

        13、性能監(jiān)控

        因為我之前做過一個性能監(jiān)控庫,cpu和mem使用TOP命令解析,Anr通過給MainLooper設置Printer

        14、LeakCanary原理

        WeakReference + ReferenceQueue,加了一些改進點:new一個弱引用的Object,等這個Object確認被回收后再確認Activity是否正常被回收

        15、Jetpack Compose

        稍微談了一下看法,是否在項目中用過

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

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

        二面

        一面結束后5min左右,B站HR就給我打電話過來約了二面 二面也是技術面,20min左右,因為是晚上8點面的,估計人家急著想下班(笑)

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

        基于Mockito和Robolectric:

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

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

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

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

        6、數據打點是怎么做的

        我們用的是神策第三方服務

        7、內存泄漏工具是怎么做的

        這部分同一面LeakCanary原理

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

        是的,當時是想要做一個IM應用

        9、在項目中有遇到需要3D渲染展示的內容嗎

        目前沒有

        10、兩個Activity跳轉時方法執(zhí)行的順序

        一個Activity創(chuàng)建是:onCreate -> onStart -> onResume(之后便在屏幕上顯示了) 假設從A Activity跳轉到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、兩個Activity傳遞數據可以通過什么方式
        • Intent

        • 如果是同一個進程的話,可以用全局變量或者單例等

        • SharedPreference

        • 文件

        12、什么時候使用Service

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

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

        startService <---> stopService

        bindService <---> unbindService

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

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

        HR面

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

        總結

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




        ? 耗時2年,Android進階三部曲第三部《Android進階指北》出版!

        ? 『BATcoder』做了多年安卓還沒編譯過源碼?一個視頻帶你玩轉!

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

        ? 重生!進階三部曲第一部《Android進階之光》第2版 出版!

        為了防止失聯,歡迎關注我的小號

        ??微信改了推送機制,真愛請星標本公號??
        瀏覽 80
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            色一级性爱视频免费放国产 | 草操网| 亚洲最新AV网站 | 欧美亚洲日本韩国高清色图 | 91爱看 | 九九天堂 | 久久视频一区二区 | 黄色大片网站aaa | 涩涩视频网站在线观看 | 91九色91蝌蚪91窝成人 |