整理下最近Android面試的題目

最近辭職了,在找工作這里整理記錄下面試遇到的題目:

2018/5/7

1.Android中跨進(jìn)程通訊的方式有哪些?

Android中跨進(jìn)程通訊的方式有網(wǎng)路、文件煌珊、廣播、Aidl等;


2.為什么在子線程中創(chuàng)建handler會(huì)拋出異常泌豆,正常怎么創(chuàng)建子線程Handler定庵?

在子線程中直接創(chuàng)建一個(gè)handler的時(shí)候會(huì)拋出?

?java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

錯(cuò)誤,這是因?yàn)闆](méi)有調(diào)用線程Looper.perpare()方法去初始化Looper踪危,所以Looper.myLooper對(duì)象是空的蔬浙,需要調(diào)用perpare方法初始化Looper對(duì)象;

正常創(chuàng)建可以在主線程創(chuàng)建:

HandlerThread handlerThread = new HandlerThread("handlerThread-name");

handlerThread.start();

Handler handler = new Handler(handlerThread.getLooper());

子線程中創(chuàng)建Handler:

new Thread(new Runnable() {

????@Override

? ? public void run() {

????????Looper.prepare();

? ? ? ? Handler handler1 =new Handler(Looper.myLooper());

? ? ? ? Looper.loop();

? ? }

}).start();


3.Android中的內(nèi)存泄漏和優(yōu)化陨倡?

(1)單例導(dǎo)致內(nèi)存泄露

????????單例的生命周期和應(yīng)用一樣長(zhǎng)敛滋,如果一個(gè)對(duì)象(activity许布、service等上下文)已經(jīng)沒(méi)有用處了兴革,但是單例還持有它的引用,那么在整個(gè)應(yīng)用程序的生命周期它都不能正常被回收,從而導(dǎo)致內(nèi)存泄露杂曲。

(2)靜態(tài)變量導(dǎo)致內(nèi)存泄露

????????靜態(tài)變量存儲(chǔ)在方法區(qū)庶艾,它的生命周期從類加載開(kāi)始,到整個(gè)進(jìn)程結(jié)束擎勘。一旦靜態(tài)變量初始化后咱揍,它所持有的引用只有等到進(jìn)程結(jié)束才會(huì)釋放。

(3)非靜態(tài)內(nèi)部類導(dǎo)致內(nèi)存泄露

????????非靜態(tài)內(nèi)部類(包括匿名內(nèi)部類)默認(rèn)就會(huì)持有外部類的引用棚饵,當(dāng)非靜態(tài)內(nèi)部類對(duì)象的生命周期比外部類對(duì)象的生命周期長(zhǎng)時(shí)煤裙,就會(huì)導(dǎo)致內(nèi)存泄露。

(4)未取消注冊(cè)或回調(diào)導(dǎo)致內(nèi)存泄露

???????? 比如我們?cè)贏ctivity中注冊(cè)廣播噪漾,如果在Activity銷毀后不取消注冊(cè)硼砰,那么這個(gè)廣播會(huì)一直存在系統(tǒng)中,同上面所說(shuō)的非靜態(tài)內(nèi)部類一樣持有Activity引用欣硼,導(dǎo)致內(nèi)存泄露题翰。因此注冊(cè)廣播后在Activity銷毀后一定要取消注冊(cè)。

(5)Timer和TimerTask導(dǎo)致內(nèi)存泄露

(6)集合中對(duì)象未清理造成內(nèi)存泄漏

???????? 這個(gè)比較好理解诈胜,如果一個(gè)對(duì)象放入到ArrayList豹障、HashMap等集合中,這個(gè)集合就會(huì)持有該對(duì)象的引用焦匈。當(dāng)我們不再需要這個(gè)對(duì)象時(shí)血公,也并沒(méi)有將它從集合中移除,這樣只要集合還在使用(而此對(duì)象已經(jīng)無(wú)用了)缓熟,這個(gè)對(duì)象就造成了內(nèi)存泄露坞笙。并且如果集合被靜態(tài)引用的話,集合里面那些沒(méi)有用的對(duì)象更會(huì)造成內(nèi)存泄露了荚虚。所以在使用集合時(shí)要及時(shí)將不用的對(duì)象從集合remove薛夜,或者clear集合,以避免內(nèi)存泄漏版述。

(7)資源未關(guān)閉或釋放導(dǎo)致內(nèi)存泄露

????????在使用IO梯澜、File流或者Sqlite、Cursor等資源時(shí)要及時(shí)關(guān)閉渴析。這些資源在進(jìn)行讀寫(xiě)操作時(shí)通常都使用了緩沖晚伙,如果及時(shí)不關(guān)閉,這些緩沖對(duì)象就會(huì)一直被占用而得不到釋放俭茧,以致發(fā)生內(nèi)存泄露咆疗。因此我們?cè)诓恍枰褂盟鼈兊臅r(shí)候就及時(shí)關(guān)閉,以便緩沖能及時(shí)得到釋放母债,從而避免內(nèi)存泄露午磁。

(8)屬性動(dòng)畫(huà)造成內(nèi)存泄露

