
前言
準備面試其實已經準備了挺久了,當時打算面試準備了差不多以后,跟公司談談漲薪的事情,談不攏的話,就年后直接找其他的公司,誰想到婚假還沒休完,老板就在公司宣布了撤出上海的決定,愿意去深圳的就去,不愿意的就自己找作業,給了一個多月的時間找作業,就沒有賠償了,反正公司也沒錢,悲哀….
幸好提前準備過,不過都是斷斷續續的今天看點這個,明天看點那個,三天打魚兩天曬網的,也沒用心去準備,這下好了,直接到了最差的地步了,沒辦法,用心準備吧,
簡歷內容
基本資訊
姓名,聯系方式,作業年限,學校,專業,學歷
個人技能
- 作業幾年
- 獨立開發
- 掌握的技能,組件化、插件化、熱修復、自定義view
- 適配、架構、第三方原始碼、性能優化
- 職業技能:管理能力、產品能力、溝通能力
這些東西一定要寫自己熟悉的,最好專案里面能體現出來的內容
專案經驗
專案描述:一句話 作業內容:做了哪些模塊,用了什么技術、做過哪些優化,重構方面的內容
專案方面寫兩到三個專案,最好最近一兩家公司做的專案
公司經歷
公司名稱 時間 作業內容
面試題準備
專案中用到的技術
整理出來,上網找找相關的技術文章和面試題看看,然后用自己的話把這些內容梳理出來,最好有自己的看到,面試官習慣問為什么,
Android知識點
基礎:
四大組件、fragment、自定義View、事件分發、滑動處理、handler、AsyncTask、IntentService、ThreadHandler、Bitmap相關的、影片的用法
進階:
ListView、RecyclerView、AIDL、LruCache、DiskLruCache、View,Window,Activity的關系、行程保活、性能優化、
高階:
Bindler、AMS、WMS、Context、APP的啟動流程、插件化、組件化、熱修復什么的等等
第三方框架:
okhttp、retrofit、RxJava等等,熟悉一個框架的原始碼,然后知道其他框架的優缺點
混合開發:
通常都是RN相關的,目前Flutter用的不多
架構和語言:
MVC、MVP、MVVM、組件化、插件化、熱修復等等
上面介紹得不需要全部掌握,看你專案,挑一些內容掌握住,怎么問都不怕得那種,前提是不去一二線得大廠
java知識點
多執行緒、并發、java基本語法、泛型、hashmap等容器相關的,一般這幾差不多了
面試內容準備
自我介紹
就聊聊最近一個專案里面的作業內容,遇到的問題,有什么亮點,難點 這個看專案,有人說我們沒什么亮點啊,我只想說你寫的代碼都沒有bug么,花你半天一天時間搞不定的bug就可以聊了
職業規劃
技術線路:架構師技術專家 管理線路:開發leader,專案經理什么的
有什么想問的
技術面試官問你:
問問技術團隊多少人、技術氛圍怎么樣的、如果有可能問問他們的技術堆疊是什么,圍繞著技術來問
HR問:
轉正的考核標準啊,薪資待遇啊,公司現有規模啊、發展情況啊,表現出對這個公司很感興趣就行了
注意一點:
考慮好你得目標公司的規模和行業,
小微公司:不看專案隨便問,沒有邏輯性,閉了眼睛瞎問,對于這種會就會,不會就不會,別慫,反正也不想去,
稍微大點的廠:一般是圍繞專案去問,然后衍生出一些技術問題來細問,問的比較深的時候別慌,把你的理解說出來,然后說其他的就不知道了,體現出你的思考和應變能力,
基本上面試就這些的,剩下的就是盡人事聽天命了,記住,面試不上有時候不是你得問題,很可能是公司其實不急著找人,或者面試官不行,
談一下某次面試的經歷
我從找作業到找到作業,歷時大概有20多天,前后投了不下于百家公司,接收到的面試不到10家,收到第一家面試的通知之前我已經投了3、40家公司,那時候整個人都快崩潰了,后來把心態放平,還是照著自己心里的期望薪資來,不要將就,后來繼續投,陸陸續續有兩三家公司通知面試,面試感徑訓可以,
后來有家公司a通知我面試,這家公司投的比較早了,中間改過一次簡歷的,最終面完試,技術說我這邊過了,后面領導隨便聊聊就行,等了兩天沒訊息,以為a公司沒希望了,沒想到是他們公司要走流程什么的,然后電話給我說讓我給個現在工資流水,后面就是定薪資,走審批,體檢,后來總算拿到offer,而且轉正以后的薪資福利加一起要比我期望的還要高,還有幾個月的年終獎,是不是很羨慕,嘿嘿,
總體來說還算幸運吧,至少有個坑讓我呆了,
總之,面試需認真謹慎地對待,

