android面試題

1. Activity和fragment的生命周期

  1. Activity從onCreate→onStart→onResume→onPause→onStop→onDestroy,其中oncreate初始化加載布局資源,onStart布局可見但是還在后臺不可交互

    onResume布局可見在前臺可以交互。onPause正在停止當前activity,onStop表示activity即將停止,做一些回收資源操作,onDestroy銷毀activity最終的資源釋放。總結:onStart和onPause可見不可見,onResume和onStop可不可以交互

  2. Fragment從onAttach→onCreate→onCreateView→onStart→onResume→onPause→onStop→onDestroyView→onDestroy-onDetach

    ?

2. Layout_gravity和gravity的區別。

比如設置android:layout_gravity="right"的button會顯示在父view的最右邊。所以layout_gravity是設置當前view在父view的位置。

比如設置了android:gravity="left"的LinearLayout會讓里面的子View最顯示在最左邊。所以gravity是設置當前view里面的子view的位置。

3. 當一個activity跳轉到另一個activity的生命周期

我們分別用AB代替兩個activity

onPause(A)→onCreate(B)→onStart(B)→onResume(B)→onStop(A)

4.簡單介紹Handler Message MessageQueue Looper

當Handler調用sendMessage方法會先把調用MessageQueue.enqeueMessage把Message加到消息隊列,然后Looper開啟循環不斷遍歷消息隊列,調用MessageQueue.next獲取message,然后調用目標Handler的dispatchMessage,判斷Message有沒有Callback即有沒有Runnable對象,再判斷Handler有沒有callback,如果都沒最后輸出到Handler的handleMessage方法來處理消息。

5. 內存溢出和內存泄露

oom又叫out of memory 就是內存溢出。就是對象需求的內存大于jvm可用內存,避免oom要

減小對象內存的使用

1)使用更加輕量的數據結構,使用ArrayMap/SparseArray代替HashMap

2)避免使用Enum

3)減小bitmap對象的內存占用 使用insampleSize縮放比例,設置decodeFormat,解碼格式

4)使用更小的圖片,用tinypng壓縮圖片

內存對象的重復使用。使用對象池

1)StringBuilder減少String對象創建

2)避免在onDraw創建對象,因為onDraw會頻繁調用,頻繁gc,從而造成內存抖動。

3)復用系統提供的資源,比如字符串 顏色 圖片 動畫 樣式 和布局

4)在listview或者gridview對convertView的復用

5)bitmap對象的復用在api11-18使用inbitmap,確定具有相同的解碼模式,第二張圖片會使用第一張照片已存在的位置

避免內存泄露

1)注意Activity的泄漏,一般是內部類引用導致activity泄露比如handler

2)Activity Context被傳到其他實例中,這可能導致自身引用發生泄漏

3)考慮使用Application Context 而不是Activity Context當然dialog就必須是activity的content

4)注意臨時的bitmap對象的回收 調用bitmap.recycle()

5) 監聽器的注銷要手動unregister 比如realm的list監聽器

6)注意緩存容器中的對象泄漏比如2.3版本的drawable會對view強引用,

7)注意webview的泄露

8)還有Cursor游標的關閉。

6. Jvm的堆棧方法區

堆區存放所有的對象,只有一個,每個對象都包含一個與之對應的class信息class的目的是得到操作指令,但是不包括基本類型和對象引用,new一個類就是對象引用。只存放對象本身。

棧區 每個線程都有一個棧區,用來存放對象的引用和基本類型,(怎么區分對象和對象的應用呢 舉個例子 Person person=new Person(); =左邊是對象的引用,=右邊是對象),其他棧不能訪問另外一個棧的內容

方法區,就是靜態變量static修飾的變量,常量。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 內容來之網絡,因為看到布局太亂,重新整理下,并對答案做了一些修改。如果有侵權,請給我私信。謝謝。 1.下列哪些語句...
    蝴蝶之夢天使閱讀 1,623評論 2 22
  • 大學還沒畢業,卻很幸運地收到一家公司的offer,這是我努力去面試的結果,原以為我將會走在同學們的前面一點點,可是...
    snail10閱讀 306評論 0 1
  • 前兩天看王小波的《我的精神家園》,說是自己二十來歲的時候痛下決心,這輩子什么都可以干,但是就是不能做一個一無所能,...
    羊逗逗閱讀 148評論 0 0
  • 水調歌頭?游雁南飛茶田感懷 靈山蘊秀峰,沃土育香芽。 望碧翠連天際,層林染余霞。 信步蜿蜒石階,紗燈串珠成鏈,隱約...
    穿越者木易君閱讀 880評論 33 28
  • 14:34 20170622 今天很特別,然后又不特別! 2007年9月13日來到海南海口,一切很新奇,但十年過去...
    普雅花的粉兒閱讀 270評論 3 3