日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android阿面试积累,android项目开发实战密码

發布時間:2024/3/13 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android阿面试积累,android项目开发实战密码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 公差為1的等差數列求和,如何優化
  • 自己的優勢在哪里
  • 注解如何獲取,反射為何耗性能?
  • Java的GC機制,分代回收策略
  • Binder機制:ServiceManager什么時候注冊的?
  • int,long的取值范圍以及BigDecimal,數值越界了如何處理?
  • ConcurrentHashMap的原理,分的段數是多少?
  • APP是如何適配的?
  • Android中如何查看一個對象的回收情況?
  • 最大一次線上Bug處理措施

三面:

  • APK的大小如何壓縮
  • APP的崩潰率,多渠道包
  • 自己做過的APP用戶量
  • 能否接受加班

公司二(Offer)

面試機會來自于拉勾網

一面:

  • MVP如何管理Presenter的生命周期,何時取消網絡請求
  • 用過的框架及原理
  • 天貓的Tangram布局,vLayout原理

二面:

  • APP的啟動流程
  • 回形打印二維數組
  • Java為何引入泛型,泛型邊界
  • 常見的Java數據結構
  • ArrayMap跟SparseArray在HashMap上面的改進
  • Java的四種引用及使用場景
  • Webview性能優化

公司三(Over)

面試機會來自于Android Weekly

一面:

  • Binder機制
  • ClassLoader的理解
  • Arouter的原理
  • 組件化原理,組件化中路由的實現
  • 熱修復跟插件化的原理
  • 線程池的幾個參數的理解,四種線程池的使用場景
  • 常用的設計模式,手寫DCL單例模式
  • 進程間為什么不能直接進行通信
  • 應用跟系統之間通信什么時候用Socket什么時候用Binder

二面:

面試官是做IOS的,基本上是處于聊天的狀態,反正聊地很開心的,然后對我評價很好,他說他不懂Android,但是能感受到我的技術好奇心,聽了還是很開心的,反正基本上沒怎么聊具體的技術,主要是聊了聊IOS的Hook以及熱修復相關的技術,問他們是怎么實現的,因為我知道IOS在這個上面比Android要復雜一些,反正整體就是很放松。

三面:

三面是產品總監,基本上就是談古論今了,讓我說說對Android以及IOS的看法,我說谷歌未來肯定會在人工智能上干掉IOS,然后他說為什么,我說因為谷歌掌握了搜索的大數據,Android產品接入的成本低等等,然后我跟他說我希望產品在設計原型的時候需要考慮一下Android跟IOS兩個平臺的差異,不能一刀切,他說是應該這樣,但是有很多時候需要保持平臺一致性就需要做一些妥協之類,最后其實還聊到了錘子,聊了聊對老羅以及錘子的看法,產品總監說錘子的發布會每場他都會看,然后他還給他家人買了一部堅果Pro,反正想著肯定會掛掉,索性就不那么拘束了,就是一種很放松的狀態。

四面:

四面是CTO面,當時有點緊張,CTO很有紳士風度,一上來主動跟我握手,當時我有些緊張,手心都出汗了,他說我是不是很熱,我說是的。然后說自己從網易出來之后就開始創業了,一直是在做提高企業生產效率相關的產品,現在做的GrowingIO也是的,然后問了我很多問題,主要是我在上一份工作中的成長跟收貨,未來的規劃等等,以及在項目中遇到問題是如何進行團隊協作的,問地很細,可以看地出來公司對這款產品非常重視,像滴滴企業版,陌陌等都是他們的客戶,感覺這家公司會發展很不錯,最后我也問他為什么會嘗試做那么多產品而不是專注于某一款產品等等,然后他也給了詳細的解答。

沒有給我Offer的原因在于我的薪資可能開地過高,一面基本上是處于被淘汰的局面,但是我跟后面的面試官都聊地很好,晚上還在那兒吃了頓飯,最后CTO還跟我聊了很久,我覺得他們應該是覺得我可以培養,但是薪資要低偏高,所以就最終放棄了我,因為對于創業公司,我的薪資都開地高一些,不管結果怎么樣,還是挺感謝這家公司的,希望他們發展地越來越好。

公司四(Offer)

面試機會來自于拉勾網

一面:

  • Debug跟Release的APK的區別
  • 軟引用跟弱引用的區別
  • ConcurrentHashmap的原理
  • Listview跟Recyclerview的區別(刷新,緩存,各自的使用場景)
  • 對谷歌新推出的Room架構
  • 動畫的兩種實現:setX跟setTranslationX區別
  • 事件分發:Activity跟window依次到viewgroup
  • Volley源碼,優缺點
  • Picasso傳入的Activity跟Application的context的區別

二面:

  • 數據庫的升級,表結構的修改
  • 常見的排序算法,手寫二分查找,二分查找的復雜度分析
  • 點擊APP圖標啟動APP的大致流程
  • SplashActivity中進行初始化MainActivity的參數,Splash沒有初始化,AMS直接啟動了MainActivity怎么辦
  • 設計一個多線程,可以同時讀,讀的時候不能寫,寫的時候不能讀(讀寫鎖)
  • 設計斷點續傳,如何判斷服務端是否支持斷點續傳
  • Binder機制:Binder內核所在的進程是如何找到到Server跟Client進行通信的
  • 對JNI是否了解
  • 組件化的原理,組件間通信

