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.