android面試題之四(紅黑聯盟)

本文屬於轉載 原文地址http://www.2cto.com/kf/201309/246530.html


十六、Android中Dalvik和JVM的區別是什麼?

 
1. Dalvik基於寄存器,而JVM基於棧。基於寄存器的虛擬機對於更大的程序來說,在它們編譯的時候,花費的時間更短。
 
2. Dalvik負責進程隔離和線程管理,每一個Android應用在底層都會對應一個獨立的Dalvik虛擬機實例,Dalvik專門針對同時高效運行多個虛擬機進行了優化,其代碼在虛擬機的解釋下得以執行。
 
3. Dalvik並未遵守jvm規範,兩者也不兼容。jvm運行的是java字節碼(.class文件),Dalvik運行的是其專有的dex(Dalvik Executable)文件。dex文件格式可以減少整體文件尺寸,提高I/o操作的類查找速度。Dalvik虛擬機有自己的 bytecode,並非使用 Java bytecode。
 
 
 
十七、通過Intent傳遞一些二進制數據的方法有哪些?
 
1.使用Serializable接口實現序列化,這是Java常用的方法。
 
2.實現Parcelable接口,這裏Android的部分類比如Bitmap類就已經實現了,同時Parcelable在Android AIDL中交換數據也很常見的。
 
 
 
十八、能說下Android應用的入口點嗎?
 
其實在android.app.Application這個包的onCreate纔是真正的Android入口點,只不過大多數開發者無需重寫該類,他的繼承關係如下圖:
 
java.lang.Object
? android.content.Context
? android.content.ContextWrapper
? android.app.Application
 
 
 
android.app.Application類包含了4個公開的方法
 
void onConfigurationChanged(Configuration newConfig)
void onCreate() //這裏纔是真正的入口點。
void onLowMemory()
void onTerminate()
 
所以希望大家,記住真正的Android入口點是application的main,你可以看下androidmanifest.xml的包含關係就清楚了,並不是每個應用都必須有Activity的。
 
 
 
十九、Android都有哪些XML解析器,都熟練掌握嗎?
 
XML解析主要有三種方式,SAX、DOM、XmlPull。
 
至於SAX、DOM區別在http://blog.csdn.net/u010142437/article/details/11956383中已經介紹過。
 
XmlPull和Sax類似,是基於流(stream)操作文件,然後根據節點事件回調開發者編寫的處理程序。因爲是基於流的處理,因此Xmlpull和Sax都比較節約內存資源,不會象Dom那樣要把所有節點以對橡樹的形式展現在內存中。但Xmlpull比Sax更簡明,而且不需要掃描完整個流。
 
 
 
二十、SQLite支持事務嗎? 添加刪除如何提高性能?
 
SQLite作爲輕量級的數據庫,比MySQL還小,但支持SQL語句查詢,提高性能可以考慮通過原始經過優化的SQL查詢語句方式處理。
 
 
 
二十一、assets與res/raw的不同?
 
assets:用於存放需要打包到應用程序的靜態文件,以便部署到設備中。與res/raw不同點在於,ASSETS支持任意深度的子目錄。這些文件不會生成任何資源ID,必須使用/assets開始(不包含它)的相對路徑名。
 
Res:用於存放應用程序的資源(如圖標、GUI佈局等),將被打包到編譯後的Java中。不支持深度子目錄;
 
res/menu:存放基於XML的菜單描述;
 
res/raw:存放通用的文件,該文件夾內的文件將不會被編譯成二進制文件,按原樣複製到設備上;
 
res/values:存放字符串、尺寸值。
 
res/xml:存放通用的XML文件。
 
 
 
二十二、Android的優勢與不足?
 
Android平臺手機 5大優勢:
 
開放性:在優勢方面,Android平臺首先就是其開發性,開發的平臺允許任何移動終端廠商加入到Android聯盟中來。顯著的開放性可以使其擁有更多的開發者,隨着用戶和應用的日益豐富,一個嶄新的平臺也將很快走向成熟。開發性對於Android的發展而言,有利於積累人氣,這裏的人氣包括消費者和廠商,而對於消費者來講,最大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。
 
掙脫運營商的束縛:在過去很長的一段時間,特別是在歐美地區,手機應用往往受到運營商制約,使用什麼功能接入什麼網絡,幾乎都受到運營商的控制。自iPhone上市 ,用戶可以更加方便地連接網絡,運營商的制約減少。互聯網巨頭Google推動的Android終端天生就有網絡特色,將讓用戶離互聯網更近。
 
