无码人妻一区二区三区免费不卡_日韩AV无码综合久久五月_国产成人aⅴ片在线观看_欧美成人片高清在线观看

蜜蜂職場文庫 > 面試技巧 >

android面試題整理

時間: 小龍 面試技巧

  android面試中,面試官會問哪些問題呢?你都準備好了嗎?了解面試題目很有必要,以下是小編幫你們整理的android面試題整理,一起來學習啦。

  android面試題整理篇一

  1. 請介紹下android的數(shù)據(jù)存儲方式。

  SharedPreferences方式

  用來存儲”key-value paires”格式的數(shù)據(jù),它是一個輕量級的鍵值存儲機制,只可以存儲基本數(shù)據(jù)類型,可以通過它保存一些上次用戶所做的修改操作

  文件存儲方式

  它通過FileInputStream和FileOutputStream對文件進行操作。但是在Android中,文件是一個應用程序私有的,一個應用程序無法讀寫其他應用程序的文件,如果要共享數(shù)據(jù)就用Content Providers

  SQLite數(shù)據(jù)庫方式

  Android提供的一個標準的數(shù)據(jù)庫,支持SQL語句

  內容提供器(Content provider)方式

  是所有應用程序之間數(shù)據(jù)存儲和檢索的橋梁,它的作用是使得各個應用程序之間實現(xiàn)數(shù)據(jù)共享

  網(wǎng)絡存儲方式

  通過網(wǎng)絡來存儲和獲取數(shù)據(jù)

  2.請介紹下ContentProvider是如何實現(xiàn)數(shù)據(jù)共享的。

  Android提供了ContentProvider,一個程序可以通過實現(xiàn)一個ContentProvider的抽象接口將自己的數(shù)據(jù)完全暴露出去,而且ContentProviders是以類似數(shù)據(jù)庫中表的方式將數(shù)據(jù)暴露,也就是說ContentProvider就像一個“數(shù)據(jù)庫”。那么外界獲取其提供的數(shù)據(jù),也就應該與從數(shù)據(jù)庫中獲取數(shù)據(jù)的操作基本一樣,只不過是采用URI來表示外界需要訪問的“數(shù)據(jù)庫”。外部訪問通過ContentResolver去訪問并操作這些被暴露的數(shù)據(jù)。

  3.如何啟用Service,如何停用Service。

  Intent intent = new Intent();

  intent.setClass(this,cba.class);

  startService(intent);

  stopService(intent);

  4. 請解釋下在單線程模型中Message,Handler,Message Queue,Looper之間的關系。

  Message

  Message消息,理解為線程間交流的信息,處理數(shù)據(jù)后臺線程需要更新UI,則發(fā)送Message內含一些數(shù)據(jù)給UI線程。

  Handler

  Handler處理者,是Message的主要處理者,負責Message的發(fā)送,Message內容的執(zhí)行處理。后臺線程就是通過傳進來的 Handler對象引用來sendMessage(Message)。而使用Handler,需要implement 該類的 handleMessage(Message)方法,它是處理這些Message的操作內容,例如Update UI。通常需要子類化Handler來實現(xiàn)handleMessage方法。

  Message Queue

  Message Queue消息隊列,用來存放通過Handler發(fā)布的消息,按照先進先出執(zhí)行。 每個message queue都會有一個對應的Handler。Handler會向message queue通過兩種方法發(fā)送消息:sendMessage或post。這兩種消息都會插在message queue隊尾并按先進先出執(zhí)行。但通過這兩種方法發(fā)送的消息執(zhí)行的方式略有不同:通過sendMessage發(fā)送的是一個message對象,會被 Handler的handleMessage()函數(shù)處理;而通過post方法發(fā)送的是一個runnable對象,則會自己執(zhí)行。

  Looper

  Looper是每條線程里的Message Queue的管家。Android沒有Global的Message Queue,而Android會自動替主線程(UI線程)建立Message Queue,但在子線程里并沒有建立Message Queue。所以調用Looper.getMainLooper()得到的主線程的Looper不為NULL,但調用Looper.myLooper() 得到當前線程的Looper就有可能為NULL。

  5.請解釋下Android程序運行時權限與文件系統(tǒng)權限的區(qū)別。

  Android程序運行 是虛擬機Dalvik( android授權)

  文件系統(tǒng) 是 linux 內核 授權

  android面試題整理篇二

  1、 有一個一維整型數(shù)組int[] data保存的是一張寬為width,高為height的圖片像素值信息。請寫一個算法,將該圖片所有的白色不透明(0xffffffff)像素點的透明度調整為50%。

  答:像素數(shù)組int[]data里就是一個個像素的顏色值,你循環(huán)和0xffffffff比較,如果相等,那么就把這個值換成0x88ffffff就行了,這樣像素數(shù)組里所有的白色不透明(0xffffffff)都變成的半透明

  2、 你如何評價Android系統(tǒng)?優(yōu)缺點。

  優(yōu)點:開源特性,得到眾多廠商支持。

  軟件發(fā)展很快。

  界面UI,系統(tǒng)優(yōu)化不錯。

  缺點:版本過多,升級過快。

  用戶體驗不一致。

  3、android中的動畫有哪幾類,他們的特點和區(qū)別是什么?

  兩種,

  一種是Tween動畫(補間動畫),

  一種是Frame動畫(逐幀動畫)。

  Tween動畫:使試圖組件移動,放大,縮小以及產生透明度的變化。

  Frame動畫:傳統(tǒng)的動畫方法,通過順序的播放排列好的圖片來實現(xiàn),類似電影。

  4、橫豎屏切換時activity的生命周期

  不設置Activity的android:configChanges時,切屏會重新調用各個生命周期,切橫屏時會執(zhí)行一次,切豎屏時會執(zhí)行兩次。

  設置Activity的android:configChanges="orientation"時,切橫,豎屏時生命周期只會執(zhí)行一次。

  設置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調用聲明周期,只會執(zhí)行onConfigurationChanged方法。

  進程與線程

  當一個程序開始運行時,它就是一個進程,進程包含運行中的程序和程序所使用的內存和系統(tǒng)資源。而一個進程又是由多個線程組成的。引入線程優(yōu)點是易于調度,提供開發(fā)效率,通過線程可以方便有效的實現(xiàn)并發(fā),進程可創(chuàng)建多個線程來執(zhí)行同一個程序的不同部分,開銷小,創(chuàng)建線程比創(chuàng)建進程要快,所需開銷很少。

  android面試題整理篇三

  1、 Android dvm的進程和Linux的進程, 應用程序的進程是否為同一個概念

  DVM指dalivk的虛擬機。每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。而每一個DVM都是在Linux 中的一個進程,所以說可以認為是同一個概念。

  2、sim卡的EF 文件有何作用

  sim卡的文件系統(tǒng)有自己規(guī)范,主要是為了和手機通訊,sim本 身可以有自己的操作系統(tǒng),EF就是作存儲并和手機通訊用的

  3、嵌入式操作系統(tǒng)內存管理有哪幾種, 各有何特性

  頁式,段式,段頁,用到了MMU,虛擬空間等技術

  4、 什么是嵌入式實時操作系統(tǒng), Android 操作系統(tǒng)屬于實時操作系統(tǒng)嗎?

  嵌入式實時操作系統(tǒng)是指當外界事件或數(shù)據(jù)產生時,能夠接受并以足夠快的速度予以處理,其處理的結果又能在規(guī)定的時間之內來控制生產過程或對處理系統(tǒng)作出快速響應,并控制所有實時任務協(xié)調一致運行的嵌入式操作系統(tǒng)。主要用于工業(yè)控制、軍事設備、航空航天等領域對系統(tǒng)的響應時間有苛刻的要求,這就需要使用實時系統(tǒng)。又可分為軟實時和硬實時兩種,而android是基于linux內核的,因此屬于軟實時。

  5、一條最長的短信息約占多少byte?

  中文70(包括標點),英文160,160個字節(jié)。

  6、 android中的動畫有哪幾類,它們的特點和區(qū)別是什么?

  兩種,一種是Tween動畫、還有一種是Frame動畫。Tween動畫,這種實現(xiàn)方式可以使視圖組件移動、放大、縮小以及產生透明度的變化;另一種Frame動畫,傳統(tǒng)的動畫方法,通過順序的播放排列好的圖片來實現(xiàn),類似電影。

  7、handler機制的原理

  andriod提供了 Handler 和 Looper 來滿足線程間的通信。Handler 先進先出原則。Looper類用來管理特定線程內對象之間的消息交換(Message Exchange)。

  1)Looper: 一個線程可以產生一個Looper對象,由它來管理此線程里的Message Queue(消息隊列)。

  2)Handler: 你可以構造Handler對象來與Looper溝通,以便push新消息到Message Queue里;或者接收Looper從Message Queue取出)所送來的消息。

  3) Message Queue(消息隊列):用來存放線程放入的消息。

  4)線程:UI thread 通常就是main thread,而Android啟動程序時會替它建立一個Message Queue。

  8、說說mvc模式的原理,它在android中的運用

  android的官方建議應用程序的開發(fā)采用mvc模式。

  何謂mvc?

  mvc是model,view,controller的縮寫,mvc包含三個部分:

  l模型(model)對象:是應用程序的主體部分,所有的業(yè)務邏輯都應該寫在該層。

  l視圖(view)對象:是應用程序中負責生成用戶界面的部分。也是在整個mvc架構中用戶唯一可以看到的一層,接收用戶的輸入,顯示處理結果。

  l控制器(control)對象:是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示及更新model對象狀態(tài)的部分,控制器更重要的一種導航功能,想用用戶出發(fā)的相關事件,交給m哦得了處理。

  android鼓勵弱耦合和組件的重用,在android中mvc的具體體現(xiàn)如下:

  1)視圖層(view):一般采用xml文件進行界面的描述,使用的時候可以非常方便的引入,當然,如何你對android了解的比較的多了話,就一定可以想到在android中也可以使用javascript+html等的方式作為view層,當然這里需要進行java和javascript之間的通信,幸運的是,android提供了它們之間非常方便的通信實現(xiàn)。

  2)控制層(controller):android的控制層的重任通常落在了眾多的acitvity的肩上,這句話也就暗含了不要在acitivity中寫代碼,要通過activity交割model業(yè)務邏輯層處理,這樣做的另外一個原因是android中的acitivity的響應時間是5s,如果耗時的操作放在這里,程序就很容易被回收掉。

  3)模型層(model):對數(shù)據(jù)庫的操作、對網(wǎng)絡等的操作都應該在model里面處理,當然對業(yè)務計算等操作也是必須放在的該層的。

  
看了“android面試題整理”的人還看過:

1.

2.

3.

4.

5.

50353