Android面試題

1. 請(qǐng)介紹下Android中常用的五種布局?

Linearlayout    RelativeLayout
Tablelayout Gridlayout
Framelayout

2. 啟用Service有幾種方式,分別對(duì)應(yīng)于何種停用Service方式?

開(kāi)啟方式:
    startService
    bindService

3. AIDL的全稱(chēng)是什么? ANR的全稱(chēng)是什么?

AIDL---android InterfaceDefinition Languagex(android接口描述語(yǔ)言)
ANR---Appcation  Not  Response(應(yīng)用程序無(wú)響應(yīng))

4. AIDL是用于什么通信?

遠(yuǎn)程服務(wù)通信

5. android 的核心組件是?

- activity
- service
- broadcast
- contentprovider

6. 關(guān)于res/raw/assets的文件?

- res/raw :這里的文件是原封不動(dòng)的存儲(chǔ)到設(shè)備上不會(huì)轉(zhuǎn)換為二進(jìn)制的格式
- assets :主要放置多媒體等數(shù)據(jù)文件

7. Intent意圖傳遞數(shù)據(jù)時(shí), 能不能傳遞實(shí)體類(lèi)? 傳遞實(shí)體類(lèi)需不需要序列化?

能,需要

8. 當(dāng)手機(jī)界面橫豎屏切換的時(shí)候,可以通過(guò)哪個(gè)屬性控制?

android:configChanges

9. Activity, Service的的生命周期有哪些?

- Activity
    - onCreate
    - onStart
    - onResume
    - onPasue
    - onStop
    - onDestory
    - onRestart
- Service
    - onCreate
    - onStartCommand
    - onbind
    - onUnbind
    - onDestory

10. 關(guān)于Button控件的點(diǎn)擊事件,請(qǐng)問(wèn)有多少種方式可以實(shí)現(xiàn)Button控件的點(diǎn)擊事件?分別是哪幾種?

- Onclick屬性實(shí)現(xiàn)
- 匿名內(nèi)部類(lèi)
- 內(nèi)部類(lèi)
- 外部類(lèi)
- activity本身實(shí)現(xiàn)

11. simplerAdapter的父類(lèi)是什么,它的父類(lèi)是接口還是抽象類(lèi)?

BaseAdapter,抽象類(lèi)

12. 在TabHost組件中,有幾種方式實(shí)現(xiàn)TabHost選項(xiàng)卡功能?而其MainActivity分別可以繼承至什么類(lèi)

3種,分別繼承至Activity,Tabactivity和Activitygroup;

12. 在Broadcastreceiver(廣播接收者)中,請(qǐng)問(wèn)有幾種注冊(cè)方式?

兩種,分別為靜態(tài)注冊(cè)和動(dòng)態(tài)注冊(cè)

14. 在Broadcastreceiver(廣播接收者)使用中,必須要重寫(xiě)的方法是哪個(gè)方法?

onReceiver()

15. 請(qǐng)說(shuō)出convertView的作用?

用于listView列表緩存

16. 請(qǐng)說(shuō)出layoutInfalte的作用?

用于加載布局文件

17. Android中常見(jiàn)的解析方式有哪幾種,各有什么優(yōu)點(diǎn)

- json
- pull
- Sax
    -   不需事先加載整個(gè)文檔,解析速度快
- dom
    - 以樹(shù)狀結(jié)構(gòu)方式解析xml文件,便于理解,解析大數(shù)據(jù)速度緩慢,需事先加載整個(gè)文檔

18. 在android中使用選項(xiàng)菜單需要重寫(xiě)哪個(gè)方法?

onCreateOptionsMenu() 
onOptionsItemSelected()

19. 在android中使用SQLiteOpenHelper這個(gè)輔助類(lèi)時(shí),需要重寫(xiě)哪兩個(gè)方法?

- oncreate(第一次創(chuàng)建數(shù)據(jù)庫(kù)時(shí)執(zhí)行)
- onUpgrade(版本更新時(shí),執(zhí)行)

20. Java.io包中主要用于對(duì)對(duì)象(Object)的讀寫(xiě)的流是哪兩個(gè)?

- objectOutputStream
- ObjectInputStream

21. Android中常見(jiàn)的數(shù)據(jù)存儲(chǔ)方式有哪幾種?

- SharedPreferences
- file
- SQLiteDatabase
- ContentPrivoder
- 網(wǎng)絡(luò)存儲(chǔ)

