五大布局:
LinearLayout線性布局
FrameLayout層疊布局
TableLayout 表格布局
AbsoluteLayout絕對布局
RelativeLayout 相對布局
activity生命周期,對應(yīng)的生命周期:
onCreate()----onDestroy()
onStart()----onStop()
onResume()----onPause()
fragment生命周期步驟
onAttach()---onCreate()---onCreateView()----onActivityCreated() //這四個(gè)對應(yīng)的是activity的onCreate()
onstart() //對應(yīng)activity的是onStart()
onResume() //對應(yīng)activity的是onResume()
onPause() //對應(yīng)activity的是onPause()
onStop() //對應(yīng)activity的是onStop()
onDestroyView()----onDestroy()----onDetach() //這三個(gè)對應(yīng)activity的onDestroy()
切換橫豎屏activity生命周期:
總結(jié):
1、不設(shè)置Activity的android:configChanges時(shí),切屏?xí)匦抡{(diào)用各個(gè)生命周期,切橫屏?xí)r會執(zhí)行一次,切豎屏?xí)r會執(zhí)行兩次
2、設(shè)置Activity的android:configChanges="orientation"時(shí),切屏還是會重新調(diào)用各個(gè)生命周期,切橫、豎屏?xí)r只會執(zhí)行一次
3、設(shè)置Activity的android:configChanges="orientation|keyboardHidden"時(shí),切屏不會重新調(diào)用各個(gè)生命周期,只會執(zhí)行onConfigurationChanged方法
數(shù)據(jù)存儲五種方式:
1 SharedPreferences存儲數(shù)據(jù)
2 文件存儲數(shù)據(jù)
3 SQLite數(shù)據(jù)庫存儲數(shù)據(jù)
4 使用ContentProvider存儲數(shù)據(jù)
5 網(wǎng)絡(luò)存儲數(shù)據(jù)
ListView優(yōu)化:
1、convertView重用
2、ViewHolder優(yōu)化
3、圖片加載優(yōu)化
4、onClickListener處理
5、減少Item View的布局層級
6、adapter中的getView方法盡量少使用邏輯
7、adapter中的getView方法盡量少做耗時(shí)操作
8、adapter中的getView方法避免創(chuàng)建大量對象
9、將ListView的scrollingCache和animateCache設(shè)置為false
service啟動方式:
兩種啟動方式
startService() -----stopService() 或者 selfStop() 結(jié)束service
bingService() -----另外一種 bindService() 方法的意思是,把這個(gè) Service 和調(diào)用 Service 的客戶類綁起來,如果調(diào)用這個(gè)客戶類被銷毀,Service 也會被銷毀。用這個(gè)方法的一個(gè)好處是,bindService() 方法執(zhí)行后 Service 會回調(diào)上邊提到的 onBind() 方發(fā),你可以從這里返回一個(gè)實(shí)現(xiàn)了 IBind 接口的類,在客戶端操作這個(gè)類就能和這個(gè)服務(wù)通信了,比如得到 Service 運(yùn)行的狀態(tài)或其他操作。如果 Service 還沒有運(yùn)行,使用這個(gè)方法啟動 Service 就會 onCreate() 方法而不會調(diào)用 onStart()。
廣播:
兩種發(fā)送廣播方式,
sendBroadcast();同步廣播
sendOrderedBroadcast();有序廣播----有序廣播可以通過設(shè)置android:priority="xxx" 優(yōu)先級
1)靜態(tài)注冊:在AndroidManifest.xml注冊,android不能自動銷毀廣播接收器,也就是說當(dāng)應(yīng)用程序關(guān)閉后,還是會接收廣播。
2)動態(tài)注冊:在代碼中通過registerReceiver()手工注冊.當(dāng)程序關(guān)閉時(shí),該接收器也會隨之銷毀。當(dāng)然,也可手工調(diào)用unregisterReceiver()進(jìn)行銷毀。
//選擇排序
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) { //i+1最小值已經(jīng)比較完畢,所以每次i+1對比后面的值
if (arr[i] > arr[j]) { //如果i值大于j 值則換位
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}```
//冒泡排序
```public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}```
2017常見面試題
[最新2017(Android)安卓面試題級答案(精選版)](http://www.2cto.com/kf/201702/603678.html)
[[android面試題總結(jié)加強(qiáng)再加強(qiáng)版(三)](http://blog.csdn.net/scott2017/article/details/51915136)](http://blog.csdn.net/scott2017/article/details/51915136)
[[Android面試題整理](http://blog.csdn.net/scott2017/article/details/51914975)](http://blog.csdn.net/scott2017/article/details/51914975)