目錄
前言
1 Android開發學習路線
1.1 大神最新總結(推薦直接看這個)
1.2按內容劃分
1.3按階段劃分
1.4Android進階路線(思維導圖)
2.Android學習方法
2.1.自學
2.1.1看書
2.1.2看視頻
2.2.報培訓班
3.Android開發框架及相關三方平臺
3.1.開發框架
3.2.三方平臺
3.2.1.推送相關
3.2.2.android 視頻直播
3.2.3.android 分享及三方登錄相關
3.2.4.android 統計相關
3.2.5.android 語音集成
3.2.6.android 地圖導航相關
3.2.7.android 支付相關
4.Android應用市場整理
5.Android開發工具
5.1開發工具
5.2Android模擬器
5.2.1夜神模擬器
5.2.2 雷電模擬器
5.2.3 逍遙模擬器
5.2.4 Genymotion模擬器
5.3其他實用工具
5.3.2 找各種圖片-阿里巴巴圖片庫
5.3.3 開源中國 在線工具
5.3.4 android json格式在線決議
5.3.5 位元蟲 制作圖示
5.3.6 Charles抓包
5.3.7 postman網路請求
5.3.8 Apifox
6.專案團隊協作工具
Slack
bearychat倍恰
Asana
Teambition
worktile
Tower
明道
7.Android開發技術網站
7.1.github
7.2.GitHub中文社區
7.3.Android 開發者網站
7.4.AS中文社區
7.5. testin云測
7.6.Android Dev Tools
7.7.Android開發技術周報
7.8.Dribbble
7.9.Android Asset Studio
7.10.mobdevgroup
7.11.慕課網
7.12.WanAndrdoid網站(鴻洋大神創辦)
8.技術社區相關網站
8.1.CSDN
8.2.簡書
8.3.GitChat
8.4.術之多
8.5.泡在網上的日子
8.6.掘金:
8.7.博客園
8.8.51CTO
8.9.開源中國
8.10.chinaunix
8.11.segmentfault
9.Android相關微信公眾號
10.Kotlin、Flutter、JetPack
10.1.kotilin中文站
10.2 Flutter
10.2.1 Flutter官網
10.2.2 Flutter中文站
10.3 JetPack
11.聊聊面試
11.1.簡歷很重要
11.2.面試狀態及溝通表達
1)個人面試時狀態
2)溝通理解能力以及組織語言表達能力
11.3.個人技術
11.4.面試題匯總
11.4.1 面試基本知識點
11.4.2 大廠面試知識點
12.聊聊職場
12.1 江湖不是打打殺殺,江湖是人情世故
12.2 放平心態,努力學習,認真作業
總結
前言
我12年畢業后入行,在上大學的時候培訓了java開發,實習期間因為公司需要,按領導要求在公司跟著一個也是剛作業半年的妹子學習Android開發,自此買入移動開發領域,如今回想起來那個妹子算是我Android開發的啟蒙老師,
從入行到現在算下來到現在快10年了,不過后來這幾年轉型了,所以Android開發上沒有花那么多時間和精力,今年換公司后算是徹底告別Android開發了,一直也沒有寫一篇文章總結一下,所以這篇文章一是我就把我這些年自己收集的所有的資料以及我自己對Android開發的理解和大家做一個深度的分享,希望對大家有一點點幫助,如果有錯誤的地方也希望大家可以積極幫忙指出,
1 Android開發學習路線
1.1 大神最新總結(推薦直接看這個)
2021 最新Android知識體系https://juejin.cn/post/6919037176038555662
https://juejin.cn/post/6919037176038555662
大神的那個內容比較多,只看Android部分也可以參考下面的,
1.2按內容劃分

1.3按階段劃分
這里面提前說下,第二階段其實可以忽略,但是如果學習一下會對編程有更深層的理解,另外對后面Android 資料庫相關的學習也會有很大幫助,





這個就是按 java基礎->Android UI->Android 網路及資料->Android 硬體->Android 圖形編程這個階段 ,最后加上專案實戰這種模式學習,
1.4Android進階路線(思維導圖)
之前轉載過一篇大神整理的文章,里面整理的非常細
Android進階路線(思維導圖)https://wukong.blog.csdn.net/article/details/121926420
https://wukong.blog.csdn.net/article/details/121926420
2.Android學習方法
上面列了一下Android的基本學習路線及內容,這樣大家就知道Android都包含哪些內容,那么下面我們說一下這么多內容,我們如何去學習呢?其實這個我認為有幾種途徑:
2.1.自學
2.1.1看書
說起Android方面的書籍,有很多非常不錯的值得一看,
Android入門書籍
《第一行代碼》 作者 郭霖 博客地址
《Android從入門到精通(附光碟)》作者 明日科技
《瘋狂Android講義 》作者 李剛
Android進階書籍
《Android群英傳》 作者 徐宜生 ,博客地址
《Android開發藝術探索》作者 任玉剛 ,博客地址
《第一行代碼2 Android(第二版)》 作者 郭霖 博客地址
《Android開發進階 從小工到專家 》作者 何紅輝
《Android進階之光 》作者 劉望舒 ,博客地址
Android底層書籍
《Android框架揭秘》,底層架構的一本好書
《深入理解Android 系列》 作者 鄧凡平,博客地址
《Linux設備驅動開發》
《Linux Kernel Development》
《Android原始碼設計模式》,結合設計模式分析原始碼
這上面發的很多推薦書籍我都有電子版本,這個大家想要的話可以加我博客首頁的群獲取或者在博客下面評論,
2.1.2看視頻
有很多同學(包括我),光看書根本看不下去,所以當看書非常枯燥的時候可以選擇直接看些教學類的視頻,(非廣告)

Android開發從入門到精通(專案案例版)
Android開發視頻教程最新版 Android Studio開發
Android(安卓)開發零基礎入門課程【全套】
這個大家自己去百度搜即可,這類的有很多,
不管大家看書還是看視頻,都要結合不停的練習,看十天書不如自己寫一天代碼帶來的識訓大,當然寫代碼是建立在自己有一定基礎的情況下,找一些小功能,沒事的時候就想一下如何實作,然后動手寫起來,這樣不停的練習,不停的除錯,慢慢的就越來越熟練了,

2.2.報培訓班
不管看書還是自己看視頻,這種學習方式都是屬于自學,這種學習模式有一個基本的要求,就是自己的自制力要足夠強,不然很難學下去,因為在真正學習的程序中問題實在太多了,很多同學死在了裝環境上...太難了哇...