22. 從一個(gè)activityA啟動(dòng)新的activityB時(shí),需要使用什么方法啟動(dòng)新的activity?從一個(gè)activityA啟動(dòng)新的activityB,并且需要activityB回調(diào)數(shù)據(jù)給activityA時(shí),需要使用什么方法啟動(dòng)新的activity?

- StartActivity();
- StartActivityForResult();

23. 請(qǐng)問(wèn)Android系統(tǒng)結(jié)構(gòu)分為哪幾個(gè)部分?

- LinuxKernel(Linux內(nèi)核)
- Libraries(系統(tǒng)運(yùn)行庫(kù)或者是c/c++核心庫(kù))
- Application  Framework(開(kāi)發(fā)框架包)
- Applications  (核心應(yīng)用程序)

24. 如何安全退出已調(diào)用多個(gè)Activity的應(yīng)用程序?有幾種常見(jiàn)方式?

廣播退出,appcation退出

25. 在Android中,設(shè)置文本字體大小的單位是什么?設(shè)置控件大小的單位是什么?

sp  dp

26. 在手機(jī)開(kāi)發(fā)中常用的數(shù)據(jù)庫(kù)是 SQLite

27. android 是如何組織 Activity 的?

以棧的方式組織Activity 

28. 刪除記錄的數(shù)據(jù)庫(kù)語(yǔ)句是什么?修改記錄的數(shù)據(jù)庫(kù)語(yǔ)句是什么?在數(shù)據(jù)庫(kù)中,創(chuàng)建表的語(yǔ)句是什么?查詢(xún)記錄的數(shù)據(jù)庫(kù)語(yǔ)句是什么?

Create table 表名 (字段名……)
Delete  from 表名 where 刪除條件
Update 表名 set 修改的屬性值 where 修改的屬性條件
Select * from 表名 where 查詢(xún)條件

29. android 中下列屬于Intent的作用的是?

可以實(shí)現(xiàn)界面間的切換,可以包含動(dòng)作和動(dòng)作數(shù)據(jù),連接四大組件的紐帶 

30. ScrollView 中,可以直接包含多少個(gè)組件?

only 1

31. 結(jié)構(gòu)化程序設(shè)計(jì)所規(guī)定的三種基本控制結(jié)構(gòu)是:

順序、選擇、循環(huán)

32. 下列哪一個(gè)關(guān)鍵字用于實(shí)現(xiàn)接口來(lái)定義類(lèi)?

implements

33. 編譯Java程序的命令是:javac

34. 編譯Java源程序文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,這些字節(jié)碼文件的擴(kuò)展名為 .class

35. 在Java中用什么關(guān)鍵字修飾的方法可以直接通過(guò)類(lèi)名來(lái)調(diào)用?

static

36. Activity在內(nèi)存中是以哪種方式存儲(chǔ)?其的存取順序是怎樣的?

棧的方式存儲(chǔ),先進(jìn)后出,后進(jìn)先出

37. Android中設(shè)置啟動(dòng)模式的屬性是?啟動(dòng)模式有哪幾種?簡(jiǎn)單敘述一下。

- Android:lauchmode

- standrad
- singletop
- singletask
- singleinstance

38. JAVA最基本元素

接口 方法 包 對(duì)象(java是面向?qū)ο缶幊?

39. java面向?qū)ο蟮奶卣饔心男┓矫?/p>

1.繼承2.多態(tài) 3.封裝

40. Java的基本數(shù)據(jù)類(lèi)型有哪些

基本數(shù)據(jù)類(lèi)型包括:byte、int、char、long、float、double、boolean和short。

41. 構(gòu)造器Constructor是否可被override

構(gòu)造器Constructor不能被繼承,因此不能重寫(xiě)Overriding,
但可以被重載Overloading

42. string類(lèi)是否能被繼承

String類(lèi)是final類(lèi)故不可以繼承

43. service是否在mainthread中執(zhí)行, service里面是否能執(zhí)行耗時(shí)的操作?

默認(rèn)情況,如果沒(méi)有顯示的指定service所運(yùn)行的進(jìn)程,Service和activity是運(yùn)行在當(dāng)前app所在進(jìn)程的mainthread(UI主線(xiàn)程)里面  

44. 擁有service的進(jìn)程是否具有高優(yōu)先級(jí)?

45. 我們常見(jiàn)的http通信有哪幾種?

Httpurlconnection和httpclient(已被取消)
OkHttp3  

46. Get請(qǐng)求與post的請(qǐng)求有什么區(qū)別?

Get請(qǐng)求向后臺(tái)傳輸數(shù)據(jù)是拼接在url地址上,因?yàn)閡rl地址長(zhǎng)度有限,所以只能攜帶少量的數(shù)據(jù)信息,而且不安全,對(duì)用戶(hù)明文顯示。

