- 相關(guān)推薦
android面試題(6)
找到對(duì)應(yīng)的瀏覽器的意圖,傳遞數(shù)據(jù)URI , 激活這個(gè)意圖
Intent intent = new Intent();
intent.setClassName(packageName, className);
Intent.setdata(uri);
33. 對(duì)android主線程的運(yùn)用和理解。
主ui線程不能執(zhí)行耗時(shí)的操作,
34. 對(duì)android虛擬機(jī)的理解,包括內(nèi)存管理機(jī)制垃圾回收機(jī)制。
虛擬機(jī)很小,空間很小,談?wù)勔苿?dòng)設(shè)備的虛擬機(jī)的大小限制 16M ,
談?wù)劶虞d圖片的時(shí)候怎么處理大圖片的,
垃圾回收,沒(méi)有引用的對(duì)象,在某個(gè)時(shí)刻會(huì)被系統(tǒng)gc掉.
System.gc(); 不是立刻去執(zhí)行垃圾回收.
手機(jī)電視. 視頻點(diǎn)播. Onstop() 通知gc();
別的界面圖片 白板.
遇到一個(gè)不可復(fù)現(xiàn)的bug, 不解決 won't fix
35. Framework工作方式及原理,Activity是如何生成一個(gè)view的,機(jī)制是什么。
反射 , 配置文件
可以講下activity的源碼,比如說(shuō) 每個(gè)activity里面都有window.callback和keyevent.callback,一些回調(diào)的接口或者函數(shù)吧. 框架把a(bǔ)ctivity創(chuàng)建出來(lái)就會(huì)調(diào)用里面的這些回調(diào)方法,會(huì)調(diào)用activity生命周期相關(guān)的方法.
setContentView();
普通的情況:
Activity創(chuàng)建一個(gè)view是通過(guò) ondraw 畫(huà)出來(lái)的, 畫(huà)這個(gè)view之前呢,還會(huì)調(diào)用onmeasure方法來(lái)計(jì)算顯示的大小.
Surfaceview 直接操作硬件 opengl .
圖像要想被顯示到界面上, 需要設(shè)備顯卡, 顯存.
寫(xiě)到顯存.
36. android本身的一些限制,比如apk包大小限制,讀取大文件時(shí)的時(shí)間限。
這個(gè)問(wèn)題問(wèn)的有問(wèn)題, apk包大小限制不好說(shuō),
極品飛車(chē)有100M 還是能裝到手機(jī)上,
世面google market 上大程序 主程序 很小 5~10M 下載sdcard
15分鐘之內(nèi) 申請(qǐng)退款
apk包,精簡(jiǎn)包, 素材存放在服務(wù)器. 游戲程序.
讀大文件的時(shí)間限制應(yīng)該是main線程里面的時(shí)間限制吧.5秒.
37. 如何加載的音樂(lè)信息,如何改善其效率。
Android提供mediascanner,mediaStore等接口, 音樂(lè)文件的信息都會(huì)存放到系統(tǒng)的數(shù)據(jù)庫(kù)表中,可以通過(guò)content provider獲取,
顯示出來(lái),改善效率,是個(gè)常見(jiàn)問(wèn)題, 可以從以下幾個(gè)方面作答,
分批加載數(shù)據(jù), 延時(shí)加載數(shù)據(jù), 合理使用緩存等...
Java虛擬機(jī), 目標(biāo), 加快java程序執(zhí)行速度
預(yù)先加載一些 都會(huì)的使用的大的class的字節(jié)碼, 提前加載.
時(shí)間換時(shí)間
空間換時(shí)間
38. ListView如何提高其效率?
復(fù)用convertview , 歷史的view對(duì)象
異步加載數(shù)據(jù), 分頁(yè)加載數(shù)據(jù), onscallLinster();
Static class ViewHolder
使用靜態(tài)的view對(duì)象 避免創(chuàng)建過(guò)多的view.
把下載后的數(shù)據(jù)緩存到數(shù)據(jù)庫(kù)里
客戶端和服務(wù)器 協(xié)同 作戰(zhàn) .
Http 請(qǐng)求
If-modify-since : 檢查數(shù)據(jù)是否更新 1.html 2001年 302 拿緩存
39. 啟動(dòng)應(yīng)用后,改變系統(tǒng)語(yǔ)言,應(yīng)用的語(yǔ)言會(huì)改變么?
會(huì)
40. 啟動(dòng)一個(gè)程序,可以主界面點(diǎn)擊圖標(biāo)進(jìn)入,也可以從一個(gè)程序中跳轉(zhuǎn)過(guò)去,二者有什么區(qū)別?
區(qū)別是根據(jù)activity在manifest里面的配置,這個(gè)activity可能會(huì)放在不同的task棧里面
intent設(shè)置的flag flag_new_task
41. Android程序與Java程序的區(qū)別?
Android程序用android sdk開(kāi)發(fā),java程序用javasdk開(kāi)發(fā).
Android SDK引用了大部分的Java SDK,少數(shù)部分被Android SDK拋棄,比如說(shuō)界面部分,java.awt swing package除了java.awt.font被引用外,其他都被拋棄,在Android平臺(tái)開(kāi)發(fā)中不能使用。
android sdk 添加工具jar httpclient , pull openGL
將Java 游戲或者j2me程序移植到Android平臺(tái)的過(guò)程中,
Android SDK 與Java SDK的區(qū)別是很需要注意的地方。
1.6的 不支持 httpUrlconning 獲取 last-modified 信息的處理
simpleDataFormat
42. Android中Task任務(wù)棧的分配。
假如有三個(gè)Activity A B C,A跳到B,然后B跳到C,現(xiàn)在需要從C跳到A如何傳遞數(shù)據(jù)而且使效率最高呢?
首先我們來(lái)看下Task的定義,Google是這樣定義Task的:a task is what the user experiences as an "application." It's a group of related activities, arranged in a stack. A task is a stack of activities, not a class or an element in the manifest file. 這意思就是說(shuō)Task實(shí)際上是一個(gè)Activity棧,通常用戶感受的一個(gè)Application就是一個(gè)Task。從這個(gè)定義來(lái)看,Task跟Service或者其他Components是沒(méi)有任何聯(lián)系的,它只是針對(duì)Activity而言的。
Activity有不同的啟動(dòng)模式, 可以影響到task的分配
Task,簡(jiǎn)單的說(shuō),就是一組以棧的模式聚集在一起的Activity組件集合。它們有潛在的前后驅(qū)關(guān)聯(lián),新加入的Activity組件,位于棧頂,并僅有在棧頂?shù)腁ctivity,才會(huì)有機(jī)會(huì)與用戶進(jìn)行交互。而當(dāng)棧頂?shù)腁ctivity完成使命退出的時(shí)候,Task會(huì)將其退棧,并讓下一個(gè)將跑到棧頂?shù)腁ctivity來(lái)于用戶面對(duì)面,直至棧中再無(wú)更多Activity,Task結(jié)束。
事件 Task棧(粗體為棧頂組件)
點(diǎn)開(kāi)Email應(yīng)用,進(jìn)入收件箱(Activity A) A
選中一封郵件,點(diǎn)擊查看詳情(Activity B) AB
點(diǎn)擊回復(fù),開(kāi)始寫(xiě)新郵件(Activity C) ABC
寫(xiě)了幾行字,點(diǎn)擊選擇聯(lián)系人,進(jìn)入選擇聯(lián)系人界面(Activity D) ABCD
選擇好了聯(lián)系人,繼續(xù)寫(xiě)郵件 ABC
寫(xiě)好郵件,發(fā)送完成,回到原始郵件 AB
點(diǎn)擊返回,回到收件箱 A
退出Email程序 null
如上表所示,是一個(gè)實(shí)例。從用戶從進(jìn)入郵箱開(kāi)始,到回復(fù)完成,退出應(yīng)用整個(gè)過(guò)程的Task棧變化。這是一個(gè)標(biāo)準(zhǔn)的棧模式,對(duì)于大部分的狀況,這樣的Task模型,足以應(yīng)付,但是,涉及到實(shí)際的性能、開(kāi)銷(xiāo)等問(wèn)題,就會(huì)變得殘酷許多。
【android面試題(6)】相關(guān)文章:
android面試題目09-08
Android工程師的面試題08-07
Android工程師面試題10-24
Microsoft面試題09-04
iOS面試題07-10
公司面試題09-12
hibernate面試題10-18
英語(yǔ)面試題精選06-13
小升初面試題06-10