????????動(dòng)畫(huà)同樣是一個(gè)耗時(shí)任務(wù)尝抖,比如在Activity中啟動(dòng)了屬性動(dòng)畫(huà)(ObjectAnimator),但是在銷毀的時(shí)候迅皇,沒(méi)有調(diào)用cancle方法昧辽,雖然我們看不到動(dòng)畫(huà)了,但是這個(gè)動(dòng)畫(huà)依然會(huì)不斷地播放下去登颓,動(dòng)畫(huà)引用所在的控件搅荞,所在的控件引用Activity,這就造成Activity無(wú)法正常釋放框咙。因此同樣要在Activity銷毀的時(shí)候cancel掉屬性動(dòng)畫(huà)咕痛,避免發(fā)生內(nèi)存泄漏。

@Override

protected void onDestroy(){

????super.onDestroy();

????mAnimator.cancel();

}


(9)WebView造成內(nèi)存泄露

????????關(guān)于WebView的內(nèi)存泄露喇嘱,因?yàn)閃ebView在加載網(wǎng)頁(yè)后會(huì)長(zhǎng)期占用內(nèi)存而不能被釋放暇检,因此我們?cè)贏ctivity銷毀后要調(diào)用它的destory()方法來(lái)銷毀它以釋放內(nèi)存。

具體可以查看這里:Android內(nèi)存優(yōu)化——常見(jiàn)內(nèi)存泄露及優(yōu)化方案

4.adapter實(shí)現(xiàn)的兩種方法婉称?

? ? ? ? 這個(gè)問(wèn)題看到的時(shí)候有點(diǎn)懵块仆,因?yàn)槠綍r(shí)間使用adapter的時(shí)候都是繼承自BaseAdapter實(shí)現(xiàn)Adapter,可能他們想問(wèn)的是這個(gè)問(wèn)題

設(shè)計(jì)模式(五)適配器模式Adapter(結(jié)構(gòu)型)因?yàn)椴恢浪悦嬖囈话惆懔送醢担^續(xù)努力悔据!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市俗壹,隨后出現(xiàn)的幾起案子科汗,更是在濱河造成了極大的恐慌,老刑警劉巖绷雏,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件头滔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡涎显,警方通過(guò)查閱死者的電腦和手機(jī)坤检,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)期吓,“玉大人早歇,你說(shuō)我怎么就攤上這事√智冢” “怎么了箭跳?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)潭千。 經(jīng)常有香客問(wèn)我谱姓,道長(zhǎng),這世上最難降的妖魔是什么刨晴? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任屉来,我火速辦了婚禮路翻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奶躯。我一直安慰自己,他們只是感情好亿驾,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布嘹黔。 她就那樣靜靜地躺著,像睡著了一般莫瞬。 火紅的嫁衣襯著肌膚如雪儡蔓。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天疼邀,我揣著相機(jī)與錄音喂江,去河邊找鬼。 笑死旁振,一個(gè)胖子當(dāng)著我的面吹牛获询,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拐袜,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼吉嚣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蹬铺?” 一聲冷哼從身側(cè)響起尝哆,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎甜攀,沒(méi)想到半個(gè)月后秋泄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡规阀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年恒序,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谁撼。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奸焙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出彤敛,到底是詐尸還是另有隱情与帆,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布墨榄,位于F島的核電站玄糟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏袄秩。R本人自食惡果不足惜阵翎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一逢并、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧郭卫,春花似錦砍聊、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至词疼,卻和暖如春俯树,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贰盗。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工许饿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人舵盈。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓陋率,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親秽晚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子翘贮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • java 接口的意義-百度 規(guī)范、擴(kuò)展爆惧、回調(diào) 抽象類的意義-樂(lè)視 為其子類提供一個(gè)公共的類型封裝子類中得重復(fù)內(nèi)容定...
    交流電1582閱讀 2,212評(píng)論 0 11
  • Markdown 語(yǔ)法和 MWeb 寫(xiě)作使用說(shuō)明 Markdown 的設(shè)計(jì)哲學(xué) Markdown 的目標(biāo)是實(shí)現(xiàn)「易...
    Smallwolf_JS閱讀 398評(píng)論 0 1
  • 制造與解釋流行現(xiàn)象的方法論狸页,可結(jié)合《定位》一書(shū)理解流行產(chǎn)品的誕生。 流行潮流的誕生并不是不可琢磨的扯再,而是存在某一個(gè)...
    Arthurrrrrr閱讀 190評(píng)論 0 0
  • 回顧上周我們掌握了用SQL語(yǔ)言創(chuàng)建數(shù)據(jù)庫(kù)以及數(shù)據(jù)表的方法芍耘,首先我們嘗試創(chuàng)建數(shù)據(jù)庫(kù)和表用于今天的學(xué)習(xí)。 查詢基礎(chǔ) 從...
    陳昱熹閱讀 433評(píng)論 0 4
  • 她是漢文帝皇后熄阻、漢景帝生母斋竞,是歷史上大名鼎鼎的竇太后。很多人對(duì)她的傳奇一生已有所了解秃殉。但少有人知道的是坝初,她是景帝朝...
    史事拾遺閱讀 1,259評(píng)論 1 3