所以針對這樣的同學,我建議你還是報個培訓班學習一下吧...這一類培訓班也很多,而且很多都是線上線下結合的,對于沒有時間的小伙伴也是一個不錯的選擇,這個就不做過多的闡述了,
3.Android開發框架及相關三方平臺
這部分其實很早之前的一篇文章 android 開發榷訓月累就寫過了,在這里重新發一下
3.1.開發框架
Android 主流通用常用框架匯總(持續更新)_再見孫悟空的專欄-CSDN博客_android 新框架我們做專案久了,都會用到很多開源的框架,今天我就把我所知道的一些好用的框架都匯總整理了一下,因為實在是大多了記不住,所以記下來方便以后使用,程序中參考了很多網上大牛們寫的文章,絕無抄襲冒犯之意,就是根據自己的習慣重新修改整理分類了一下,希望對大家以后的開發有所幫助!網路請求框架圖片相關框架權限設定框架json決議框架下拉重繪框架圖表框架資料庫相關框架日志相關框...https://wukong.blog.csdn.net/article/details/90694704 Android常用框架匯總https://wukong.blog.csdn.net/article/details/121978224
https://wukong.blog.csdn.net/article/details/121978224
3.2.三方平臺
3.2.1.推送相關
環信,支持即時音視頻
騰訊云通訊,支持即時音視頻
極光推送和IM
個推
小米推送,在MIUI上屬于系統服務框架,共享系統級長連接
百度云推送,部分機型收不到推送,如小米,Bug是否修復未知
騰訊信鴿推送
友盟推送
3.2.2.android 視頻直播
騰訊云
金山云
網易云
CC視頻
AnyRTC
還有github一些開源的框架,不過個人不建議自己開發,用這些比較靠譜,我用的是 騰訊云做的,之前一篇文章也有個大概的介紹,關于騰訊云直播開發的,
騰訊云視頻開發攻略 這篇博客介紹了直播相關的一些東西,
3.2.3.android 分享及三方登錄相關
友盟分享
騰訊分享
shareSdk
3.2.4.android 統計相關
友盟統計
百度統計
騰訊統計
3.2.5.android 語音集成
訊飛語音
網易云信
3.2.6.android 地圖導航相關
百度地圖
高德地圖
3.2.7.android 支付相關
微信開發者平臺
支付寶開發者平臺
ping++
4.Android應用市場整理
魅族應用市場:魅族開放平臺
小米應用市場:小米開放平臺
騰訊應用寶:騰訊開放平臺 OPEN.QQ.COM
華為應用市場:http://developer.huawei.com/consumer/cn/devunion/openPlatform/html/memberCenter.html#appManage#
安智應用市場:安智開發者聯盟
OPPO應用市場:OPPO開放平臺
360移動應用市場:登錄-360帳號中心
百度應用市場:百度移動應用平臺
豌豆莢應用市場:阿里應用分發開放平臺
聯想應用市場:登錄聯想帳號
5.Android開發工具
5.1開發工具
5.1.1 背景介紹
開發工具一般是:android studio ,idea,eclipse 三種,
官方推薦 Android Studio 簡稱AS,該公司于2014年推出了自家的IDE,其名為Android Studio,但仍然支持了Eclipse一段時間,而在11月2日,Google Android Developer 官博發文,宣告停止對Eclipse ADT的支持,
5.1.2 Android Studio入門及相關插件
android studio的入門使用——從零開始用android studio 入門的新手非常值得一看
插件
Gson format——自動生成 java bean 的插件
sexy editory-——設定as背景的插件
SekectorChapek—— 自動生成selector的插件
Android ButterKnife Zelezny ——配合ButterKnife實作注解,從此不用寫findViewById
Android Code Generator——根據布局檔案快速生成對應的Activity,Fragment,Adapter,Menu,
Android Parcelable code generator——JavaBean序列化,快速實作Parcelable介面,
?ADB WIFI——使用wifi無線除錯你的app,無需root權限 ,這個可以參考這篇文章
Android 無線除錯_再見孫悟空的專欄-CSDN博客最近在做一個功能的時候碰到一個問題,就是這個功能要對接硬體(智能眼鏡),這個設備在用手機除錯的時候遇到了問題,因為這個眼鏡是要用usb線和手機連接的,不是無線的,那么除錯程式的時候就無法再用usb模式除錯了,這樣開發就有問題了,無法打斷點除錯等,然后就用到了我們今天要講的 無線除錯 方法, 步驟也很簡單1.要確保讓手機和電腦處于同一個網段下,2.將手機和電腦用u...https://blog.csdn.net/shaoyezhangliwei/article/details/88423987?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163961942516780265462794%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163961942516780265462794&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-88423987.pc_v2_rank_blog_default&utm_term=%E6%97%A0%E7%BA%BF%E8%B0%83%E8%AF%95&spm=1018.2226.3001.4450Lifecycle Sorter——可以根據Activity或者fragment的生命周期對其生命周期方法位置進行先后排序,
?這個插件實在太多了,就不一一例舉了,我建議大家根據自己習慣裝自己用的上的,這個不是裝的越多越好,插件越多會使AS變得臃腫,
5.2Android模擬器
5.2.1夜神模擬器
夜神安卓模擬器-安卓模擬器電腦版下載_安卓手游模擬器_手機模擬器_官網安卓模擬器哪個好用?電腦玩手游首選夜神安卓模擬器,夜神模擬器采用領先內核(基于Android7.1),同時是全球首家支持Android9內核的模擬器,在性能、穩定性及兼容性等方面有著同類產品無可比擬的優勢,高清流暢,多開掛機更省資源,鍵鼠和手柄操作給你完美的操控體驗,暢享電腦玩手游的至高快樂,https://www.yeshen.com/
5.2.2 雷電模擬器
雷電模擬器下載-騰訊電腦管家軟體管理-海量軟體免費下載
https://guanjia.qq.com/sem/1022/index.html?ADTAG=media.buy.baidu.SEM
5.2.3 逍遙模擬器
【逍遙安卓模擬器】安卓模擬器電腦版_安卓模擬器哪個好用_逍遙安卓模擬器下載官網安卓模擬器哪個好用?電腦手游模擬器哪個好?電腦玩手游首選逍遙安卓模擬器,全新領先內核(基于Android7.1)手機模擬器,速度更快,性能更強,操作更爽,流暢不卡頓,暢玩熱門手機游戲電腦版,穩定兼容Windows主流作業系統,多開掛機更省資源的電腦手游助手,
http://www.xyaz.cn/
5.2.4 Genymotion模擬器
Genymotion – Android Emulator for app testing Cross-platform Android Emulator for manual and automated app testing
https://www.genymotion.com/ 5.2.5 網易MuMu
MuMu模擬器官網_安卓模擬器_網易MuMu手游模擬器手游安卓模擬器哪個好?MuMu模擬器流暢,圖形渲染能力強,穩定運行國內外熱門手游如《明日方舟》、《碧藍航線》、《云圖計劃》、《命運-冠位指定》、《陰陽師》、《光遇》等,憑借強大的兼容適配能力,同時自研不需要開VT的星云引擎,在眾多模擬器中脫穎而出,支持安卓7.1和安卓9,兼容X86/X64,適配windows和mac系統,適配AMD電腦,速度更快、穩定性更高、兼容能力強、cpu占用低,玩游戲流暢不卡頓,操作錄制、多開分身、智能鍵鼠、錄屏、虛擬定位等功能滿足你不同的游戲需求,除此之外,MuMu內嵌免費外服加速,是用戶玩外服游戲的優選!MuMu在國內擁有高知名度,也是全球領先的安卓模擬器之一,一臺電腦即可完美享受大屏、操控體驗,讓你最快享受到電腦玩手游的快樂!
http://mumu.163.com/ 5.2.6 藍疊模擬器
【BlueStacks安卓模擬器】安卓模擬器_Android模擬器_手游模擬器_藍疊安卓模擬器官網安卓模擬器哪個好用?安卓模擬器電腦版哪個好?安卓模擬器官方下載去哪里?安卓模擬器電腦玩手機游戲就用BlueStacks藍疊安卓模擬器,BlueStacks藍疊安卓模擬器是全球唯一一個擁有核心技術專利的安卓模擬器及引擎,BlueStacks藍疊安卓模擬器的游戲兼容性和系統兼容性遠超同類產品,優異的游戲速度、流暢度、穩定性結合簡單易用及生動的界面給用戶帶來手游模擬器最佳體驗,
https://www.bluestacks.cn/ 5.2.7 Android Studio自帶模擬器
Emulator release notes | Android Developers
https://developer.android.google.cn/studio/releases/emulator?hl=en 這里面的多半我都下載用過,總體來說大同小異,還有說一下三方模擬器自帶的那些應用游戲什么的,我想過很多辦法去掉,但是沒成功,如果誰知道方法,可以評論留言告知一下,我補充進來,
5.3其他實用工具
5.3.1 button在線制作
android button 在線制作工具
http://angrytools.com/android/button/
5.3.2 找各種圖片-阿里巴巴圖片庫
阿里巴巴矢量圖片庫
http://www.iconfont.cn/plus
5.3.3 開源中國 在線工具
開源中國在線工具 十分強大
http://tool.oschina.net/
5.3.4 android json格式在線決議
json.cn
http://json.cn/
bejson
http://www.bejson.com/jsonviewernew/
5.3.5 位元蟲 制作圖示
制作ico圖示 | 在線ico圖示轉換工具 方便制作favicon.ico - 位元蟲 - Bitbug.net輕松制作ico圖示,在線提供ico圖示轉換工具,可以將jpg、jpeg、gif、png等影像轉換成ico影像,方便瀏覽器制作并生成favicon.ico圖示,提供ico圖示下載,png to ico,jpg to ico,gif to icohttps://www.bitbug.net/
5.3.6 Charles抓包
Download a Free Trial of Charles ? Charles Web Debugging Proxy
https://www.charlesproxy.com/latest-release/download.do
5.3.7 postman網路請求
Postman
https://www.postman.com/
5.3.8 Apifox
Apifox - API 檔案、除錯、Mock、測驗一體化協作平臺 - 介面檔案工具,介面自動化測驗工具,介面Mock工具,API檔案工具,API Mock工具,API自動化測驗工具Apifox = Postman + Swagger + Mock + JMeter,集介面檔案工具、介面Mock工具、介面自動化測驗工具、介面除錯工具于一體,提升 10 倍研發效率,是最好用的API檔案工具,API自動化測驗工具,API Mock工具,介面檔案管理工具,介面檔案生成工具,
https://www.apifox.cn/?utm_source=baidu_sem&utm_medium=Postman
6.專案團隊協作工具
Slack
bearychat倍恰
Asana
Teambition
worktile
Tower
明道
具體的介紹及對比看這篇文章企業協作工具競品分析_再見孫悟空的專欄-CSDN博客一、分析背景SaaS服務作為云計算中重要的組成部分,目前已從概念推廣的萌芽期轉變為行業快速發展期,市場規模快速增企業協同辦公平臺是SaaS服務中的重要組成部分,市場調研公司IDC 資料顯示,企業通訊和協作市場規模 2015 年已達到 44 億美元,到2020年將達到67億美元,企業協作正在成為初創企業與技術巨頭共同在開拓的領域,二、競品物件產品名稱Slack bearychat倍恰AsanaTeambitionworktileTower明道時間...https://wukong.blog.csdn.net/article/details/114965893
7.Android開發技術網站
7.1.github
GitHub是一個面向開源及私有軟體專案的托管平臺,因為只支持Git作為唯一的版本庫格式進行托管,故名GitHub,GitHub是世界上最大的代碼托管平臺,超5千萬開發者正在使用,
github網站http://github.com
http://github.com
7.2.GitHub中文社區
GitHub中文社區是一個致力于分享和傳播GitHub上優質開源專案的中文社區平臺,
GitHub中文社區GitHub是世界上最大的代碼托管平臺,超5千萬開發者正在使用,GitHub中文社區,是國內領先的開源社區,是一個幫您發現GitHub上優質開源專案的地方,提供GitHub趨勢,GitHub排行榜,GitHub分類檢索,中文翻譯等實用功能
https://www.githubs.cn/
7.3.Android 開發者網站
Android 提供各種尖端工具和功能,可幫助您針對數十億用戶日常使用的手機、平板電腦、電視和汽車來構建應用,
Android 開發者網站https://developer.android.google.cn/
https://developer.android.google.cn/
7.4.AS中文社區
安卓下載http://www.android-studio.org/index.php
http://www.android-studio.org/index.php
7.5. testin云測
testin云測
http://www.testin.cn/portal.action?op=Portal.index
7.6.Android Dev Tools
收集整理Android開發所需的Android SDK、開發中用到的工具、Android開發教程、Android設計規范,免費的設計素材等,歡迎大家推薦自己在Android開發程序中用的好用的工具、學習開發教程、用到設計素材
Android Dev Tools
https://link.jianshu.com/?t=http://www.androiddevtools.cn
7.7.Android開發技術周報
Android 開發技術周報-Android Weekly Android開發教程 安卓開發 安卓 開源專案 開發工具Android Weekly 匯集互聯網上每周 Android 開發的技術文章、開源專案、開發工具、視頻教程、Android 設計教程、設計資源等,
https://www.androidweekly.cn/
7.8.Dribbble
Dribbble - Discover the World’s Top Designers & Creative ProfessionalsDribbble is where designers gain inspiration, feedback, community, and jobs and is your best resource to discover and connect with designers worldwide.https://dribbble.com/
7.9.Android Asset Studio
在線生成Android各種圖片資源的網站,原作者是原Android Team的成員,為Android的設計做出非常大的貢獻
Android Asset Studiohttp://romannurik.github.io/AndroidAssetStudio/
7.10.mobdevgroup
mobdevgrouphttps://mobdevgroup.com/
https://mobdevgroup.com/
7.11.慕課網
Android面試技巧_慕課網
https://www.imooc.com/topic/azmianshi/
7.12.WanAndrdoid網站(鴻洋大神創辦)
玩Android - wanandroid.com - 每日推薦優質文章玩Android是一個每日推薦20~30篇Android優質文章的站點,提供Android常用工具和常用網站,并以知識體系的形式展現所有的文章分類,https://www.wanandroid.com/index
8.技術社區相關網站
8.1.CSDN
CSDN博客 - 專業IT技術發表平臺CSDN博客為中國軟體開發者、IT從業人員、IT初學者打造交流的專業IT技術發表平臺,全心致力于幫助開發者通過互聯網分享知識,讓更多開發者從中受益,一同和IT開發者用代碼改變未來.https://blog.csdn.net/?spm=1001.2014.3001.4477
8.2.簡書簡書 - 創作你的創作簡書是一個優質的創作社區,在這里,你可以任性地創作,一篇短文、一張照片、一首詩、一幅畫……我們相信,每個人都是生活中的藝術家,有著無窮的創造力,
https://www.jianshu.com/
8.3.GitChat
GitChatGitChat 是一款基于微信平臺的知識分享產品,通過這款產品我們希望改變IT知識的學習方式,https://gitbook.cn/
8.4.術之多
術之多https://www.shuzhiduo.com/
https://www.shuzhiduo.com/
8.5.泡在網上的日子
泡在網上的日子 - 做最好的移動開發社區
http://www.jcodecraeer.com/
8.6.掘金:
掘金 - 代碼不止,掘金不停掘金是一個幫助開發者成長的社區,是給開發者用的 Hacker News,給設計師用的 Designer News,和給產品經理用的 Medium,掘金的技術文章由稀土上聚集的技術大牛和極客共同編輯為你篩選出最優質的干貨,其中包括:Android、iOS、前端、后端等方面的內容,用戶每天都可以在這里找到技術世界的頭條內容,與此同時,掘金內還有沸點、掘金翻譯計劃、線下活動、專欄文章等內容,即使你是 GitHub、StackOverflow、開源中國的用戶,我們相信你也可以在這里有所識訓,
https://juejin.cn/
8.7.博客園
博客園 - 開發者的網上家園
https://www.cnblogs.com/
8.8.51CTO
51CTO博客-程式員及網路/運維工程師的專業技術博客
https://blog.51cto.com/
8.9.開源中國
OSCHINA - 中文開源技術交流社區
https://www.oschina.net/
8.10.chinaunix
Unix技術網 = 專業的Linux/Unix應用與開發者社區 = IT人的網上家園
http://www.chinaunix.net/
8.11.segmentfault
https://segmentfault.com/
https://segmentfault.com/
9.Android相關微信公眾號
9.1.Android 開發者
Android 官方賬號,匯集 Android, Kotlin, Jetpack Compose, Jetpack, Android Studio 等開發技術,以及 Google Play 平臺出海及政策相關內容,為您帶來更及時的資訊動態
9.2.Android編程精選
分享Android相關技術文章、學習資料、視頻教程、熱點資訊、工具資源、課程書籍等,每天推送,歡迎投稿!
9.3.Android技術之家
主要分享Android相關技術文章、移動互聯網的相關產品和資訊,關注你將學習到更多基礎以及框架相關的知識,為您的作業助力!
9.4.程式員Android
這是一個專注提供 Java Android 知識體系服務的公眾號, 和你一起終身學習,小安愿做你成長道路上的墊腳石,不斷墊高你的高度,襯托你的威儀, 風里雨里,我們一直在 Java Android 學習的路上支持你!
9.5.Android程式員
Android開發最佳實踐、一線經驗分享、技術前沿,最好用的Android開發工具、服務、開源專案,
9.6.安卓開發精選
分享 Android 應用開發相關內容等,
9.7.Android干貨鋪
一線開發者的聚集地,有干貨,有故事,有情懷!
9.8.Java與Android技術堆疊
Java與Android技術堆疊:每周更新推送原創技術文章,匯聚最好的Java與Android原創學習資料,是Java程式員、Android程式員吸取知識、增長經驗、開拓視野的最佳視窗,我們只做最純粹的技術分享、讓我們一起用代碼改變世界,
9.9.安卓巴士Android開發者門戶
專業的移動開發者門戶,提供Android開發學習資料,分享有價值的互聯網資訊,
9.10.Android 面試官
為你解答 Android 面試的各種問題,更有眾多大廠內推福利等你,
9.11.Android秀原始碼社區
秀原始碼社區是一個IT程式員資源分享平臺! 提供IT實戰專案、零基礎入門教程視頻、進階漲薪課程等 IT網課涉及Python開發、java開發、go工程師、kotlin開發、web前端、大前端、php網站開發、大資料進階課程、進階架構師等
9.12.android與kotlin以及java架構
探討java、android、kotlin架構,分享和推送專業知識,讓你每天進步一點點,
9.13.Android Performance
分享 Android 系統和 App 的性能優化知識、開發技巧、Android 開發工具、性能優化工具、Android && Linux 系統開發等
9.14.AndroidKt
分享 Android、Kotlin、Flutter 以及 OpenCV 等開發知識
9.15.谷歌開發者
Google 中國官方賬號,匯集 Android, Flutter, Chrome OS, Chrome/web, AI 等開發技術,以及 Google Play 平臺出海相
9.16.其他大神公眾號
鴻洋、郭霖、玉剛說、Android群英傳、code小生
大家自行去微信公眾號搜索即可,
10.Kotlin、Flutter、JetPack
不瞞大家說,這幾個我都不會...甚至沒有研究過...

