疫情被裁?不要愁!給你2020安卓開發精選面試題及答案!
近日,一位在家的某網際網路員工匿名發帖稱:**疫情期間,通知被裁員? **
真的是過年沒得剩,年後沒得掙!
受疫情影響,不少企業已延長假期或開啟了遠端辦公,大家終於實現了躺著掙錢的夢想了;但這種舒適的背後,更多的卻是讓人憂愁。
現國內很多行業已遭受一定的經濟衝擊,今後絕大部分的企業都將面臨資金問題,不出意外,未來是殘酷的。
嗅覺敏銳的人已開始一邊放著假,一邊啟動著plan B的計劃(找下家),透過線上學習提高自己的競爭力,把握金三銀四的面試機會!
接下來我們針對Android高階展開的完整面試題
1、請解釋下在單執行緒模型中Message,Handler,Message Queue,Looper之間的關係。
拿主執行緒來說,主執行緒啟動時會呼叫Looper.prepare()方法,會初始化一個Looper,放入Threadlocal中,接著呼叫Looper.loop()不斷遍歷Message Queue,
Handler的建立依賴與當前執行緒中的Looper,如果當前執行緒沒有Looper則必須呼叫Looper.prepare()。Handler , sendMessage到MessageQueue,Looper不斷
從MessageQueue中取出訊息,回撥handleMessage方法。
2、如果有個100M大的檔案,需要上傳至伺服器中,而伺服器form表單最大隻能上傳2M,可以用什麼方法。
這個問題不是很明確我覺得,首先來說使用http協議上傳資料,特別在android下,跟form沒什麼關係。傳統的在web中,在form中寫檔案上傳,其實瀏覽器所做
的就是將我們的資料進行解析組拼成字串,以流的方式傳送到伺服器,且上傳檔案用的都是POST方式,POST方式對大小沒什麼限制。
回到題目,可以說假設每次真的只能上傳2M,那麼可能我們只能把檔案截斷,然後分別上傳了。
3、記憶體溢位和記憶體洩漏有什麼區別?何時會產生記憶體洩漏?記憶體最佳化有哪些方法?
記憶體溢位通俗理解就是軟體(應用)執行需要的記憶體,超出了它可用的最大記憶體。
記憶體洩漏就是我們對某一記憶體空間的使用,使用完成後沒有釋放。
記憶體最佳化:Android中容易記憶體溢位的部分,就是圖片的載入,我們可以使用圖片的壓縮加上使用LruCache快取的目的來控制圖片所能夠使用的記憶體。
還有對於比較耗資源的物件及時的關閉,例如Database Conn , 各種感測器 , Service 等等。
4、AsyncTask使用在哪些場景?它的缺陷是什麼?如何解決?
AsyncTask 運用的場景就是我們需要進行一些耗時的操作,耗時操作完成後更新主執行緒,或者在操作過程中對主執行緒的UI進行更新。
缺陷:AsyncTask中維護著一個長度為128的執行緒池,同時可以執行5個工作執行緒,還有一個緩衝佇列,當執行緒池中已有128個執行緒,緩衝佇列已滿時,如果
此時向執行緒提交任務,將會丟擲RejectedExecutionException。
解決:由一個控制執行緒來處理AsyncTask的呼叫判斷執行緒池是否滿了,如果滿了則執行緒睡眠否則請求AsyncTask繼續處理。
5、Activity用SharedPreferences儲存資料,大小有木有限制?
這個真心查不到。。。
6、Activity間透過Intent傳遞資料大小有沒有限制?
貌似是40K。
7、 啟動一個程式,可以主介面點選圖示進入,也可以從一個程式中跳轉過去,二者有什麼區別?
是因為啟動程式(主介面也是一個app),發現了在這個程式中存在一個設定為的activity,
所以這個launcher會把icon提出來,放在主介面上。當使用者點選icon的時候,發出一個Intent:
Intent intent = mActivity.getPackageManager().getLaunchIntentForPackage(packageName);
mActivity.startActivity(intent);
跳過去可以跳到任意允許的頁面,如一個程式可以下載,那麼真正下載的頁面可能不是首頁(也有可能是首頁),這時還是構造一個Intent,startActivity.
這個intent中的action可能有多種view,download都有可能。系統會根據第三方程式向系統註冊的功能,為你的Intent選擇可以開啟的程式或者頁面。所以唯一的一點
不同的是從icon的點選啟動的intent的action是相對單一的,從程式中跳轉或者啟動可能樣式更多一些。本質是相同的。
8、程式之間的親和性的理解。
1、預設情況下一個應用的所有Activity都是具有相同的affinity,都是從application中繼承,application的affinity預設就是manifest的包名。
2、affinity對Activity來說,就像是身份證一樣,可以告訴所在的Task,自己屬於其中的一員。
3、應用場合:
a:根據affinity重新為Activity選擇合適的宿主Task;
b:與allowTaskReparenting屬性配合;
c:啟動Activity使用Intent設定了FLAG_ACTIVITY_NEW_TASK標記。
9、同一個程式,但不同的Activity是否可以放在不同的Task任務棧中?
可以放在不同的Task中。需要為不同的activity設定不同的affinity屬性,啟動activity的Intent需要包含FLAG_ACTIVITY_NEW_TASK標記。
10、橫豎屏切換時候Activity的生命週期。
1、不設定Activity的android:configChanges時,切屏會重新呼叫各個生命週期,切橫屏時會執行一次,切豎屏時會執行兩次
2、設定Activity的android:configChanges=”orientation”時,切屏還是會重新呼叫各個生命週期,切橫、豎屏時只會執行一次
3、設定Activity的android:configChanges=”orientation|keyboardHidden”時,切屏不會重新呼叫各個生命週期,只會執行onConfigurationChanged方法
11、AIDL的全稱是什麼?如何工作?
12、dvm的程式和Linux的程式, 應用程式的程式是否為同一個概念
Dvm的程式是dalivk虛擬機器程式,每個android程式都執行在自己的程式裡面,每個android程式系統都會給他分配一個單獨的liunx uid(user id),
每個dvm都是linux裡面的一個程式.所以說這兩個程式是一個程式.
最後
暫且分享這些,在此我還有一份 安卓開發面試指南,1612頁的PDF文件,25個模組
- Java基礎
- Java併發
- Java虛擬機器
- Android基礎
- Android進階
- 開源框架
- 線性表
- 棧和隊
- 樹
- 圖
- 雜湊查詢
- 排序
- 海量資料處理
- 劍指offer
- LeetCode
- 建立型模式
- 結構型模式
- 行為型模式
- TCP/IP
- HTTP
- HTTPS
- 作業系統
- 程式與執行緒
- 記憶體管理
- SQL語句
現在大家學習的時間比較多,剛好可以來學習準備
免費領取方式:點贊+評論,關注我,私信【面試指南 】獲取,滿滿的都是乾貨,學習完可以幫助大家心裡有個底,好好準備,疫後去升職加薪!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952849/viewspace-2676290/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 最新精選Java面試題,附答案!Java面試題
- MySQL精選60道面試題 ( 含答案 )MySql面試題
- 2021精選 Java面試題附答案(一)Java面試題
- 【週刊-1】三年大廠面試官-面試題精選及答案面試題
- Python開發面試題及部分答案分享!Python面試題
- 安卓開發第一步:安卓面試題安卓面試題
- 高階Java開發面試解答,Java開發面試題及答案Java面試題
- 最全前端開發面試問題及答案整理前端面試
- 安卓系統工程師2018(面試題整理,含答案)安卓工程師面試題
- Java併發面試題精選Java面試題
- 精選乾貨:Java精選筆試題附答案Java筆試
- sql 經典面試題及答案(選課表)SQL面試題
- 2020年開春最新面試!今日頭條 Android 面試題及答案 (已拿到 offer)Android面試題
- iOS面試題精選iOS面試題
- 27道Redis精選面試題,你會做幾題?Redis面試題
- BATM面試Java崗:精選200+面試題及答案、6大重點規劃和經驗總結BATJava面試題
- 30 道 Dubbo 面試題及答案面試題
- Java初中級面試題及答案Java面試題
- Java高階面試題及答案Java面試題
- 常見AI面試題及答案AI面試題
- Selenium 高頻面試題及答案面試題
- 碼農面試智力題及答案面試
- 老許,你要轉Flutter不要?只要你開金口,面試題現在就給你送來Flutter面試題
- 面試系列二:精選大資料面試真題JVM專項-附答案詳細解析面試大資料JVM
- 2018年最新Java面試題及答案Java面試題
- 阿里Jvm必問面試題及答案阿里JVM面試題
- Java併發程式設計40道面試題及答案——面試穩了Java程式設計面試題
- SQL崗位30個面試題,SQL面試問題及答案SQL面試題
- Linux面試題,淺析常見Linux命令面試題及答案Linux面試題
- 高階前端程式設計師面試問題與答案【精選9道】前端程式設計師面試
- 精選Hive高頻面試題11道,附答案詳細解析(好文收藏)Hive面試題
- 騰訊研發類筆試面試試題及答案(C++方向)筆試面試C++
- Java併發程式設計71道面試題及答案Java程式設計面試題
- Java併發程式設計73道面試題及答案Java程式設計面試題
- 2019 Python最新面試題及答案16道題Python面試題
- 技術乾貨:RabbitMQ面試題及答案MQ面試題
- 技術乾貨:ActiveMQ面試題及答案MQ面試題
- 技術乾貨:Hadoop面試題及答案Hadoop面試題