豐富的硬件選擇:這一點還是與Android平臺的開放性相關,由於Android的開放性,衆多的廠商會推出千奇百怪,功能特色各具的多種產品。
 
不受任何限制的開發商:Android平臺提供給第三方開發商一個十分寬泛、自由的環境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別緻的軟件會誕生。但也有其兩面性,血腥、暴力、情色方面的程序和遊戲如何控制正是留給Android難題之一。
 
無縫結合的Google應用:如今叱詫互聯網的Google已經走過10年度歷史,從搜索巨人到全面的互聯網滲透,Google服務如地圖、郵件、搜索等已經成爲連接用戶和互聯網的重要紐帶,而Android平臺手機將無縫結合這些優秀的Google服務。
 
 
 
Android的5大不足:
 
安全和隱私:
 
由於手機與互聯網的緊密聯繫,個人隱私很難得到保守。除了上網過程中經意或不經意留下的個人足跡,Google這個巨人也時時站在你的身後,洞穿一切,因此,互聯網的深入將會帶來新一輪的隱私危機。
 
首先開賣Android手機的不是最大運營商:衆所周知,T-Mobile在23日,於美國紐約發佈 了Android首款手機G1。但是在北美市場,最大的兩家運營商乃AT&T和Verizon,而目前所知取得Android手機銷售權的僅有T-Mobile和Sprint,其中T-Mobile的3G網絡相對於其他三家也要遜色不少,因此,用戶可以買賬購買G1,能否體驗到最佳的3G網絡服務則要另當別論了!
 
運營商仍然能夠影響到Android手機:在國內市場,不少用戶對購得移動定製機不滿,感覺所購的手機被人塗畫了廣告一般。這樣的情況在國外市場同樣出現。Android手機的另一發售運營商Sprint就將在其機型中內置其手機商店程序。
 
同類機型用戶減少:在不少手機論壇都會有針對某一型號的子論壇,對一款手機的使用心得交流,並分享軟件資源。而對於Android平臺手機,由於廠商豐富,產品類型多樣,這樣使用同一款機型的用戶越來越少,缺少統一機型的程序強化。舉個稍顯不當的例子,現在山寨機氾濫,品種各異,就很少有專門針對某個型號山寨機的討論和羣組,除了哪些功能異常搶眼、頗受追捧的機型以外。
 
過分依賴開發商缺少標準配置:在使用PC端的Windows Xp系統的時候,都會內置微軟Windows Media Player這樣一個瀏覽器程序,用戶可以選擇更多樣的播放器,如Realplay或暴風影音等。但入手開始使用默認的程序同樣可以應付多樣的需要。在Android平臺中,由於其開放性,軟件更多依賴第三方廠商,比如Android系統的SDK中就沒有內置音樂 播放器,全部依賴第三方開發,缺少了產品的統一性。
 
 
 
二十三、靜態變量和實例變量的區別?
 
1.在語法定義上的區別:靜態變量前要加static關鍵字,而實例變量前則不加。
 
2.在程序運行時的區別:實例變量屬於某個對象的屬性,必須創建了實例對象,其中的實例變量纔會被分配空間,才能使用這個實例變量。靜態變量不屬於某個實例對象,而是屬於類,所以也稱爲類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了。總之,實例變量必須創建對象後纔可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。
 
 
 
二十四、jdk中哪些類是不能繼承的?
 
不能繼承的是類是那些用final關鍵字修飾的類。一般比較基本的類型或防止擴展類無意間破壞原來方法的實現的類型都應該是final的,在jdk中System,String,StringBuffer等都是基本類型。
 
 
 
二十五、sim卡的EF 文件有何作用
 
SIM卡里的所有文件按樹來組織:
主文件MF(Master File)——每一塊SIM卡只有一個唯一的主文件,其他所有文件都是它的子孫, 主文件只有文件頭裏面存放着整個SIM卡的控制和管理信息
專用文件DF(Dedicated File)——也是隻有一個文件頭,裏面存放着整個目錄的管理控制信息,專用文件相當於一個目錄的根.
基本文件EF(Elementary File)——既有文件頭,也有文件體,文件頭存放該文件的位置和控制信息, 文件體存放真正的數據,整個SIM卡中只有基本文件有文件體,也只有基本文件才用來存放數據.
 
sim卡的文件系統有自己規範,主要是爲了和手機通訊,sim本 身可以有自己的操作系統,EF就是作存儲並和手機通訊用的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章