300+Android面試題分享
我是整理了一份一千多頁的Android 高級開發面試題,但由于篇幅太長了,所以這里就只放上300多的Android方面的面試題,關于面試題決議可以先戳這里獲取:【github】
第一部分
- Overload 和 Override 的區別
- String 和 StringBuffer 的區別
- 實作一個字串倒序
- 抽象類與介面的區別(abstract 與 interface 的區別)
- 集合的實作類與區別
- 執行緒有幾種狀態,分別是哪些(呼叫 run()和呼叫 start()的區別)
- Final、finally、finanlize()的區別
- J2EE 是什么?請對以下在 J2EE 中常用的名詞進行解釋(或簡單描述)
- j2ee 常用的設計模式?說明工廠模式
- 開發中都用到了那些設計模式?用在什么場合
- 常用設計模式及應用場景
- 廣播如何呼叫,有什么方式,各自的區別,實作廣播的意圖是什么,哪里用到
- android 系統架構
- Android 的四大組件是什么?它們的作用是什么
- Activity 生命周期?保存 activity 的一些資訊在哪個生命周期方法中
- Activity 的 onSaveInstanceState() 和 onRestoreInstanceState()
- activity 在螢屏旋轉時的生命周期
- Android 中 asset 檔案夾和 raw 檔案夾區別
- Android 中的五種存盤方式及其應用場景
- 什么是 ANR 如何避免它?(Android 執行緒間的通信方式 )
- listview 優化策略
- ListView 分頁加載實作思路
- ListView 圖片異步加載實作思路
- Intent 的原理、作用、可以傳遞哪些型別的引數
- 如何實作螢屏解析度的自適應(布局、九線圖、目錄)
- 簡述 Android 中的 IPC 機制
- Android 程式入口如何判斷
- android 哪幾種方式訪問網路
- 說說 HttpClient 的通信程序
- 移動互聯資料互動格式有哪些及其區別
第二部分
- XML 決議有哪幾種?各自優缺點,官方推薦使用哪種
- sax 決議代碼
- 百度地圖核心類,及實作的功能
- GC 記憶體泄露在什么情況下會出現?怎么解決
- android 記憶體的優化
- 加載大圖片的時候如何防止記憶體溢位
- Android 快取機制
- 如何實作訊息推送
- MVC 在 Android 中的應用
- Android 自定義組件實作思路
- 版本更新的實作思路
- 播放視頻有哪些實作方式
- NDK 開發流程?(JNI 運行原理)
- 如何實作一鍵退出
- AndroidManifest.xml 清單檔案<Activity>標簽中屬性的含義
- 如何將一個 Activity 設定成視窗的樣式
- 談談 UI 中, Padding 和 Margin 有什么區別,gravity 與 layout_gravity 的區別
- 實作手風琴效果
- Android SDK 3.0(HoneyComb)及 4.0(Ice Cream)新特性
- android 客戶端如何實作自動登錄
- 請介紹下 Android 中常用的五種布局,
- android 中的影片有哪幾類,它們的特點和區別是什么
- activity 的啟動模式有哪些?是什么含義
- 跟 activity 和 Task 有關的 Intent 啟動方式有哪些?其含義是
- 如何啟用 Service,如何停用 Service,
- Handler
- 說明 handler 機制的原理
- 什么情況會導致 Force Close ?如何避免?能否捕獲導致其的例外
- 請介紹下 ContentProvider 是如何實作資料共享的,
- Service 和 Thread 的區別
第三部分
- Android 例外
- IntentService 有何優點
- Activity
- 如何將一個 Activity 設定成視窗的樣式
- 如何退出 Activity?如何安全退出已呼叫多個 Activity 的 Application
- AIDL 的全稱是什么?如何作業?能處理哪些型別的資料
- 請解釋下 Android 程式運行時權限與檔案系統權限的區別
- 系統上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?請說明原由
- android 系統的優勢和不足
- Android dvm 的行程和 Linux 的行程, 應用程式的行程是否為同一個概念
- 嵌入式作業系統記憶體管理有哪幾種, 各有何特性
- 什么是嵌入式實時作業系統, Android 作業系統屬于實時作業系統嗎
- 一條最長的短資訊約占多少 byte
- 用演算法調整圖片的透明度
- 如何將 SQLite 資料庫(dictionary.db 檔案)與 apk 檔案一起發布
- sqlite 的用處及用法, 哪里用過
- sqlite,修改,添加欄位,版本更新,排序,默認排序
- 如何建一個“aaa.db”資料庫,如何建一個 user 表;寫出增刪改查陳述句
- SQLite 執行緒安全嗎?sqlite3_threadsafe()來確實是否執行緒安全版本
- 怎么提高 sqlite 的效率
- 如何將打開 res aw 目錄中的資料庫檔案
- DDMS 和 TraceView 的區別
- java 中如何參考本地語言
- ListView 切換奇偶行背景色
- getView()方法中判斷 position 的奇偶性, 然后給 ConvertView 設定背景色
- EditText 單行顯示
- oom 避免以及產生方式,遇到過幾種 OOM
- throw 與 throws 區別
- LOST.DIR
- 設定界面怎么做的
第四部分
- ui 效果圖介紹布局
- login 模塊怎么做的
- 點擊登錄按鈕的時候,會從 server 端獲得什么?傳送什么
- android 客戶端如何實作自動登錄
- 版本更新,從 server 端獲得什么,通過什么進行更新
- Fragment 和 Activity 之間的聯系
- Fragment 如何實作 Activity 跳轉,你怎么處理 Fragment 之間的資訊互動
- fragment 在哪個方法里實作代碼
- res 和 assets 資源檔案的作用分別是什么,怎么讀取
- 了解 pad 開發嗎
- 常用的適配有哪些,如何進行優化
- 應用換膚有什么方案可以實作
- 異步任務中允許有多個執行緒同時進行嗎
- 圖片是怎么獲取的
- 檔案的下載
- 圖片的下載
- 快取區的圖片如何適當的釋放
- 圖片快取到哪里
- 那你的圖片是如何請求的
- 圖文混排怎么實作
- 相冊縮略圖是怎么實作的
- 下拉重繪的實作思路,反彈的效果是怎么實作的
- 自定義的 View
- 自定義控制元件用過哪些?對自定義控制元件是怎么看的
- 瀑布流的實作思路
- 聊天視窗的實作
- android 的 dvm 和 Linux 行程是一樣的嗎
- 監聽模式
- 如何重繪 view
- Listview
第五部分
- viewPager 左右切屏
- listview 加載圖片錯位,什么原因導致的
- ListView 中條目中顯示 webView 會怎么樣
- 用 listview 進行快速翻頁,如何解決記憶體溢位
- listview 快速滑動時,加載幾條資料
- 實作 listview 分頁
- 影片分為哪幾種,各自的特點和區別
- 寫出 Socket 服務器與客戶端互動的代碼和實作思路
- 談談對 Http 的理解
- 談談遞回
- 寫出 Activity 里的方法都是在什么情況下執行
- dp 與 sp 的區別
- java 有那些排序,冒泡代碼
- Java 執行緒實作方式和區別
- Android 中布局、區別、應用場景
- 執行緒間通訊
- 行程間通訊
- 判斷網路
- 網路代理
- HTTP 的 post 和 get 方法的區別
- 怎么判斷服務端回傳的資料型別
- 堆疊,佇列代碼
- 服務 service
- 多執行緒下載,離線下載
- 支付方式
- 如果想改變解析度但不動原來布局,實作思路是什么
- java 常用的處理例外的機制,原理及應用
- 一段字串“abdecffr”,請輸出只出現一次的字母
- 輸入一個數,求其二進數中有多少個 1
- 有一個 pizza 生產線
第六部分
- 推送了解嗎?推送底層代碼掌握嗎
- asynctack 原理
- NDK 具體說一下
- Service 結合代碼說一下,原理
- 當記憶體不足時,如何對尚未關閉的應用程式進行回收
- service 的運行級別
- service 如何一直保持在后臺運行
- service 的啟動方式
- 軟參考怎么用?為什么要用軟參考
- 還有一個 Service 是建立在哪個執行緒上面
- 介面都有哪些內容
- 介面是否可繼承介面
- 如何通程序式進行對服務器的介面呼叫,寫出具體程序
- 分頁加載思路
- 分頁加載需要傳遞哪些引數
- 訊飛語音在什么地方用到
- 訊息推送
- LBS 定位用到哪個地圖?為什么要使用這個?實作了哪些功能
- 地圖中怎樣獲得附近的資訊
- 百度地圖顯示周邊招聘資訊
- 移動互聯使用了哪種方式
- 集合方面的底層理解
- 每個 item 都是不同的內容,怎么弄
- 有沒有自己寫過 NDK
- 一個版本的 app 不更新,只是給他贈加或著減少一個功能,怎么弄
- 架構的情況
- 多執行緒的講解
- 執行緒的例外怎么處理
- 請求網路用什么,http 的使用
- 解釋 intent 和 activity 的區別
第七部分
- 如何處理記憶體溢位
- 如何去除一個字串首尾的空格
- 如何把一個字串轉換成 asll 碼
- 得到一個陣列中出現次數最多的數
- 手機 QQ 聊天框冒泡效果怎么做
- groupby 是干什么的
- 你 android 應用假如你手機設定了其他語言你的應用語言會變嗎
- 了解后臺嗎,對后臺的認識
- '學 java'記憶體中占多少個位元組
- Intent 可以傳遞那些資料
- DDMS 與 TraceView 的區別
- 橫豎屏切換不設定屬性會怎么樣
- 單例類在 android 中哪種更合適
- 一串字串撰寫程式翻轉 split()
- json 寫物體類
- 如果標題過長超出界面,請寫出你的解決方法
- 開發 android 應用怎樣減少耗電量
- 提供額外的兩個 int 域和一個 Object 域
- android 開發程序有幾種快取方式,并說明缺點
- Activity 相關
- Bitemap 記憶體溢位解決方法
- 推送
- 檔案傳輸
- 快取 app 快取
- 邊距測驗
- Java 資料結構
- 常用的解析度
- Ui 一般有幾套,是什么格式的,.9 格式的還是什么格式的
- onCreateView 和 onViewCreated 之間的區別
- 繼承與組合的關系
第八部分
- IPC 機制具體解釋
- aidl 具體解釋
- 為什么要有 NDK
- 為什么 json 與 js 互動方便
- 行程與執行緒的區別
- 當一個 activity 退出之后在行程中會不會殺死
- jvm 的記憶體分配
- MVC 模式的理解
- 排序有了解過嗎?及其實作復雜度
- android 手機的密度,你如何對螢屏密度進行自適應
- handler 的理解
- 對于 instancevariable 和 localvarial,JVM 在少女情懷記憶體時有什么區別
- Java 執行緒都有哪些狀態?列舉你所知道的執行緒同步方法
- 如何避免比不加載圖片混亂的問題
- AysnTask 最多可以開啟幾個執行緒
- 資料庫如何升級(添加欄位什么的)
- WebService
- IntentService 的用法
- service 的啟動
- 異步任務
- 強參考
- 新浪微博頭像設定
- 加密演算法
- 高德地圖
- asynctask 和 handler 的區別
- 跳轉圖片釋放
- shareprefercnce 保存用戶名密碼時候怎么加密
- 離線下載怎么實作
- 用過 viewstub 嗎?include 呢
- android 應用程式自啟動
第九部分
- service 是在主執行緒中嗎?service 中可不可以耗時操作
- 資料庫優化
- socket
- 螢屏適配
- 關于圖片壓縮,用演算法實作
- 關于第三方分享
- MVC 在安卓的體現
- surfaceview 和 VIEW 和 GLsurfaceview 的區別
- 都用過什么模式,經常用到的服務器是什么
- 撰寫代碼輸入安卓 abc 漢字 6 位元組輸出安卓 abc 而不是安卓 abc
- 看一個 for 回圈回圈了幾次
- 怎楊跳出一個回圈繼續執行下一個回圈
- 使一個字串逆序輸出 Stringa=abcde
- 一個 for 回圈,每次 i+=2,截取字串輸出,
- Math 的操作,其實用了好幾個方法,選擇正確的結果
- 執行緒的狀態
- 訊息推送,xmpp 輪詢
- udp/tcp
- 影片
- intent 的幾種模式
- 分頁加載,每頁 15 條資料,拉到底部自動加載資料,
- Android 系統架構從小到大寫
- 用代碼手寫堆疊
- 即時通訊
- 多人聊天,視頻,語音
- 側拉效果
- 側拉多界面,組件焦點
- 別的公司封裝好的播放器,從 C 中提取原始碼
- AsyTask 的三個引數是什么
- finish()與 System.exit(0)的區別,再談談你對退出的理解,
第十部分
- 反編譯和防止反編譯
- tcp/ip,通訊思路
- UDP,通訊思路
- hTTP 請求網路流程,HTTPclient
- httpUrlconnection
- Java 物件池
- Int 與 intger 的區別
- 做專案的時候遇到哪些印象深刻的問題
- 你在安卓開發中的心得
- 網路互聯使用哪種方式
- 影片
- 書架跟隨書滾動
- 3D 效果如何實作的
- 讀取詳細的新聞資訊里面的圖片讀取多張不固定顯示
- 服務器端使用什么搭建的
- 怎么呼叫 android 自帶的功能
- 圖片的優化
- Android 每個行程分配的記憶體是多少
- 都使用過那些第三方平臺
- 一個不同公司用一個 APP 的思路
- 平臺兼容性
- 重復登錄怎么解決比如兩臺設備同時登錄一個賬號
- 是每次獲取圖片都用 AsyncTask 獲取嗎
- 用戶體驗度:獲取資料之前等待的時間是怎么做的
- 從網路獲取圖片的大概思路
- 是否做過視頻類,關于視頻播放使用的什么方式
- 大量耗時操作使用哪種方式,為什么
- 建立一個 Android 工程,實作一個簡單的書籍管理應用
- 圖片上傳怎么做的
- 如果圖片太大怎么處理
- 專案開發流程
- GSON 的使用
- 訊飛語音在什么地方用到
- LBS 定位用到哪個地圖?為什么要使用這個?實作了哪些功能
- 分頁加載需要傳遞哪些引數
- 移動互聯使用了哪種方式
- java.exe 指的是
- 掌握 Android 專案目錄結構
- 掌握 AndroidManifest.xml 結構(應用程式入口)
- 掌握模擬器的使用以及常用 adb 命令
以上只是一份面試大綱,相關的詳細知識點決議我都已經整理成了檔案,接下來用部分截圖列舉出來:
目錄

Activity面試題

Fragment面試題

Service面試題

Handler面試題

..........
要想面試成功進大廠,面試前的準備肯定是要很充分的,除了上面的面試資源分享,我還整理了以下安卓面試復習資源給大家,有需要的朋友自行領取:Android高級開發面試題及答案整理
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/233899.html
標籤:其他
