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