欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂培訓(xùn)講師整理android面試題(二)

2016-03-17 15:11:50 1672瀏覽

        之前我們已經(jīng)用了一篇文章為讀者介紹了企業(yè)對于android開發(fā)人才的面試題部分內(nèi)容,接下來我們繼續(xù)接著《扣丁學(xué)堂培訓(xùn)講師整理android面試題(一)》內(nèi)容進(jìn)行進(jìn)一步的拓展和分析。

扣丁學(xué)堂培訓(xùn)講師整理android面試題

        扣丁學(xué)堂培訓(xùn)講師整理android面試題:

        一、Intent傳遞數(shù)據(jù)時,可以傳遞哪些類型數(shù)據(jù)?

        intent間傳送數(shù)據(jù)一般有兩種常用的方法: 1、extra 2、data。

        extra可以用Intent.putExtra放入數(shù)據(jù)。新啟動的Activity可用Intent.getExtras取出Bundle,然后用Bundles.getLong,getInt,getBoolean,getString等函數(shù)來取放進(jìn)去的值。

        Data則是傳輸url。url可以是指我們熟悉的http,ftp等網(wǎng)絡(luò)地址,也可以指content來指向ContentProvider提供的資源。Intent.setData可以放入數(shù)據(jù),Intent.getData可以取出數(shù)據(jù)。

        二、說說Activity,Intent,Service是什么關(guān)系 ?

        一個Activity通常是一個單獨的屏幕,每一個Activity都被實現(xiàn)為一個單獨的類,這些類都是從Activity基類中繼承而來的。Activity類會顯示由視圖控件組成的用戶接口,并對視圖控件的事件做出響應(yīng)。

        Intent的調(diào)用是用來進(jìn)行屏幕之間的切換。Intent描述應(yīng)用想要做什么。Intent數(shù)據(jù)結(jié)構(gòu)中兩個最重要的部分是動作和動作對應(yīng)的數(shù)據(jù),一個動作對應(yīng)一個動作數(shù)據(jù)。

        Service是運行在后臺的代碼,不能與用戶交互,可以運行在自己的進(jìn)程里,也可以運行在其他應(yīng)用程序進(jìn)程的上下文里。需要一個Activity或者其他Context對象來調(diào)用。

        Activity跳轉(zhuǎn)Activity,Activity啟動Service,Service打開Activity都需要Intent表明意圖,以及傳遞參數(shù),Intent是這些組件間信號傳遞的承載著。

        三、請描述一下BroadcastReceiver。

        Broadcast Receiver用于接收并處理廣播通知(broadcast announcements)。多數(shù)的廣播是系統(tǒng)發(fā)起的,如地域變換、電量不足、來電短信等。程序也可以播放一個廣播。程序可以有任意數(shù)量的broadcast receivers來響應(yīng)它覺得重要的通知。Broadcast receiver可以通過多種方式通知用戶: 啟動activity、使用NotificationManager、開啟背景燈、振動設(shè)備、播放聲音等,最典型的是在狀態(tài)欄顯示一個圖標(biāo),這樣用戶就可以點它打開看通知內(nèi)容。通常我們的某個應(yīng)用或系統(tǒng)本身在某些事件(電池電量不足、來電短信)來臨時會廣播一個Intent出去,我們利用注冊一個broadcast

        receiver來監(jiān)聽這些Intent并獲取Intent中的數(shù)據(jù)。

        四、在manifest和代碼中如何注冊和使用 broadcast receiver 。

        在android的manifest中注冊

        在代碼中注冊

        1、 IntentFilter filter = new IntentFilter(“com.forrest.action.mybroadcast”);//和廣播中Intent的action對應(yīng);

        2、 MyBroadcastReceiver br= new MyBroadcastReceiver();

        3、 registerReceiver(br, filter);

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

        一個程序可以通過實現(xiàn)一個Content provider的抽象接口將自己的數(shù)據(jù)完全暴露出去,而且Content provider是以類似數(shù)據(jù)庫中的表的方式將自己的數(shù)據(jù)暴露。Content provider存儲和檢索數(shù)據(jù),通過它可以讓所有的應(yīng)用程序訪問到,這也是應(yīng)用程序之間唯一共享數(shù)據(jù)的方法。

        要想使應(yīng)用程序的數(shù)據(jù)公開化,可通過2種方法:創(chuàng)建一個數(shù)據(jù)自己的Content Provider或者將你的數(shù)據(jù)添加到一個已經(jīng)存在的Content Provider中,前提是有相同數(shù)據(jù)類型并且有寫入Content Provider的權(quán)限,Android提供了Content Resolverr,外界的程序可以通過Content Resolver接口訪問Content Provider提供的數(shù)據(jù)。

        六、請介紹下Android的數(shù)據(jù)存儲方式。

        Android提供了5中存儲數(shù)據(jù)的方式,分別是以下幾種

        1、使用Shared Preferences存儲數(shù)據(jù),用來存儲key-value,pairs格式的數(shù)據(jù),它是一個輕量級的鍵值存儲機制,只可以存儲基本數(shù)據(jù)類型。

        2、使用文件存儲數(shù)據(jù),通過FileInputStream和FileOutputStream對文件進(jìn)行操作。在Android中,文件是一個應(yīng)用程序私有的,一個應(yīng)用程序無法讀寫其他應(yīng)用程序的文件。

        3、使用SQLite數(shù)據(jù)庫存儲數(shù)據(jù),Android提供的一個標(biāo)準(zhǔn)數(shù)據(jù)庫,支持SQL語句。

        4、使用Content Provider存儲數(shù)據(jù),是所有應(yīng)用程序之間數(shù)據(jù)存儲和檢索的一個橋梁,它的作用就是使得各個應(yīng)用程序之間實現(xiàn)數(shù)據(jù)共享。它是一個特殊的存儲數(shù)據(jù)的類型,它提供了一套標(biāo)準(zhǔn)的接口用來獲取數(shù)據(jù),操作數(shù)據(jù)。系統(tǒng)也提供了音頻、視頻、圖像和個人信息等幾個常用的Content Provider。如果你想公開自己的私有數(shù)據(jù),可以創(chuàng)建自己的Content Provider類,或者當(dāng)你對這些數(shù)據(jù)擁有控制寫入的權(quán)限時,將這些數(shù)據(jù)添加到Content Provider中實現(xiàn)共享。外部訪問通過Content Resolver去訪問并操作這些被暴露的數(shù)據(jù)。

        5、使用網(wǎng)絡(luò)存儲數(shù)據(jù)

        七、請介紹下Android系統(tǒng)中常用的五種布局。

        最常用的布局方式為Absolute Layout、Relative Layout、Linear Layout、FrameLayout、TableLayout。其中Linear Layout和Relative Layout是最常用的方式,他們可以通過在xml配置文件或者代碼中進(jìn)行布局。

        1、Frame Layout是最簡單的布局方式,放置的控件都只能羅列到左上角,控件會有重疊,不能進(jìn)行復(fù)雜的布局。

        2、Linear Layout可以通過orientation屬性設(shè)置線性排列的方向是垂直還是縱向的,每行或每列只有一個元素,可以進(jìn)行復(fù)雜的布局。

        3、Absolute Layout可以讓子元素指定準(zhǔn)確的x、y坐標(biāo)值,并顯示在屏幕上。Absolute Layout沒有頁邊框,允許元素之間相互重疊。它是絕對坐標(biāo),所以在實際中不提倡使用。

        4、Relative Layout允許子元素制定他們相對于其他元素或父元素的位置(通過ID制定)。因此,你可以以右對齊,或上下,或置于屏幕中央的形式來排列兩個元素。元素按順序排列,因此如果第一個元素在屏幕的中央,那么相對于這個元素的其他元素將以屏幕中央的相對位置來排列。這個是相對于Absolute Layout的,采用相對坐標(biāo),所以在實際中比較常用。

        5、Table Layout將以子元素的位置分配到行或列。一個Table Layout由許多的Table Row組成,每個Table Row都會定義一個row。Table Layout容器不會顯示row、column或者cell的邊線框。每個row擁有0個或多個的cell; 和html中的table差不多。在實際中也經(jīng)常使用。

        八、談?wù)刄I中, Padding和Margin有什么區(qū)別?

        Padding是控件的內(nèi)容相對控件的邊緣的邊距,而Margin是控件邊緣相對于其他控件的邊距。如下圖所示:

        九、android本身的一些限制,比如apk包大小限制,讀取大文件時的時間限。

        apk包大小限制不好說,有的apk為100M,還是能裝到手機上。一般的apk大小為5~10M左右。讀取大文件的時間應(yīng)該是在main線程里面,時間限制為5秒左右。

        十、ListView如何提高其效率?

        1、使用分頁加載,不要一次性加載所有數(shù)據(jù)。

        2、復(fù)用convertView。在getItemView中,判斷converView是否為空,如果不為空,可復(fù)用。

        3、異步加載圖片。Item中如果包含有webimage,那么最好異步加載。

        4、快速滑動時,不顯示圖片。當(dāng)快速滑動列表(SCROLL_STATE_FLING),item中的圖片或獲取需要消耗資源的view,可以不顯示出來;而處于其他兩種狀態(tài)(SCROLL_STATE_IDLE和SCROLL_STATE_TOUCH_SCROLL),則將那些view顯示出來。

查看更多關(guān)于“Android培訓(xùn)資訊”的相關(guān)文章>>

標(biāo)簽:

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部