這個我只能幫大家簡單整理一下相關網站了,各自優缺點及問題需要小伙伴們自行研究探索了,
10.1.kotilin中文站
Kotlin 語言中文站
https://www.kotlincn.net/
10.2 Flutter
10.2.1 Flutter官網
Flutter - Build apps for any screenFlutter transforms the entire app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase.
https://flutter.dev/
10.2.2 Flutter中文站
Flutter中文網Flutter中文網是中國最大的Flutter開發者交流學習平臺,致力于打造Flutter開發中文社區,在這里能輕松找到代碼實體、專案案例、并有專人提供最新檔案翻譯,
https://flutterchina.club/
10.3 JetPack
Android Jetpack | Android 開發者 | Android DevelopersJetpack 是一個由多個庫組成的套件,可幫助開發者遵循最佳做法、減少樣板代碼并撰寫可在各種 Android 版本和設備中一致運行的代碼,讓開發者可將精力集中于真正重要的編碼作業,
https://developer.android.google.cn/jetpack/
11.聊聊面試
11.1.簡歷很重要
作業了幾年,當我有了面試官的經驗之后,我發現認真準備簡歷和面試是非常重要的,因為毫無準備就來面試的求職者真的太多了,說起面試,我覺得還是得先聊一下簡歷,面試過很多人,一般招聘都是公司的HR把篩選后的簡歷打包發我,讓我二次篩選一下然后確認面試名單,我發現這不同人的簡歷真的區別太大了,有的人的簡歷一看就是用心做的,有的人的簡歷給我的感覺是用記事本寫的...

