久久综合色一综合色88欧美|久久er热在这里只有精品66|国产福利一区二区不卡|日本精品动漫二区三区

    1. <address id="l3apk"><var id="l3apk"><source id="l3apk"></source></var></address>

      android面試題整理

      時間:2022-11-24 01:33:49 面試技巧 我要投稿
      • 相關(guān)推薦

      android面試題整理

        android面試中,面試官會問哪些問題呢?你都準備好了嗎?了解面試題目很有必要,以下是陽光網(wǎng)小編幫你們整理的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語句

        內(nèi)容提供器(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之間的關(guān)系。

        Message

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

        Handler

        Handler處理者,是Message的主要處理者,負責Message的發(fā)送,Message內(nèi)容的執(zhí)行處理。后臺線程就是通過傳進來的 Handler對象引用來sendMessage(Message)。而使用Handler,需要implement 該類的 handleMessage(Message)方法,它是處理這些Message的操作內(nèi)容,例如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。所以調(diào)用Looper.getMainLooper()得到的主線程的Looper不為NULL,但調(diào)用Looper.myLooper() 得到當前線程的Looper就有可能為NULL。

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

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

        文件系統(tǒng) 是 linux 內(nèi)核 授權(quán)

        android面試題整理篇二

        1、 有一個一維整型數(shù)組int[] data保存的是一張寬為width,高為height的圖片像素值信息。請寫一個算法,將該圖片所有的白色不透明(0xffffffff)像素點的透明度調(diào)整為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動畫:使試圖組件移動,放大,縮小以及產(chǎn)生透明度的變化。

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

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

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

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

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

        進程與線程

        當一個程序開始運行時,它就是一個進程,進程包含運行中的程序和程序所使用的內(nèi)存和系統(tǒng)資源。而一個進程又是由多個線程組成的。引入線程優(yōu)點是易于調(diào)度,提供開發(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)內(nèi)存管理有哪幾種, 各有何特性

        頁式,段式,段頁,用到了MMU,虛擬空間等技術(shù)

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

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

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

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

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

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

        7、handler機制的原理

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

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

        2)Handler: 你可以構(gòu)造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架構(gòu)中用戶唯一可以看到的一層,接收用戶的輸入,顯示處理結(jié)果。

        l控制器(control)對象:是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示及更新model對象狀態(tài)的部分,控制器更重要的一種導航功能,想用用戶出發(fā)的相關(guān)事件,交給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面試題整理】相關(guān)文章:

      android面試題201704-04

      android面試題及答案04-04

      android面試題大全04-04

      android面試題練習04-04

      總結(jié)的android面試題12-09

      android測試面試題11-25

      android軟件測試面試題04-04

      android面試題庫04-04

      android常見面試題04-04