公司五:京東

面試機會來自于Boss直聘

京東到家(電面):

  • GitHub上面的開源項目
  • 一個線程能否創建多個Handler,Handler跟Looper之間的對應關系
  • ArrayList跟HashMap是夠線程安全,如何保證線程安全
  • Volley返回數據量比較大的請求時怎么辦
  • ListView跟RecyclerView刷新數據原理,使用到的設計模式
  • 適配如何做,有沒有適配過全面屏
  • Fragment跟Activity的通信方式,你知道幾種?

京東商城(電面):

  • 內存泄露的種類
  • ActivityA啟動ActivityB時生命周期的變化
  • AMS是如何管理Activity的
  • JVM中的GC回收機制
  • 常見的跨進程通信方式,AIDL的實現原理
  • APP以及Activity的啟動流程
  • Hook以及插樁技術

公司六:京東金融(Offer)

一面:

  • 從長度為m的int數組中隨機取出n個元素,每次取的元素都是之前未取過的,如何優化
  • https是如何保證安全的,證書如何校驗
  • Android的簽名機制,APK包含哪些東西
  • 是否遇到過OOM,如何解決
  • 是否做過逆向
  • 對JNI了解多少
  • 手寫單例(DCL)
  • 是否寫過so文件
  • 熱修復原理,如何進行dex替換的

二面:

  • 簡單說下項目
  • 內存泄露,如何檢測以及檢測的原理
  • 點擊Launcher跟點擊微信支付啟動微信有什么區別
  • 逆序一個字符串,不能調用String的reverse方法(考察編碼風格)
  • 組件化原理,模塊化機制
  • 沒有給權限如何定位,特定機型定位失敗,如何解決
  • 同步跟異步機制(是業務上的,不知道他想問什么)
  • 線程池中核心線程數跟最大線程數如何定義

公司七:(Over)

面試機會來自于拉勾

一面:

  • StringBuffer跟StringBuilder之間的區別
  • 并發相關,各種鎖
  • View的繪制流程,事件分發
  • Hashmap,Arraymap,SparseArray
  • 四種引用
  • MVP跟MVC的區別
  • LV跟RV之間的區別
  • Service相關,startService以及bindService
  • Fragment不同于Activity的生命周期
  • 生產者消費者問題:一對多,多對多情況
  • 常見的設計模式,并選擇一種描述一下
  • Scroller的使用

二面:

  • Gradle生命周期
  • Java&Android關于Classloader源碼解析
  • Python的class文件
  • DCL中Volatile的作用,如何防止反射實例化單例對象
  • 抽象類能否實例化,理論依據是什么?
  • 如何通過Gradle配置差異較大(20%差異)的多渠道包
  • class文件如何轉化成dex
  • Service先start再bind如何關閉service,為什么bindService可以跟Activity生命周期聯動?
  • JVM相關,DVM以及ART是如何進行優化的,具體步驟
  • 長連接常見的庫,短鏈接
  • 靜態同步鎖與普通同步鎖的區別
  • 直接在Activity中創建一個thread跟在service中創建一個thread之間恩區別

高德—汽車事業部(Over)

面試機會來自于Boss

一面:

  • View的生命周期
  • View的繪制流程跟事件分發
  • Activity跟Window之間的關系
  • 對C跟JNI是否熟悉
  • 熱修復原理,插件化是如何進行加載插件的
  • Java中的鎖,各種同步方式之間的區別
  • ANR在四大組件中的時間,場景
  • OOM,如何避免
  • 內存泄露原理,如何避免
  • MVC跟MVP之間的區別
  • ListView針對多種item的緩存是如何實現的
  • Android繪制二維跟三維的View的區別
  • 是否了解硬件加速
  • ListView是如何實現對不同type的item的管理的

二面:

  • Android中IPC方式,各種方式優缺點,為什么選擇用Binder
  • 主流的熱修復框架流派,原理,是否研究過classloader源碼
  • Android為什么要設計兩種classloader,為什么不用一種,通過type來區分
  • Bundle傳遞數據為什么需要序列化
  • 手寫一個快排,分析原理
  • 廣播傳輸的數據是否有限制,是多少,為什么要

《Android學習筆記總結+最新移動架構視頻+大廠安卓面試真題+項目實戰源碼講義》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整內容開源分享

限制?

  • Activity啟動時生命周期是如何回調的?
  • MVP.MVC.MVVM之間對比分析
  • 組件化通訊:有幾種通信方式,Arouter原理
  • 插件化加載流程,原理
  • 關于反射混淆,耗性能的解決方式
  • 天貓七巧板布局原理
  • 熱修復流派,原理

高德—地圖事業部(Over):

面試機會來自于Trinea內推

一面:

  • RecyclerView的itemdecoration如何處理點擊事件
  • 單例模式如何修改數據
  • android事件傳遞,非常細
  • 多線程