我篩選簡歷的標準,主要有這幾點:
1)簡歷是否排版整潔,是否有很多錯別字等
2)個人作業學習經歷
3)個人技術及專案經驗描述
4)是否有其他加分項 如 考證 、技術論壇發表文章等
所以,對于簡歷我總結了幾點建議:
1)簡歷模板不要求太華麗,排版整潔清晰即可,
2)你的弱點放到下面,比如學歷專科看起來就不是加分項的地方 ,放到簡歷下面
3)簡歷整篇最好不要長篇大論,盡量最多不要超過兩頁A4紙,
4)和作業無關的內容不建議寫太多,個人愛好可以寫一兩樣,但是不建議寫太多,有的人簡歷上個人愛好寫一堆(旅游、看小說、籃球、看電影、足球、唱歌、攝影九級),我都懷疑他有沒有時間上班,
5)不要編造虛假學歷、經歷等
6)有軟考等相關證書、技術論壇發表過文章、參與過開源專案都可以寫簡歷上,我認為這個是加分項,畢竟這些可以間接證明你是一個上進并且喜歡學習分享的人,很少有公司不喜歡則這樣的人,
簡歷模板也給大家準備好了,領取方式:文章下方評論、私信、博客首頁有聯系方式,

11.2.面試狀態及溝通表達
在公司一般技術面試環節,除了技術上的溝通,還有兩點是我也會考量的,
1)個人面試時狀態
有的人來面試時候的狀態真的讓我感覺他壓根不想來面試,我面試過的人真的有還未開始真正技術面試我就肯定不會推薦他復試的,這么說可能聽起來很不負責,我可以和你們說下那個人給我的印象:
來面試翹著二郎腿看著手機,這是他給我的第一個印象,
和他打招呼:你好,久等了哈,他看了我眼然后回答了一個字:嗯
讓他做自我介紹,他一共說了也就20多個字:姓名,畢業院校、作業了幾年,