47. http協(xié)議是基于TCP協(xié)議

48. 廣播有哪幾種?有序廣播和無(wú)序廣播

49. UI線(xiàn)程能不能執(zhí)行耗時(shí)操作?

不能

50. fragment碎片是否需要注冊(cè)?

不需要

51. &和&&的區(qū)別。

& 是位運(yùn)算符,表示按位與運(yùn)算
&& 是邏輯運(yùn)算符

52. Java有沒(méi)有g(shù)oto?

java中的保留字,現(xiàn)在沒(méi)有在java中使用。

53. 接口是否可繼承接口?

可以

54. 抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口?

可以,但是前提是實(shí)體類(lèi)必須有構(gòu)造函數(shù)

55. 抽象類(lèi)是否可繼承實(shí)體類(lèi)(concrete class)?

可以,但是前提是實(shí)體類(lèi)必須有構(gòu)造函數(shù)

56. UML是什么?

標(biāo)準(zhǔn)建模語(yǔ)言UML。用例圖,靜態(tài)圖(包括類(lèi)圖、對(duì)象圖和包圖),行為圖,交互圖(順序圖,合作圖),實(shí)現(xiàn)圖。

57. 在數(shù)據(jù)結(jié)構(gòu)中,有哪些常見(jiàn)的結(jié)構(gòu)?

鏈表結(jié)構(gòu),樹(shù)狀結(jié)構(gòu),網(wǎng)狀結(jié)構(gòu)

58. 完全二叉樹(shù)也是二叉樹(shù)

59. 說(shuō)出至少三種java設(shè)計(jì)模式?

工廠模式
單例模式
建造模式
原型模式
迭代器模式
命令模式 等等

60. 什么叫C/S?

應(yīng)用程序與服務(wù)端通訊結(jié)構(gòu)框架

61. 什么叫B/s?

網(wǎng)頁(yè)程序與服務(wù)端通訊結(jié)構(gòu)框架

62. 進(jìn)行模糊查詢(xún),所要用到的關(guān)鍵字是什么?

Like

63. 配置jdk環(huán)境變量,需要配置哪幾個(gè)變量?

JAVA_HOME, CALSSPATH, PATH

64. Android:layout_gravity是控件相對(duì)于容器的位置還是內(nèi)容相對(duì)于控件的位置?

控件相對(duì)于容器的位置

65. Android:padding是控件與控件的間距大小還是內(nèi)容相對(duì)于控件的間距大小?

內(nèi)容相對(duì)于控件的間距大小

66. 單選按鈕實(shí)現(xiàn)單選功能,需要使用哪個(gè)控件包含?

RadioGroup

67. 補(bǔ)間動(dòng)畫(huà)中有幾種動(dòng)畫(huà)效果?

透明(Aphale)
縮放(Scale)
平移()
旋轉(zhuǎn)()

68. Sharedpreference是以何種方式存儲(chǔ)數(shù)據(jù)的?

鍵值對(duì)的形式

69. 獲得操作文件存儲(chǔ)的文件輸入輸出流時(shí),可以申明為哪幾種操作模式?

Mode_private,
mode_append,
mode_world_readable,
mode_world_writeable

70. android動(dòng)畫(huà)分類(lèi)有幾種?區(qū)別是?

Tween 補(bǔ)間動(dòng)畫(huà)   Frame 幀動(dòng)畫(huà)

71. 內(nèi)存回收程序負(fù)責(zé)釋放無(wú)用內(nèi)存

72. 屬于Runtime Exception異常的有

ArithmeticException 
IllegalArgumentException
NullPointerException 
BufferUnderflowException

73. 對(duì)一些資源以及狀態(tài)的操作保存,最好是保存在生命周期的哪個(gè)函數(shù)中進(jìn)行

onStart()

74. 請(qǐng)介紹下ContentProvider是如何實(shí)現(xiàn)數(shù)據(jù)共享的

創(chuàng)建一個(gè)屬于你自己的Content provider或者將你的數(shù)據(jù)添加到一個(gè)已經(jīng)存在的Content provider中,
前提是有相同數(shù)據(jù)類(lèi)型并且有寫(xiě)入Content provider的權(quán)限。

75. 請(qǐng)解釋下在單線(xiàn)程模型中Message、Handler、Message Queue、Looper之間的關(guān)系

