天天看點

最新“美團+位元組+騰訊”三面問題,愛了愛了

面試刷題

刷題我從常見Android基礎知識面試題,刷到了Java面試題,繼而攻堅Android進階面試題,以及突破學習Flutter相關熱點技術面試題(不是很難),最後總攻今年大廠面試真題總結。

一、 Activity

1、 什麼是Activity?

2、 請描述一下Activity 生命周期

3、 常見的Activity類型有FragmentActivitiy,ListActivity,TabAcitivty等。請描述一下Activity 生命周期

4、 如何儲存Activity的狀态?

5、 兩個Activity之間跳轉時必然會執行的是哪幾個方法?

6、 橫豎屏切換時Activity的生命周期

7、 如何将一個Activity設定成視窗的樣式

8、 如何退出Activity?如何安全退出已調用多個Activity的Application?

9、 Activity的四種啟動模式,singletop和singletask差別是什麼?一般書簽的使用模式是singletop,那為什麼不使用singletask?

10、 Android中的Context, Activity,Appliction有什麼差別?

11、 兩個Activity之間傳遞資料,除了intent,廣播接收者,content provider還有啥?

12、 Context是什麼?

二、 Service

1、 Service是否在main thread中執行, service裡面是否能執行耗時的操作?

2、 Activity怎麼和Service綁定,怎麼在Activity中啟動自己對應的Service?

3、 請描述一下Service的生命周期

4、 什麼是IntentService?有何優點?

5、 說說Activity、Intent、Service是什麼關系

6、 Service和Activity在同一個線程嗎

7、 Service裡面可以彈吐司麼

8、 什麼是Service以及描述下它的生命周期。Service有哪些啟動方法,有什麼差別,怎樣停用Service?

9、 在service的生命周期方法onstartConmand()可不可以執行網絡操作?如何在service中執行網絡操作?

三、 Broadcast Receiver

1、 請描述一下BroadcastReceiver

2、 在manifest和代碼中如何注冊和使用BroadcastReceiver

3、 BroadCastReceiver的生命周期

四、 ContentProvider

1、 請介紹下ContentProvider是如何實作資料共享的

2、 請介紹下Android的資料存儲方式

3、 為什麼要用ContentProvider?它和sql的實作上有什麼差别?

4、 說說ContentProvider、ContentResolver、ContentObserver之間的關系

五、 ListView

1、 ListView如何提高其效率?

2、 當ListView資料集改變後,如何更新ListView

3、 ListView如何實作分頁加載

4、 ListView可以顯示多種類型的條目嗎

5、 ListView如何定位到指定位置

6、 如何在ScrollView中如何嵌入ListView

7、 ListView中如何優化圖檔

8、 ListView中圖檔錯位的問題是如何産生的

9、 如何重新整理ListView中單個item的資料,不重新整理整個ListView的資料?

六、 Intent

1、 Intent傳遞資料時,可以傳遞哪些類型資料?

2、 Serializable和Parcelable的差別

3、 請描述一下Intent 和 IntentFilter

七、 Fragment

1、 Fragment跟Activity之間是如何傳值的

2、 描述一下Fragment的生命周期

3、 Fragment的replace和add方法的差別

4、 Fragment如何實作類似Activity棧的壓棧和出棧效果的?

5、 Fragment在你們項目中的使用

6、 如何切換fragement,不重新執行個體化

一、 Java基礎

1、 Java中引用類型都有哪些

2、 什麼是重載,什麼是重寫,有什麼差別? )

3、 String、StringBuffer和StringBuilder的差別

4、 關鍵字final和static是怎麼使用的

5、 TCP/IP協定簇分哪幾層?TCP、IP、XMPP、HTTP、分别屬于哪一層?

二、 Java中的設計模式

1、 你所知道的設計模式有哪些

2、 單例設計模式

3、 工廠設計模式

4、 建造者模式(Builder)

5、 擴充卡設計模式

6、 裝飾模式(Decorator)

7、 政策模式(strategy)

