自定義控件及各種特效android實例面試題集_第1頁
自定義控件及各種特效android實例面試題集_第2頁
自定義控件及各種特效android實例面試題集_第3頁
自定義控件及各種特效android實例面試題集_第4頁
自定義控件及各種特效android實例面試題集_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、ATJXUOJ 實例C面試題集 ACSSORKRK電梯直達(dá) 于 小時前 只看該作者 倒序瀏覽業(yè)精于勤 、 TJXUOJ JS 的進(jìn)程和 2OT 的進(jìn)程 個概念;/*應(yīng)用程序的進(jìn)程是否為同 精華 帖子 K 望 點K 幣 元串個門*3 指 JGROQ 的虛擬機(jī)。每一個 TJXUOJ 應(yīng)用程序都在它自己的進(jìn)中運行,都擁有一個獨立的 *GROQ 虛擬機(jī)實例。而每一個 * HEAPSZIE=dataobject=Total Size還有其他問題,大家歡迎提出阿,可以是整體架構(gòu)的,還有這個 Hal 層.這篇文章會涉及到以下幾個內(nèi)容 Activity 的生命周期二讓 Activity 變成一個窗口:Acti

2、vity 屬性設(shè)定三你的 Activity 被系統(tǒng)回收怎么辦:onSaveInstane四的通信使者 -ent調(diào)用與被調(diào)用: Activity 的生命周期的應(yīng)用程序一樣,Android 的應(yīng)用程序的生命周期是被和其他掌控的,也就是說寫的應(yīng)用程序命運掌握在別人(系統(tǒng))里,不能改變它,只能學(xué)習(xí)并適應(yīng)它。簡單地說一下為這樣:在運行發(fā)進(jìn)來一個應(yīng)用程序的時候,有可能打進(jìn)來,或者沒有電了,這時候程序都會被中斷,優(yōu)先去服務(wù),另外系統(tǒng)也不允許你占用太多資源的基本功能,至少要保證功能吧,所以資源的時候也就有可能掉。言歸正傳,Activity 的基本生命周期如下代碼所示:Java 代碼public class M

3、yActivity extendivityprotected void onCreate(Bundle savedInstane);protected void onStart();protected void onResume();protected void onPause();protected void onStop();protected void onDestroy();代碼你自己寫的 Activity 會按需要重載這些方法,onCreate 是免不了的,在一個 Activity 正常啟動的過,他們被調(diào)用的順序是 onCreate -onStart -onResume, 在 Act

4、ivity掉的時候順序是 onPause -onStop - onDestroy ,這樣就是一個完整的生命周期,但是有人問了,程序正運行著呢來了,這個程序咋辦?中止了唄,如果中止的時候新出的一個 Activity 是全屏的那么:onPause-onStop ,恢復(fù)的時候onStart-onResume ,如果打斷這個應(yīng)用程序的是一個 Theme 為Translucent 或者 Dialog 的 Activity 那么只是 onPause ,恢復(fù)的時候onResume 。詳細(xì)介紹一下這幾個方法中系統(tǒng)在做什么以及應(yīng)該做什么:onCreate:在這里創(chuàng)建界面,做一些數(shù)據(jù)的初始化工作onStart:到

5、這一步變成用戶可見不可交互的onResume:變成和用戶可交互的,(在 activity 棧系統(tǒng)通過棧的方式管理這些個Activity 的最上面,運行完彈出棧,則回到上一個 Activity)onPause:到這一步是可見但不可交互的,系統(tǒng)會停止動畫等消耗 CPU 的事情從上文的描述已經(jīng)知道,應(yīng)該在這里保存你的一些數(shù)據(jù),因為這個時候你的程序的優(yōu)先級降低,有可能被系統(tǒng)收回。在這里保存的數(shù)據(jù),應(yīng)該在onResume 里讀出來,注意:這個方法里做的事情時間要短,因為下一個 activity 不會等到這個方法完成才啟動onstop:變得不可見,被下一個 activity 覆蓋了onDestroy: 這

6、是 activity掉前最后一個被調(diào)用方法了,可能是外面類調(diào)用 finish 方法或者是系統(tǒng)為了節(jié)省空間將它暫時性的干掉,可以用isFinishing()來判斷它,如果你有一個 Progress Dialog轉(zhuǎn)動,請在onDestroy 里把他 cancel 掉,不然等線程結(jié)束的時候,調(diào)用 Dialog的 cancel 方拋異常的。onPause,onstop, onDestroy,三種狀態(tài)下 activity 都有可能被系統(tǒng)干掉為了保證程序的正確性,你要在 onPause()里寫上持久層操作的代碼,將用戶編輯的內(nèi)容都保存到工作中因為生命周期的變化而帶來介質(zhì)上(一般都是數(shù)據(jù)庫)。實際也很多,比

7、如你的應(yīng)用程序起了新的線程在跑,這時候中斷了,你還要去那個線程,是暫停還是殺掉還是數(shù)據(jù)回滾,是吧?因為 Activity 可能被殺掉,所以線使用的變量和一些界面元素就千萬要注意了,一般我都是采用 Android 的消息機(jī)制 Handler,Message來處理多線程和界面交互面會講一些,最近因為這些東西頭已經(jīng)很大了,等我。這個我后思緒再跟大家二讓 Activity 變成一個窗口:Activity 屬性設(shè)定講點輕松的吧,可能有人希望做出來的應(yīng)用程序是一個漂浮在主界面的東西,那么很簡單你只需要設(shè)置一下 Activity 的就可以了在AndroidManifest.xml 中定義 Activity

8、的地方一句話:Xml 代碼 android:theme=android:style/Theme.Dialog android:theme=android:style/Theme.Dialog代碼這就使你的應(yīng)用程序變成框的形式彈出來了,或者Xml 代碼 android:theme=android:style/Theme.Translucent android:theme=android:style/Theme.Translucent代碼代碼就變成半透明的,友情提示-.-類似的這種 activity 的屬性可以在android.R.styleable 類的 AndroidManifestActiv

9、ity 方法中看到,AndroidManifest.xml 中所有元素的屬性的介紹都可以參考這個類android.R.styleable值是在 android.R.style 中可以看到,上面說的是屬性名稱,具體比 如 這 個 android:style/Theme.Dialog就 對 應(yīng) 于android.R.style.Theme_Dialog ,(_換成. data android:mimeType=vnd.android.cursor.dir/vnd.note .note代碼這里面配置用到了 action, data, category 這些東西,那么聰明的你一定想到ent 里也會有這

10、些東西,然后一匹配不就找到接收者了嗎?action 其實就是一個意圖的字符串名稱。上面這段ent-filter 的配置文件說明了這個 Activity 可以接受不同的Action,當(dāng)然相應(yīng)的程序邏輯也不一樣咯,提一下那個 mimeType,他是在 ContentProvider 里定義的,你要是自己實現(xiàn)一個 ContentProvider就知道了,必須指定 mimeType 才能讓數(shù)據(jù)被別人使用。不知道原理說明白沒,總結(jié)一句,就是你調(diào)用別的界面不是直接 new 那個界面,而是通過扔出一個ent,讓系統(tǒng)幫你去調(diào)用那個界面,這樣就多么松藕合啊,而且符合了生命周期被系統(tǒng)管理的原則。想知道 categ

11、ory 都有啥,Android 為你預(yù)先定制好的 action 都有啥等ent等,請親自ps:想知道怎么調(diào)用系統(tǒng)應(yīng)用程序的同學(xué),可以仔細(xì)看一下你的 logcat,每次運行一個程序的時候是不是有一些信息比如:Startingactivity:entaction=android.ent.action.MAINcategories=android.ent.category.LAUNCHERfp=com.android.camer.android.camera.GalleryPicker 再對照一下ent 的一些 set 方法,就知道怎么調(diào)用咯,希望你喜歡:)一,listview 你是怎么優(yōu)化的。二,

12、view 的刷新,之前三,IPC 及原理四,Android 多線程五,Android 為什么要設(shè)計4大組件,他們之間的聯(lián)系,不設(shè)計行(主要是為了實現(xiàn) MVC 模式,然而 java 中最難的模式也是這個,很少有產(chǎn)品能將這個模式做得很好【Technicolor 的面試官問的這個】)六,service 的周期,activity 的周期,談下你對 Android應(yīng)用的了解,比如他做,以及聯(lián)系人等等應(yīng)用??蚣軐佑泻芏鄸|西還是多看看,熟悉 Android 怎么做的,不管你做應(yīng)用程開發(fā)還是應(yīng)用框架層開發(fā)很有好處的。在就是你項目經(jīng)驗,突出你遇到什么難點,然后是怎么解決的!盡量將每個凸顯出來,當(dāng)然面試官有時候會

13、為了體現(xiàn)你是否真正做過,他會問你,你在這個應(yīng)用中做那個模塊,用了多少個類之類。偶爾有的面試官會問你,你用過 Android 自帶的單元測試了沒,怎么用的?當(dāng)然我面試過很多家,有的是做平板,數(shù)字電視,有的是做出個之類的客戶端等等,出于前面的三個,基本上都是將 Android的全部改掉,如果真正要做 Android 的話,大家要學(xué)的還很多??傊?,一句話,什么樣的面試官都有,去面試的時候要做好一切心理準(zhǔn)備,不管是技術(shù)還是基礎(chǔ)都得扎實。一個人的交談能力也很重要,總之不是非常標(biāo)準(zhǔn)的普通話,最起碼你說的得讓別人聽得懂,而且得把面試官講得非常徹底,這樣你獲得 offer 的機(jī)會更大,談工資也有優(yōu)勢當(dāng)然曾經(jīng)一家公司的面試官跟我他都請。,技術(shù)是不惜錢的,只要你有能力,1.View 如何刷新?2.DDMS 與 TraceView 的區(qū)別?3.activity 被回收了怎么辦?4.在 Java 中如何引入 C 語言?1.View 可以調(diào)用 invalidate()和tInvalidate()這兩個方法刷新2.DDMS 是一個程序執(zhí)行查看器,在里面你可以看見線程和堆棧等信息,TraceView 是程序性能分析器3.activity 回收了,那就只有另起了4.java 調(diào)用C 語言程序,可以用 JNI 接口來實現(xiàn)上面僅作參考,畢竟我個人能力也有限嘛,難

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論