android面試題2017
2017年,android工程師在面試中會遇到哪些面試問題呢?你做好面試準備了嗎?以下是陽光網(wǎng)小編幫你們整理的2017android面試題,一起來學(xué)習(xí)啦。
2017android面試題篇一
1. 請描述下Activity的聲明周期。
onCreate->onStart->onRemuse->onPause->onStop->onRestart->onDestroy
2. 如果后臺的Activity由于某種原因被系統(tǒng)回收,如何在回收之前保存當前狀態(tài)。
onSaveInstanceState().
程序中的某一個Activity A 在運行時,主動或被動的運行另一個新的Activity B,這個時候A會執(zhí)行onSaveInstanceState()。B完成以后又回來找A,這個時候有兩種情況:一是A被回收,二是A沒有被回收,被回收的A就要重新調(diào)用onCreate()方法,不同于直接啟動的是這回onCreate()里是帶上了參數(shù)savedInstanceState;而沒被回收的`就直接執(zhí)行onResume(),跳過onCreate()。
3. 如何將一個Activity設(shè)置成窗口樣式。
在AndroidManifext.xml中Activity定義處添加
android:theme="@android:style/Theme.Dialog" 或
android:theme="@android:style/Theme.Translucent"。
4. 如何退出Activity?如何安全退出已調(diào)用多個Activity的Application?
01.Activity.finish();
也可以用killProcess()和System.exit()這樣的方法
2.用ActivityManager的restartPackage方法
5. 請介紹下android大眾常用的五種布局。
FrameLayout(框架布局)
只可以有一個控件,并且不能設(shè)計這個控件的位置,控件會放在左上角
LinearLayout(線性布局)
一行只能控制一個控件的線性布局,所以當有很多控件需要在一個界面中列出時,可以用LinearLayout布局
AbsoluteLayout(絕對布局)
可以放置多個控件,并且可以自己定義控件的x,y的位置
RelativeLayout(相對布局)
比如要在一行上顯示多個控件,這時就要用到相對布局
TableLayout(表格布局)
將子元素的位置分配到行或列中,一個TableLayout由許多的TableRow組成
6. 請介紹下android的數(shù)據(jù)存儲方式。
SharedPreferences方式
用來存儲”key-value paires”格式的數(shù)據(jù),它是一個輕量級的鍵值存儲機制,只可以存儲基本數(shù)據(jù)類型,可以通過它保存一些上次用戶所做的修改操作
文件存儲方式
它通過FileInputStream和FileOutputStream對文件進行操作。但是在Android中,文件是一個應(yīng)用程序私有的,一個應(yīng)用程序無法讀寫其他應(yīng)用程序的文件,如果要共享數(shù)據(jù)就用Content Providers
SQLite數(shù)據(jù)庫方式
Android提供的一個標準的數(shù)據(jù)庫,支持SQL語句
內(nèi)容提供器(Content provider)方式
是所有應(yīng)用程序之間數(shù)據(jù)存儲和檢索的橋梁,它的作用是使得各個應(yīng)用程序之間實現(xiàn)數(shù)據(jù)共享
網(wǎng)絡(luò)存儲方式
通過網(wǎng)絡(luò)來存儲和獲取數(shù)據(jù)
2017android面試題篇二
1、IntentService有何優(yōu)點?
答:IntentService 的好處
* Acitivity的進程,當處理Intent的時候,會產(chǎn)生一個對應(yīng)的Service
* Android的進程處理器現(xiàn)在會盡可能的不kill掉你
* 非常容易使用
2、橫豎屏切換時候activity的生命周期?
01、不設(shè)置Activity的android:configChanges時,切屏?xí)匦抡{(diào)用各個生命周期,切橫屏?xí)r會執(zhí)行一次,切豎屏?xí)r會執(zhí)行兩次
02、設(shè)置Activity的android:configChanges="orientation"時,切屏還是會重新調(diào)用各個生命周期,切橫、豎屏?xí)r只會執(zhí)行一次
03、設(shè)置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調(diào)用各個生命周期,只會執(zhí)行onConfigurationChanged方法
3. 如何將SQLite數(shù)據(jù)庫(dictionary.db文件)與apk文件一起發(fā)布?
解答:可以將dictionary.db文件復(fù)制到Eclipse Android工程中的res aw目錄中。所有在res aw目錄中的文件不會被壓縮,這樣可以直接提取該目錄中的文件?梢詫ictionary.db文件復(fù)制到res aw目錄中
4. 如何將打開res aw目錄中的數(shù)據(jù)庫文件?
解答:在Android中不能直接打開res aw目錄中的數(shù)據(jù)庫文件,而需要在程序第一次啟動時將該文件復(fù)制到手機內(nèi)存或SD卡的某個目錄中,然后再打開該數(shù)據(jù)庫文件。復(fù)制的'基本方法是使用getResources().openRawResource方法獲得res aw目錄中資源的 InputStream對象,然后將該InputStream對象中的數(shù)據(jù)寫入其他的目錄中相應(yīng)文件中。在Android SDK中可以使用SQLiteDatabase.openOrCreateDatabase方法來打開任意目錄中的SQLite數(shù)據(jù)庫文件。
5. Android引入廣播機制的用意?
答:a:從MVC的角度考慮(應(yīng)用程序內(nèi))
其實回答這個問題的時候還可以這樣問,android為什么要有那4大組件,現(xiàn)在的移動開發(fā)模型基本上也是照搬的web那一套MVC架構(gòu),只不過是改了點嫁妝而已。android的四大組件本質(zhì)上就是為了實現(xiàn)移動或者說嵌入式設(shè)備上的MVC架構(gòu),它們之間有時候是一種相互依存的關(guān)系,有時候又是一種補充關(guān)系,引入廣播機制可以方便幾大組件的信息和數(shù)據(jù)交互。
b:程序間互通消息(例如在自己的應(yīng)用程序內(nèi)監(jiān)聽系統(tǒng)來電)
c:效率上(參考UDP的廣播協(xié)議在局域網(wǎng)的方便性)
d:設(shè)計模式上(反轉(zhuǎn)控制的一種應(yīng)用,類似監(jiān)聽者模式)
2017android面試題篇三
1、請介紹下ContentProvider是如何實現(xiàn)數(shù)據(jù)共享的。
Android提供了ContentProvider,一個程序可以通過實現(xiàn)一個ContentProvider的抽象接口將自己的數(shù)據(jù)完全暴露出去,而且ContentProviders是以類似數(shù)據(jù)庫中表的方式將數(shù)據(jù)暴露,也就是說ContentProvider就像一個“數(shù)據(jù)庫”。那么外界獲取其提供的數(shù)據(jù),也就應(yīng)該與從數(shù)據(jù)庫中獲取數(shù)據(jù)的操作基本一樣,只不過是采用URI來表示外界需要訪問的“數(shù)據(jù)庫”。外部訪問通過ContentResolver去訪問并操作這些被暴露的數(shù)據(jù)。
2、如何啟用Service,如何停用Service。
Intent intent = new Intent();
intent.setClass(this,cba.class);
startService(intent);
stopService(intent);
3、 請解釋下Android程序運行時權(quán)限與文件系統(tǒng)權(quán)限的區(qū)別。
Android程序運行是虛擬機Dalvik( android授權(quán))
文件系統(tǒng)是linux 內(nèi)核授權(quán)
4、系統(tǒng)上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?
Intent intent =newIntent();
intent.setAction("android.intent.action.VIEW");
Uri content_url =Uri.parse(");
intent.setData(content_url);
intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");
startActivity(intent);
5、有一個一維整型數(shù)組int[] data保存的是一張寬為width,高為height的圖片像素值信息。請寫一個算法,將該圖片所有的白色不透明(0xffffffff)像素點的透明度調(diào)整為50%。
答:像素數(shù)組int[]data里就是一個個像素的顏色值,你循環(huán)和0xffffffff比較,如果相等,那么就把這個值換成0x88ffffff就行了,這樣像素數(shù)組里所有的白色不透明(0xffffffff)都變成的`半透明
6、你如何評價Android系統(tǒng)?優(yōu)缺點。
優(yōu)點:開源特性,得到眾多廠商支持。
軟件發(fā)展很快。
界面UI,系統(tǒng)優(yōu)化不錯。
缺點:版本過多,升級過快。
用戶體驗不一致。
7、 android中的動畫有哪幾類,他們的特點和區(qū)別是什么?
兩種,
一種是Tween動畫(補間動畫),
一種是Frame動畫(逐幀動畫)。
Tween動畫:使試圖組件移動,放大,縮小以及產(chǎn)生透明度的變化。
Frame動畫:傳統(tǒng)的動畫方法,通過順序的播放排列好的圖片來實現(xiàn),類似電影。
【android面試題】相關(guān)文章:
android測試面試題11-25
android面試題及答案04-04
android面試題整理04-04
android面試題大全04-04
android面試題練習(xí)04-04
總結(jié)的android面試題12-09
android軟件測試面試題04-04
android面試題庫04-04
android常見面試題04-04