第一篇:Android面試題(十一)
Android 面試題(有詳細(xì)答案)
附帶答案,共100分
一、選擇題(30題,每題1.5分,共45分)
1.java.io包中定義了多個流類型來實現(xiàn)輸入和輸出功能,可以從不同的角度對其進(jìn)行分類,按功能分為:(c),如果為讀取的內(nèi)容進(jìn)行處理后再輸出,需要使用下列哪種流?()
A、輸入流和輸出流B、字節(jié)流和字符流C、節(jié)點流和處理流
D、File streamE、Pipe streamF、Random streamG、Filter stream
2.下列代碼的執(zhí)行結(jié)果是:()
public class Test3{
public static void main(String args[]){
System.out.print(100%3);
System.out.print(“,”);
System.out.println(100%3.0);
}
}
A、1,1
B、1,1.0
C、1.0,1
D、1.0,1.0
3.在繼承中,關(guān)于構(gòu)造方法的說明,下列說法錯誤的是()
A、子類無條件的繼承父類的無參構(gòu)造方法,B、子類可以引用父類中的有參構(gòu)造方法,使用super關(guān)鍵字,C、如果子類沒有構(gòu)造方法,則父類無參構(gòu)造方法作為自已的構(gòu)造方法,D、如果子類有無參構(gòu)造方法,而父類的無參構(gòu)造方法則被覆蓋。
4.以下程序的運(yùn)行結(jié)果為()
public class IfTest{
public static void main(String args[]){
int x=3;
int y=1;
if(x==y)
System.out.println(“Not equal”);
else
System.out.println(“Equal”);
}
}
A、Not equalB、EqualC、無輸出D、編譯出錯
5.Java語言中字符串“學(xué)Java”所占的內(nèi)存空間是()
A.6個字節(jié)
B.7個字節(jié)
C.10個字節(jié)
D.11個字節(jié)
6.關(guān)于下列程序段的輸出結(jié)果,說法正確的是:()
public class MyClass{
static int i;
public static void main(String argv[]){
System.out.println(i);
}
}
A、有錯誤,變量i沒有初始化。
B、null
C、1
D、0
7.下列哪些語句關(guān)于內(nèi)存回收的說明是正確的?()
A、程序員必須創(chuàng)建一個線程來釋放內(nèi)存
B、內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存
C、內(nèi)存回收程序允許程序員直接釋放內(nèi)存
D、內(nèi)存回收程序可以在指定的時間釋放內(nèi)存對象
8.下面異常是屬于Runtime Exception 的是()(多選)
A、ArithmeticException
B、IllegalArgumentException
C、NullPointerException
D、BufferUnderflowException
9.Math.round(11.5)等于多少().Math.round(-11.5)等于多少().A、11 ,-11B、11 ,-12C、12 ,-11D、12 ,-12
10.下列程序段的輸出結(jié)果是:()
void complicatedexpression_r(){
int x=20, y=30;
boolean b;
b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60;
System.out.println(b);
}
A、trueB、falseC、1D、0
11.activity對一些資源以及狀態(tài)的操作保存,最好是保存在生命周期的哪個函數(shù)中進(jìn)行
()
A、onPause()B、onCreate()C、onResume()D、onStart()
12.Intent傳遞數(shù)據(jù)時,下列的數(shù)據(jù)類型哪些可以被傳遞()(多選)
A、SerializableB、charsequenceC、ParcelableD、Bundle
13.android 中下列屬于Intent的作用的是()
A、實現(xiàn)應(yīng)用程序間的數(shù)據(jù)共享
B、是一段長的生命周期,沒有用戶界面的程序,可以保持應(yīng)用在后臺運(yùn)行,而不會
因為切換頁面而消失
C、可以實現(xiàn)界面間的切換,可以包含動作和動作數(shù)據(jù),連接四大組件的紐帶
D、處理一個應(yīng)用程序整體性的工作
14.下列屬于SAX解析xml文件的優(yōu)點的是()
A、將整個文檔樹在內(nèi)存中,便于操作,支持刪除,修改,重新排列等多種功能
B、不用事先調(diào)入整個文檔,占用資源少
C、整個文檔調(diào)入內(nèi)存,浪費時間和空間
D、不是長久駐留在內(nèi)存,數(shù)據(jù)不是持久的,事件過后,若沒有保存數(shù)據(jù),數(shù)據(jù)就會
消失
15.下面的對自定style的方式正確的是()
A、
B、
C、
D、
16.在android中使用Menu時可能需要重寫的方法有()。(多選)
A、onCreateOptionsMenu()
B、onCreateMenu()
C、onOptionsItemSelected()
D、onItemSelected()
17.在SQL Server Management Studio 中運(yùn)行下列T-SQL語句,其輸出值()。
SELECT @@IDENTITY
A、可能為0.1
B、可能為3
C、不可能為-100
D、肯定為0
18.在SQL Server 2005中運(yùn)行如下T-SQL語句,假定SALES表中有多行數(shù)據(jù),執(zhí)行查詢之后的結(jié)果是()。
BEGIN TRANSACTION A
Update SALES Set qty=30 WHERE qty<30
BEGIN TRANSACTION B
Update SALES Set qty=40 WHERE qty<40
Update SALES Set qty=50 WHERE qty<50
Update SALES Set qty=60 WHERE qty<60
COMMIT TRANSACTION B
COMMIT TRANSACTION A
A、SALES表中qty列最小值大于等于30
B、SALES表中qty列最小值大于等于40
C、SALES表中qty列的數(shù)據(jù)全部為50
D、SALES表中qty列最小值大于等于60
19.在android中使用SQLiteOpenHelper這個輔助類時,可以生成一個數(shù)據(jù)庫,并可以對數(shù)
據(jù)庫版本進(jìn)行管理的方法可以是()
A、getWriteableDatabase()
B、getReadableDatabase()
C、getDatabase()
D、getAbleDatabase()
20.android 關(guān)于service生命周期的onCreate()和onStart()說法正確的是()(多選題)
A、當(dāng)?shù)谝淮螁拥臅r候先后調(diào)用onCreate()和onStart()方法
B、當(dāng)?shù)谝淮螁拥臅r候只會調(diào)用onCreate()方法
C、如果service已經(jīng)啟動,將先后調(diào)用onCreate()和onStart()方法
D、如果service已經(jīng)啟動,只會執(zhí)行onStart()方法,不在執(zhí)行onCreate()方法
21.下面是屬于GLSurFaceView特性的是()(多選)
A、管理一個surface,這個surface就是一塊特殊的內(nèi)存,能直接排版到android的視圖view上。
B、管理一個EGL display,它能讓opengl把內(nèi)容渲染到上述的surface上。
C、讓渲染器在獨立的線程里運(yùn)作,和UI線程分離。
D、可以直接從內(nèi)存或者DMA等硬件接口取得圖像數(shù)據(jù)
22.下面在AndroidManifest.xml文件中注冊BroadcastReceiver方式正確的是()
A、
android:name=“android.provider.action.NewBroad”/> B、 android:name=“android.provider.action.NewBroad”/> C、 android:name=“android.provider.action.NewBroad”/> D、 android:name=“android.provider.action.NewBroad”/> 23.關(guān)于ContenValues類說法正確的是() A、他和Hashtable比較類似,也是負(fù)責(zé)存儲一些名值對,但是他存儲的名值對當(dāng)中的名是String類型,而值都是基本類型 B、他和Hashtable比較類似,也是負(fù)責(zé)存儲一些名值對,但是他存儲的名值對當(dāng)中的名是任意類型,而值都是基本類型 C、他和Hashtable比較類似,也是負(fù)責(zé)存儲一些名值對,但是他存儲的名值對當(dāng)中的名,可以為空,而值都是String類型 D、他和Hashtable比較類似,也是負(fù)責(zé)存儲一些名值對,但是他存儲的名值對當(dāng)中的名是String類型,而值也是String類型 24.我們都知道Hanlder是線程與Activity通信的橋梁,如果線程處理不當(dāng),你的機(jī)器就會變得越慢,那么線程銷毀的方法是() A、onDestroy() B、onClear() C、onFinish() D、onStop() 25.下面退出Activity錯誤的方法是() A、finish() B、拋異常強(qiáng)制退出 C、System.exit() D、onStop() 26.下面屬于android的動畫分類的有()(多項) A、TweenB、Frame C、Draw D、Animation 27.下面關(guān)于Android dvm的進(jìn)程和Linux的進(jìn)程,應(yīng)用程序的進(jìn)程說法正確的是() A、DVM指dalivk的虛擬機(jī).每一個Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,不一定擁有一個獨立的Dalvik虛擬機(jī)實例.而每一個DVM都是在Linux 中的一個進(jìn)程,所以說可以認(rèn)為是同一個概念.B、DVM指dalivk的虛擬機(jī).每一個Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,不一定擁有一個獨立的Dalvik虛擬機(jī)實例.而每一個DVM不一定都是在Linux 中的一個進(jìn)程,所以說不是一個概念.C、DVM指dalivk的虛擬機(jī).每一個Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個獨立的Dalvik虛擬機(jī)實例.而每一個DVM不一定都是在Linux 中的一個進(jìn)程,所以說不是一個概念.D、DVM指dalivk的虛擬機(jī).每一個Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個獨立的Dalvik虛擬機(jī)實例.而每一個DVM都是在Linux 中的一個進(jìn)程,所以說可以認(rèn)為是同一個概念.28.Android項目工程下面的assets目錄的作用是什么 A、放置應(yīng)用到的圖片資源。 B、主要放置多媒體等數(shù)據(jù)文件 C、放置字符串,顏色,數(shù)組等常量數(shù)據(jù) D、放置一些與UI相應(yīng)的布局文件,都是xml文件 29..關(guān)于res/raw目錄說法正確的是() A、這里的文件是原封不動的存儲到設(shè)備上不會轉(zhuǎn)換為二進(jìn)制的格式 B、這里的文件是原封不動的存儲到設(shè)備上會轉(zhuǎn)換為二進(jìn)制的格式 C、這里的文件最終以二進(jìn)制的格式存儲到指定的包中 D、這里的文件最終不會以二進(jìn)制的格式存儲到指定的包中 30.下列對android NDK的理解正確的是() A、NDK是一系列工具的集合B、NDK 提供了一份穩(wěn)定、功能有限的 API 頭文件聲明。 C、使 “Java+C” 的開發(fā)方式終于轉(zhuǎn)正,成為官方支持的開發(fā)方式 D、NDK 將是 Android平臺支持 C 開發(fā)的開端 二.填空題(每題2分,共20分) 1.我們用___ ____來定義一個整數(shù),用___ ____來定義一個字符類型,稱為原始數(shù)據(jù)類型。 2.android中常用的四個布局是?s 3.android 的四大組件是? 4.java.io包中的__________和______________類主要用于對對象(Object)的讀寫。 5.android 中service的實現(xiàn)方法是:_______-和___________-。 6.activity一般會重載7個方法用來維護(hù)其生命周期,除了onCreate(),onStart(),onDestory()外還有_______-,_________ ,_________ ,_____________。 7.android的數(shù)據(jù)存儲的方式____________,___________,________ ,_______-,________。 8.當(dāng)啟動一個Activity并且新的Activity執(zhí)行完后需要返回到啟動它的Activity來執(zhí)行的回調(diào)函數(shù)是_____________()。 9.請使用命令行的方式創(chuàng)建一個名字為myAvd,sdk版本為2.2,sd卡是在d盤的根目錄下,名字為scard.img,并指定屏幕大小HVGA.____________________________________。 10.程序運(yùn)行的結(jié)果是:_______________。 public class Example{ String str=new String(“good”); char[]ch={'a','b','c'}; public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str+“ and ”); Sytem.out.print(ex.ch); } public void change(String str,char ch[]){ str=“test ok”; ch[0]='g'; } } 三 簡答編程題(共35分) 1簡述Android應(yīng)用程序結(jié)構(gòu)是哪些?(7分) Android應(yīng)用程序結(jié)構(gòu)是:請繼承SQLiteOpenHelper實現(xiàn):(10分) 1).創(chuàng)建一個版本為1的“diaryOpenHelper.db”的數(shù)據(jù)庫,2).同時創(chuàng)建一個 “diary” 表(包含一個_id主鍵并自增長,topic字符型100長度,content字符型1000長度) 3).在數(shù)據(jù)庫版本變化時請刪除diary表,并重新創(chuàng)建出diary表。 3.頁面上現(xiàn)有ProgressBar控件progressBar,請用書寫線程以10秒的的時間完成其進(jìn)度顯示工作。(10分) 選擇題(包括多選) 1.下列哪些語句關(guān)于內(nèi)存回收的說明是正確的? A、程序員必須創(chuàng)建一個線程來釋放內(nèi)存 B、內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存 C、內(nèi)存回收程序允許程序員直接釋放內(nèi)存 D、內(nèi)存回收程序可以在指定的時間釋放內(nèi)存對象 2.下面異常是屬于Runtime Exception 的是 A、ArithmeticException B、IllegalArgumentException C、NullPointerException D、BufferUnderflowException 3.Math.round(-11.5)等于多少 A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-1 24.下列程序段的輸出結(jié)果是: void complicatedexpression_r(){ int x=20, y=30; boolean b; b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60; System.out.println(b); } A、true B、false C、1 D、011.activity 5.對一些資源以及狀態(tài)的操作保存,最好是保存在生命周期的哪個函數(shù)中進(jìn)行 A、onPause() B、onCreate() C、onResume() D、onStart() 6.Intent傳遞數(shù)據(jù)時,下列的數(shù)據(jù)類型哪些可以被傳遞 A、Serializable B、charsequence C、Parcelable D、Bundle 7.android 中下列屬于Intent的作用的是 A、實現(xiàn)應(yīng)用程序間的數(shù)據(jù)共享 B、是一段長的生命周期,沒有用戶界面的程序,可以保持應(yīng)用在后臺運(yùn)行,而不會因為切換頁面而消失 C、可以實現(xiàn)界面間的切換,可以包含動作和動作數(shù)據(jù),連接四大組件的紐帶 D、處理一個應(yīng)用程序整體性的工作 8.下列屬于SAX解析xml文件的優(yōu)點的是 A、將整個文檔樹在內(nèi)存中,便于操作,支持刪除,修改,重新排列等多種功能 B、不用事先調(diào)入整個文檔,占用資源少 C、整個文檔調(diào)入內(nèi)存,浪費時間和空間 D、不是長久駐留在內(nèi)存,數(shù)據(jù)不是持久的,事件過后,若沒有保存數(shù)據(jù),數(shù)據(jù)就會 消失 9.在android中使用SQLiteOpenHelper這個輔助類時,可以生成一個數(shù)據(jù)庫,并可以對數(shù)據(jù)庫版本進(jìn)行管理的方法可以是() A、getWriteableDatabase() B、getReadableDatabase() C、getDatabase() D、getAbleDatabase() 10.android 關(guān)于service生命周期的onCreate()和onStart()說法正確的是 A、當(dāng)?shù)谝淮螁拥臅r候先后調(diào)用onCreate()和onStart()方法 B、當(dāng)?shù)谝淮螁拥臅r候只會調(diào)用onCreate()方法 C、如果service已經(jīng)啟動,將先后調(diào)用onCreate()和onStart()方法 D、如果service已經(jīng)啟動,只會執(zhí)行onStart()方法,不在執(zhí)行onCreate()方法 11.下面是屬于GLSurFaceView特性的是 A、管理一個surface,這個surface就是一塊特殊的內(nèi)存,能直接排版到android的視圖view上。 B、管理一個EGL display,它能讓opengl把內(nèi)容渲染到上述的surface上。 C、讓渲染器在獨立的線程里運(yùn)作,和UI線程分離。 D、可以直接從內(nèi)存或者DMA等硬件接口取得圖像數(shù)據(jù) 12.下面在AndroidManifest.xml文件中注冊BroadcastReceiver方式正確的A、 android:name=“android.provider.action.NewBroad”/> B、 android:name=“android.provider.action.NewBroad”/> C、 android:name=“android.provider.action.NewBroad”/> D、 android:name=“android.provider.action.NewBroad”/> 13.關(guān)于ContenValues類說法正確的是 A、他和Hashtable比較類似,也是負(fù)責(zé)存儲一些名值對,但是他存儲的名值對當(dāng)中的名是String類型,而值都是基本類型 B、他和Hashtable比較類似,也是負(fù)責(zé)存儲一些名值對,但是他存儲的名值對當(dāng)中的名是任意類型,而值都是基本類型 C、他和Hashtable比較類似,也是負(fù)責(zé)存儲一些名值對,但是他存儲的名值對當(dāng)中的名,可以為空,而值都是String類型 D、他和Hashtable比較類似,也是負(fù)責(zé)存儲一些名值對,但是他存儲的名值對當(dāng)中的名是String類型,而值也是String類型 14.我們都知道Hanlder是線程與Activity通信的橋梁,如果線程處理不當(dāng),你的機(jī)器就會變得越慢,那么線程銷毀的方法是 A、onDestroy() B、onClear() C、onFinish() D、onStop() 15.下面退出Activity錯誤的方法是 A、finish() B、拋異常強(qiáng)制退出 C、System.exit() D、onStop() 16.下面屬于android的動畫分類的有 A、Tween B、Frame C、Draw D、Animation 17.下面關(guān)于Android dvm的進(jìn)程和Linux的進(jìn)程,應(yīng)用程序的進(jìn)程說法正確的是 A、DVM指dalivk的虛擬機(jī).每一個Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,不一定擁有一個獨立的Dalvik虛擬機(jī)實例.而每一個DVM都是在Linux中的一個進(jìn)程,所以說可以認(rèn)為是同一個概念.B、DVM指dalivk的虛擬機(jī).每一個Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,不一定擁有一個獨立的Dalvik虛擬機(jī)實例.而每一個DVM不一定都是在Linux中的一個進(jìn)程,所以說不是一個概念.C、DVM指dalivk的虛擬機(jī).每一個Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個獨立的Dalvik虛擬機(jī)實例.而每一個DVM不一定都是在Linux中的一個進(jìn)程,所以說不是一個概念.D、DVM指dalivk的虛擬機(jī).每一個Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個獨立的 Dalvik虛擬機(jī)實例.而每一個DVM都是在Linux中的一個進(jìn)程,所以說可以認(rèn)為是同一個概念.18.Android項目工程下面的assets目錄的作用是什么 A、放置應(yīng)用到的圖片資源。 B、主要放置多媒體等數(shù)據(jù)文件 C、放置字符串,顏色,數(shù)組等常量數(shù)據(jù) D、放置一些與UI相應(yīng)的布局文件,都是xml文件 19.關(guān)于res/raw目錄說法正確的是 A、這里的文件是原封不動的存儲到設(shè)備上不會轉(zhuǎn)換為二進(jìn)制的格式 B、這里的文件是原封不動的存儲到設(shè)備上會轉(zhuǎn)換為二進(jìn)制的格式 C、這里的文件最終以二進(jìn)制的格式存儲到指定的包中 D、這里的文件最終不會以二進(jìn)制的格式存儲到指定的包中 20.下列對android NDK的理解正確的是 A、NDK是一系列工具的集合B、NDK 提供了一份穩(wěn)定、功能有限的 API 頭文件聲明。 C、使 “Java+C” 的開發(fā)方式終于轉(zhuǎn)正,成為官方支持的開發(fā)方式 D、NDK 將是 Android平臺支持 C 開發(fā)的開端 問答題: 1.系統(tǒng)上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?請說明原由。 2.Activity和Task的啟動模式有哪些? 每種含義是什么? 3.SQLite支持事務(wù)嗎? 添加刪除如何提高性能? 4.對Intent、Activity、廣播、Service等的理解 5、handler機(jī)制的原理 Android面試題總結(jié) 1.簡述Activity的生命周期? 1)Activity的生命周期通過7個生命周期方法onCreate(),onRestart(), onStart(), onResume(), onPause(),onStop(),onDestroy()來體現(xiàn)。2)其中6個生命周期方法是成對對應(yīng)起來的,哪里創(chuàng)建的對象,一般應(yīng)該在其對應(yīng)的方法中銷毀。 onCreate()--onDestroy()onStart()--onStop()onResume()--onPause()3)當(dāng)程序啟動之后,第一個Activity經(jīng)過的生命周期方法是:onCreate()→onStart()→ onResume()方法,當(dāng)?shù)谝粋€Activity A啟動第二個Activity B的時候(備注:第二個Activity完全遮蓋住第一個Activity,并且這個過程中沒有出現(xiàn)點擊Home鍵,或者第一個Activity被殺死等異常情況,并且兩個Activity的啟動模式是標(biāo)準(zhǔn)模式),這兩個Activity經(jīng)歷的生命周期方法是: A onPause()→ B onCreate()→ B onStart()→ B onResume()→ A onStop()→(此時Activity A已經(jīng)在回退棧的最低端,Activity B已經(jīng)在Activity A的上面,在回退棧的最頂端)當(dāng)通過點擊后退鍵退出Activity B的時候: (此時Activity B 彈出回退棧)→ B onPause()→ A onRestart()→ A onStart()→ A onResume()→ B onStop()→ B onDestroy()此時B 被銷毀 2.簡述Service的生命周期? 1).如果在Activity中通過調(diào)用startService()方法啟動一個Service的話,那么生命周期是: onCreate()→ onStartCommand()→ 運(yùn)行中 →(如果自己或者客戶端(如Activity)調(diào)用了stop Service的方法的話)→ onDestroy()2).如果在Activity中通過調(diào)用bindService()方法啟動一個Service的話,那么生命周期是: onCreate()→ onBind()→ 運(yùn)行中 →(如果有客戶端(Activity)調(diào)用了unBindService()方法與Service解除綁定時)→ onUnbind()→ onDestroy()3.有幾種控件布局的方式? 1)RelativeLayout:相對布局,可以根據(jù)相對位置來調(diào)整控件的位置。推薦使用相對布局,更利于屏幕的自適應(yīng)。2)LinearLayout:線性布局,控件之間的水平排列或者垂直排列。但是如果要想構(gòu)建復(fù)雜布局,要進(jìn)行多層的LinearLayout布局嵌套,但是這樣會運(yùn)行布局載入效率。 3)FrameLayout:幀布局,控件與控件之間處于上下疊加的狀態(tài)。 備注:還有兩個已經(jīng)不怎么用的布局:TableLayout:表格布局 AbsoluteLayout 絕對布局。 布局實現(xiàn)方式有兩種:xml文件靜態(tài)實現(xiàn),代碼動態(tài)實現(xiàn)。 一般xml文件中可以實現(xiàn)布局控制的話,就不建議放在代碼中實現(xiàn)布局控制,因為在xml文件中實現(xiàn)布局控制,可以做到布局與代碼分離。4.有幾種數(shù)據(jù)存儲方式,分別是什么? 1)SQLite數(shù)據(jù)庫存儲結(jié)構(gòu)化數(shù)據(jù)。 2)文件存儲:分為內(nèi)部存儲和外部存儲(SD卡)兩種存儲方式。3)SharedPreferences共享參數(shù),鍵值對形式存儲。4)網(wǎng)絡(luò)存儲。 5.IntentService與Service有什么區(qū)別? IntentService是Service的子類 1)Service如果要處理異步請求(如耗時操作)的話,需要自己啟動一個worker thread,如果啟動多個worker thread來處理相關(guān)事務(wù)的話,各線程之間無法很好的控制。而IntentService可以將多個異步請求的Intent放入隊列中,封裝了一個開啟worker thread的onHandleIntent()方法,來依次處理放入隊列中的Intent,只有一個worker thread在運(yùn)行,同一時刻只有一個Intent被處理,當(dāng)一個Intent處理完了之后才會處理另外一個Intent。 2)Service可以通過startService()或者bindService()方法來啟動,而IntentService則是通過startService()方法來啟動。3)Service適合多線程處理異步請求。而IntentService則適合處理需要排隊的請求。 6.StartService與bindService之間的區(qū)別? 1)StartService啟動了Service之后無法與Activity之間進(jìn)行通信,與現(xiàn)有的Activity分離,即使Activity被殺掉了之后,Service還可以運(yùn)行,同時通過設(shè)置Service的粘性,還可以讓Service被殺掉之后,可以自啟動。而bindService啟動Service之后,與綁定的Activity之間有關(guān)系,可以依據(jù)Server/Client模式來進(jìn)行通信(binder客戶端主動請求模式,或者通過信使),但是無法設(shè)置Serrvice的粘性。2)StartService啟動的Service,Activity中可以調(diào)用stopService()方法來結(jié)束一個Service,或者通過Service自己調(diào)用stopSelf()方法來結(jié)束Service。而bindService只能通過Activity()來調(diào)用unbindService()方法來結(jié)束Service,Service會調(diào)用onUnBind()方法,以及onDestroy()方法。 7.ArrayAdapter BaseAdapter CursorAdapter的區(qū)別? ArrayAdpter CursorAdapter都是BaseAdapter的子類。都是用來填充那些含有item的控件。 1)主要區(qū)別是數(shù)據(jù)來源不同。ArrayAdapter數(shù)據(jù)來源是Object數(shù)組,CursorAdapter數(shù)據(jù)來源是數(shù)據(jù)庫的Cursor,而BaseAdapter適合創(chuàng)建復(fù)雜自定義的item內(nèi)容,通過繼承BaseAdapter類,重寫相關(guān)方法來實現(xiàn)。 8.Handler與Looper之間的關(guān)系? 1)Handler和Looper的關(guān)系就好比,坐地鐵過安檢時候:每一個人可以理解為一個Handler,一個人的一個或者多個東西看做Message而循環(huán)滾動的檢查臺裝置可以看做是Looper,而要檢查的東西排成隊列可以理解為MessageQueue消息隊列。 2)Looper是Handler和MessageQuene之間的橋梁,Looper將Handler發(fā)送過的消息放入MessageQueue,同時Looper也將MessageQueue中的Message發(fā)送給Handler來處理。 9.res文件夾與assets文件夾有什么區(qū)別? 1)res文件夾中的資源在會在R.java文件中生成ID,代碼中可以直接通過R.id的形式來訪問。而assets文件夾中的資源不會在R.java文件中生成ID,需要通過AssetsManager通過IO流的方式來訪問。 2)res文件夾中的文件會被壓縮,而assets文件中的文件不會被壓縮。 3)Res不能自定義目錄名,不支持多層目錄。而assets支持自定義目錄名,支持多層目錄。 10.廣播接收器有幾種注冊方式,分別是什么? 1)動態(tài)注冊:在代碼中注冊,創(chuàng)建一個IntentFilter(意圖過濾器)對象,設(shè)置想要就收的廣播,在onCreate()方法中通過調(diào)用registerReceiver()方法來注冊廣播接收器,在onDestroy()方法中通過調(diào)用unregisterReceiver()方法來注銷廣播接收器。2)靜態(tài)注冊:在AndroidManifest.xml文件中注冊, 饞貓工作室 1.簡要解釋一下Activity、Service、Broadcase、BroadcaseReceiver、ContentProvider、ContentResolver、Intent、Intent filter 2.說一下項目中最擅長的方向。例如:界面美化,網(wǎng)絡(luò)請求,數(shù)據(jù)存儲,Camera 相關(guān),圖片處理,視頻方向。簡述下你用過哪些技術(shù),或者是開源包。 3.Handler機(jī)制和原理 4.寫出幾種你認(rèn)為可以提高Android程序運(yùn)行效率的方法 5.AsyncTask 的異步機(jī)制和普通線程有什么區(qū)別,分別有哪些優(yōu)缺點。 6.多線程間通信和多進(jìn)程之間通信有什么不同,分別怎么實現(xiàn)? 7.請介紹下Android的數(shù)據(jù)存儲方式。請寫出熟悉程度,并對應(yīng)舉例適合不同 存儲方式的數(shù)據(jù) 8.說幾個你認(rèn)為非常好的軟件或者游戲,概括下優(yōu)缺點并且說下如果讓你開發(fā) 這個軟件,你如何構(gòu)架,可能用到哪些技術(shù)點,對于你來說有哪些技術(shù)難點。 9.簡述三個你遇到印象最深刻的bug,你是如何解決的,是否完全解決問題。 10.含有圖片的listview 如何進(jìn)行優(yōu)化其流暢度和圖片加載方向的內(nèi)存管理 11.如果讓你獨立完成一個項目(此項目11個界面,需要和網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交互,需要在本地采用多種方式進(jìn)行數(shù)據(jù)存儲,有圖片等相關(guān)操作),請簡述下你工作順序。 12.如果讓你分配給3個同事一個項目(此項目11個界面,需要和網(wǎng)絡(luò)進(jìn)行數(shù)據(jù) 交互,需要在本地采用多種方式進(jìn)行數(shù)據(jù)存儲,有圖片等相關(guān)操作),請簡述下你將如何分配。 13.ScrollView嵌套listview是否會出現(xiàn)bug,為什么會出現(xiàn)bug,如果解決 14.說說mvc模式的原理,它在android中怎樣運(yùn)用,你在具體工作中怎樣具體 運(yùn)用mvc模式的。 15.編程題: 用最有效率的方法算出2乘以128等於幾? 16.Android 中如何調(diào)用c++的方法。你是否可以熟練使用NDK編程 17.用Java語言實現(xiàn)的各種排序,包括插入排序、冒泡排序、選擇排序、Shell 排序、快速排序、歸并排序、堆排序等。18.寫出怎么把前邊的表查詢成后邊結(jié)果的格式的Sqlite語句 yearmonth amount結(jié)果 199111.1year m1m2m3m4 199121.21991 1.1 1.2 1.3 1.4 199131.31992 2.1 2.2 2.3 2.4 199141.4 199212.1 199222.2 199232.3 199242.4 19.寫一個最簡單的外連接查詢(表名1:a 表名2:b)的sqlite語句 20.封裝正式版APK時候有那些注意事項,上線到多個應(yīng)用商城需要注意那些。 注:請認(rèn)真選擇其中6到10題,用簡練語言作答。 饞貓工作室 小升初面試題十一 第一部分: 二選一請回答 1.請自我介紹并且談?wù)勀阍诘却龝r的心情? 2.你想去一個什么樣的學(xué)校?喜歡住宿嗎? 語文積累 1.請你背一首描寫秋天的詩? 2.請背誦含有“ 鳥”“ 雪”的古詩詞各三句。 3.介紹你最喜歡的一本書。 第二部分: 1.0.75+9.75+99.75+999.75+1= 2.三個數(shù)的平均數(shù)是18,三個數(shù)的比是1:2:3,問最大的一個數(shù)是多少? 3.一個長20厘米,寬16厘米的長方形,剪去一個長10厘米,寬6厘米的長方形,剪完以后,周長最大是多少?最小是多少? 4.請你用四個數(shù)“4、、6、10、3,使結(jié)果是24? 第三部分: ① What do you think of your school? ② ②Tell me something about your school life?第二篇:android面試題
第三篇:Android面試題總結(jié)
第四篇:華為Android面試題
第五篇:2014小升初面試題十一