andriod提供了 Handler 和 Looper 來(lái)滿(mǎn)足線(xiàn)程間的通信。Handler先進(jìn)先出原則。Looper類(lèi)用來(lái)管理特定線(xiàn)程內(nèi)對(duì)象之間的消息交換。

76. 請(qǐng)解釋下Android程序運(yùn)行時(shí)權(quán)限與文件系統(tǒng)權(quán)限的區(qū)別

運(yùn)行時(shí)權(quán)限D(zhuǎn)alvik( android授權(quán))

77. IntentService有何優(yōu)點(diǎn)?

1、 Acitivity的進(jìn)程,當(dāng)處理Intent的時(shí)候,會(huì)產(chǎn)生一個(gè)對(duì)應(yīng)的Service

2、Android的進(jìn)程處理器現(xiàn)在會(huì)盡可能的不kill掉你

3、非常容易使用

78. 如何將SQLite數(shù)據(jù)庫(kù)(dictionary.db文件)與apk文件一起發(fā)布?

可以將dictionary.db文件復(fù)制到EclipseAndroid工程中的res aw目錄中。所有在res aw目錄中的文件不會(huì)被壓縮,這樣可以直接提取該目錄中的文件。

79. 如何將打開(kāi)res raw目錄中的數(shù)據(jù)庫(kù)文件

在Android中不能直接打開(kāi)res aw目錄中的數(shù)據(jù)庫(kù)文件,而需要在程序第一次啟動(dòng)時(shí)將該文件復(fù)制到手機(jī)內(nèi)存或SD卡的某個(gè)目錄中,然后再打開(kāi)該數(shù)據(jù)庫(kù)文件。復(fù)制的基本方法是使用getResources().openRawResource方法獲得res aw目錄中資源的InputStream對(duì)象,然后將該InputStream對(duì)象中的數(shù)據(jù)寫(xiě)入其他的目錄中相應(yīng)文件中。在AndroidSDK中可以使用SQLiteDatabase.openOrCreateDatabase方法來(lái)打開(kāi)任意目錄中的SQLite數(shù)據(jù)庫(kù)文件。

80. Android引入廣播機(jī)制的用意?

a:從MVC的角度考慮(應(yīng)用程序內(nèi)),其實(shí)回答這個(gè)問(wèn)題的時(shí)候還可以這樣問(wèn),android為什么要有那4大組件,現(xiàn)在的移動(dòng)開(kāi)發(fā)模型基本上也是照搬的web那一套MVC架構(gòu),只不過(guò)是改了點(diǎn)嫁妝而已。android的四大組件本質(zhì)上就是為了實(shí)現(xiàn)移動(dòng)或者說(shuō)嵌入式設(shè)備上的MVC架構(gòu),它們之間有時(shí)候是一種相互依存的關(guān)系,有時(shí)候又是一種補(bǔ)充關(guān)系,引入廣播機(jī)制可以方便幾大組件的信息和數(shù)據(jù)交互。

b:程序間互通消息(例如在自己的應(yīng)用程序內(nèi)監(jiān)聽(tīng)系統(tǒng)來(lái)電)

c:效率上(參考UDP的廣播協(xié)議在局域網(wǎng)的方便性)

d:設(shè)計(jì)模式上(反轉(zhuǎn)控制的一種應(yīng)用,類(lèi)似監(jiān)聽(tīng)者模式)

81. Android dvm的進(jìn)程和Linux的進(jìn)程, 應(yīng)用程序的進(jìn)程是否為同一個(gè)概念

DVM指dalivk的虛擬機(jī)。每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例。而每一個(gè)DVM都是在Linux 中的一個(gè)進(jìn)程,所以說(shuō)可以認(rèn)為是同一個(gè)概念。

82. sim卡的EF 文件有何作用

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

83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評(píng)論 25 708
  • 陽(yáng)光傾灑在老墻上留下長(zhǎng)長(zhǎng)的光影細(xì)密地溫暖著裂縫中倦怠的苔 樹(shù)影婆娑在行道樹(shù)上留下黃得發(fā)黑的陳葉幽深的樹(shù)洞里溢出昨日...
    WONKA瓦南閱讀 307評(píng)論 0 4
  • 最初的最初,我不知所措 后來(lái)的后來(lái),一個(gè)人,也可以淺笑安然 一個(gè)人的喜歡,注定沒(méi)有結(jié)局 一個(gè)人的喜歡,注定會(huì)受傷 ...
    顏汐月閱讀 287評(píng)論 1 1
  • 九攬五洲,賞奇析疑 紫砂的制作...
    九賞藝術(shù)閱讀 467評(píng)論 0 0

友情鏈接更多精彩內(nèi)容