在2018年10月初,公司倒閉,無奈走上找工做的道路,不想本身平時圖安逸,不思進取,再次找工做才發現,android行業也不是站在風口上,豬也能吹上天的世道了.做爲技術小菜的我,再找工做那幾個月真是戰戰兢兢,被打擊得信心全無.記錄下個人面試經歷,分享給須要的人.勉勵本身要時時進步,纔不會被淘汰.java
聲明:做者:璇_c2be
連接:https://www.jianshu.com/p/089861329c1alinux
atomicinteger內存模型android
static編譯時有啥不一樣,static 語句塊,static變量,static方法,構造初始化順序(靜態綁定)web
animation和animator的用法,概述實現原理面試
Handler,looper,messagequeue,thread,message,每一個類功能,關係?算法
Mvc,mvp的差別sql
app閃退的緣由有哪些?每種狀況簡述分析過程數據庫
若是一個app存在多進程,請列出所有的ipc方法windows
操做系統中進程和線程有什麼聯繫和區別,系統何時會在用戶態和內核態中切換?設計模式
如何加載ndk庫?如何在jni中註冊native函數,有幾種註冊方式?
一個app若是性能很差,怎麼分析?
設計的六大原則
若是hashmap key不同,可是hashcode同樣會怎麼樣?
okhttp有什麼優秀的設計模式?builder模式有什麼好處?責任鏈模式有什麼好處?
懶漢模式單例爲何加volaitle?
hashmap是否線程安全?不安全會出什麼問題?
concurrenthashmap讀寫分別是啥狀況?
bindservice和startservice生命週期有啥不一樣?
廣播有幾種?廣播是觀察者模式?跨進城廣播也是觀察者模式嗎?
ams是怎麼找到啓動的那個activity的?
a-b-c界面,其中b是singleinstance的,那麼c界面點back返回a界面,爲何?怎麼管理棧的?
紅黑樹有啥特性?
在oncreate裏面能夠獲得view的寬高嗎?
view的getwidth和getmesurewidth有啥區別?
遍歷hashmap的原理?
23種設計模式
如何避免out of menmory和anr?
arraymap和hashmap的區別?
如何實現線程同步?
簡述android事件分發機制
簡述view繪製流程
用兩個棧實現一個隊列
viewpager嵌套滑動衝突怎麼解決?
svg動畫
屬性動畫畫一個拋物線怎麼弄?
爲了適配多分辨率,引入什麼開源框架?
閱讀界面書架用什麼控件實現?
佈局怎麼作到每行的文字左右對齊?
直播界面,微信對話界面實現?
性能優化怎麼弄?
筆試題不少
sax解析xml的優勢
Contentvalue 鍵值類型
androiddvm的進程與linux的進程說法正確的是?(選擇題)
Android:gravity和android:layout_gravity的區別?
assets與res/raw的區別?
解釋layout_weight的做用
view如何刷新?
animation.animationlistner幹什麼用的?
android經常使用佈局及排版效率
collection與collections的區別
匿名內部類是否能夠extends其餘類?是否能夠implement interface(接口)
補間動畫常見的效果?有哪幾個常見的插入器?
override與overload的區別?overloaded的方法是否能夠改變返回值的類型?
sleep與wait有什麼區別?
在android中,請簡述jni的調用過程?
請結束android.mk的做用,並試寫一個android.mk文件(包含一個.c源文件便可)
冒泡排序(代碼實現)
猴子偷桃問題代碼實現
給出兩個鏈表的頭指針好比p1,p2,判斷這兩個鏈表是否相交,寫出主要思路便可
口頭問
簡述封裝,繼承,多態
強軟弱虛引用的應用場合
輸出一個數組,不重複?(有點忘記題目什麼意思了)
用四個線程計算數組和(我說用join方法,或者countdownlatch,他說用線程池便可)
什麼叫安全發佈對象(多線程裏面)final?
策略模式和命令模式是啥?
拓撲排序
數組和鏈表在中間位置的插入效率
binder的原理
art和dvm在gc上有啥不一樣?有啥改進?
linux和windows下進程怎麼通訊的?(徹底不瞭解)
性能優化作過什麼工做?
一個類實現一個接口,接口引用指向這個類對象,能夠不能夠調用它的tostring方法?
瀏覽器,輸入url匹配,假設有一億條url緩存,用什麼數據結構匹配?
recycleview緩存機制相比listview緩存機制有啥改進?
一個長度爲10的arraylist和linklist,在第五條插入,哪一個更快?
子類複寫父類的equals方法,可是子類增長了一個成員變量int,請問equals方法咋整?
手寫hashmap
寫生產者消費者模式,不可用syncronized
treemap,hashmap應用場景
dvm和art的區別
從framework的角度講activity的啓動流程(冷啓動)
手寫算法,二維數組,每一行,每一列都是升序,找出某數的下標,沒有輸出[-1,-1],最好的時間複雜度是m+n(行數+列數)
zxing二維碼開源框架流程
contentprovider怎麼升級維護?
constaintlayout
bitmap有幾種格式,分別佔多少字節
android事件分發機制,如何下發,如何上傳?
一個界面下拉刷新要怎麼實現?
bitmap佔用內存多少怎麼計算?一個像素佔幾個字節?
threadlocal的原理?
framework加載activity的流程
arraylist和linkedlist的應用場景
網絡請求相關的框架
好幾萬條短信,滑動卡頓怎麼解決?
有沒有了解過三方開源數據庫(好像是騰訊的什麼數據庫框架,不只僅是懂sqlite)
避免內存泄漏,爲何說handler用成員內部類會內存泄漏?activity不是已經到gcroot被切斷了嗎?還有靜態context持有activity的引用會內存泄漏,必需要持有怎麼辦?(及時釋放)
計算viewgroup的層級,遞歸實現和非遞歸實現
本身寫一個應用,包名就叫android行不行,爲何?
主線程looper若是沒有消息,就會阻塞在那,爲何不回anr?
系統進程能夠用webview嗎?
原子類的瞭解
一個app多進程的好處
一個arraylist,裏面所有是int,講全部值是2的整數的節點刪除
arraymap瞭解
binder機制
shareprefrence原理?是否線程安全和進程安全?
一個app啓動頁另開一個進程,啓動頁10s後啓動mainactivity,請問5s的時候有幾個進程?
java內存結構,內存模型
冒泡排序手寫
如何判斷一個字符串是迴文字符串
爲何要引入activity這個組件
shareprefrence不是進程安全,假設一個apk兩個進程同時修改shareprefrence怎麼辦?
contenprovider已是進程間通訊,爲何還要引入broadcastreceiver?
a啓動b,b啓動c,怎樣能夠在c界面點back退回到a?
startservice和bindservice生命週期有什麼不一樣?
兩個應用同時註冊一個廣播,優先級都同樣,哪一個會先收到廣播?(有序廣播?)
還有些其餘的,忘記了
threadlocal原理
zxing有過優化提升識別率嗎?
arraylist裏面能夠不能夠new一個t泛型的數組?
補間動畫click事件還在原位怎麼解決?
多線程併發
隔代數據庫升級
性能優化
做者:璇_c2be
https://www.jianshu.com/p/089861329c1a
閱讀更多
APK 的前世此生:從 Android 源碼到 apk 的編譯打包流程