所以,我當時都不想和他繼續溝通技術了,簡單問了兩個技術問題就讓他走了,后來我還專門和HR溝通過這個人,我說給我感覺他應該就不打算找作業或者是已經找到更合適的了,否則這種狀態,真的很難找到合適的作業,即便找到合適的了,想多比較比較,也應該認真面試吧,不然真的感覺是在浪費時間啊,
當然我舉這個例子不是想強調去面試一定要表現的卑躬屈膝,畢竟面試是雙向選擇的程序,但是我們面試基本的職業素養和面試狀態要有,準備好去這家公司面試 ,一定要表現積極陽光的狀態,不然純粹是浪費自己的時間,
如果大家決定去一家公司面試了,真心想應聘這家公司的某個職位,我有幾點建議(如果哪里說錯,希望大家批評指正):
1.面試前提前了解公司的情況,公司基本業務情況能多了解就多了解些,
2.面試程序我們盡量謙虛禮貌一些,因為面試你的人很可能是你將來領導,
3.自我介紹環節 可以簡短但是要涵蓋要點,姓名、 畢業院校、作業經歷、專案經驗及自己所做貢獻,不用太長,1-2分鐘左右就好,言簡意賅,如果作業經歷過于豐富,可以挑重點說,
4.對于被問到的自己不擅長的技術問題,不要不懂裝懂或者胡亂編,也不要猶猶豫豫,吞吞吐吐,可以直接說這塊接觸的少一些,
5.倘若感覺自己面試程序不錯,很有機會面試成功,那可以多和面試官問問公司的專案組情況及公司現狀,因為有些公司的問題你從網上查不到,但是可以問出來,
6.談薪資的時候,盡量不要把薪資范圍擴的太大,比如有些人問他期望薪資 ,他會說10k-15k,那么我和你說,最后錄用你,你的工資就是10k,最好是上下浮動不要太大,可以說14k-15k,
7.如果HR問你離職原因,盡量不要回答的太直接(作業業績差,溝通能力差,老板領導XX,看同事不順眼,和公司有糾紛……),可以換成 公司的軟體出了問題,公司面臨破產,部門被合并,公司的氛圍和你想要的相去甚遠(順便夸夸新東家),個人職業發展規劃等等,
8.別說謊!
2)溝通理解能力以及組織語言表達能力
面試除了面試技術,我比較關心的還有就是來面試的人的溝通理解表達能力,這點我覺得很重要,不然將來進公司后,作業效率就會非常低,說白了一起做專案,你說話他聽不明白,他的想法自己也說不清楚,這會非常影響作業效率,所以一般面試我都會推薦 溝通起來比較順暢的人,這樣將來進入公司后,作業起來配合不會有太大問題,對這點我個人建議是:如果覺得自己這方面有所欠缺,可以多在學習作業程序中多注意練習培養,這個是可以練的,先提升自己的自信,很多程式員不愛說話,面試有時候一緊張就更說不清,這需要平時在作業程序中多參與討論,多和同事溝通,慢慢就提高了,
11.3.個人技術
作為研發,面試當然最關鍵的環節還是技術,技術這塊真的得拿出自己真本事才行了,
這塊我的建議是:
1)面試提前多刷面試題,基礎知識,演算法等,(下面一章節會給大家匯總Android面試題)
2)做好上機面試的準備,
3)面試表現自信和自然,千萬別模棱兩可、吞吞吐吐、猶猶豫豫,這個減分很多,
4)多往自己的強項上去引導面試官,想辦法讓他問你了解的最透徹的那塊技術,這塊需要點溝通技巧,
5)還有介紹自己的專案經驗的時候,千萬不要侃侃而談我做的專案有多少厲害厲害,我們專案規模有多大多大,我想問問你說這些能體現出你多少價值?這個環節盡量多說這個專案有哪些功能,自己負責了哪些功能?在做這個專案程序中遇到了哪些問題?都是如何解決的?自己通過做這個專案學到了哪些知識點?總結了哪些經驗?后面思考有哪些地方可以再進行優化?
6)如果自己有參與寫過開源專案或者在技術社區有寫過技術博客面試一定要說出來,這些都是加分項,
11.4.面試知識點

面試題這塊,我一般都是從網上找那些大神總結的比較全的面試知識點來看,面試應聘小伙伴主要是結合我們公司專案情況挑重點來問知識點,所以面試題這部分我把大神總結的知識點匯總一下,供大家參考,
11.4.1 面試基本知識點