**二面:

  • JVM內存分布,Classloader
  • 靜態代理跟動態代理
  • 線程的生命周期
  • 是否用過DataBinding
  • 是否接觸過JNI
  • 對熱修復跟插件化了解多少
  • 對RN了解多少
  • 二分查找
  • 說下多態
  • 編譯期注解跟運行時注解
  • 線程跟進程間通信
  • Android中的IPC
  • java中的傳遞
  • equals跟==
  • Picasso的存儲
  • 項目中的難點
  • 項目中用到了哪些第三方
  • MVC,MVVM,Clean架構
  • 抽象類跟接口的區別,接口的默認修飾符

掌閱科技(Over)

面試機會來自于Boss

一面:

  • Canvas.save()跟Canvas.restore()的調用時機
  • 程序A能否接收到程序B的廣播?接入微信支付的時候,微信是如何跟當前程序進行通信?
  • 對Java.nio了解多少
  • ConcurrentHashMap是如何實現分段鎖?
  • 現在需要遍歷SD卡下所有的文件打印出后綴名為.txt文件名稱,如何提高時間效率?
  • 為什么復寫equals方法的同時需要復寫hashcode方法,前者相同后者是否相同,反過來呢?為什么?
  • Android4.0~8.0之間大的變化,如何處理?
  • 說一下Measurespec這個類
  • ViewHolder有什么用?
  • Gradle的Flavor能否配置sourceset?
  • 線程池核心線程數一般定義多少,為什么?
  • Intentservice有什么用
  • 弱引用什么時候被回收
  • Android中提供了哪些類來幫忙處理線程
  • http的狀態碼,常見的請求頭,http緩存協議https如何加密
  • 多進程的優缺點,多線程的優缺點
  • 熱修復如何修復資源文件?
  • 有沒有遇到64k問題,為什么,如何解決?
  • httpUrlconnection跟httpClient有什么區別

馬蜂窩(Over)

面試機會來自于Boss

一面:

  • 兩個非基本數據類型數組: array1=[x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,×11] array2=[x6,x3,x10,x5] 計算結果:[x6,x7,x8,x9,x1,x2,x3,x4,x10,x11,x5],寫出你的算法
  • 類的初始化過程
  • 點擊事件穿透原則
  • 線程池使用的是哪一種,使用原則
  • LeakedCanary原理
  • LinerLayout跟RelativeLayout的繪制原理
  • Android新版本的一些新特性6.0,7.0,8.0
  • 類的初始化順序依次是(靜態變量、靜態代碼塊)>(變量、代碼塊)>構造方法

二面:

  • 看了看項目提了問題如何進行優化
  • 如何實現馬蜂窩中的一個動畫效果
  • 軟鍵盤頂起布局
  • 組件化通信方案

愛奇藝(Offer)

面試機會來自于拉勾

一面:

  • 聊聊RecyclerView,動畫,緩存,數據綁定底層是如何實現的。
  • 聊了聊我的開源項目實現原理
  • View在屏幕中的移動底層是如何實現的
  • Binder跟Socket之間的區別,什么時候用哪一個,Binder的底層實現
  • Activity,Window跟View之間的關系
  • setContentView都干了啥
  • Activity的啟動模式
  • MVC跟MVP之間的區別
  • 算法:將一個有序數組去重得到一個新數組(空間復雜度為O(N))

二面:

  • LruCache底層實現
  • Hashmap的hash算法
  • Bitmap在decode的時候申請的內存如何復用,釋放時機
  • 注解如何實現一個findViewById
  • Android是如何學習的
  • sycronized關鍵字的類鎖對象鎖,如何保證線程安全?
  • 重入鎖跟sycronized關鍵字之間的區別
  • 除了notify還有什么別的方式可以喚醒線程
  • 說說你對Context的理解

三面:

  • Listview的adapter是什么adapter,如何復用。
  • RV是如何布局的
  • 算法:如何從1T的無序數組(長度為n)里面找出前k大的數據,復雜度要求為O(logN)
  • 由A啟動BActivity,A為棧內復用模式,B為標準模式,然后再次啟動A或者殺死B,說說A,B的生命周期變化,為什么

美團(Over)

面試機會來自于內推

  • APP啟動流程
  • Webview內存泄露
  • 組件間通信,如何傳遞對象
  • Arouter原理
  • 如何取消一個網絡請求
  • 兩個activity之間來回切換的生命周期變化
  • 進程間如何通信,Binder機制
  • 內存泄露及優化
  • 自定義view以及事件沖突
  • 線程池參數及定義,多線程是否一定會高效
  • 電量優化

美團實際上面了三面,但是面試題跟前面的面試官很多重復的,所以就只寫了上面幾道題目,整體面試感覺都答上來了,但是問的有些問題確實沒接觸過,比如說Webview的性能優化,電量優化等,最后HR反饋的情況是基礎很好,項目經驗不足。

獵豹移動(Offer)

面試機會來自于Boss

筆試:

  • 請例舉Android中常用布局類型,并簡述其用法以及排版效率

總結

以上是生活随笔為你收集整理的Android阿面试积累,android项目开发实战密码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。