Android工程師面試題

時間:2024-09-19 09:30:41 學人智庫 我要投稿
  • 相關推薦

關于Android工程師面試題

  singletask:棧內復用模式。不是在當前任務棧中查找是否存在,實際過程如下:

關于Android工程師面試題

  查找該Activity所需的任務棧是否存在(由taskAffinity控制,或者默認為包名)。

  在任務棧當中查找該Activity是否存在。

  這里面存在任務棧的切換,也就是當開啟的singtask類型的Activity不屬于當前任務棧時,則會切換到其任務棧。

  singleInstance:單實例模式。

  包含了singleTask的所有特性,另外加上:設置為該模式的Activity,只能單獨存在于一個任務棧中。當有兩個singleInstace的Activity設置成同樣的任務棧時,會出現兩個同名的任務棧,分別用來存放同名的Activity。

  注:在任何跳轉的時候,首先調用本Activity的onPause,然后跳轉。如果被跳轉的activity由于啟動方式而沒創建新的實例,則會先調用onNewIntent,然后按照正常的生命周期調用。

  如

  1:A→B,A:onPause;B:onCreate,onStart,onResume。

  2:A(singleTop)→A,A:onPause;A:onSaveInstanceState;A:onResume。

  3、View的繪制

  推薦郭霖大神的博客:

  https://blog.csdn.net/guolin_blog/article/details/16330267

  4、canvas的使用

  推薦以下博客:

  https://blog.csdn.net/qinjuning/article/details/6936783

  5、ActivityManagerService的相關知識點

  推薦以下博客:

  https://wiki.jikexueyuan.com/project/deep-android-v2/activity.html

  6、Activity切換時生命周期交集

  Activity之間的協作當一個activity A啟動了另外一個activity B,它們的生命周期是有交叉的;

  首先A的onPause()被調用;

  之后B的onCrate(), onStart()及onResume() 方法會被調用(此時B擁有用戶焦點);

  最后,如果A在屏幕上不可見,onStop()方法被調用;

  因此,我們在兩個activities中傳遞數據,或者共享資源時(如數據庫連接),需要在前一個activity的onPause()方法而不是onStop()方法中進行;

  7、Hybrid(重要加分項)

  java和JS的交互

  https://droidyue.com/blog/2014/09/20/interaction-between-java-and-javascript-in-android/

  https://rensanning.iteye.com/blog/2043049

  WebView開啟JavaScript腳本執行

  WebView設置供JavaScript調用的交互接口。

  8、網絡編程

  volley

  https://bxbxbai.github.io/2014/09/14/android-working-with-volley/

  https://blog.csdn.net/guolin_blog/article/details/17656437

  如何控制TCP連接時的擁塞

  https://blog.csdn.net/yechaodechuntian/article/details/25429143

  三次握手

  https://blog.csdn.net/whuslei/article/details/6667471

  Android客戶端和服務端如何使用Token和Session

  https://wyong.blog.51cto.com/1115465/1553352

  移動端獲取網絡數據優化的幾個點連接復用 :

  節省連接建立時間,如開啟 keep-alive。

  對于 Android 來說默認情況下 HttpURLConnection 和 HttpClient 都開啟了 keep-alive。只是 2.2 之前 HttpURLConnection 存在影響連接池的 Bug,具體可見:Android HttpURLConnection 及 HttpClient 選擇

  請求合并:

  即將多個請求合并為一個進行請求,比較常見的就是網頁中的 CSS Image Sprites。如果某個頁面內請求過多,也可以考慮做一定的請求合并。

  減少請求數據的大小:

  對于post請求,body可以做gzip壓縮的,header也可以作數據壓縮(不過只支持http 2.0)。

  返回的數據的body也可以作gzip壓縮,body數據體積可以縮小到原來的30%左右。(也可以考慮壓縮返回的json數據的key數據的體積,尤其是針對返回數據格式變化不大的情況,支付寶聊天返回的數據用到了)

  根據用戶的當前的網絡質量來判斷下載什么質量的圖片(電商用的比較多)。

  9、android開發中,可能會導致內存泄露的問題

  不要讓生命周期長于Activity的對象持有到Activity的引用

  盡量使用Application的Context而不是Activity的Context

  盡量不要在Activity中使用非靜態內部類,因為非靜態內部類會隱式持有外部類實例的引用(具體可以查看細話Java:”失效”的private修飾符了解)。如果使用靜態內部類,將外部實例引用作為弱引用持有。

  垃圾回收不能解決內存泄露,了解Android中垃圾回收機制

  **更多內容可以參考以下博客:

  https://spencer-dev.lofter.com/post/d7b9e_6faf120

  10、activity的啟動過程:

  https://www.cloudchou.com/android/post-788.html

  以上是我遇到和搜集到的各類題目以及相應的解答,接下來一段時間也會持續更新,大家遇到什么經典或者不會的問題也可以給我留言,在此統一分享給大家。祝大家能夠找到自己心儀的工作,前途一片光明!

【Android工程師面試題】相關文章:

投行面試題07-24

軟件測試面試題01-17

中層副職競聘面試題09-05

來看看谷歌的面試題08-17

濟南稼軒中學小升初面試題07-21

壓力危機類面試題目突破技巧11-09

今年最強的面試題和最牛的答卷09-20

考察個人價值觀的另類面試題02-21

人力資源行業常見面試題匯總02-03

面試題:給我們一個錄取你的理由?11-16

国产v亚洲v天堂无码网站,综合亚洲欧美日韩一区二区,精品一级毛片A久久久久,欧美一级待黄大片视频
久久久一本精品99久久k精品66 | 亚洲精品国产第一综合 | 亚洲精品A在线观看 | 欲香欲色天天综合久久 | 尤物久久免费一区二区三区 | 色福利网在线观看 |