11.4.1.1. Android面試相關
1.Activity
- 說下Activity生命周期
- Activity A 啟動另一個Activity B 會呼叫哪些方法?如果B是透明主題的又或則是個DialogActivity呢
- 說下onSaveInstanceState()方法的作用 ? 何時會被呼叫?
- Activity的啟動流程
- onSaveInstanceState(),onRestoreInstanceState的掉用時機
- activity的啟動模式和使用場景
- Activity A跳轉Activity B,再按回傳鍵,生命周期執行的順序
- 橫豎屏切換,按home鍵,按回傳鍵,鎖屏與解鎖螢屏,跳轉透明Activity界面,啟動一個 Theme 為 Dialog 的 Activity,彈出Dialog時Activity的生命周期
- onStart 和 onResume、onPause 和 onStop 的區別
- Activity之間傳遞資料的方式Intent是否有大小限制,如果傳遞的資料量偏大,有哪些方案
- Activity的onNewIntent()方法什么時候會執行
- 顯示啟動和隱式啟動
- scheme使用場景,協議格式,如何使用
- ANR 的四種場景
- onCreate和onRestoreInstance方法中恢復資料時的區別
- activty間傳遞資料的方式
- 跨App啟動Activity的方式,注意事項
- Activity任務堆疊是什么
- 有哪些Activity常用的標記位Flags
-
Activity的資料是怎么保存的,行程被Kill后,保存的資料怎么恢復的
2.Service
- service 的生命周期,兩種啟動方式的區別
- Service的兩種啟動方式?區別在哪
- 如何保證Service不被殺死 ?
- Service與Activity怎么實作通信
- IntentService是什么,IntentService原理,應用場景及其與Service的區別
- Service 的 onStartCommand 方法有幾種回傳值?各代表什么意思?
- bindService和startService混合使用的生命周期以及怎么關閉
- 用過哪些系統Service ?
-
了解ActivityManagerService嗎?發揮什么作用
3.BroadcastReceiver
- 廣播的分類和使用場景
- 廣播的兩種注冊方式的區別
- 廣播發送和接收的原理
-
本地廣播和全域廣播的區別
4.ContentProvider
- 什么是ContentProvider及其使用
- ContentProvider的權限管理
- ContentProvider,ContentResolver,ContentObserver之間的關系
- ContentProvider的實作原理
- ContentProvider的優點
- Uri 是什么
5.Handler
- Handler的實作原理
- 子執行緒中能不能直接new一個Handler,為什么主執行緒可以主執行緒的Looper第一次呼叫loop方法,什么時候,哪個類
- Handler導致的記憶體泄露原因及其解決方案
- 一個執行緒可以有幾個Handler,幾個Looper,幾個MessageQueue物件
- Message物件創建的方式有哪些 & 區別?
Message.obtain()怎么維護訊息池的 - Handler 有哪些發送訊息的方法
- Handler的post與sendMessage的區別和應用場景
- handler postDealy后訊息佇列有什么變化,假設先 postDelay 10s, 再postDelay 1s, 怎么處理這2條訊息
- MessageQueue是什么資料結構
- Handler怎么做到的一個執行緒對應一個Looper,如何保證只有一個MessageQueue ThreadLocal在Handler機制中的作用
- HandlerThread是什么 & 好處 &原理 & 使用場景
- IdleHandler及其使用場景
- 訊息屏障,同步屏障機制
- 子執行緒能不能更新UI
- 為什么Android系統不建議子執行緒訪問UI
- Android中為什么主執行緒不會因為Looper.loop()里的死回圈卡死
- MessageQueue#next 在沒有訊息的時候會阻塞,如何恢復?
- Handler訊息機制中,一個looper是如何區分多個Handler的
- 當Activity有多個Handler的時候,怎么樣區分當前訊息由哪個Handler處理
- 處理message的時候怎么知道是去哪個callback處理的
- Looper.quit/quitSafely的區別
- 通過Handler如何實作執行緒的切換
- Handler 如何與 Looper 關聯的
- Looper 如何與 Thread 關聯的
- Looper.loop()原始碼
- MessageQueue的enqueueMessage()方法如何進行執行緒同步的
- MessageQueue的next()方法內部原理
- 子執行緒中是否可以用MainLooper去創建Handler,Looper和Handler是否一定處于一個執行緒
- ANR和Handler的聯系
6.View繪制
- View繪制流程
- MeasureSpec是什么
- 子View創建MeasureSpec創建規則是什么
- 自定義Viewwrap_content不起作用的原因
- 在Activity中獲取某個View的寬高有幾種方法
- 為什么onCreate獲取不到View的寬高
- View#post與Handler#post的區別
- Android繪制和螢屏重繪機制原理
- Choreography原理
- 什么是雙緩沖
- 為什么使用SurfaceView
- 什么是SurfaceView
- View和SurfaceView的區別
- SurfaceView為什么可以直接子執行緒繪制
- SurfaceView、TextureView、SurfaceTexture、GLSurfaceView
- getWidth()方法和getMeasureWidth()區別
- invalidate() 和 postInvalidate() 的區別
- Requestlayout,onlayout,onDraw,DrawChild區別與聯系
- LinearLayout、FrameLayout 和 RelativeLayout 哪個效率高
- LinearLayout的繪制流程
- 自定義 View 的流程和注意事項
- 自定義View如何考慮機型適配
- 自定義控制元件優化方案
- invalidate怎么區域重繪
- View加載流程(setContentView)
7.View事件分發
- View事件分發機制
- view的onTouchEvent,OnClickListerner和OnTouchListener的onTouch方法 三者優先級
- onTouch 和onTouchEvent 的區別
- ACTION_CANCEL什么時候觸發
- 事件是先到DecorView還是先到Window
- 點擊事件被攔截,但是想傳到下面的View,如何操作
- 如何解決View的事件沖突
- 在 ViewGroup 中的 onTouchEvent 中消費 ACTION_DOWN 事件,ACTION_UP事件是怎么傳遞
- Activity ViewGroup和View都不消費ACTION_DOWN,那么ACTION_UP事件是怎么傳遞的
- 同時對父 View 和子 View 設定點擊方法,優先回應哪個
- requestDisallowInterceptTouchEvent的呼叫時機
8.RecycleView
- RecyclerView的多級快取機制,每一級快取具體作用是什么,分別在什么場景下會用到哪些快取
- RecyclerView的滑動回收復用機制
- RecyclerView的重繪回收復用機制
- RecyclerView 為什么要預布局
- ListView 與 RecyclerView區別
- RecyclerView性能優化
9.Viewpager&Fragment
- Fragment的生命周期 & 結合Activity的生命周期
- Activity和Fragment的通信方式, Fragment之間如何進行通信
- getFragmentManager、getSupportFragmentManager 、getChildFragmentManager之間的區別?
- 為什么使用Fragment.setArguments(Bundle)傳遞引數
- FragmentPagerAdapter與FragmentStatePagerAdapter的區別與使用場景
- FragmentPageAdapter和FragmentStatePageAdapter區別及使用場景
- Fragment懶加載
- ViewPager2與ViewPager區別
- Fragment嵌套問題
10.WebView
- 如何提高WebView加載速度
- WebView與 js的互動
- WebView的漏洞
- JsBridge原理
11.影片
- 影片的型別
- 補間影片和屬性影片的區別
- ObjectAnimator,ValueAnimator及其區別
- TimeInterpolator插值器,自定義插值器
- TypeEvaluator估值器
12.Bitmap
- Bitmap 記憶體占用的計算
- getByteCount() & getAllocationByteCount()的區別
- Bitmap的壓縮方式
- LruCache & DiskLruCache原理
- 如何設計一個圖片加載庫
- 有一張非常大的圖片,如何去加載這張大圖片
- 如果把drawable-xxhdpi下的圖片移動到drawable-xhdpi下,圖片記憶體是如何變的,
- 如果在hdpi、xxhdpi下放置了圖片,加載的優先級,如果是400_800,1080_1920,加載的優先級,
13.mvc&mvp&mvvm
- MVC及其優缺點
- MVP及其優缺點
- MVVM及其優缺點
- MVP如何管理Presenter的生命周期,何時取消網路請求
14.Binder
- Android中行程和執行緒的關系,區別
- 為何需要進行IPC,多行程通信可能會出現什么問題
- Android中IPC方式有幾種、各種方式優缺點
- 為何新增Binder來作為主要的IPC方式
- 什么是Binder
- Binder的原理
- Binder Driver 如何在內核空間中做到一次拷貝的?
- 使用Binder進行資料傳輸的具體程序
- Binder框架中ServiceManager的作用
- 什么是AIDL
- AIDL使用的步驟
- AIDL支持哪些資料型別
- AIDL的關鍵類,方法和作業流程
- 如何優化多模塊都使用AIDL的情況
- 使用 Binder 傳輸資料的最大限制是多少,被占滿后會導致什么問題
- Binder 驅動加載程序中有哪些重要的步驟
- 系統服務與bindService啟動的服務的區別
- Activity的bindService流程
- 不通過AIDL,手動編碼來實作Binder的通信
15.記憶體泄漏&記憶體溢位
- 什么是OOM & 什么是記憶體泄漏以及原因
- Thread是如何造成記憶體泄露的,如何解決?
- Handler導致的記憶體泄露的原因以及如何解決
- 如何加載Bitmap防止記憶體溢位
- MVP中如何處理Presenter層以防止記憶體泄漏的
16.性能優化
- 記憶體優化
- 啟動優化
- 布局加載和繪制優化
- 卡頓優化
- 網路優化
17.Window&WindowManager
- 什么是Window
- 什么是WindowManager
- 什么是ViewRootImpl
- 什么是DecorView
- Activity,View,Window三者之間的關系
- DecorView什么時候被WindowManager添加到Window中
18.WMS
- 什么是WMS
- WMS是如何管理Window的
- IWindowSession是什么,WindowSession的創建程序是怎樣的
- WindowToken是什么
- WindowState是什么
- Android視窗大概分為幾種?分組原理是什么
- Dialog的Context只能是Activity的Context,不能是Application的Context
- App應用程式如何與SurfaceFlinger通信的
- View 的繪制是如何把資料傳遞給 SurfaceFlinger 的
- 共享記憶體的具體實作是什么
- relayout是如何向SurfaceFlinger申請Surface
- 什么是Surface
19.AMS
- ActivityManagerService是什么?什么時候初始化的?有什么作用?
- ActivityThread是什么?ApplicationThread是什么?他們的區別
- Instrumentation是什么?和ActivityThread是什么關系?
- ActivityManagerService和zygote行程通信是如何實作的
- ActivityRecord、TaskRecord、ActivityStack,ActivityStackSupervisor,ProcessRecord
- ActivityManager、ActivityManagerService、ActivityManagerNative、ActivityManagerProxy的關系
- 手寫實作簡化版AMS
20.系統啟動
- android系統啟動流程
- SystemServer,ServiceManager,SystemServiceManager的關系
- 范訓應用行程這種事為什么不交給SystemServer來做,而專門設計一個Zygote
- Zygote的IPC通信機制為什么使用socket而不采用binder
21.App啟動&打包&安裝
- 應用啟動流程
- apk組成和Android的打包流程
- Android的簽名機制,簽名如何實作的,v2相比于v1簽名機制的改變
- APK的安裝流程
22.序列化
- 什么是序列化
- 為什么需要使用序列化和反序列化
- 序列化的有哪些好處
- Serializable 和 Parcelable 的區別
- 什么是serialVersionUID
- 為什么還要顯示指定serialVersionUID的值?
23.模塊化&組件化
- 什么是模塊化
- 什么是組件化
- 組件化優點和方案
- 組件獨立除錯
- 組件間通信
- Aplication動態加載
- ARouter原理
24.熱修復&插件化
- 插件化的定義
- 插件化的優勢
- 插件化框架對比
- 插件化流程
- 插件化類加載原理
- 插件化資源加載原理
- 插件化Activity加載原理
- 熱修復和插件化區別
- 熱修復原理
25.AOP
- AOP是什么
- AOP的優點
- AOP的實作方式,APT,AspectJ,ASM,epic,hook
26.Jectpack
- Navigation
- DataBinding
- Viewmodel
- livedata
- liferecycle
27.開源框架
- Okhttp原始碼流程,執行緒池
- Okhttp攔截器,addInterceptor 和 addNetworkdInterceptor區別
- Okhttp責任鏈模式
- Okhttp快取怎么處理
- Okhttp連接池和socket復用
- Glide怎么系結生命周期
- Glide快取機制,記憶體快取,磁盤快取
- Glide與Picasso的區別
- LruCache原理
- Retrofit原始碼流程,動態代理
- LeakCanary弱參考,原始碼流程
- Eventbus
- Rxjava
11.4.1.2 大廠面試知識點
京東
- GC原理,有哪幾種GC方式
- HashMap原理
- Hybrid開發流程、機制
- WebView記憶體泄露
- 包體積優化
- 自定義View需要注意哪些
- 事件分發機制
- ViewModel原理
- 螢屏旋轉ViewModel怎么做到保存資料的
- LiveData原理
- Flutter執行緒機制,單執行緒多執行緒
- 組件化開發
- 介紹一個自己的開源專案
- 有參與過別人的開源專案嗎
位元組跳動
- 瀏覽器輸入一個地址,按下回車,這個程序是什么樣的
- 簡單介紹一下TCP
- 簡單介紹一下Https
- 說說對稱加密和非對稱加密,說說公鑰
- 并發操作如何保證執行緒安全
- 鎖有哪些
- 簡單介紹一下HashMap
- Arraylist是執行緒安全的嗎
- 知道CAS、原子性嗎
- AtomicBoolean和boolean的區別
- 用過哪些設計模式
- 介紹一下觀察者模式
- 用過哪些排序演算法
- 介紹一下貪心演算法
- 介紹一下快排原理
- 演算法,給定一個有序不重復陣列,使用時間復雜度小于N方的方法,找到所有兩兩相加等于target值的組合:int[] a={1,2,3,4,5,6,7,8} int target=7
美團
- Java物件生命周期
- GC機制
- Glide快取機制
- Glide對Bitmap是怎么優化的
- Okhttp請求流程
- Retrofit中的設計模式
- App啟動流程
- Apk打包流程
- 重構做了哪些作業
- 記憶體泄露,舉例場景
- LeakCanary實作原理
- Handler訊息機制
- 執行緒有哪些狀態
- Hybrid開發介紹
- Js功底怎么樣
- 未來職業規劃
嗶哩嗶哩
- MVC,MVP,MVVM的區別
- 使用MVVM有遇到什么問題嗎
- 協程原理
- 協程并發怎么處理的
- 熱修復原理
- 用熱修復的程序中有遇到什么問題嗎
- 啟動優化
- 包體積優化
- 繪制優化
- 全埋點是怎么做的
- Apk更新流程
- 多渠道打包
- 怎么辨別華為的包更新別的應用市場的包
- 演算法,插入排序原理
聲網
- 覺得做的最好的專案
- Jetpack用了哪些組件
- ViewModel如何資料共享
- ViewModel在Activity旋轉時如何保存資料的
- ViewModel怎么創建的,存在哪
- 使用ViewModel程序中有沒有遇到什么問題
- LiveData原理,怎么派發資料的
- postValue是怎么執行的
- 使用LiveData的程序中有沒有遇到什么問題
- 自定義View有哪些注意事項
- 簡單介紹一下協程
- 多個協程怎么保證資料安全的
- 演算法,輸入(H?O) ×2,輸出h4o2
掌門教育
- 筆試邏輯題
- Java有哪些資料結構
- Arraylist是執行緒安全的嗎
- String,StringBuilde,StringBuffer的區別
- Java中的鎖介紹一下,同步鎖舉例
- 四大參考區別,場景舉例
- Activity生命周期
- Fragment生命周期
- Fragment銷毀生命周期執行順序
- 自定義流程,舉例
- 自定義View重繪方式有哪些,執行流程
- 事件分發原理,舉例,延伸
- 滑動沖突怎么解決
- 怎么自己實作一個長按事件
- Service是哪個執行緒,怎么通信
- Handler訊息機制
- Handler發送訊息是一定立即執行的嗎
- Handler運行在哪個執行緒
- 子執行緒可以創建Handler嗎,寫法有哪些區別
- Kotlin定義變數的方式有哪些
- lateinit怎么確保使用時已經初始化
- let,run,apply介紹,區別
- inline原理
- 簡單介紹下協程
- 協程并發怎么處理
- 協程底層是怎么實作的
- 記憶體泄露原理,舉例場景
- 啟動優化
傳音控股
- 做的最有成就感的專案是哪個
- 印象最深刻的專案是哪個
- LiveData底層實作原理
- 啟動優化
- 包體積優化
- 自定義View流程
- View異步加載
- 有用過哪些設計模式
- 介紹一下單例,餓漢式,懶漢式,雙重鎖
- 代理模式和裝飾模式的區別
- 策略模式和狀態模式的區別
- 說說觀察者模式
- 有看過哪些三方庫的原始碼
- Glide四層快取機制
- AMS了解多少
得物
- 簡單介紹一下HashMap
- HashMap調用put的執行流程
- Activity啟動流程
- Binder機制
- Handler訊息機制
- Handler是怎么實作主執行緒和子執行緒的通信的
- Looper卡死為什么不會造成主執行緒的阻塞
- 了解過記憶體泄露嗎
- 是怎么發現記憶體泄露的,怎么處理的
- 線上的記憶體泄露是怎么監控的
- LeakCanary實作原理
- 軟參考和弱參考的區別
- 了解過ANR嗎
- 什么原因會造成ANR
- Activity的回應時間為什么是5s
- 事件分發機制
- 怎么解決滑動沖突的
- 錄音功能是怎么做的
- 編碼解碼相關
- 包體積優化做了哪些作業
哈啰出行
- 挑一個專案詳細說一下,以及相關技術堆疊
- 介紹一下協程機制
- 說一下Dispatchers,withContext,Scope他們的作用
- 說一下你理解的MVP,MVVM
- Flutter相關
- 性能優化做了哪些作業
- 編譯速度怎么提升的
- 記憶體泄露
- LeakCanary檢測原理
- 熱修復,Sophix原理,ClassLoader
- Apk打包流程
- 多執行緒并發,如何保證執行緒安全
- synchronized修飾方法和修飾代碼塊有什么區別
小紅書
- 技術調研你是怎么做的,會考慮哪些因素
- 說一下MVVM
- 用過Jetpack中的哪些組件
- LiveData是怎么做資料派發的
- ViewModel螢屏旋轉的時候怎么做到不丟失資料的
- 使用MVVM的程序中有遇到什么問題嗎
- 性能優化做了哪些作業
- 記憶體泄露有哪些場景
- LeakCanary檢測原理
- 如果讓你做一個自動化的工具去檢測圖片過大并自動壓縮你會怎么做
- 自定義View畫板是怎么做的
- 怎么檢測頁面的FPS
- Handler在onCreate中發送大量資料會導致主執行緒卡頓嗎
- LayoutInflater.inflate有幾個引數,分別是什么意思
其他廠整理補充
- Android中的Context了解多少
- Application里面可以彈窗嗎
- Activity、Window、View三者的關系
- OkHttp中有哪些設計模式
- Retrofit中有哪些設計模式
- Retrofit.create做了哪些作業
- 自定義一個圓角View
- 協程launch有哪些引數
- 說說by關鍵字
- 代理和委托的區別
- 雙親委托模式
- 有幾種獲取view寬高的方式
- view.post為什么可以獲取到
- getWidth和getMesureWidth的區別
- 手寫遍歷二叉樹
- 手寫雙重鎖單例
- 手寫插入排序
- 手寫雙陣列去重并排序
- 如何判斷鏈表有環
以上面試知識點部分內容參考文章如下,在此非常感謝各位大神的分享!
備戰2022,Android中高級面試必知必會
【面經分享】5年Android開發的求職之路
還有比較不錯的面試相關文章 史上最全的Android面試題集錦 大家可以參考
12.聊聊職場
這個本來不想聊,因為這塊內容不同人有不同人的看法和理解,但是還是想和大家分享一下自己這些年的體會,希望對以后年輕的小伙伴們有些幫助,因為作業久了,你就會發現決定你職業發展的有的時候不僅僅是你的技術水平,其他方面也很重要,
12.1 江湖不是打打殺殺,江湖是人情世故

