一诗充、activity生命周期,fragment生命周期,broadcastReceiver生命周期夹攒,service生命周期
? ? ? ?activity:onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDestroy()
? ? ? ?fragment:onAttach() -> onCreate() -> onCreateView() -> onActivityCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDestroyView() -> onDestroy ->onDetach()
? ? ? ?broadcastReceiver:10秒左右,onReceive() 方法開始到結(jié)束
? ? ? ?service:
? ? ? ? ? ? 1.startService(): onCreate() -> onStartCommand() -> service running -> onDestroy()
? ? ? ? ? ? 2.bindService():onCreate() -> onBind() -> Clients are bound to service -> onUnbind() -> onDestory()
二胁塞、service如何操作activity
? ? ? 1.直接把a(bǔ)ctivity傳給service咏尝,service通過activity實(shí)例隨便操作activity
? ? ? 2.使用接口回調(diào)方式压语,activity實(shí)現(xiàn)相應(yīng)的接口,service通過接口進(jìn)行回調(diào)
? ? ? 3.使用廣播
三编检、如何解決方法數(shù)65K的問題
? ? ? 使用Android Studio的 gradle 可以構(gòu)建MutilDex
四胎食、Intent 可以傳遞哪些數(shù)據(jù)類型
? ? ? ?1.Serializable
? ? ? ?2.charsequence 主要用來傳遞String,char等
? ? ? ?3.parcelable
? ? ? ?4.Bundle
五、Activity的啟動(dòng)模式允懂,在AndroidManifest.xml的activity標(biāo)簽修改屬性:
? ? ? ?1.Standard:默認(rèn)標(biāo)準(zhǔn)模式厕怜,每啟動(dòng)一個(gè)都會(huì)創(chuàng)建一個(gè)實(shí)例
? ? ? ?2.SingleTop:棧頂服用,如果在棧頂就調(diào)用onNewIntent復(fù)用蕾总,從onResume()開始
? ? ? ?3.SingleTask:棧內(nèi)復(fù)用粥航,本棧內(nèi)只要用該類型Activity就會(huì)調(diào)到棧頂復(fù)用,從onResume()開始
? ? ? ?4.SingleInstance:單例模式生百,除了3中的特性递雀,系統(tǒng)會(huì)單獨(dú)給該Activity創(chuàng)建一個(gè)棧
六、xml 三種解析方式
? ? ? ?DOM:檢索和更新效率高蚀浆;對于特別大的文檔缀程,解析和加載整個(gè)文檔將會(huì)很耗資源
? ? ? ?SAX:解析速度快,占用內(nèi)存惺锌 杨凑;代碼量大,不能倒退
? ? ? ?PULL:小巧輕便秕衙,解析速度快蠢甲,簡單易用,可隨時(shí)停止解析据忘,適用于XML文檔較大但只需要文檔的一部分時(shí)
七鹦牛、Android線程間通信有哪幾種方式
? ? ? 1.共享變量(內(nèi)存)
? ? ? 2.管道
? ? ? 3.handler機(jī)制
八、子線程中能不能new handler?
? ? ? 子線程可以new一個(gè)mainHandler勇吊,然后發(fā)送消息到UIThread
九曼追、橫豎屏切換時(shí)候Activity的生命周期
? ? ? ?1.不設(shè)置Activity的android:configChanges時(shí),切屏?xí)匦抡{(diào)用各個(gè)生命周期汉规,切橫屏?xí)r會(huì)執(zhí)行一次礼殊,切豎屏?xí)r會(huì)執(zhí)行兩次
? ? ? ?2.設(shè)置Activity的android:configChanges=“orientation”時(shí),切屏還是會(huì)重新調(diào)用各個(gè)生命周期针史,切橫豎屏?xí)r只執(zhí)行一次
? ? ? ?3.設(shè)置Activity的android:configChanges=“orientation | keyboardHidden”時(shí)晶伦,切屏不會(huì)重新調(diào)用各個(gè)生命周期,只會(huì)執(zhí)行onConfigurationChanged方法
10.淺談MVC啄枕、 MVP婚陪、 MVVM區(qū)別與聯(lián)系
? ? ? 根據(jù)項(xiàng)目的需求和方案,選擇一個(gè)適合的軟件架構(gòu)频祝,極大的減少了開發(fā)的成本泌参,與維護(hù)的時(shí)間脆淹。架構(gòu)清晰,并提升編程速度沽一。更容易進(jìn)行后續(xù)的測試以及定位問題盖溺。參考地址:http://blog.csdn.net/donkor_/article/details/54970769
十一、什么是內(nèi)存泄漏铣缠、內(nèi)存溢出烘嘱。兩者之間的區(qū)別
? ? ? ? ?內(nèi)存泄露(Memory Leak)指你用new申請了一塊內(nèi)存,但是沒有通過free或delete將內(nèi)存釋放攘残,導(dǎo)致這塊內(nèi)存一直處于占用狀態(tài)內(nèi)存泄露和硬件沒有關(guān)系拙友,它是由軟件設(shè)計(jì)缺陷引起的。
? ? ? ? ?內(nèi)存溢出(Memory Overflow)指程序在申請內(nèi)存時(shí)歼郭,沒有足夠的內(nèi)存空間供其使用,出現(xiàn)out of memory辐棒。比如你申請了10個(gè)字節(jié)的空間病曾,但是你在這個(gè)空間寫入11或以上字節(jié)的數(shù)據(jù),就是溢出漾根。
? ? ? ? 相同點(diǎn):都會(huì)導(dǎo)致應(yīng)用程序運(yùn)行出現(xiàn)問題泰涂,性能下降或掛起。
? ? ? ? 不同點(diǎn):
? ? ? ? ? ? ? ? ? ? 1.內(nèi)存泄露是導(dǎo)致內(nèi)存溢出的原因之一辐怕;內(nèi)存泄露積累起來將導(dǎo)致內(nèi)存溢出逼蒙。
? ? ? ? ? ? ? ? ? ? 2.內(nèi)存泄露可以通過完善代碼來避免;內(nèi)存溢出可以通過調(diào)整配置來減少發(fā)生頻率寄疏,但無法徹底避 免是牢。
參考地址:http://blog.csdn.net/donkor_/article/details/54970769