當前位置:文思屋>社會工作>面試技巧>

android面試技巧分享

文思屋 人氣:2.05W

1. Intent的幾種有關Activity啟動的方式有哪些,你瞭解每個含義嗎?

android面試技巧分享

FLAG_ACTIVITY_SINGLE_TOP如果目標Activity已經執行在棧頂,將不會再啟動

= singleTop

FLAG_ACTIVITY_BROUGHT_TO_FRONT 、=singleTask

FLAG_ACTIVITY_MULTIPLE_TASK=singleInstance

FLAG_ACTIVITY_CLEAR_TOP、如果被啟動的activity已經執行在當前 task,將不會再建立新的活動例項,位於其上的其它activity將會被關閉。

2. Activity和Task的啟動模式有哪些? 每種含義是什麼?

3. 通過Intent傳遞一些二進位制資料的方法有哪些?

1). 使用Serializable介面實現序列化,這是Java常用的方法。

2). 實現Parcelable介面,這裡Android的部分類比如Bitmap類就已經實現了,同

時Parcelable在Android AIDL中交換資料也很常見的。

4. 能說下Android應用的入口點嗎?

真正的Android入口點是application的main,你可以看下androidmanifest.xml的包含關係就清楚了。

5. Android都有哪些XML解析器,都熟練掌握嗎?

這裡SAX和DOM、XmlPull相信做過Web開發的都已經滾瓜爛熟了。

6. SQLite支援事務嗎? 新增刪除如何提高效能?

SQLite作為輕量級的資料庫,比MySQL還小,但支援SQL語句查詢,提高效能可以考慮通過優化的SQL查詢語句方式處理。SQLITE預設就是開啟事務的。

7. Android Service和Binder、AIDL你都熟練嗎?

Binder是系統程序間通訊(IPC)方式之一。Binder使用Client-Server通訊方式:一個程序作為Server提供諸如視訊/音訊解碼,視訊捕獲,地址本查詢,網路連線等服務;多個程序作為Client向Server發起服務請求,獲得所需要的服務。要想實現Client-Server通信據必須實現以下兩點:一是server 必須有確定的訪問接入點或者說地址來接受Client的請求,並且Client可以通過某種途徑獲知Server的地址;二是制定Command- Reply協議來傳輸資料。例如在網路通訊中Server的訪問接入點就是Server主機的IP地址+埠號,傳輸協議為TCP協議。對Binder而言,Binder可以看成Server提供的實現某個特定服務的訪問接入點, Client通過這個‘地址’向Server傳送請求來使用該服務;對Client而言,Binder可以看成是通向Server的管道入口,要想和某個 Server通訊首先必須建立這個管道並獲得管道入口。Binder框架定義了四個角色:Server,Client,ServiceManager(以後簡稱SMgr)以及驅動。其中 Server,Client,SMgr運行於使用者空間,驅動運行於核心空間。由於Android的Java層級只是一個外殼框架而已,大部分的系統元件(Android本身)都是在Nataive層(又稱C/C++層)執行。這是Android的整體架構,所以我們的應用程式也必須考慮分為兩層的必要性,才能完全的融入Android的整體架構裡。我們看到的Android應用架構(Application Framework)其實只是Android整體架構裡的.外殼結構而已。Android應用框架就如同椅子的椅面,那麼椅子的椅腿在哪裡呢?Binder系統是在Native層的C/C++元件。Java應用程式(如Activity體系等)是透過JNI介面去呼叫Binder系統(或稱為元件)。

AIDL:在Android中, 每個應用程式都可以有自己的程序. 在寫UI應用的時候, 經常要用到Service. 在不同的程序中, 怎樣傳遞物件呢? 顯然, Java中不允許跨程序記憶體共享. 因此傳遞物件, 只能把物件拆分成作業系統能理解的簡單形式, 以達到跨界物件訪問的目的. 在J2EE中,採用RMI的方式, 可以通過序列化傳遞物件. 在Android中, 則採用AIDL的方式. 理論上AIDL可以傳遞Bundle,實際上做起來卻比較麻煩.

AIDL(AndRoid介面描述語言)是一種藉口描述語言; 編譯器可以通過aidl檔案生成一段程式碼,通過預先定義的介面達到兩個程序內部通訊程序的目的. 如果需要在一個Activity中, 訪問另一個Service中的某個物件, 需要先將物件轉化成AIDL可識別的引數(可能是多個引數), 然後使用AIDL來傳遞這些引數, 在訊息的接收端, 使用這些引數組裝成自己需要的物件. AIDL的IPC的機制和COM或CORBA類似, 是基於介面的,但它是輕量級的。它使用代理類在客戶端和實現層間傳遞值. 如果要使用AIDL, 需要完成2件事情: 1. 引入AIDL的相關類.; 2. 呼叫aidl產生的class.

8. 你用過哪款Android手機,有哪些優點和不足,相對於iPhone或Symbian又有哪些優缺點?

TAGS:android 面試