對于職場作業的小伙伴,這里有幾個小建議:
1)平時多和周圍同事聊聊天
無事不登三寶殿,當你平時只顧做自己的事情,需要同事協作的時候再去找人時,你會發現同事很被動地迎合,這時候你才發現,日常生活中和同事打招呼,聊聊天有多重要,人是社會性動物,脫離了群體,你就會感覺舉步維艱,上班前的一句早上好,休息時間的調侃,這些互動都會拉近彼此的距離感,
另外有些同事真的可以處成朋友,有不少原公司同事我們平時還會聚一下聊聊,我來現在公司就是前同事推薦過來的,之前做過幾次專案也是原公司同事引薦的,
2)同事之間幫忙是情分,不幫忙是本分
在公司碰到可以幫忙的事情,能幫就幫幫,當然前提不要影響自己作業,有時候幫一個小忙可以讓別人銘記于心,這樣的事情做多了,你會發現你在公司就是人見人愛的那種,

但是幫忙需要掌握好一個度,當領導或者其他同事提出不合理的請求,并超過你的作業負荷時,就不要感到不好意思去拒絕對方,甚至乖乖做個老好人, 偶爾請你幫忙的同事來說,我們確實應該幫忙,本來同事之間就需要互相幫忙,但是幫忙也是有限度的,給人的幫助太多,讓其形成了依賴,一旦停止幫助,反而會讓人忌恨,
總之,人在職場,同事之間幫忙是情分,不幫忙是本分!自己掌握好尺度就好,
3)學會控制情緒
我非常敢肯定,每個人的職業生涯中都會碰到幾個讓你無語的可愛(XX)同事或者領導,但是我建議不管發生多讓人抓狂的事情,先讓自己情緒平復一下,我不是勸大家碰到可愛同事領導要善良,我懂 未經他人苦,莫勸他人善這個道理,我只是希望大家要冷靜的處理面對的問題,因為人在情緒失控的情況下說的很多話、做的很多決定都不是最佳的,尤其在職場上,
4)學會尊重他人
作業中不管是面對自己的同事,還是自己的領導都要學會尊重,盡量避免當眾指出他人的錯誤和不足,因為人都喜歡聽好聽的話,說白了在職場要給別人留一份尊嚴,
反面的例子舉幾個:
1)這么簡單的功能你不會實作?
2)不是,大哥,你這都多長時間了?還沒搞定?是不會嗎?(很大聲)
3)被領導批評后,從辦公室出來,這個xx總真是個大可愛(XX),
4)你怎么這個地方總出問題啊,和你說了幾次了啊?大哥,能長點記性嗎?我問問你這么多問題怎么上線?
5)但凡我有其他人能干這活,我都不會找你!
6)我覺得不是哎,你等等,我先打斷你一下啊...我覺得這個應該是這樣的...
7)你這么想不對,太不靠譜了...我告訴你應該是這樣....聽懂了沒?我說清楚了嗎?
不發了,我怕我被打死....