8、 觀察者模式(Observer)

Android 進階

一、 Android性能優化

1、 如何對Android應用進行性能分析

2、 什麼情況下會導緻記憶體洩露

3、 如何避免OOM異常

4、 Android中如何捕獲未捕獲的異常

5、 ANR是什麼?怎樣避免和解決ANR(重要)

6、 Android線程間通信有哪幾種方式(重要)

7、 Devik程序,linux程序,線程的差別

8、 描述一下android的系統架構?

9、 android應用對記憶體是如何限制的?我們應該如何合理使用記憶體?

10、 簡述android應用程式結構是哪些?

11、 請解釋下Android程式運作時權限與檔案系統權限的差別?

12、 Framework工作方式及原理,Activity是如何生成一個view的,機制是什麼?

13、 多線程間通信和多程序之間通信有什麼不同,分别怎麼實作?

二、 Android螢幕适配

1、 螢幕适配方式都有哪些

2、 螢幕适配的處理技巧都有哪些

三、 AIDL

1、 什麼是AIDL以及如何使用

2、 AIDL的全稱是什麼?如何工作?能處理哪些類型的資料?

四、 Android中的事件處理

1、 Handler機制

2、 事件分發機制

3、 子線程發消息到主線程進行更新UI,除了handler和AsyncTask,還有什麼?

4、 子線程中能不能new handler?為什麼?

五、 Android中的動畫

1、 Android中的動畫有哪幾類,它們的特點和差別是什麼

2、 如何修改Activity進入和退出動畫

3、 屬性動畫,例如一個button從A移動到B點,B點還是可以響應點選事件,這個原理是什麼?

六、 ContentObserver 内容觀察者作用及特點

項目架構的使用

一、 自我介紹

二、 開發中都使用過哪些架構、平台

三、 都使用過哪些自定義控件

四、 自定義控件:繪制圓環的實作過程

五、 自定義控件:摩天輪的實作過程

六、 自定義控件:可拖拽排序的GridLayout的實作過程

七、 流式布局的實作過程

八、 項目的流程

九、 項目中常見的問題

十、 即時通訊是是怎麼做的?

十一、 設計模式六大原則

十二、 第三方登陸

十三、 第三方支付

十四、 常見架構分析

其實很簡單就下面這張圖,含概了Android所有需要學的知識點,一共8大闆塊:

架構師築基必備技能

Android架構體系架構(進階UI+FrameWork源碼)

360°Androidapp全方位性能調優

設計思想解讀開源架構

NDK子產品開發

移動架構師專題項目實戰環節

移動架構師不可不學習微信小程式

混合開發的flutter

最新“美團+位元組+騰訊”三面問題,愛了愛了

Android學習的資料

我呢,把上面八大闆塊的分支都系統的做了一份學習系統的資料和視訊,大概就下面這些,我就不全部寫出來了,不然太長了影響大家的閱讀。

330頁PDF Android學習核心筆記(内含上面8大闆塊)

最新“美團+位元組+騰訊”三面問題,愛了愛了

Android學習的系統對應視訊

總結

我希望通過我自己的學習方法來幫助大家去提升技術:

1、多看書、看源碼和做項目,平時多種總結

2、不能停留在一些基本api的使用上,應該往更深層次的方向去研究,比如activity、view的内部運作機制,比如Android記憶體優化,比如aidl,比如JNI等,并不僅僅停留在會用,而要通過閱讀源碼,了解其實作原理

3、同時對架構是有一定要求的,架構是抽象的,但是設計模式是具體的,是以一定要加強下設計模式的學習

4、android的方向也很多,進階UI,移動架構師,資料結構與算法和音視訊FFMpeg解碼,如果你對其中一項比較感興趣,就大膽的進階吧!

希望大家多多點贊,轉發,評論加關注,你們的支援就是我繼續下去的動力!加油!
本文已被CODING開源項目:《Android學習筆記總結+移動架構視訊+大廠面試真題+項目實戰源碼》收錄