導語:下面是小編給大家整理的關於Android面試題,希望幫助到有需要的同學,歡迎大家一起來學習。
面試筆試題庫1
1.請描述下Activity的生命週期。
必呼叫的三個方法:onCreate() –> onStart() –> onResume(),用AAA表示
(1)父Activity啟動子Activity,子Actvity退出,父Activity呼叫順序如下
AAA –> onFreeze() –> onPause() –> onStop() –> onRestart() –> onStart(),onResume() …
(2)使用者點選Home,Actvity呼叫順序如下
AAA –> onFreeze() –> onPause() –> onStop() — Maybe –> onDestroy() – Maybe
(3)呼叫finish(), Activity呼叫順序如下
AAA –> onPause() –> onStop() –> onDestroy()
(4)在Activity上顯示dialog, Activity呼叫順序如下
AAA
(5)在父Activity上顯示透明的或非全屏的activity,Activity呼叫順序如下
AAA –> onFreeze() –> onPause()
(6)裝置進入睡眠狀態,Activity呼叫順序如下
AAA –> onFreeze() –> onPause()
2.如果後臺的Activity由於某原因被系統回收了,如何在被系統回收之前儲存當前狀態?
onSaveInstanceState()
當你的程式中某一個Activity A在執行時,主動或被動地執行另一個新的Activity B,這個時候A會執行onSaveInstanceState()。B完成以後又會來找A,這個時候就有兩種情況:一是A被回收,二是A沒有被回收,被回收的A就要重新呼叫onCreate()方法,不同於直接啟動的是這回onCreate()裡是帶上了引數savedInstanceState;而沒被收回的就直接執行onResume(),跳過onCreate()了。
3.如何將一個Activity設定成視窗的樣式。
在AndroidManifest.xml 中定義Activity的地方一句話android:theme="@android:style/Theme.Dialog"或android:theme="@android:style/Theme.Translucent"就變成半透明的
4.如何退出Activity?如何安全退出已呼叫多個Activity的Application?
對於單一Activity的應用來說,退出很簡單,直接finish()即可。
當然,也可以用killProcess()和System.exit()這樣的方法。
5.請介紹下Android中常用的五種佈局。
FrameLayout(框架佈局),LinearLayout (線性佈局),AbsoluteLayout(絕對佈局),RelativeLayout(相對佈局),TableLayout(表格佈局)
6.請介紹下Android的資料儲存方式。
一.SharedPreferences方式
二.檔案儲存方式
三.SQLite資料庫方式
四.內容提供器(Content provider)方式
五.網路儲存方式
7.請介紹下ContentProvider是如何實現資料共享的。
建立一個屬於你自己的Content provider或者將你的資料新增到一個已經存在的Content provider中,前提是有相同資料型別並且有寫入Content provider的許可權。
8.如何啟用Service,如何停用Service。
9.註冊廣播有幾種方式,這些方式有何優缺點?請談談Android引入廣播機制的用意。
10.請解釋下在單執行緒模型中Message、Handler、Message Queue、Looper之間的關係。
11.AIDL的全稱是什麼?如何工作?能處理哪些型別的資料?
12.請解釋下Android程式執行時許可權與檔案系統許可權的區別。
13.系統上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?請說明原由。
14.有一個一維整型陣列int[]data儲存的是一張寬為width,高為height的圖片畫素值資訊。請寫一個演算法,將該圖片所有的白色不透明(0xffffffff)畫素點的`透明度調整為50%。
15.你如何評價Android系統?優缺點。
面試筆試題庫2
一、選擇題(30題,每題1.5分,共45分)
1.java.io包中定義了多個流型別來實現輸入和輸出功能,可以從不同的角度對其進行分 類,按功能分為:(c),如果為讀取的內容進行處理後再輸出,需要使用下列哪種流?(g)
A、輸入流和輸出流 B、位元組流和字元流 C、節點流和處理流
D、File stream E、Pipe stream F、Random stream G、Filter stream
2.下列程式碼的執行結果是:(b)
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.在繼承中,關於構造方法的說明,下列說法錯誤的是(d)
A、子類無條件的繼承父類的無參構造方法,
B、子類可以引用父類中的有參構造方法,使用super關鍵字,
C、如果子類沒有構造方法,則父類無參構造方法作為自已的構造方法,
D、如果子類有無參構造方法,而父類的無參構造方法則被覆蓋。
4.以下程式的執行結果為( b)
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 equal B、Equal C、無輸出 D、編譯出錯
5.Java語言中字串“學Java”所佔的記憶體空間是(a)
A. 6個位元組
B. 7個位元組
C. 10個位元組
D. 11個位元組
6.關於下列程式段的輸出結果,說法正確的是:(d )
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.下列哪些語句關於記憶體回收的說明是正確的? (b )
A、 程式設計師必須建立一個執行緒來釋放記憶體
B、 記憶體回收程式負責釋放無用記憶體
C、 記憶體回收程式允許程式設計師直接釋放記憶體
D、 記憶體回收程式可以在指定的時間釋放記憶體物件
8.下面異常是屬於Runtime Exception 的是(abcd)(多選)
A、ArithmeticException
B、IllegalArgumentException
C、NullPointerException
D、BufferUnderflowException
9. Math.round(11.5)等於多少(). Math.round(-11.5)等於多少(c). c
A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-12
10.下列程式段的輸出結果是:(b )
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、0
11.activity對一些資源以及狀態的操作儲存,最好是儲存在生命週期的哪個函式中進行(d)
A、onPause() B、onCreate() C、 onResume() D、onStart()
12.Intent傳遞資料時,下列的資料型別哪些可以被傳遞(abcd)(多選)
A、Serializable B、charsequence C、Parcelable D、Bundle
13.android 中下列屬於Intent的作用的是(c)
A、實現應用程式間的資料共享
B、是一段長的生命週期,沒有使用者介面的程式,可以保持應用在後臺執行,而不會因為切換頁面而消失
C、可以實現介面間的切換,可以包含動作和動作資料,連線四大元件的紐帶
D、處理一個應用程式整體性的工作
14.下列屬於SAX解析xml檔案的優點的是(b)
A、將整個文件樹在記憶體中,便於操作,支援刪除,修改,重新排列等多種功能
B、不用事先調入整個文件,佔用資源少
C、整個文件調入記憶體,浪費時間和空間
D、不是長久駐留在記憶體,資料不是持久的,事件過後,若沒有儲存資料,資料就會
消失