5)作業多問細節,多反饋溝通
領導交給你一個模塊功能讓你去開發,你還沒仔細看原型,領導就問你多久可以做好,這個時候你千萬別憑感徑訓復,一定先溝通確認清楚具體細節再回復,做的程序中也要多溝通確認,不然最后出問題,你很容易就化身背鍋俠了,做完也要盡快反饋,盡量做到自己接手的任務"事事有反饋,件件有回音",
6)學習,提升技術和業務能力為第一要務
作業的前幾年我認為是一個黃金學習積累期,年輕學習勁頭足,頭腦思路清晰反應快,這個時間一定要以提升自己為第一要務,有的人作業了好幾年不如公司新來的年輕員工工資高,每天就是和周圍同事抱怨,各種吐槽,但是自己不做任何改變,每天滿滿負能量,我講實話這種真的一點意義都沒有,因為我曾經就是這樣的人,不過后來想明白了,

再舉一個簡單例子,和程式員的作業沒多大關系,但是希望大家可以從中悟出些道理,
老板交代同樣一個任務給A和B,任務是:一家客戶準備到公司來考察產品狀況,老板叫聯系他們,問問何時過來,
A的反饋:
老板:“聯系到了嗎?”
A:“聯系到了、他們說可能下周過來,”
老板:“具體是下周幾?”
A:“這個我沒細問,”
老板:“他們一行多少人,”
A:“啊!您沒問我這個啊!”
老板:“那他們是坐火車還是飛機?”
A:“這個您也沒叫我問呀!”
B的反饋:
B:“老板 ,是這樣的,他們是乘下周五下午3點的飛機,大約晚上6點鐘到,他們一行5人,由采購部王經理帶隊,我跟他們說了,我公司會派人到機場迎接,
另外,他們計劃考察兩天時間,具體行程到了以后雙方再商榷,為了方便作業,我建議把他們安置在附近的國際酒店,如果您同意,房間明天我就提前預訂,
還有,下周天氣預報有雨,我會隨時和他們保持聯系,一旦情況有變,我將隨時向您匯報,”
12.2 放平心態,努力學習,認真作業
這幾年內卷這個詞變得很流行,經常可以在各種地方看到,這個詞現在解釋為 競爭激烈的就業行情以及指責大環境的糟糕,
我覺得需要理性的看待這個詞,不能一股腦的把所有努力的行為都歸為 卷,都作業了做事情要有自己的思考和主觀意識,任何問題要有自己的判斷力,你該好好學學好好學習,該努力作業努力作業,做自己該做的事情,努力實作自己的目標就好,
總結
最后快過年了,提前祝大家新年快樂!希望所有的小伙伴都有一個美好的未來!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/382919.html
標籤:其他
